From a8b144b71b0780c211a5ecfbafab1a5b3e07bcf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volker=20Wei=C3=9Fmann?= Date: Tue, 2 May 2023 18:39:16 +0200 Subject: [PATCH] Make `dependency('foo', static: true, method: 'cmake') link statically Fixes #1709 --- mesonbuild/dependencies/cmake.py | 1 + mesonbuild/dependencies/data/CMakeLists.txt | 4 ++++ test cases/rust/13 external c dependencies/test.json | 3 ++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/mesonbuild/dependencies/cmake.py b/mesonbuild/dependencies/cmake.py index b5ddd28e2..8827c9abd 100644 --- a/mesonbuild/dependencies/cmake.py +++ b/mesonbuild/dependencies/cmake.py @@ -388,6 +388,7 @@ class CMakeDependency(ExternalDependency): cmake_opts += ['-DARCHS={}'.format(';'.join(self.cmakeinfo.archs))] cmake_opts += [f'-DVERSION={package_version}'] cmake_opts += ['-DCOMPS={}'.format(';'.join([x[0] for x in comp_mapped]))] + cmake_opts += [f'-DSTATIC={self.static}'] cmake_opts += args cmake_opts += self.traceparser.trace_args() cmake_opts += toolchain.get_cmake_args() diff --git a/mesonbuild/dependencies/data/CMakeLists.txt b/mesonbuild/dependencies/data/CMakeLists.txt index acbf64871..d682cb824 100644 --- a/mesonbuild/dependencies/data/CMakeLists.txt +++ b/mesonbuild/dependencies/data/CMakeLists.txt @@ -8,6 +8,10 @@ set(PACKAGE_FOUND FALSE) set(_packageName "${NAME}") string(TOUPPER "${_packageName}" PACKAGE_NAME) +if("${STATIC}" STREQUAL "True") + set("${NAME}_USE_STATIC_LIBS" "ON") +endif() + while(TRUE) if ("${VERSION}" STREQUAL "") find_package("${NAME}" QUIET COMPONENTS ${COMPS}) diff --git a/test cases/rust/13 external c dependencies/test.json b/test cases/rust/13 external c dependencies/test.json index 423581ff6..abd996f4c 100644 --- a/test cases/rust/13 external c dependencies/test.json +++ b/test cases/rust/13 external c dependencies/test.json @@ -12,7 +12,8 @@ ] }, "exclude": [ - { "static": true, "method": "pkg-config" } + { "static": true, "method": "pkg-config" }, + { "static": true, "method": "cmake" } ] } }