Dart.cmake 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. # Dart.cmake
  2. #
  3. # This file configures a project to use the Dart testing/dashboard process.
  4. # It is broken into 3 sections.
  5. #
  6. # Section #1: Locate programs on the client and determine site and build name
  7. # Section #2: Configure or copy Tcl scripts from the source tree to build tree
  8. # Section #3: Custom targets for performing dashboard builds.
  9. #
  10. #
  11. OPTION(BUILD_TESTING "Build the testing tree." ON)
  12. IF(BUILD_TESTING)
  13. FIND_PACKAGE(Dart)
  14. #
  15. # Section #1:
  16. #
  17. # CMake commands that will not vary from project to project. Locates programs
  18. # on the client and configure site name and build name.
  19. #
  20. SET(RUN_FROM_DART 1)
  21. INCLUDE(CTest)
  22. SET(RUN_FROM_DART)
  23. # Project Home Page
  24. SET (PROJECT_URL "http://www.kitware.com")
  25. FIND_PROGRAM(COMPRESSIONCOMMAND NAMES gzip compress zip
  26. DOC "Path to program used to compress files for transfer to the dart server")
  27. FIND_PROGRAM(GUNZIPCOMMAND gunzip DOC "Path to gunzip executable")
  28. FIND_PROGRAM(JAVACOMMAND java DOC "Path to java command, used by the Dart server to create html.")
  29. OPTION(DART_VERBOSE_BUILD "Show the actual output of the build, or if off show a . for each 1024 bytes."
  30. OFF)
  31. OPTION(DART_BUILD_ERROR_REPORT_LIMIT "Limit of reported errors, -1 reports all." -1 )
  32. OPTION(DART_BUILD_WARNING_REPORT_LIMIT "Limit of reported warnings, -1 reports all." -1 )
  33. SET(VERBOSE_BUILD ${DART_VERBOSE_BUILD})
  34. SET(BUILD_ERROR_REPORT_LIMIT ${DART_BUILD_ERROR_REPORT_LIMIT})
  35. SET(BUILD_WARNING_REPORT_LIMIT ${DART_BUILD_WARNING_REPORT_LIMIT})
  36. SET (DELIVER_CONTINUOUS_EMAIL "Off" CACHE BOOL "Should Dart server send email when build errors are found in Continuous builds?")
  37. MARK_AS_ADVANCED(
  38. COMPRESSIONCOMMAND
  39. DART_BUILD_ERROR_REPORT_LIMIT
  40. DART_BUILD_WARNING_REPORT_LIMIT
  41. DART_TESTING_TIMEOUT
  42. DART_VERBOSE_BUILD
  43. DELIVER_CONTINUOUS_EMAIL
  44. GUNZIPCOMMAND
  45. JAVACOMMAND
  46. )
  47. SET(HAVE_DART)
  48. IF(EXISTS "${DART_ROOT}/Source/Client/Dart.conf.in")
  49. SET(HAVE_DART 1)
  50. ENDIF(EXISTS "${DART_ROOT}/Source/Client/Dart.conf.in")
  51. #
  52. # Section #2:
  53. #
  54. # Make necessary directories and configure testing scripts
  55. #
  56. # find a tcl shell command
  57. IF(HAVE_DART)
  58. FIND_PACKAGE(Tclsh)
  59. ENDIF(HAVE_DART)
  60. IF (HAVE_DART AND TCL_TCLSH)
  61. # make directories in the binary tree
  62. FILE(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/Testing/HTML/TestingResults/Dashboard"
  63. "${PROJECT_BINARY_DIR}/Testing/HTML/TestingResults/Sites/${SITE}/${BUILDNAME}")
  64. # configure files
  65. CONFIGURE_FILE(
  66. "${DART_ROOT}/Source/Client/Dart.conf.in"
  67. "${PROJECT_BINARY_DIR}/DartConfiguration.tcl" )
  68. #
  69. # Section 3:
  70. #
  71. # Custom targets to perform dashboard builds and submissions.
  72. # These should NOT need to be modified from project to project.
  73. #
  74. # add testing targets
  75. SET(DART_EXPERIMENTAL_NAME Experimental)
  76. IF(DART_EXPERIMENTAL_USE_PROJECT_NAME)
  77. SET(DART_EXPERIMENTAL_NAME "${DART_EXPERIMENTAL_NAME}${PROJECT_NAME}")
  78. ENDIF(DART_EXPERIMENTAL_USE_PROJECT_NAME)
  79. ADD_CUSTOM_TARGET(${DART_EXPERIMENTAL_NAME}
  80. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental Start Update Configure Build Test)
  81. ADD_CUSTOM_TARGET(${DART_EXPERIMENTAL_NAME}Submit
  82. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental Submit)
  83. # for non IDE based builds nmake and make
  84. # add all these extra targets
  85. IF(${CMAKE_MAKE_PROGRAM} MATCHES make)
  86. # Make targets for Experimental builds
  87. ADD_CUSTOM_TARGET(ExperimentalStart
  88. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental Start)
  89. ADD_CUSTOM_TARGET(ExperimentalUpdate
  90. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental Start Update)
  91. ADD_CUSTOM_TARGET(ExperimentalConfigure
  92. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental Start Configure)
  93. ADD_CUSTOM_TARGET(ExperimentalBuild
  94. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental Start Build)
  95. ADD_CUSTOM_TARGET(ExperimentalTest
  96. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental Test)
  97. ADD_CUSTOM_TARGET(ExperimentalCoverage
  98. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental Coverage)
  99. ADD_CUSTOM_TARGET(ExperimentalDashboardStart
  100. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental DashboardStart)
  101. ADD_CUSTOM_TARGET(ExperimentalDashboardEnd
  102. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental DashboardEnd)
  103. # Continuous
  104. ADD_CUSTOM_TARGET(Continuous
  105. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Continuous Start Update Configure Build Test Submit)
  106. ADD_CUSTOM_TARGET(ContinuousStart
  107. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Continuous Start)
  108. ADD_CUSTOM_TARGET(ContinuousUpdate
  109. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Continuous Update)
  110. ADD_CUSTOM_TARGET(ContinuousConfigure
  111. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Continuous Configure)
  112. ADD_CUSTOM_TARGET(ContinuousBuild
  113. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Continuous Build)
  114. ADD_CUSTOM_TARGET(ContinuousTest
  115. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Continuous Test)
  116. ADD_CUSTOM_TARGET(ContinuousCoverage
  117. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Continuous Coverage)
  118. ADD_CUSTOM_TARGET(ContinuousSubmit
  119. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Continuous Submit)
  120. # Nightly
  121. ADD_CUSTOM_TARGET(Nightly
  122. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly Start Update Configure Build Test Submit)
  123. ADD_CUSTOM_TARGET(NightlyStart
  124. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly Start)
  125. ADD_CUSTOM_TARGET(NightlyUpdate
  126. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly Update)
  127. ADD_CUSTOM_TARGET(NightlyConfigure
  128. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly Configure)
  129. ADD_CUSTOM_TARGET(NightlyBuild
  130. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly Build)
  131. ADD_CUSTOM_TARGET(NightlyTest
  132. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly Test)
  133. ADD_CUSTOM_TARGET(NightlyCoverage
  134. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly Coverage)
  135. ADD_CUSTOM_TARGET(NightlySubmit
  136. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly Submit)
  137. ADD_CUSTOM_TARGET(NightlyDashboardStart
  138. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly DashboardStart)
  139. ADD_CUSTOM_TARGET(NightlyDashboardEnd
  140. ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly DashboardEnd)
  141. ENDIF (${CMAKE_MAKE_PROGRAM} MATCHES make)
  142. ELSE(HAVE_DART AND TCL_TCLSH)
  143. SET(RUN_FROM_CTEST_OR_DART 1)
  144. INCLUDE(CTestTargets)
  145. SET(RUN_FROM_CTEST_OR_DART)
  146. ENDIF (HAVE_DART AND TCL_TCLSH)
  147. ENDIF(BUILD_TESTING)
  148. #
  149. # End of Dart.cmake
  150. #