From d3c4c6d630f25d988b1f4876d55e7e35b9bfb6da Mon Sep 17 00:00:00 2001 From: Matthew Voss Date: Wed, 1 Mar 2023 09:49:03 -0800 Subject: VS: Import default C++ props file before toolset-specific props file This avoids overwriting toolset-specific settings like `VCRedistDir` with default settings. Fixes: #22420 --- Modules/CMakeDetermineCompilerId.cmake | 3 +++ Source/cmVisualStudio10TargetGenerator.cxx | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake index 1f89c74..0878dff 100644 --- a/Modules/CMakeDetermineCompilerId.cmake +++ b/Modules/CMakeDetermineCompilerId.cmake @@ -401,6 +401,9 @@ Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS} endif() endif() set(id_toolset_version_props "") + if(lang STREQUAL CXX OR lang STREQUAL C) + set(id_toolset_version_props "${id_toolset_version_props}") + endif() unset(id_sep) endif() endif() diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index d984c86..2a18176 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -693,12 +693,12 @@ void cmVisualStudio10TargetGenerator::WriteClassicMsBuildProjectFile( switch (this->ProjectType) { case VsProjectType::vcxproj: { + Elem(e0, "Import").Attribute("Project", VS10_CXX_DEFAULT_PROPS); std::string const& props = this->GlobalGenerator->GetPlatformToolsetVersionProps(); if (!props.empty()) { Elem(e0, "Import").Attribute("Project", props); } - Elem(e0, "Import").Attribute("Project", VS10_CXX_DEFAULT_PROPS); } break; case VsProjectType::csproj: Elem(e0, "Import") -- cgit v0.12