RunCMakeTest.cmake 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. include(RunCMake)
  2. function(run_build name)
  3. set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${name}-build)
  4. run_cmake(${name})
  5. set(RunCMake_TEST_NO_CLEAN 1)
  6. run_cmake_command(${name}-build ${CMAKE_COMMAND} --build . --config Debug)
  7. endfunction()
  8. run_cmake(unitybuild_c)
  9. run_cmake(unitybuild_c_absolute_path)
  10. run_cmake(unitybuild_c_relocatable_path)
  11. run_cmake(unitybuild_c_batch)
  12. run_cmake(unitybuild_c_group)
  13. run_cmake(unitybuild_cxx)
  14. run_cmake(unitybuild_cxx_absolute_path)
  15. run_cmake(unitybuild_cxx_relocatable_path)
  16. run_cmake(unitybuild_cxx_group)
  17. run_cmake(unitybuild_c_and_cxx_absolute_path)
  18. run_cmake(unitybuild_c_and_cxx_relocatable_path)
  19. run_cmake(unitybuild_c_and_cxx)
  20. run_cmake(unitybuild_c_and_cxx_filename_prefix)
  21. run_cmake(unitybuild_c_and_cxx_group)
  22. if(CMake_TEST_OBJC)
  23. run_cmake(unitybuild_objc)
  24. run_cmake(unitybuild_objc_group)
  25. run_cmake(unitybuild_objcxx)
  26. run_cmake(unitybuild_objcxx_group)
  27. run_cmake(unitybuild_c_and_cxx_and_objc_and_objcxx)
  28. endif()
  29. if(CMake_TEST_CUDA)
  30. run_cmake(unitybuild_cuda)
  31. run_cmake(unitybuild_cuda_group)
  32. run_cmake(unitybuild_cxx_and_cuda)
  33. endif()
  34. run_cmake(unitybuild_batchsize)
  35. run_cmake(unitybuild_default_batchsize)
  36. run_cmake(unitybuild_skip)
  37. run_cmake(unitybuild_code_before_and_after_include)
  38. run_cmake(unitybuild_c_no_unity_build)
  39. run_cmake(unitybuild_c_no_unity_build_group)
  40. run_cmake(unitybuild_order)
  41. run_cmake(unitybuild_invalid_mode)
  42. run_build(unitybuild_anon_ns)
  43. run_build(unitybuild_anon_ns_no_unity_build)
  44. run_build(unitybuild_anon_ns_group_mode)
  45. run_cmake(unitybuild_relocatable_locations)
  46. function(run_per_config name)
  47. set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${name}-build)
  48. run_cmake(${name})
  49. set(RunCMake_TEST_NO_CLEAN 1)
  50. if(RunCMake_GENERATOR_IS_MULTI_CONFIG)
  51. run_cmake_command(${name}-build-debug ${CMAKE_COMMAND} --build . --config Debug)
  52. run_cmake_command(${name}-build-release ${CMAKE_COMMAND} --build . --config Release)
  53. else()
  54. run_cmake_command(${name}-build ${CMAKE_COMMAND} --build .)
  55. endif()
  56. endfunction()
  57. if(NOT RunCMake_GENERATOR STREQUAL "Xcode")
  58. run_per_config(per_config_c)
  59. endif()
  60. function(run_test name)
  61. set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${name}-build)
  62. run_cmake(${name})
  63. set(RunCMake_TEST_NO_CLEAN 1)
  64. run_cmake_command(${name}-build ${CMAKE_COMMAND} --build . --config Debug)
  65. run_cmake_command(${name}-test ${CMAKE_CTEST_COMMAND} -C Debug)
  66. endfunction()
  67. run_test(unitybuild_runtest)
  68. run_test(unitybuild_object_library)
  69. if (CMAKE_GENERATOR MATCHES "(Ninja|Makefiles|Visual Studio)")
  70. run_build(unitybuild_cxx_short)
  71. endif ()