diff options
author | Calum Robinson <calum.robinson@sias.com> | 2024-09-25 15:20:12 (GMT) |
---|---|---|
committer | Calum Robinson <calum.robinson@sias.com> | 2024-09-25 15:20:12 (GMT) |
commit | 55a5094f0e7313b4fb5244091a4d1b7faa48bbf9 (patch) | |
tree | 27bd650307a8595b6d081084e5c5a4387d02a5d2 | |
parent | b1aba2fb4e15d963e857d1c162569b132eb1a220 (diff) | |
download | CMake-55a5094f0e7313b4fb5244091a4d1b7faa48bbf9.zip CMake-55a5094f0e7313b4fb5244091a4d1b7faa48bbf9.tar.gz CMake-55a5094f0e7313b4fb5244091a4d1b7faa48bbf9.tar.bz2 |
VS: Fix missing <Configurations> property for DOTNET_SDK
Fixes #26325
4 files changed, 34 insertions, 0 deletions
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 71a140b..1e338b2 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -914,6 +914,8 @@ void cmVisualStudio10TargetGenerator::WriteSdkStyleProjectFile( Elem e1(e0, "PropertyGroup"); this->WriteCommonPropertyGroupGlobals(e1); + e1.Element("Configurations", cmJoinStrings(this->Configurations, ";", "")); + e1.Element("EnableDefaultItems", "false"); // Disable the project upgrade prompt that is displayed the first time a // project using an older toolset version is opened in a newer version diff --git a/Tests/RunCMake/VsDotnetSdk/RunCMakeTest.cmake b/Tests/RunCMake/VsDotnetSdk/RunCMakeTest.cmake index 276451d..151b907 100644 --- a/Tests/RunCMake/VsDotnetSdk/RunCMakeTest.cmake +++ b/Tests/RunCMake/VsDotnetSdk/RunCMakeTest.cmake @@ -6,6 +6,7 @@ run_cmake(VsDotnetSdkDefines) run_cmake(DotnetSdkVariables) run_cmake(VsDotnetSdkXamlFiles) run_cmake(VsDotnetSdkAssemblyName) +run_cmake(VsDotnetSdkConfigurations) function(run_VsDotnetSdk) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/VsDotnetSdk-build) diff --git a/Tests/RunCMake/VsDotnetSdk/VsDotnetSdkConfigurations-check.cmake b/Tests/RunCMake/VsDotnetSdk/VsDotnetSdkConfigurations-check.cmake new file mode 100644 index 0000000..f7fc6de --- /dev/null +++ b/Tests/RunCMake/VsDotnetSdk/VsDotnetSdkConfigurations-check.cmake @@ -0,0 +1,20 @@ +set(csProjectFile ${RunCMake_TEST_BINARY_DIR}/foo.csproj) + +if(NOT EXISTS "${csProjectFile}") + set(RunCMake_TEST_FAILED "Project file ${csProjectFile} does not exist.") + return() +endif() + +set(hasConfigurations FALSE) + +file(STRINGS "${csProjectFile}" lines) + +foreach(line IN LISTS lines) + if(line MATCHES "<Configurations>Debug;Release;MinSizeRel;RelWithDebInfo;ExtraTestConfig</Configurations>") + set(hasConfigurations TRUE) + endif() +endforeach() + +if(NOT hasConfigurations) + set(RunCMake_TEST_FAILED "<Configurations> not found in ${csProjectFile}.") +endif() diff --git a/Tests/RunCMake/VsDotnetSdk/VsDotnetSdkConfigurations.cmake b/Tests/RunCMake/VsDotnetSdk/VsDotnetSdkConfigurations.cmake new file mode 100644 index 0000000..178cd00 --- /dev/null +++ b/Tests/RunCMake/VsDotnetSdk/VsDotnetSdkConfigurations.cmake @@ -0,0 +1,11 @@ +enable_language(CSharp) + +if(NOT CMAKE_CSharp_COMPILER) + return() +endif() + +set(CMAKE_SHARED_LINKER_FLAGS_EXTRATESTCONFIG "${CMAKE_SHARED_LINKER_FLAGS_Debug}") +list(APPEND CMAKE_CONFIGURATION_TYPES ExtraTestConfig) + +set(CMAKE_DOTNET_SDK "Microsoft.NET.Sdk") +add_library(foo SHARED lib1.cs) |