diff options
author | Hirokazu Honda <hiroh@chromium.org> | 2021-02-04 01:27:31 +0000 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2021-02-04 05:03:59 +0200 |
commit | 336de7afd2acc2b8c5e24be19d0d90271ebb5021 (patch) | |
tree | c6423281facb4e86b0c573fd2df10daaa0dc912f /src/android | |
parent | 9109bcf22c7f5f48afcf4234a4d4a596d6bd7bd2 (diff) |
android: Try build with a local libyuv first
There are build environments where the wrap-based download is prohibited
by "--wrap-mode nodownload". In such cases, libyuv needs to be provided
by the build environment. To support this, this changes the meson file
to first try using a local libyuv, and if it fails, download libyuv code
and build with it as a fallback.
Signed-off-by: Hirokazu Honda <hiroh@chromium.org>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/android')
-rw-r--r-- | src/android/meson.build | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/src/android/meson.build b/src/android/meson.build index 7619517a..95d0f420 100644 --- a/src/android/meson.build +++ b/src/android/meson.build @@ -15,20 +15,26 @@ foreach dep : android_deps endforeach if android_enabled - 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') - - android_deps += [ libyuv_dep, ] + libyuv_dep = dependency('libyuv', required : false) + + # Fallback to a subproject if libyuv isn't found, as it's typically not + # provided by distributions. + if 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 + + android_deps += [ libyuv_dep, ] endif android_hal_sources = files([ |