diff --git a/.gitignore b/.gitignore index 7639f8ab81..edef7ce0f0 100644 --- a/.gitignore +++ b/.gitignore @@ -72,3 +72,6 @@ doxygen/ *.orig /tests/log /tests/testcases/__pycache__/ + +# Subproject files +subprojects/libconfig diff --git a/src/meson.build b/src/meson.build index 189829391a..f6c1197389 100644 --- a/src/meson.build +++ b/src/meson.build @@ -34,7 +34,22 @@ endforeach foreach i : required_xcb_packages base_deps += [dependency(i, version: '>=1.12.0', required: true)] endforeach -base_deps += [dependency('libconfig', version: '>=1.7', required: true)] + +libconfig_dep = dependency('libconfig', version: '>=1.7', required: false) + +if not libconfig_dep.found() + warning('Trying to clone and build libconfig as a subproject.') + + cmake = import('cmake') + sub_libconfig_opts = cmake.subproject_options() + sub_libconfig_opts.add_cmake_defines({ + 'BUILD_SHARED_LIBS': false, + }) + sub_libconfig = cmake.subproject('libconfig', options: sub_libconfig_opts) + base_deps += [sub_libconfig.dependency('config')] +else + base_deps += [libconfig_dep] +endif if not cc.has_header('uthash.h') error('Dependency uthash not found') diff --git a/subprojects/libconfig.wrap b/subprojects/libconfig.wrap new file mode 100644 index 0000000000..d3528cac6e --- /dev/null +++ b/subprojects/libconfig.wrap @@ -0,0 +1,4 @@ +[wrap-git] +url = https://github.com/hyperrealm/libconfig +revision = f9404f60a435aa06321f4ccd8357364dcb216d46 +depth = 1