Imported Upstream version 3.25.0
[platform/upstream/cmake.git] / Tests / RunCMake / VS10Project / RunCMakeTest.cmake
1 cmake_policy(SET CMP0057 NEW)
2
3 include(RunCMake)
4 cmake_policy(SET CMP0054 NEW)
5
6 if(CMAKE_C_COMPILER_ID STREQUAL "MSVC" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 19.27)
7   run_cmake(LanguageStandard)
8 endif()
9
10 run_cmake(CustomCommandGenex)
11 run_cmake(VsCsharpSourceGroup)
12 run_cmake(VsCSharpCompilerOpts)
13 run_cmake(ExplicitCMakeLists)
14 run_cmake(InterfaceLibSources)
15 run_cmake(NoImpLib)
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)
34 run_cmake(VsGlobals)
35 run_cmake(VsProjectImport)
36 run_cmake(VsPackageReferences)
37 run_cmake(VsDpiAware)
38 run_cmake(VsDpiAwareBadParam)
39 run_cmake(VsForceInclude)
40 run_cmake(VsPrecompileHeaders)
41 run_cmake(VsPrecompileHeadersReuseFromCompilePDBName)
42 run_cmake(VsDeployEnabled)
43 run_cmake(VsSettings)
44 run_cmake(VsSourceSettingsTool)
45 run_cmake(VsPlatformToolset)
46 run_cmake(VsControlFlowGuardLinkSetting)
47
48 run_cmake(VsWinRTByDefault)
49
50 set(RunCMake_GENERATOR_TOOLSET "VCTargetsPath=$(VCTargetsPath)")
51 run_cmake(VsVCTargetsPath)
52 unset(RunCMake_GENERATOR_TOOLSET)
53
54 if(CMAKE_C_COMPILER_ID STREQUAL "MSVC" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 19.05)
55   run_cmake(VsJustMyCode)
56 endif()
57
58 if(CMAKE_C_COMPILER_ID STREQUAL "MSVC" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 19.20)
59   run_cmake(VsSpectreMitigation)
60 endif()
61
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)
67 else()
68   run_cmake(UnityBuildNative)
69   run_cmake(UnityBuildNativeGrouped)
70
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")
78     endif()
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})
82     endif()
83   endfunction()
84   run_UnityBuildPCH()
85 endif()
86
87 run_cmake(VsDotnetStartupObject)
88 run_cmake(VsDotnetTargetFramework)
89 run_cmake(VsDotnetTargetFrameworkVersion)
90 run_cmake(VsNoCompileBatching)
91 run_cmake(DebugInformationFormat)