From 8f1829e9cf943f161d7ff7f4fff4beeabc5d4426 Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Thu, 19 Oct 2023 10:33:05 -0500 Subject: [PATCH] (#20688) Update meson template package * Add comments and show how to disable all features by default * Use a lambda --- docs/package_templates/meson_package/all/conanfile.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/package_templates/meson_package/all/conanfile.py b/docs/package_templates/meson_package/all/conanfile.py index b1861c3dc5b11..1d2b29f90aa8b 100644 --- a/docs/package_templates/meson_package/all/conanfile.py +++ b/docs/package_templates/meson_package/all/conanfile.py @@ -107,12 +107,18 @@ def source(self): get(self, **self.conan_data["sources"][self.version], strip_root=True) def generate(self): + # Meson feature options must be set to "enabled" or "disabled" + feature = lambda option: "enabled" if option else "disabled" + # default_library and b_staticpic are automatically parsed when self.options.shared and self.options.fpic exist # buildtype is automatically parsed for self.settings tc = MesonToolchain(self) # In case need to pass definitions directly to the compiler tc.preprocessor_definitions["MYDEFINE"] = "MYDEF_VALUE" - tc.project_options["feature"] = "enabled" if self.options.get_safe("feature") else "disabled" + # Meson features are typically enabled automatically when possible. + # The default behavior can be changed to disable all features by setting "auto_features" to "disabled". + tc.project_options["auto_features"] = "disabled" + tc.project_options["feature"] = feature(self.options.get_safe("feature")) # Meson project options may vary their types tc.project_options["tests"] = False tc.generate()