diff options
author | Iikka Eklund <iikka.eklund@qt.io> | 2022-05-18 14:29:11 +0300 |
---|---|---|
committer | Iikka Eklund <iikka.eklund@qt.io> | 2022-05-20 09:34:45 +0000 |
commit | 8f7fc9796ee93a43a51bd8701077cb815bf5ae35 (patch) | |
tree | eaf06ef81e61164caf997102649d56a30492dd3b | |
parent | 2eeb66a217f7ad139c1d8c38fbe081a7b0b722bb (diff) |
Rename 'append_cmake_prefix_path' as 'append_cmake_arg'
The underlying implementation is suitable for any kind of CMake
argument addition so rename it more generic and change the function
signature to accept both the CMake argument name and value.
Change-Id: I428744cc76187623b0d0c165ef5b4a3af5a8e596
Reviewed-by: Toni Saario <toni.saario@qt.io>
-rw-r--r-- | conanfile.py | 16 | ||||
-rw-r--r-- | test/test_conanfile.py | 17 |
2 files changed, 21 insertions, 12 deletions
diff --git a/conanfile.py b/conanfile.py index c3ebc63..85d4080 100644 --- a/conanfile.py +++ b/conanfile.py @@ -479,18 +479,18 @@ def run_qt_configure_module(conan_file: ConanFile): conan_file.run(cmd, run_environment=True) -def append_cmake_prefix_path(cmake_args_str, cmake_prefix_path: str) -> str: - """Append the given CMAKE_PREFIX_PATH to the cmake args string +def append_cmake_arg(cmake_args_str, cmake_arg_name: str, cmake_arg_value: str) -> str: + """Append the given CMake argument to the cmake args string and return the formatted version.""" formatted_cmake_args: List[str] = [] - cmake_prefix_found = False + cmake_arg_found = False for item in shlex.split(cmake_args_str.strip("\"' ")): - if "CMAKE_PREFIX_PATH" in item: - item = item + ";" + cmake_prefix_path - cmake_prefix_found = True + if cmake_arg_name in item: + item = item + ";" + cmake_arg_value + cmake_arg_found = True formatted_cmake_args.append(item) - if not cmake_prefix_found: - formatted_cmake_args.append("-DCMAKE_PREFIX_PATH={0}".format(cmake_prefix_path)) + if not cmake_arg_found: + formatted_cmake_args.append("-D{0}={1}".format(cmake_arg_name, cmake_arg_value)) return '"' + " ".join(formatted_cmake_args) + '"' diff --git a/test/test_conanfile.py b/test/test_conanfile.py index 6d3d4b7..4dd95b6 100644 --- a/test/test_conanfile.py +++ b/test/test_conanfile.py @@ -41,7 +41,7 @@ from conanfile import ( parse_qt_sw_pkg_dependency, parse_qt_version_by_key, simple_version_check, - append_cmake_prefix_path, + append_cmake_arg, parse_android_ndk_version, parse_android_sdk_version, locate_file, @@ -160,24 +160,33 @@ class TestConanFile(unittest.TestCase): @data( ( + 'CMAKE_PREFIX_PATH', '\"-DCMAKE_PREFIX_PATH=path1;path2\"', '/some/path/to/be/added', '\"-DCMAKE_PREFIX_PATH=path1;path2;/some/path/to/be/added\"', ), ( + 'CMAKE_PREFIX_PATH', '\"-DCMAKE_PREFIX_PATH=path1;path2\"', '/some/path/to/be/added', '\"-DCMAKE_PREFIX_PATH=path1;path2;/some/path/to/be/added\"', ), ( + 'CMAKE_PREFIX_PATH', '\"-DFOO=bar1 -DBAR=foo1 -FOO -BAR -DCMAKE_PREFIX_PATH=foo1\"', 'C:\\foo\\bar folder\\', '\"-DFOO=bar1 -DBAR=foo1 -FOO -BAR -DCMAKE_PREFIX_PATH=foo1;C:\\foo\\bar folder\\"', ), + ( + 'QT_HOST_PATH', + '\"-DCMAKE_PREFIX_PATH=path1;path2\"', + '/qt/host/path', + '\"-DCMAKE_PREFIX_PATH=path1;path2 -DQT_HOST_PATH=/qt/host/path\"', + ), ) - def test_append_cmake_prefix_path(self, data): - orig_cmake_prefix_path, path_to_be_appended, expected_result = data - ret = append_cmake_prefix_path(orig_cmake_prefix_path, path_to_be_appended) + def append_cmake_arg(self, data): + cmake_arg_name, orig_cmake_args_str, cmake_arg_value, expected_result = data + ret = append_cmake_arg(orig_cmake_args_str, cmake_arg_name, cmake_arg_value) self.assertEqual(ret, expected_result) @data( |