From f43310585a1d09a4ccf95d5d5baf5620796e0ec6 Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Thu, 19 Sep 2024 14:46:43 -0600 Subject: [PATCH] build: `generate()` in `test_package` now correctly propagates project's options --- test_package/conanfile.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/test_package/conanfile.py b/test_package/conanfile.py index 5e3586b1..37654d77 100644 --- a/test_package/conanfile.py +++ b/test_package/conanfile.py @@ -39,9 +39,22 @@ class TestPackageConan(ConanFile): def generate(self): tc = CMakeToolchain(self) - tc.variables["MP_UNITS_API_STD_FORMAT"] = bool( - self.dependencies["mp-units"].options.std_format - ) + opt = self.dependencies["mp-units"].options + if opt.cxx_modules: + tc.cache_variables["CMAKE_CXX_SCAN_FOR_MODULES"] = True + tc.cache_variables["MP_UNITS_BUILD_CXX_MODULES"] = True + if opt.import_std: + tc.cache_variables["CMAKE_CXX_MODULE_STD"] = True + tc.cache_variables["MP_UNITS_BUILD_IMPORT_STD"] = True + # Current experimental support according to `Help/dev/experimental.rst` + tc.cache_variables["CMAKE_EXPERIMENTAL_CXX_IMPORT_STD"] = ( + "0e5b6991-d74f-4b3d-a41c-cf096e0b2508" + ) + if opt.freestanding: + tc.cache_variables["MP_UNITS_API_FREESTANDING"] = True + else: + tc.cache_variables["MP_UNITS_API_STD_FORMAT"] = opt.std_format + tc.cache_variables["MP_UNITS_API_CONTRACTS"] = str(opt.contracts).upper() tc.generate() def build(self):