summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Voss <matthew.voss@sony.com>2023-03-01 17:49:03 (GMT)
committerBrad King <brad.king@kitware.com>2023-03-07 19:41:32 (GMT)
commitd3c4c6d630f25d988b1f4876d55e7e35b9bfb6da (patch)
tree8dfe8268323a9054ee56469dcc633ac7037b1228
parent3d6075da4df6a4f93a835e446c2bbf29488f50bd (diff)
downloadCMake-d3c4c6d630f25d988b1f4876d55e7e35b9bfb6da.zip
CMake-d3c4c6d630f25d988b1f4876d55e7e35b9bfb6da.tar.gz
CMake-d3c4c6d630f25d988b1f4876d55e7e35b9bfb6da.tar.bz2
VS: Import default C++ props file before toolset-specific props file
This avoids overwriting toolset-specific settings like `VCRedistDir` with default settings. Fixes: #22420
-rw-r--r--Modules/CMakeDetermineCompilerId.cmake3
-rw-r--r--Source/cmVisualStudio10TargetGenerator.cxx2
2 files changed, 4 insertions, 1 deletions
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 "<Import Project=\"${CMAKE_GENERATOR_INSTANCE}\\VC\\Auxiliary\\Build${id_sep}${CMAKE_VS_PLATFORM_TOOLSET_VERSION}\\Microsoft.VCToolsVersion.${CMAKE_VS_PLATFORM_TOOLSET_VERSION}.props\" />")
+ if(lang STREQUAL CXX OR lang STREQUAL C)
+ set(id_toolset_version_props "<Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.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")