RunCMakeTest.cmake 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. include(RunCMake)
  2. if("${RunCMake_GENERATOR}" MATCHES "Visual Studio 1[012456]")
  3. run_cmake(VsNormal)
  4. include("${RunCMake_BINARY_DIR}/VsNormal-build/defaults.cmake" OPTIONAL)
  5. message(STATUS "VsNormal: platform='${VsNormal_Platform}' toolset='${VsNormal_Toolset}'")
  6. endif()
  7. set(RunCMake_GENERATOR_TOOLSET "")
  8. run_cmake(NoToolset)
  9. if("${RunCMake_GENERATOR}" MATCHES "Visual Studio 1[012456]")
  10. set(RunCMake_GENERATOR_TOOLSET "Test Toolset")
  11. run_cmake(TestToolset)
  12. set(RunCMake_GENERATOR_TOOLSET "Test Toolset,cuda=0.0")
  13. run_cmake(TestToolsetCudaBoth)
  14. set(RunCMake_GENERATOR_TOOLSET ",cuda=0.0")
  15. run_cmake(TestToolsetCudaVersionOnly)
  16. set(RunCMake_GENERATOR_TOOLSET "cuda=0.0")
  17. run_cmake(TestToolsetCudaVersionOnly)
  18. set(RunCMake_GENERATOR_TOOLSET "cuda=${CMAKE_CURRENT_BINARY_DIR}/CudaStandaloneToolset")
  19. run_cmake(TestToolsetCudaPathOnly)
  20. set(RunCMake_GENERATOR_TOOLSET "cuda=${CMAKE_CURRENT_BINARY_DIR}/CudaStandaloneToolset")
  21. file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/CudaStandaloneToolset/CUDAVisualStudioIntegration")
  22. run_cmake(TestToolsetCudaPathOnlyOldLayout)
  23. file(REMOVE_RECURSE "${CMAKE_CURRENT_BINARY_DIR}/CudaStandaloneToolset")
  24. if (VsNormal_Platform MATCHES "^(x64|Win32)$" AND
  25. EXISTS "${CMAKE_ROOT}/Templates/MSBuild/FlagTables/${VsNormal_Toolset}_CL.json")
  26. set(flagTableDir "${RunCMake_BINARY_DIR}/FlagTables")
  27. file(READ "${CMAKE_ROOT}/Templates/MSBuild/FlagTables/${VsNormal_Toolset}_CL.json" flagTableContent)
  28. string(REPLACE [["WX-"]] [["TESTWX-"]] flagTableContent "${flagTableContent}")
  29. file(REMOVE_RECURSE "${flagTableDir}")
  30. file(WRITE "${flagTableDir}/${VsNormal_Platform}_${VsNormal_Toolset}_CL.json" "${flagTableContent}")
  31. set(RunCMake_GENERATOR_TOOLSET "${VsNormal_Toolset},customFlagTableDir=${flagTableDir}")
  32. set(RunCMake_TEST_VARIANT_DESCRIPTION ":${VsNormal_Platform}_${VsNormal_Toolset}_CL.json")
  33. run_cmake(TestToolsetCustomFlagTableDir)
  34. file(REMOVE_RECURSE "${flagTableDir}")
  35. file(WRITE "${flagTableDir}/${VsNormal_Platform}_CL.json" "${flagTableContent}")
  36. set(RunCMake_GENERATOR_TOOLSET "${VsNormal_Toolset},customFlagTableDir=${flagTableDir}")
  37. set(RunCMake_TEST_VARIANT_DESCRIPTION ":${VsNormal_Platform}_CL.json")
  38. run_cmake(TestToolsetCustomFlagTableDir)
  39. unset(RunCMake_TEST_VARIANT_DESCRIPTION)
  40. set(RunCMake_GENERATOR_TOOLSET "${VsNormal_Toolset},customFlagTableDir=does_not_exist")
  41. run_cmake(BadToolsetCustomFlagTableDir)
  42. endif()
  43. if("${RunCMake_GENERATOR}" MATCHES "Visual Studio 1[2456]")
  44. set(RunCMake_GENERATOR_TOOLSET "Test Toolset,host=x64")
  45. run_cmake(TestToolsetHostArchBoth)
  46. set(RunCMake_GENERATOR_TOOLSET ",host=x64")
  47. run_cmake(TestToolsetHostArchOnly_x64)
  48. set(RunCMake_GENERATOR_TOOLSET "host=x64")
  49. run_cmake(TestToolsetHostArchOnly_x64)
  50. set(RunCMake_GENERATOR_TOOLSET "host=x86")
  51. run_cmake(TestToolsetHostArchOnly_x86)
  52. set(RunCMake_GENERATOR_TOOLSET "Test Toolset")
  53. run_cmake(TestToolsetHostArchNone)
  54. set(RunCMake_GENERATOR_TOOLSET "Test Toolset,host=x65")
  55. run_cmake(BadToolsetHostArch)
  56. set(RunCMake_GENERATOR_TOOLSET "Test Toolset,host=x64,host=x86")
  57. run_cmake(BadToolsetHostArchTwice)
  58. if("${RunCMake_GENERATOR}" MATCHES "Visual Studio 1[56]")
  59. set(RunCMake_GENERATOR_TOOLSET "VCTargetsPath=Test Path")
  60. run_cmake(TestToolsetVCTargetsPathOnly)
  61. set(RunCMake_GENERATOR_TOOLSET "Test Toolset,version=Test Toolset Version")
  62. run_cmake(TestToolsetVersionBoth)
  63. set(RunCMake_GENERATOR_TOOLSET ",version=Test Toolset Version")
  64. run_cmake(TestToolsetVersionOnly)
  65. set(RunCMake_GENERATOR_TOOLSET "version=Test Toolset Version")
  66. run_cmake(TestToolsetVersionOnly)
  67. set(RunCMake_GENERATOR_TOOLSET "Test Toolset,version=Bad Toolset Version")
  68. run_cmake(BadToolsetVersion)
  69. set(RunCMake_GENERATOR_TOOLSET "Test Toolset,version=Test Toolset Version,version=Test Toolset Version")
  70. run_cmake(BadToolsetVersionTwice)
  71. endif()
  72. else()
  73. set(RunCMake_GENERATOR_TOOLSET "Test Toolset,host=x64")
  74. run_cmake(BadToolsetHostArch)
  75. endif()
  76. set(RunCMake_GENERATOR_TOOLSET "Test Toolset,not_a_key")
  77. run_cmake(BadToolsetFormat)
  78. elseif("${RunCMake_GENERATOR}" STREQUAL "Xcode")
  79. set(RunCMake_GENERATOR_TOOLSET "Test Toolset")
  80. run_cmake(TestToolset)
  81. set(RunCMake_GENERATOR_TOOLSET "Test Toolset,host=x64")
  82. run_cmake(BadToolsetHostArchXcode)
  83. set(RunCMake_GENERATOR_TOOLSET "buildsystem=bad")
  84. run_cmake(BadToolsetXcodeBuildSystem)
  85. if(XCODE_VERSION VERSION_GREATER_EQUAL 12)
  86. set(RunCMake_GENERATOR_TOOLSET "Test Toolset")
  87. run_cmake(TestToolsetXcodeBuildSystemDefault12)
  88. set(RunCMake_GENERATOR_TOOLSET "Test Toolset,buildsystem=1")
  89. run_cmake(TestToolsetXcodeBuildSystem1)
  90. set(RunCMake_GENERATOR_TOOLSET "Test Toolset,buildsystem=12")
  91. run_cmake(TestToolsetXcodeBuildSystem12)
  92. else()
  93. set(RunCMake_GENERATOR_TOOLSET "Test Toolset")
  94. run_cmake(TestToolsetXcodeBuildSystemDefault1)
  95. set(RunCMake_GENERATOR_TOOLSET "buildsystem=12")
  96. run_cmake(BadToolsetXcodeBuildSystem12)
  97. endif()
  98. else()
  99. set(RunCMake_GENERATOR_TOOLSET "Bad Toolset")
  100. run_cmake(BadToolset)
  101. endif()
  102. set(RunCMake_GENERATOR_TOOLSET "")
  103. set(RunCMake_TEST_OPTIONS -T "Test Toolset" -T "Extra Toolset")
  104. run_cmake(TwoToolsets)
  105. unset(RunCMake_TEST_OPTIONS)
  106. if("${RunCMake_GENERATOR}" MATCHES "Visual Studio 1[012456]|Xcode")
  107. set(RunCMake_TEST_OPTIONS -DCMAKE_TOOLCHAIN_FILE=${RunCMake_SOURCE_DIR}/TestToolset-toolchain.cmake)
  108. run_cmake(TestToolsetToolchain)
  109. unset(RunCMake_TEST_OPTIONS)
  110. else()
  111. set(RunCMake_TEST_OPTIONS -DCMAKE_TOOLCHAIN_FILE=${RunCMake_SOURCE_DIR}/BadToolset-toolchain.cmake)
  112. run_cmake(BadToolsetToolchain)
  113. unset(RunCMake_TEST_OPTIONS)
  114. endif()