CMakeLists.txt 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #
  2. # Testing
  3. #
  4. cmake_minimum_required (VERSION 2.7)
  5. PROJECT (Testing)
  6. #
  7. # Lib and exe path
  8. #
  9. SET (LIBRARY_OUTPUT_PATH
  10. ${Testing_BINARY_DIR}/bin/ CACHE PATH
  11. "Single output directory for building all libraries.")
  12. SET (EXECUTABLE_OUTPUT_PATH
  13. ${Testing_BINARY_DIR}/bin/ CACHE PATH
  14. "Single output directory for building all executables.")
  15. #
  16. # Where will executable tests be written ?
  17. #
  18. IF (EXECUTABLE_OUTPUT_PATH)
  19. SET (CXX_TEST_PATH ${EXECUTABLE_OUTPUT_PATH})
  20. ELSE (EXECUTABLE_OUTPUT_PATH)
  21. SET (CXX_TEST_PATH .)
  22. ENDIF (EXECUTABLE_OUTPUT_PATH)
  23. #
  24. # Include Dart
  25. # (will also set NSLOOKUP, HOSTNAME, etc.)
  26. #
  27. INCLUDE (${CMAKE_ROOT}/Modules/Dart.cmake)
  28. #
  29. # Extra coverage
  30. #
  31. BUILD_COMMAND(BUILD_COMMAND_VAR ${CMAKE_MAKE_PROGRAM})
  32. BUILD_NAME(BUILD_NAME_VAR)
  33. SITE_NAME(SITE_NAME_VAR)
  34. #
  35. # Enable testing
  36. #
  37. ENABLE_TESTING()
  38. #
  39. # Add test
  40. #
  41. ADD_EXECUTABLE(testing testing.cxx)
  42. ADD_TEST(testing.1 ${Testing_BINARY_DIR}/bin/testing)
  43. #
  44. # skip level test
  45. #
  46. ADD_SUBDIRECTORY(Sub/Sub2)
  47. # Per-config target name test.
  48. ADD_LIBRARY(pcStatic STATIC pcStatic.c)
  49. SET_PROPERTY(TARGET pcStatic PROPERTY RELEASE_POSTFIX -opt)
  50. SET_PROPERTY(TARGET pcStatic PROPERTY DEBUG_POSTFIX -dbg)
  51. ADD_LIBRARY(pcShared SHARED pcShared.c)
  52. SET_PROPERTY(TARGET pcShared PROPERTY RELEASE_POSTFIX -opt)
  53. SET_PROPERTY(TARGET pcShared PROPERTY DEBUG_POSTFIX -dbg)
  54. SET_PROPERTY(TARGET pcShared PROPERTY VERSION 1.2)
  55. SET_PROPERTY(TARGET pcShared PROPERTY SOVERSION 3)
  56. IF(UNIX AND NOT CYGWIN)
  57. SET(soname_file -DpcShared_soname_file=$<TARGET_SONAME_FILE:pcShared>)
  58. ENDIF()
  59. ADD_EXECUTABLE(perconfig perconfig.c)
  60. TARGET_LINK_LIBRARIES(perconfig pcStatic pcShared)
  61. SET_PROPERTY(TARGET perconfig PROPERTY RELEASE_POSTFIX -opt)
  62. SET_PROPERTY(TARGET perconfig PROPERTY DEBUG_POSTFIX -dbg)
  63. ADD_TEST(NAME testing.perconfig COMMAND perconfig)
  64. # Test using a driver script with generator expressions.
  65. ADD_TEST(NAME testing.driver
  66. COMMAND ${CMAKE_COMMAND}
  67. -Dconfiguration=$<CONFIGURATION>
  68. -Dperconfig_file_dir=$<TARGET_FILE_DIR:perconfig>
  69. -Dperconfig_file_name=$<TARGET_FILE_NAME:perconfig>
  70. -Dperconfig_file=$<TARGET_FILE:perconfig>
  71. -DpcStatic_file=$<TARGET_FILE:pcStatic>
  72. -DpcStatic_linker_file=$<TARGET_LINKER_FILE:pcStatic>
  73. -DpcShared_file=$<TARGET_FILE:pcShared>
  74. -DpcShared_linker_file=$<TARGET_LINKER_FILE:pcShared>
  75. ${soname_file}
  76. -P ${Testing_SOURCE_DIR}/driver.cmake
  77. )