diff --git a/meson.build b/meson.build index 7a4e77c9cd838e6a5334932f0cf9caf32932222f..e2d16607671df50ec7fc33ac533949c56235106d 100644 --- a/meson.build +++ b/meson.build @@ -13,10 +13,29 @@ coeurl_dep = dependency('coeurl', required: true) thread_dep = dependency('threads', required: true) openssl_dep = dependency('openssl', version: '>=1.1', required: true) -olm_dep = dependency('Olm', method: 'cmake', fallback: ['olm-wrap', 'olm_dep'], required: true) - json_dep = dependency('nlohmann_json', version: '>=3.2.0', required: true) +olm_dep = dependency('Olm', method: 'cmake', required: get_option('wrap_mode') == 'nofallback') + +if (not olm_dep.found() + or get_option('wrap_mode') == 'forcefallback' + or 'Olm' in get_option('force_fallback_for')) + olm_options = cmake.subproject_options() + olm_options.add_cmake_defines({ + 'BUILD_SHARED_LIBS': false, + 'OLM_TESTS': false, + }) + if target_machine.system() != 'windows' + olm_options.add_cmake_defines({ + 'CMAKE_C_FLAGS': '-fPIC', + }) + endif + olm_options.set_override_option('werror', 'false') + olm_options.set_override_option('warning_level', '0') + olm_proj = cmake.subproject('Olm', options: olm_options) + olm_dep = olm_proj.dependency('olm') +endif + deps = [ coeurl_dep, thread_dep, diff --git a/subprojects/olm-wrap/meson.build b/subprojects/olm-wrap/meson.build deleted file mode 100644 index f81c695bc2e36be7cc47f3bf948b859c31afc9b4..0000000000000000000000000000000000000000 --- a/subprojects/olm-wrap/meson.build +++ /dev/null @@ -1,6 +0,0 @@ -project('olm-wrap', 'cpp', version: '3.1.4', meson_version: '>=0.55.0') - -cmake = import('cmake') - -olm_subproj = cmake.subproject('Olm') -olm_dep = olm_subproj.dependency('olm')