123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- project('megapixels', 'c', version: '2.0.0')
- gnome = import('gnome')
- gtkdep = dependency('gtk4')
- libfeedback = dependency('libfeedback-0.0')
- zbar = dependency('zbar')
- jpeg = dependency('libjpeg')
- threads = dependency('threads')
- # gl = dependency('gl')
- epoxy = dependency('epoxy')
- libmp = dependency('libmegapixels')
- libdng = dependency('libdng')
- # We only build in support for Wayland/X11 if GTK did so
- optdeps = []
- if gtkdep.get_variable('targets').contains('wayland')
- optdeps += dependency('gtk4-wayland')
- optdeps += dependency('wayland-client')
- endif
- if gtkdep.get_variable('targets').contains('x11')
- optdeps += dependency('gtk4-x11')
- optdeps += dependency('x11')
- optdeps += dependency('xrandr')
- endif
- cc = meson.get_compiler('c')
- libm = cc.find_library('m', required: false)
- subdir('data')
- conf = configuration_data()
- conf.set_quoted('DATADIR', join_paths(get_option('prefix'), get_option('datadir')))
- conf.set_quoted('SYSCONFDIR', get_option('sysconfdir'))
- configure_file(
- output: 'config.h',
- configuration: conf)
- add_global_arguments('-DVERSION="@0@"'.format(meson.project_version()), language: 'c')
- # Define DEBUG for debug builds only (debugoptimized is not included on this one)
- if get_option('buildtype') == 'debug'
- add_global_arguments('-DDEBUG', language: 'c')
- endif
- # Workaround for libtiff having ABI changes but not changing the internal
- # version number
- if get_option('tiffcfapattern')
- add_global_arguments('-DLIBTIFF_CFA_PATTERN', language: 'c')
- endif
- executable('megapixels',
- 'src/camera.c',
- 'src/flash.c',
- 'src/gl_util.c',
- 'src/gles2_debayer.c',
- 'src/ini.c',
- 'src/io_pipeline.c',
- 'src/main.c',
- 'src/matrix.c',
- 'src/pipeline.c',
- 'src/process_pipeline.c',
- 'src/zbar_pipeline.c',
- 'src/dcp.c',
- resources,
- include_directories: 'src/',
- dependencies: [gtkdep, libfeedback, libm, zbar, threads, epoxy, libmp, libdng, jpeg] + optdeps,
- install: true,
- link_args: '-Wl,-ldl')
- executable('movie_audio_rec',
- 'movie_audio_rec.c',
- dependencies: [ dependency('libpulse-simple') ],
- install : true,
- install_dir: get_option('libexecdir') / 'megapixels/',
- )
- install_data(
- [
- 'mpegize.py'
- ],
- install_dir: get_option('libexecdir') / 'megapixels/',
- )
- configure_file(
- input: 'movie.sh.in',
- output: 'movie.sh',
- configuration: {'LIBEXECDIR': join_paths(get_option('prefix'), get_option('libexecdir')) / 'megapixels/'},
- install_dir: get_option('datadir') / 'megapixels/',
- install_mode: 'rwxr-xr-x',
- )
- install_data(
- [
- 'config/pine64,pinephone,rear.dcp',
- 'config/pine64,pinephone,front.dcp',
- ],
- install_dir: get_option('datadir') / 'megapixels/config/')
- # Formatting
- clang_format = find_program('clang-format-14', required: false)
- if clang_format.found()
- format_files = [
- 'data/blit.frag',
- 'data/blit.vert',
- 'data/debayer.frag',
- 'data/debayer.vert',
- 'data/debayer_packed.frag',
- 'data/solid.frag',
- 'data/solid.vert',
- 'src/camera.c',
- 'src/camera.h',
- 'src/camera_config.c',
- 'src/camera_config.h',
- 'src/device.c',
- 'src/device.h',
- 'src/flash.c',
- 'src/flash.h',
- 'src/gl_util.c',
- 'src/gl_util.h',
- 'src/gles2_debayer.c',
- 'src/gles2_debayer.h',
- 'src/io_pipeline.c',
- 'src/io_pipeline.h',
- 'src/main.c',
- 'src/main.h',
- 'src/matrix.c',
- 'src/matrix.h',
- 'src/mode.c',
- 'src/mode.h',
- 'src/pipeline.c',
- 'src/pipeline.h',
- 'src/process_pipeline.c',
- 'src/process_pipeline.h',
- 'src/zbar_pipeline.c',
- 'src/zbar_pipeline.h',
- 'tools/camera_test.c',
- 'tools/list_devices.c',
- ]
- run_target('clang-format',
- command: ['clang-format.sh', '-i'] + format_files)
- run_target('clang-format-check',
- command: ['clang-format.sh', '-n', '-Werror'] + format_files)
- endif
|