RunCMakeTest.cmake 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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_group)
  21. if(CMake_TEST_OBJC)
  22. run_cmake(unitybuild_objc)
  23. run_cmake(unitybuild_objc_group)
  24. run_cmake(unitybuild_objcxx)
  25. run_cmake(unitybuild_objcxx_group)
  26. run_cmake(unitybuild_c_and_cxx_and_objc_and_objcxx)
  27. endif()
  28. if(CMake_TEST_CUDA)
  29. run_cmake(unitybuild_cuda)
  30. run_cmake(unitybuild_cuda_group)
  31. run_cmake(unitybuild_cxx_and_cuda)
  32. endif()
  33. run_cmake(unitybuild_batchsize)
  34. run_cmake(unitybuild_default_batchsize)
  35. run_cmake(unitybuild_skip)
  36. run_cmake(unitybuild_code_before_and_after_include)
  37. run_cmake(unitybuild_c_no_unity_build)
  38. run_cmake(unitybuild_c_no_unity_build_group)
  39. run_cmake(unitybuild_order)
  40. run_cmake(unitybuild_invalid_mode)
  41. run_build(unitybuild_anon_ns)
  42. run_build(unitybuild_anon_ns_no_unity_build)
  43. run_build(unitybuild_anon_ns_group_mode)
  44. run_cmake(unitybuild_relocatable_locations)
  45. function(run_per_config name)
  46. set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${name}-build)
  47. run_cmake(${name})
  48. set(RunCMake_TEST_NO_CLEAN 1)
  49. if(RunCMake_GENERATOR_IS_MULTI_CONFIG)
  50. run_cmake_command(${name}-build-debug ${CMAKE_COMMAND} --build . --config Debug)
  51. run_cmake_command(${name}-build-release ${CMAKE_COMMAND} --build . --config Release)
  52. else()
  53. run_cmake_command(${name}-build ${CMAKE_COMMAND} --build .)
  54. endif()
  55. endfunction()
  56. if(NOT RunCMake_GENERATOR STREQUAL "Xcode")
  57. run_per_config(per_config_c)
  58. endif()
  59. function(run_test name)
  60. set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${name}-build)
  61. run_cmake(${name})
  62. set(RunCMake_TEST_NO_CLEAN 1)
  63. run_cmake_command(${name}-build ${CMAKE_COMMAND} --build . --config Debug)
  64. run_cmake_command(${name}-test ${CMAKE_CTEST_COMMAND} -C Debug)
  65. endfunction()
  66. run_test(unitybuild_runtest)
  67. run_test(unitybuild_object_library)
  68. if (CMAKE_GENERATOR MATCHES "Ninja")
  69. run_build(unitybuild_cxx_short)
  70. endif ()