diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 71a140b7db..1e338b2bf2 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 276451d6c7..151b907aaf 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 0000000000..f7fc6de779 --- /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 "Debug;Release;MinSizeRel;RelWithDebInfo;ExtraTestConfig") + set(hasConfigurations TRUE) + endif() +endforeach() + +if(NOT hasConfigurations) + set(RunCMake_TEST_FAILED " not found in ${csProjectFile}.") +endif() diff --git a/Tests/RunCMake/VsDotnetSdk/VsDotnetSdkConfigurations.cmake b/Tests/RunCMake/VsDotnetSdk/VsDotnetSdkConfigurations.cmake new file mode 100644 index 0000000000..178cd00f1a --- /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)