From eb8ca1edcfe1e1c6d2a275bedd08ec05b58d8e23 Mon Sep 17 00:00:00 2001 From: Luis Date: Fri, 15 Jul 2022 14:13:02 +0200 Subject: [PATCH 1/8] tests pending --- conan/tools/cmake/presets.py | 54 ++++++++++++++++++++++++++++++------ conans/model/conf.py | 1 + 2 files changed, 46 insertions(+), 9 deletions(-) diff --git a/conan/tools/cmake/presets.py b/conan/tools/cmake/presets.py index 918f6a83162..0d2d56d0ecc 100644 --- a/conan/tools/cmake/presets.py +++ b/conan/tools/cmake/presets.py @@ -53,8 +53,13 @@ def _add_configure_preset(conanfile, generator, cache_variables, toolchain_file, "description": "'{}' configure using '{}' generator".format(name, generator), "generator": generator, "cacheVariables": cache_variables, - "toolchainFile": toolchain_file, + } + if not _forced_schema_2(conanfile): + ret["toolchainFile"] = toolchain_file + else: + ret["cacheVariables"]["CMAKE_TOOLCHAIN_FILE"] = toolchain_file + if conanfile.build_folder: # If we are installing a ref: "conan install ", we don't have build_folder, because # we don't even have a conanfile with a `layout()` to determine the build folder. @@ -63,8 +68,16 @@ def _add_configure_preset(conanfile, generator, cache_variables, toolchain_file, return ret +def _forced_schema_2(conanfile): + return conanfile.conf.get("tools.cmake.cmaketoolchain.presets:schema2", check_type=bool) + + +def _schema_version(conanfile, default): + return default if not _forced_schema_2(conanfile) else 2 + + def _contents(conanfile, toolchain_file, cache_variables, generator): - ret = {"version": 3, + ret = {"version": _schema_version(conanfile, default=3), "cmakeMinimumRequired": {"major": 3, "minor": 15, "patch": 0}, "configurePresets": [], "buildPresets": [], @@ -117,25 +130,48 @@ def write_cmake_presets(conanfile, toolchain_file, generator, cache_variables): data = json.dumps(data, indent=4) save(preset_path, data) + save_cmake_user_presets(conanfile, preset_path) + +def save_cmake_user_presets(conanfile, preset_path): # Try to save the CMakeUserPresets.json if layout declared and CMakeLists.txt found if conanfile.source_folder and conanfile.source_folder != conanfile.generators_folder: if os.path.exists(os.path.join(conanfile.source_folder, "CMakeLists.txt")): user_presets_path = os.path.join(conanfile.source_folder, "CMakeUserPresets.json") if not os.path.exists(user_presets_path): - data = {"version": 4, "include": [preset_path], "vendor": {"conan": dict()}} + data = {"version": _schema_version(conanfile, default=4), + "vendor": {"conan": dict()}} else: data = json.loads(load(user_presets_path)) - if "conan" in data.get("vendor", {}): - # Clear the folders that have been deleted - data["include"] = [i for i in data.get("include", []) if os.path.exists(i)] - if preset_path not in data["include"]: - data["include"].append(preset_path) - + if "conan" not in data.get("vendor", {}): + # The file is not ours, we cannot overwrite it + return + data = _append_preset_path(conanfile, data, preset_path) data = json.dumps(data, indent=4) save(user_presets_path, data) +def _append_preset_path(conanfile, data, preset_path): + if not _forced_schema_2(conanfile): + if "include" not in data: + data["include"] = [] + data["include"].append(preset_path) + # Clear the folders that have been deleted + data["include"] = [i for i in data.get("include", []) if os.path.exists(i)] + if preset_path not in data["include"]: + data["include"].append(preset_path) + return data + else: + # Merge the presets + cmake_preset = json.loads(load(preset_path)) + for preset_type in ("configurePresets", "buildPresets", "testPresets"): + for preset in cmake_preset.get(preset_type, []): + if preset_type not in data: + data[preset_type] = [] + data[preset_type].append(preset) + return data + + def load_cmake_presets(folder): tmp = load(os.path.join(folder, "CMakePresets.json")) return json.loads(tmp) diff --git a/conans/model/conf.py b/conans/model/conf.py index 1c37c95e39c..133126ce381 100644 --- a/conans/model/conf.py +++ b/conans/model/conf.py @@ -21,6 +21,7 @@ "tools.cmake.cmaketoolchain:system_name": "Define CMAKE_SYSTEM_NAME in CMakeToolchain", "tools.cmake.cmaketoolchain:system_version": "Define CMAKE_SYSTEM_VERSION in CMakeToolchain", "tools.cmake.cmaketoolchain:system_processor": "Define CMAKE_SYSTEM_PROCESSOR in CMakeToolchain", + "tools.cmake.cmaketoolchain.presets:schema2": "Generate CMakeUserPreset.json compatible with version 2 of the schema", "tools.env.virtualenv:auto_use": "Automatically activate virtualenv file generation", "tools.cmake.cmake_layout:build_folder_vars": "Settings and Options that will produce a different build folder and different CMake presets names", "tools.files.download:retry": "Number of retries in case of failure when downloading", From c7bb59b5910562ca9207ea6515afca68c6934919 Mon Sep 17 00:00:00 2001 From: Luis Date: Fri, 15 Jul 2022 16:05:16 +0200 Subject: [PATCH 2/8] Added tests --- conan/tools/cmake/presets.py | 14 +++- conans/model/conf.py | 2 +- .../toolchains/cmake/test_cmake_toolchain.py | 43 +++++++++++- .../toolchains/cmake/test_cmaketoolchain.py | 65 +++++++++++++++++++ 4 files changed, 120 insertions(+), 4 deletions(-) diff --git a/conan/tools/cmake/presets.py b/conan/tools/cmake/presets.py index 0d2d56d0ecc..b756d581c4a 100644 --- a/conan/tools/cmake/presets.py +++ b/conan/tools/cmake/presets.py @@ -69,11 +69,21 @@ def _add_configure_preset(conanfile, generator, cache_variables, toolchain_file, def _forced_schema_2(conanfile): - return conanfile.conf.get("tools.cmake.cmaketoolchain.presets:schema2", check_type=bool) + version = conanfile.conf.get("tools.cmake.cmaketoolchain.presets:max_schema_version", check_type=int) + if version < 2: + raise ConanException("The minimun value for 'tools.cmake.cmaketoolchain.presets:" + "schema_version' is 2") + if version < 4: + return True + + return False def _schema_version(conanfile, default): - return default if not _forced_schema_2(conanfile) else 2 + if _forced_schema_2(conanfile): + return 2 + + return default def _contents(conanfile, toolchain_file, cache_variables, generator): diff --git a/conans/model/conf.py b/conans/model/conf.py index 133126ce381..968bcd87b3a 100644 --- a/conans/model/conf.py +++ b/conans/model/conf.py @@ -21,7 +21,7 @@ "tools.cmake.cmaketoolchain:system_name": "Define CMAKE_SYSTEM_NAME in CMakeToolchain", "tools.cmake.cmaketoolchain:system_version": "Define CMAKE_SYSTEM_VERSION in CMakeToolchain", "tools.cmake.cmaketoolchain:system_processor": "Define CMAKE_SYSTEM_PROCESSOR in CMakeToolchain", - "tools.cmake.cmaketoolchain.presets:schema2": "Generate CMakeUserPreset.json compatible with version 2 of the schema", + "tools.cmake.cmaketoolchain.presets:max_schema_version": "Generate CMakeUserPreset.json compatible with the supplied schema version", "tools.env.virtualenv:auto_use": "Automatically activate virtualenv file generation", "tools.cmake.cmake_layout:build_folder_vars": "Settings and Options that will produce a different build folder and different CMake presets names", "tools.files.download:retry": "Number of retries in case of failure when downloading", diff --git a/conans/test/functional/toolchains/cmake/test_cmake_toolchain.py b/conans/test/functional/toolchains/cmake/test_cmake_toolchain.py index 095ae5c61aa..f179f154c57 100644 --- a/conans/test/functional/toolchains/cmake/test_cmake_toolchain.py +++ b/conans/test/functional/toolchains/cmake/test_cmake_toolchain.py @@ -76,7 +76,8 @@ def test_cmake_toolchain_custom_toolchain(): reason="Single config test, Linux CI still without 3.23") @pytest.mark.tool_cmake(version="3.23") @pytest.mark.parametrize("existing_user_presets", [None, "user_provided", "conan_generated"]) -def test_cmake_user_presets_load(existing_user_presets): +@pytest.mark.parametrize("schema2", [True, False]) +def test_cmake_user_presets_load(existing_user_presets, schema2): """ Test if the CMakeUserPresets.cmake is generated and use CMake to use it to verify the right syntax of generated CMakeUserPresets.cmake and CMakePresets.cmake. If the user already provided @@ -813,6 +814,46 @@ def test_cmake_presets_multiple_settings_multi_config(): assert "MSVC_LANG2017" in client.out +@pytest.mark.tool_cmake(version="3.23") +def test_user_presets_version2(): + client = TestClient(path_with_spaces=False) + client.run("new hello/0.1 --template=cmake_exe") + configs = ["-c tools.cmake.cmaketoolchain.presets:max_schema_version=2 ", + "-c tools.cmake.cmake_layout:build_folder_vars='[\"settings.compiler.cppstd\"]'"] + client.run("install . {} -s compiler.cppstd=14".format(" ".join(configs))) + client.run("install . {} -s compiler.cppstd=17".format(" ".join(configs))) + client.run("install . {} -s compiler.cppstd=20".format(" ".join(configs))) + + client.run_command("cmake . --preset 14-release") + client.run_command("cmake --build --preset 14-release") + client.run_command("./build/14/Release/hello") + assert "Hello World Release!" in client.out + + if platform.system() != "Windows": + assert "__cplusplus2014" in client.out + else: + assert "MSVC_LANG2014" in client.out + + client.run_command("cmake . --preset 17-release") + client.run_command("cmake --build --preset 17-release") + client.run_command("./build/17/Release/hello") + assert "Hello World Release!" in client.out + if platform.system() != "Windows": + assert "__cplusplus2017" in client.out + else: + assert "MSVC_LANG2017" in client.out + + client.run_command("cmake . --preset 20-release") + client.run_command("cmake --build --preset 20-release") + client.run_command("./build/20/Release/hello") + assert "Hello World Release!" in client.out + + if platform.system() != "Windows": + assert "__cplusplus2020" in client.out + else: + assert "MSVC_LANG2020" in client.out + + @pytest.mark.tool_cmake def test_cmaketoolchain_sysroot(): client = TestClient(path_with_spaces=False) diff --git a/conans/test/integration/toolchains/cmake/test_cmaketoolchain.py b/conans/test/integration/toolchains/cmake/test_cmaketoolchain.py index a4f7f09c6d9..4d5ee81c3f0 100644 --- a/conans/test/integration/toolchains/cmake/test_cmaketoolchain.py +++ b/conans/test/integration/toolchains/cmake/test_cmaketoolchain.py @@ -490,3 +490,68 @@ def configure(self): """) client.save({"conanfile.py": conanfile}) client.run("create . foo/1.0@ -s os=Android -s os.api_level=23 -c tools.android:ndk_path=/foo") + + +def test_user_presets_version2(): + + client = TestClient() + conanfile = textwrap.dedent(""" + from conan import ConanFile + from conan.tools.cmake import cmake_layout + + class Conan(ConanFile): + name = "foo" + version = "1.0" + settings = "os", "arch", "compiler", "build_type" + generators = "CMakeToolchain" + + def layout(self): + cmake_layout(self) + + """) + client.save({"conanfile.py": conanfile, "CMakeLists.txt": "foo"}) + configs = ["-c tools.cmake.cmaketoolchain.presets:max_schema_version=2 ", + "-c tools.cmake.cmake_layout:build_folder_vars='[\"settings.compiler.cppstd\"]'"] + client.run("install . {} -s compiler.cppstd=14".format(" ".join(configs))) + client.run("install . {} -s compiler.cppstd=17".format(" ".join(configs))) + client.run("install . {} -s compiler.cppstd=20".format(" ".join(configs))) + + presets = json.loads(client.load("CMakeUserPresets.json")) + assert len(presets["configurePresets"]) == 3 + assert presets["version"] == 2 + assert "build/14/generators/conan_toolchain.cmake" \ + in presets["configurePresets"][0]["cacheVariables"]["CMAKE_TOOLCHAIN_FILE"].replace("\\", + "/") + assert "build/17/generators/conan_toolchain.cmake" \ + in presets["configurePresets"][1]["cacheVariables"]["CMAKE_TOOLCHAIN_FILE"].replace("\\", + "/") + assert "build/20/generators/conan_toolchain.cmake" \ + in presets["configurePresets"][2]["cacheVariables"]["CMAKE_TOOLCHAIN_FILE"].replace("\\", + "/") + + +def test_user_presets_version2_no_overwrite_user(): + + client = TestClient() + conanfile = textwrap.dedent(""" + from conan import ConanFile + from conan.tools.cmake import cmake_layout + + class Conan(ConanFile): + name = "foo" + version = "1.0" + settings = "os", "arch", "compiler", "build_type" + generators = "CMakeToolchain" + + def layout(self): + cmake_layout(self) + + """) + client.save({"conanfile.py": conanfile, "CMakeLists.txt": "foo", + "CMakeUserPresets.json": '{"from_user": 1}'}) + configs = ["-c tools.cmake.cmaketoolchain.presets:max_schema_version=2 ", + "-c tools.cmake.cmake_layout:build_folder_vars='[\"settings.compiler.cppstd\"]'"] + client.run("install . {} -s compiler.cppstd=14".format(" ".join(configs))) + + presets = json.loads(client.load("CMakeUserPresets.json")) + assert presets == {"from_user": 1} From 0baa690182ad58ddece4ec536fbe4a894721b54f Mon Sep 17 00:00:00 2001 From: Luis Date: Mon, 18 Jul 2022 08:59:01 +0200 Subject: [PATCH 3/8] Fix default --- conan/tools/cmake/presets.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/conan/tools/cmake/presets.py b/conan/tools/cmake/presets.py index b756d581c4a..a373899e3f4 100644 --- a/conan/tools/cmake/presets.py +++ b/conan/tools/cmake/presets.py @@ -69,7 +69,8 @@ def _add_configure_preset(conanfile, generator, cache_variables, toolchain_file, def _forced_schema_2(conanfile): - version = conanfile.conf.get("tools.cmake.cmaketoolchain.presets:max_schema_version", check_type=int) + version = conanfile.conf.get("tools.cmake.cmaketoolchain.presets:max_schema_version", + check_type=int, default=4) if version < 2: raise ConanException("The minimun value for 'tools.cmake.cmaketoolchain.presets:" "schema_version' is 2") From cd20a335501cdf74ab9047466cf0f8bb7fe01c2a Mon Sep 17 00:00:00 2001 From: Luis Date: Mon, 18 Jul 2022 09:15:24 +0200 Subject: [PATCH 4/8] not cpp 20 --- .../integration/toolchains/cmake/test_cmaketoolchain.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/conans/test/integration/toolchains/cmake/test_cmaketoolchain.py b/conans/test/integration/toolchains/cmake/test_cmaketoolchain.py index 4d5ee81c3f0..cfe7c6f375d 100644 --- a/conans/test/integration/toolchains/cmake/test_cmaketoolchain.py +++ b/conans/test/integration/toolchains/cmake/test_cmaketoolchain.py @@ -514,10 +514,9 @@ def layout(self): "-c tools.cmake.cmake_layout:build_folder_vars='[\"settings.compiler.cppstd\"]'"] client.run("install . {} -s compiler.cppstd=14".format(" ".join(configs))) client.run("install . {} -s compiler.cppstd=17".format(" ".join(configs))) - client.run("install . {} -s compiler.cppstd=20".format(" ".join(configs))) presets = json.loads(client.load("CMakeUserPresets.json")) - assert len(presets["configurePresets"]) == 3 + assert len(presets["configurePresets"]) == 2 assert presets["version"] == 2 assert "build/14/generators/conan_toolchain.cmake" \ in presets["configurePresets"][0]["cacheVariables"]["CMAKE_TOOLCHAIN_FILE"].replace("\\", @@ -525,9 +524,6 @@ def layout(self): assert "build/17/generators/conan_toolchain.cmake" \ in presets["configurePresets"][1]["cacheVariables"]["CMAKE_TOOLCHAIN_FILE"].replace("\\", "/") - assert "build/20/generators/conan_toolchain.cmake" \ - in presets["configurePresets"][2]["cacheVariables"]["CMAKE_TOOLCHAIN_FILE"].replace("\\", - "/") def test_user_presets_version2_no_overwrite_user(): From fd54548d34e10b10ab75cd20ce7b26817e7ac45f Mon Sep 17 00:00:00 2001 From: Luis Martinez Date: Mon, 18 Jul 2022 11:10:48 +0200 Subject: [PATCH 5/8] Update conan/tools/cmake/presets.py Co-authored-by: James --- conan/tools/cmake/presets.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conan/tools/cmake/presets.py b/conan/tools/cmake/presets.py index b96a4ba6a4b..991400a72ae 100644 --- a/conan/tools/cmake/presets.py +++ b/conan/tools/cmake/presets.py @@ -72,7 +72,7 @@ def _forced_schema_2(conanfile): version = conanfile.conf.get("tools.cmake.cmaketoolchain.presets:max_schema_version", check_type=int, default=4) if version < 2: - raise ConanException("The minimun value for 'tools.cmake.cmaketoolchain.presets:" + raise ConanException("The minimum value for 'tools.cmake.cmaketoolchain.presets:" "schema_version' is 2") if version < 4: return True From b647eadfaa3862eb40a6fb8b13ccd00f57dde463 Mon Sep 17 00:00:00 2001 From: Luis Date: Mon, 18 Jul 2022 11:27:53 +0200 Subject: [PATCH 6/8] fix --- conan/tools/cmake/presets.py | 17 ++++++++-- .../toolchains/cmake/test_cmaketoolchain.py | 34 +++---------------- 2 files changed, 19 insertions(+), 32 deletions(-) diff --git a/conan/tools/cmake/presets.py b/conan/tools/cmake/presets.py index b96a4ba6a4b..4fe92ed6ffc 100644 --- a/conan/tools/cmake/presets.py +++ b/conan/tools/cmake/presets.py @@ -70,7 +70,10 @@ def _add_configure_preset(conanfile, generator, cache_variables, toolchain_file, def _forced_schema_2(conanfile): version = conanfile.conf.get("tools.cmake.cmaketoolchain.presets:max_schema_version", - check_type=int, default=4) + check_type=int) + if not version: + return False + if version < 2: raise ConanException("The minimun value for 'tools.cmake.cmaketoolchain.presets:" "schema_version' is 2") @@ -88,6 +91,10 @@ def _schema_version(conanfile, default): def _contents(conanfile, toolchain_file, cache_variables, generator): + """ + Contents for the CMakePresets.json + It uses schema version 3 unless it is forced to 2 + """ ret = {"version": _schema_version(conanfile, default=3), "cmakeMinimumRequired": {"major": 3, "minor": 15, "patch": 0}, "configurePresets": [], @@ -148,6 +155,10 @@ def save_cmake_user_presets(conanfile, preset_path): # Try to save the CMakeUserPresets.json if layout declared and CMakeLists.txt found if conanfile.source_folder and conanfile.source_folder != conanfile.generators_folder: if os.path.exists(os.path.join(conanfile.source_folder, "CMakeLists.txt")): + """ + Contents for the CMakeUserPresets.json + It uses schema version 4 unless it is forced to 2 + """ user_presets_path = os.path.join(conanfile.source_folder, "CMakeUserPresets.json") if not os.path.exists(user_presets_path): data = {"version": _schema_version(conanfile, default=4), @@ -157,12 +168,12 @@ def save_cmake_user_presets(conanfile, preset_path): if "conan" not in data.get("vendor", {}): # The file is not ours, we cannot overwrite it return - data = _append_preset_path(conanfile, data, preset_path) + data = _append_user_preset_path(conanfile, data, preset_path) data = json.dumps(data, indent=4) save(user_presets_path, data) -def _append_preset_path(conanfile, data, preset_path): +def _append_user_preset_path(conanfile, data, preset_path): if not _forced_schema_2(conanfile): if "include" not in data: data["include"] = [] diff --git a/conans/test/integration/toolchains/cmake/test_cmaketoolchain.py b/conans/test/integration/toolchains/cmake/test_cmaketoolchain.py index 82429cdbc89..cbfbb48a781 100644 --- a/conans/test/integration/toolchains/cmake/test_cmaketoolchain.py +++ b/conans/test/integration/toolchains/cmake/test_cmaketoolchain.py @@ -492,7 +492,6 @@ def configure(self): client.run("create . foo/1.0@ -s os=Android -s os.api_level=23 -c tools.android:ndk_path=/foo") - def test_user_presets_version2(): client = TestClient() conanfile = textwrap.dedent(""" @@ -502,6 +501,11 @@ def test_user_presets_version2(): class Conan(ConanFile): name = "foo" version = "1.0" + settings = "os", "arch", "compiler", "build_type" + generators = "CMakeToolchain" + + def layout(self): + cmake_layout(self) """) client.save({"conanfile.py": conanfile, "CMakeLists.txt": "foo"}) @@ -577,31 +581,3 @@ def layout(self): assert "build/17/generators/conan_toolchain.cmake" \ in presets["configurePresets"][1]["cacheVariables"]["CMAKE_TOOLCHAIN_FILE"].replace("\\", "/") - - -def test_user_presets_version2_no_overwrite_user(): - - client = TestClient() - conanfile = textwrap.dedent(""" - from conan import ConanFile - from conan.tools.cmake import cmake_layout - - class Conan(ConanFile): - name = "foo" - version = "1.0" - settings = "os", "arch", "compiler", "build_type" - generators = "CMakeToolchain" - - def layout(self): - cmake_layout(self) - - """) - client.save({"conanfile.py": conanfile, "CMakeLists.txt": "foo", - "CMakeUserPresets.json": '{"from_user": 1}'}) - configs = ["-c tools.cmake.cmaketoolchain.presets:max_schema_version=2 ", - "-c tools.cmake.cmake_layout:build_folder_vars='[\"settings.compiler.cppstd\"]'"] - client.run("install . {} -s compiler.cppstd=14".format(" ".join(configs))) - - presets = json.loads(client.load("CMakeUserPresets.json")) - assert presets == {"from_user": 1} - From 39feceacc7d8abcc66a6a7965e3d43ac77a20999 Mon Sep 17 00:00:00 2001 From: Luis Date: Mon, 18 Jul 2022 12:16:11 +0200 Subject: [PATCH 7/8] Fix win test --- .../toolchains/cmake/test_cmake_toolchain.py | 29 +++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/conans/test/functional/toolchains/cmake/test_cmake_toolchain.py b/conans/test/functional/toolchains/cmake/test_cmake_toolchain.py index 49374b42288..cd878eb0398 100644 --- a/conans/test/functional/toolchains/cmake/test_cmake_toolchain.py +++ b/conans/test/functional/toolchains/cmake/test_cmake_toolchain.py @@ -826,10 +826,13 @@ def test_user_presets_version2(): if platform.system() == "Windows": client.run_command("cmake . --preset 14") + client.run_command("cmake --build --preset 14-release") + client.run_command("build/14/Release/hello.exe") else: client.run_command("cmake . --preset 14-release") - client.run_command("cmake --build --preset 14-release") - client.run_command("./build/14/Release/hello") + client.run_command("cmake --build --preset 14-release") + client.run_command("./build/14/Release/hello") + assert "Hello World Release!" in client.out if platform.system() != "Windows": @@ -837,24 +840,20 @@ def test_user_presets_version2(): else: assert "MSVC_LANG2014" in client.out - client.run_command("cmake . --preset 17-release") - client.run_command("cmake --build --preset 17-release") - client.run_command("./build/17/Release/hello") - assert "Hello World Release!" in client.out - if platform.system() != "Windows": - assert "__cplusplus2017" in client.out + if platform.system() == "Windows": + client.run_command("cmake . --preset 17") + client.run_command("cmake --build --preset 17-release") + client.run_command("build/17/Release/hello.exe") else: - assert "MSVC_LANG2017" in client.out + client.run_command("cmake . --preset 17-release") + client.run_command("cmake --build --preset 17-release") + client.run_command("./build/17/Release/hello") - client.run_command("cmake . --preset 20-release") - client.run_command("cmake --build --preset 20-release") - client.run_command("./build/20/Release/hello") assert "Hello World Release!" in client.out - if platform.system() != "Windows": - assert "__cplusplus2020" in client.out + assert "__cplusplus2017" in client.out else: - assert "MSVC_LANG2020" in client.out + assert "MSVC_LANG2017" in client.out @pytest.mark.tool_cmake From 59cff72405d9e67bf7b98a317ffc1edcdea57f94 Mon Sep 17 00:00:00 2001 From: Luis Martinez de Bartolome Date: Mon, 18 Jul 2022 12:20:35 +0200 Subject: [PATCH 8/8] Tested win --- .../test/functional/toolchains/cmake/test_cmake_toolchain.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conans/test/functional/toolchains/cmake/test_cmake_toolchain.py b/conans/test/functional/toolchains/cmake/test_cmake_toolchain.py index cd878eb0398..c4b25b27266 100644 --- a/conans/test/functional/toolchains/cmake/test_cmake_toolchain.py +++ b/conans/test/functional/toolchains/cmake/test_cmake_toolchain.py @@ -827,7 +827,7 @@ def test_user_presets_version2(): if platform.system() == "Windows": client.run_command("cmake . --preset 14") client.run_command("cmake --build --preset 14-release") - client.run_command("build/14/Release/hello.exe") + client.run_command(r"build\14\Release\hello.exe") else: client.run_command("cmake . --preset 14-release") client.run_command("cmake --build --preset 14-release") @@ -843,7 +843,7 @@ def test_user_presets_version2(): if platform.system() == "Windows": client.run_command("cmake . --preset 17") client.run_command("cmake --build --preset 17-release") - client.run_command("build/17/Release/hello.exe") + client.run_command(r"build\17\Release\hello.exe") else: client.run_command("cmake . --preset 17-release") client.run_command("cmake --build --preset 17-release")