1 cmake_policy(SET CMP0057 NEW)
4 cmake_policy(SET CMP0054 NEW)
6 if(CMAKE_C_COMPILER_ID STREQUAL "MSVC" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 19.27)
7 run_cmake(LanguageStandard)
10 run_cmake(CustomCommandGenex)
11 run_cmake(VsCsharpSourceGroup)
12 run_cmake(VsCSharpCompilerOpts)
13 run_cmake(ExplicitCMakeLists)
14 run_cmake(InterfaceLibSources)
16 run_cmake(RuntimeLibrary)
17 run_cmake(SourceGroupCMakeLists)
18 run_cmake(SourceGroupTreeCMakeLists)
19 run_cmake(SourceGroupFileSet)
20 run_cmake(VsConfigurationType)
21 run_cmake(VsTargetsFileReferences)
22 run_cmake(VsCustomProps)
23 run_cmake(VsDebuggerWorkingDir)
24 run_cmake(VsDebuggerCommand)
25 run_cmake(VsDebuggerCommandArguments)
26 run_cmake(VsDebuggerEnvironment)
27 run_cmake(VsCSharpCustomTags)
28 run_cmake(VsCSharpDocumentationFile)
29 run_cmake(VsCSharpReferenceProps)
30 run_cmake(VsCSharpWithoutSources)
31 run_cmake(VsCSharpDeployFiles)
32 run_cmake(VSCSharpDefines)
33 run_cmake(VsSdkDirectories)
35 run_cmake(VsProjectImport)
36 run_cmake(VsPackageReferences)
38 run_cmake(VsDpiAwareBadParam)
39 run_cmake(VsForceInclude)
40 run_cmake(VsPrecompileHeaders)
41 run_cmake(VsPrecompileHeadersReuseFromCompilePDBName)
42 run_cmake(VsDeployEnabled)
44 run_cmake(VsSourceSettingsTool)
45 run_cmake(VsPlatformToolset)
46 run_cmake(VsControlFlowGuardLinkSetting)
48 run_cmake(VsWinRTByDefault)
50 set(RunCMake_GENERATOR_TOOLSET "VCTargetsPath=$(VCTargetsPath)")
51 run_cmake(VsVCTargetsPath)
52 unset(RunCMake_GENERATOR_TOOLSET)
54 if(CMAKE_C_COMPILER_ID STREQUAL "MSVC" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 19.05)
55 run_cmake(VsJustMyCode)
58 if(CMAKE_C_COMPILER_ID STREQUAL "MSVC" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 19.20)
59 run_cmake(VsSpectreMitigation)
62 # Visual Studio 2017 has toolset version 141
63 string(REPLACE "v" "" generator_toolset "${RunCMake_GENERATOR_TOOLSET}")
64 if (RunCMake_GENERATOR MATCHES "Visual Studio 1[0-4] 201[0-5]" OR
65 (RunCMake_GENERATOR_TOOLSET AND generator_toolset VERSION_LESS "141"))
66 run_cmake(UnityBuildPre2017)
68 run_cmake(UnityBuildNative)
69 run_cmake(UnityBuildNativeGrouped)
71 function(run_UnityBuildPCH)
72 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/UnityBuildPCH-build)
73 run_cmake(UnityBuildPCH)
74 set(RunCMake_TEST_NO_CLEAN 1)
75 set(vcxproj "${RunCMake_TEST_BINARY_DIR}/UnityBuildPCH.vcxproj")
76 if(EXISTS "${vcxproj}")
77 file(STRINGS ${vcxproj} vcxproj_strings REGEX "ClCompile[^\n]*UnityBuildPCH\\.c")
79 if(vcxproj_strings MATCHES "Include=\"([^\"]+)\"")
80 set(src "${CMAKE_MATCH_1}")
81 run_cmake_command(UnityBuildPCH-build ${CMAKE_COMMAND} --build . --config Debug --target UnityBuildPCH -- -t:ClCompile -p:SelectedFiles=${src})
87 run_cmake(VsDotnetStartupObject)
88 run_cmake(VsDotnetTargetFramework)
89 run_cmake(VsDotnetTargetFrameworkVersion)
90 run_cmake(VsNoCompileBatching)
91 run_cmake(DebugInformationFormat)