Conan: Rename 'extra_cmake_args' Conan option as 'cmake_args_qtbase'
It turns out that we need to support two ways to pass cmake args as Conan options. Those that are meant for qtbase only, like "-DCMAKE_TOOLCHAIN_FILE={{.Env.ANDROID_NDK_ROOT}}", and those that are meant for leaf modules only. Rename the current 'extra_cmake_args' Conan recipe option as 'cmake_args_qtbase' to make it clear these cmake args are passed to qtbase build only. The leaf modules will be using 'cmake_args_leaf_module' as the Conan option name. Change-Id: I456b8b07da5684f386cac668a5cd3e2509c733ac Reviewed-by: Toni Saario <toni.saario@qt.io> (cherry picked from commit 83752fcd2b8104df8d17f24640c14a307eac46fa) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
590d3f8e1e
commit
2177ada794
10
conanfile.py
10
conanfile.py
@ -124,8 +124,8 @@ class QtOptionParser:
|
|||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
self.options: List[QtConfigureOption] = []
|
self.options: List[QtConfigureOption] = []
|
||||||
self.load_configure_options()
|
self.load_configure_options()
|
||||||
self.extra_options: Dict[str, Any] = {"extra_cmake_args": "ANY"}
|
self.extra_options: Dict[str, Any] = {"cmake_args_qtbase": "ANY"}
|
||||||
self.extra_options_default_values = {"extra_cmake_args": None}
|
self.extra_options_default_values = {"cmake_args_qtbase": None}
|
||||||
|
|
||||||
def load_configure_options(self) -> None:
|
def load_configure_options(self) -> None:
|
||||||
"""Read the configure options and features dynamically via configure(.bat).
|
"""Read the configure options and features dynamically via configure(.bat).
|
||||||
@ -315,10 +315,10 @@ class QtOptionParser:
|
|||||||
qt_options.append(qt_option)
|
qt_options.append(qt_option)
|
||||||
return qt_options
|
return qt_options
|
||||||
|
|
||||||
def get_extra_cmake_args_for_configure(self, conan_options: Options) -> List[Optional[str]]:
|
def get_cmake_args_for_configure(self, conan_options: Options) -> List[Optional[str]]:
|
||||||
ret: List[Optional[str]] = []
|
ret: List[Optional[str]] = []
|
||||||
for option_name, option_value in conan_options.items():
|
for option_name, option_value in conan_options.items():
|
||||||
if option_name == "extra_cmake_args" and self.is_used_option(option_value):
|
if option_name == "cmake_args_qtbase" and self.is_used_option(option_value):
|
||||||
ret = [ret for ret in option_value.strip(r" '\"").split()]
|
ret = [ret for ret in option_value.strip(r" '\"").split()]
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
@ -334,7 +334,7 @@ def _build_qtbase(conan_file: ConanFile):
|
|||||||
cmd = " ".join(
|
cmd = " ".join(
|
||||||
[str(configure), " ".join(qt_configure_options), "-prefix", conan_file.package_folder]
|
[str(configure), " ".join(qt_configure_options), "-prefix", conan_file.package_folder]
|
||||||
)
|
)
|
||||||
cmake_args = parser.get_extra_cmake_args_for_configure(conan_file.options)
|
cmake_args = parser.get_cmake_args_for_configure(conan_file.options)
|
||||||
if cmake_args:
|
if cmake_args:
|
||||||
cmd += f" -- {' '.join(cmake_args)}"
|
cmd += f" -- {' '.join(cmake_args)}"
|
||||||
conan_file.output.info(f"Calling: {cmd}")
|
conan_file.output.info(f"Calling: {cmd}")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user