diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2021-12-29 12:07:35 +0200 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2022-05-18 14:29:16 +0300 |
commit | e0766fa2051c4bcdd12a0b6a838be757018d103a (patch) | |
tree | 27ab8357d3ece1f6462ab98d2f9b2edb6fa8fe7f | |
parent | 9f00e78bf5a6b311c6d0e72b7c79f793863ea942 (diff) |
meson: Compile libyaml as a subproject if not available on the system
AOSP doesn't ship libyaml, making it more difficult to compile libcamera
for Android. Use a meson wrap to compile libyaml as a subproject if the
dependency is not found.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Tested-by: Eric Curtin <ecurtin@redhat.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
-rw-r--r-- | src/libcamera/meson.build | 13 | ||||
-rw-r--r-- | subprojects/.gitignore | 1 | ||||
-rw-r--r-- | subprojects/libyaml.wrap | 5 |
3 files changed, 18 insertions, 1 deletions
diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build index 75d3a692..b57bee7e 100644 --- a/src/libcamera/meson.build +++ b/src/libcamera/meson.build @@ -67,7 +67,7 @@ subdir('proxy') libdl = cc.find_library('dl') libgnutls = cc.find_library('gnutls', required : true) libudev = dependency('libudev', required : false) -libyaml = dependency('yaml-0.1', required : true) +libyaml = dependency('yaml-0.1', required : false) if libgnutls.found() config_h.set('HAVE_GNUTLS', 1) @@ -88,6 +88,17 @@ if libudev.found() ]) endif +# Fallback to a subproject if libyaml isn't found, as it's not packaged in AOSP. +if not libyaml.found() + cmake = import('cmake') + + libyaml_vars = cmake.subproject_options() + libyaml_vars.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': 'ON'}) + libyaml_vars.append_compile_args('c', '-Wno-unused-value') + libyaml_wrap = cmake.subproject('libyaml', options : libyaml_vars) + libyaml = libyaml_wrap.dependency('yaml') +endif + control_sources = [] foreach source : control_source_files diff --git a/subprojects/.gitignore b/subprojects/.gitignore index 0e194289..fd3f4a5b 100644 --- a/subprojects/.gitignore +++ b/subprojects/.gitignore @@ -1,4 +1,5 @@ /googletest-release* +/libyaml /libyuv /packagecache /pybind11 diff --git a/subprojects/libyaml.wrap b/subprojects/libyaml.wrap new file mode 100644 index 00000000..3d7d0a32 --- /dev/null +++ b/subprojects/libyaml.wrap @@ -0,0 +1,5 @@ +[wrap-git] +directory = libyaml +url = https://github.com/yaml/libyaml +# tags/0.2.5 +revision = 2c891fc7a770e8ba2fec34fc6b545c672beb37e6 |