diff options
Diffstat (limited to 'src/meson.build')
-rw-r--r-- | src/meson.build | 61 |
1 files changed, 54 insertions, 7 deletions
diff --git a/src/meson.build b/src/meson.build index d818d8b8..76198e95 100644 --- a/src/meson.build +++ b/src/meson.build @@ -1,14 +1,61 @@ -if get_option('android') - subdir('android') +# SPDX-License-Identifier: CC0-1.0 + +# Cache system paths +libcamera_datadir = get_option('datadir') / 'libcamera' +libcamera_libdir = get_option('libdir') / 'libcamera' +libcamera_libexecdir = get_option('libexecdir') / 'libcamera' +libcamera_sysconfdir = get_option('sysconfdir') / 'libcamera' + +config_h.set('LIBCAMERA_DATA_DIR', '"' + get_option('prefix') / libcamera_datadir + '"') +config_h.set('LIBCAMERA_SYSCONF_DIR', '"' + get_option('prefix') / libcamera_sysconfdir + '"') + +summary({ + 'LIBCAMERA_DATA_DIR' : config_h.get('LIBCAMERA_DATA_DIR'), + 'LIBCAMERA_SYSCONF_DIR' : config_h.get('LIBCAMERA_SYSCONF_DIR'), + }, section : 'Paths') + +# Module Signing +openssl = find_program('openssl', required : false) +if openssl.found() + ipa_priv_key = custom_target('ipa-priv-key', + output : ['ipa-priv-key.pem'], + command : [gen_ipa_priv_key, '@OUTPUT@']) + config_h.set('HAVE_IPA_PUBKEY', 1) + ipa_sign_module = true +else + warning('openssl not found, all IPA modules will be isolated') + ipa_sign_module = false +endif + +# libyuv, used by the Android adaptation layer and the virtual pipeline handler. +# Fallback to a subproject if libyuv isn't found, as it's typically not provided +# by distributions. +libyuv_dep = dependency('libyuv', required : false) + +if (pipelines.contains('virtual') or get_option('android').allowed()) and \ + not libyuv_dep.found() + cmake = import('cmake') + + libyuv_vars = cmake.subproject_options() + libyuv_vars.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': 'ON'}) + libyuv_vars.set_override_option('cpp_std', 'c++17') + libyuv_vars.append_compile_args('cpp', + '-Wno-sign-compare', + '-Wno-unused-variable', + '-Wno-unused-parameter') + libyuv_vars.append_link_args('-ljpeg') + libyuv = cmake.subproject('libyuv', options : libyuv_vars) + libyuv_dep = libyuv.dependency('yuv') endif +# libcamera must be built first as a dependency to the other components. subdir('libcamera') + +subdir('android') subdir('ipa') -subdir('cam') -subdir('qcam') -if get_option('v4l2') - subdir('v4l2') -endif +subdir('apps') subdir('gstreamer') +subdir('py') +subdir('v4l2') |