ソースを参照

Merge topic 'net-sdk-configurations'

55a5094f0e VS: Fix missing <Configurations> property for DOTNET_SDK

Acked-by: Kitware Robot <[email protected]>
Merge-request: !9849
Brad King 1 年間 前
コミット
8d69aa79b0

+ 2 - 0
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

+ 1 - 0
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)

+ 20 - 0
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()

+ 11 - 0
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)