ctkDashboardScript.TEMPLATE.cmake 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. ####################################################################################
  2. # OS :
  3. # Hardware:
  4. # GPU :
  5. ####################################################################################
  6. # WARNING - The specific version and processor type of this machine should be reported
  7. # in the header above. Indeed, this file will be send to the dashboard as a NOTE file.
  8. #
  9. # On linux, you could run:
  10. # 'uname -o' and 'cat /etc/*-release' to obtain the OS name.
  11. # 'uname -mpi' to obtain hardware details.
  12. # 'glxinfo | grep OpenGL' to obtain GPU details.
  13. ####################################################################################
  14. cmake_minimum_required(VERSION 2.8.9)
  15. #
  16. # For additional information, see http://www.commontk.org/index.php/Dashboard_setup
  17. #
  18. #-----------------------------------------------------------------------------
  19. # Experimental:
  20. # - run_ctest() macro will be called *ONE* time
  21. # - binary directory will *NOT* be cleaned
  22. # Continuous:
  23. # - run_ctest() macro will be called EVERY 5 minutes ...
  24. # - binary directory will *NOT* be cleaned
  25. # - configure/build will be executed *ONLY* if the repository has been updated
  26. # Nightly:
  27. # - run_ctest() macro will be called *ONE* time
  28. # - binary directory *WILL BE* cleaned
  29. set(SCRIPT_MODE "Experimental") # "Experimental", "Continuous", "Nightly"
  30. # You could invoke the script with the following syntax:
  31. # ctest -S karakoram_Slicer4_nightly.cmake -C <CTEST_BUILD_CONFIGURATION> -V
  32. #
  33. # Note that '-C <CTEST_BUILD_CONFIGURATION>' is mandatory on windows
  34. #-----------------------------------------------------------------------------
  35. # Dashboard properties
  36. #-----------------------------------------------------------------------------
  37. set(MY_OPERATING_SYSTEM "Ubuntu-13.10") # Windows, Linux, Darwin...
  38. set(MY_COMPILER "g++4.8.1")
  39. set(MY_QT_VERSION "4.8.5")
  40. set(QT_QMAKE_EXECUTABLE "$ENV{HOME}/Support/qt-everywhere-opensource-release-build-4.8.5/bin/qmake")
  41. set(CTEST_SITE "karakoram.kitware") # for example: mymachine.kitware, mymachine.dkfz, ...
  42. set(CTEST_DASHBOARD_ROOT "$ENV{HOME}/Dashboards/${SCRIPT_MODE}")
  43. # set(GIT_REPOSITORY http://github.com/YOURUSERNAME/CTK.git)
  44. set(GIT_TAG "") # origin/next
  45. # Each dashboard script should specify a unique ID per CTEST_DASHBOARD_ROOT.
  46. # It means the following directories will be created:
  47. # <CTEST_DASHBOARD_ROOT>/<DIRECTORY_NAME>-<DIRECTORY_IDENTIFIER> # Source directory
  48. # <CTEST_DASHBOARD_ROOT>/<DIRECTORY_NAME>-<DIRECTORY_IDENTIFIER>-build # Build directory
  49. set(DIRECTORY_IDENTIFIER "0")
  50. # Open a shell and type in "cmake --help" to obtain the proper spelling of the generator
  51. set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
  52. set(MY_BITNESS "64")
  53. #-----------------------------------------------------------------------------
  54. # Dashboard options
  55. #-----------------------------------------------------------------------------
  56. set(WITH_KWSTYLE FALSE)
  57. set(WITH_MEMCHECK FALSE)
  58. set(WITH_COVERAGE FALSE)
  59. set(WITH_DOCUMENTATION FALSE)
  60. #set(DOCUMENTATION_ARCHIVES_OUTPUT_DIRECTORY ) # for example: $ENV{HOME}/Projects/Doxygen
  61. set(CTEST_BUILD_CONFIGURATION "Release")
  62. set(CTEST_TEST_TIMEOUT 500)
  63. set(CTEST_BUILD_FLAGS "") # Use multiple CPU cores to build. For example "-j -l4" on unix
  64. set(CTEST_PARALLEL_LEVEL 8) # Number of tests running in parallel
  65. #-----------------------------------------------------------------------------
  66. # Additional CMakeCache options
  67. #-----------------------------------------------------------------------------
  68. set(ADDITIONAL_CMAKECACHE_OPTION "
  69. ")
  70. #-----------------------------------------------------------------------------
  71. # List of test that should be explicitly disabled on this machine
  72. #-----------------------------------------------------------------------------
  73. set(TEST_TO_EXCLUDE_REGEX "")
  74. #-----------------------------------------------------------------------------
  75. # Set any extra environment variables here
  76. #-----------------------------------------------------------------------------
  77. if(UNIX)
  78. set(ENV{DISPLAY} ":0")
  79. endif()
  80. #-----------------------------------------------------------------------------
  81. # Required executables
  82. #-----------------------------------------------------------------------------
  83. find_program(CTEST_GIT_COMMAND NAMES git)
  84. find_program(CTEST_COVERAGE_COMMAND NAMES gcov)
  85. find_program(CTEST_MEMORYCHECK_COMMAND NAMES valgrind)
  86. #-----------------------------------------------------------------------------
  87. # Build Name
  88. #-----------------------------------------------------------------------------
  89. # Update the following variable to match the chosen build options. This variable is used to
  90. # generate both the build directory and the build name.
  91. # See http://my.cdash.org/CDash/index.php?project=CTK for examples
  92. set(BUILD_OPTIONS_STRING "${MY_BITNESS}bits-QT${MY_QT_VERSION}")
  93. #-----------------------------------------------------------------------------
  94. # Directory name
  95. #-----------------------------------------------------------------------------
  96. set(DIRECTORY_NAME "CTK")
  97. #-----------------------------------------------------------------------------
  98. # Build directory
  99. #-----------------------------------------------------------------------------
  100. set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${DIRECTORY_NAME}-${DIRECTORY_IDENTIFIER}-build")
  101. file(WRITE "${CTEST_DASHBOARD_ROOT}/${DIRECTORY_NAME}-${DIRECTORY_IDENTIFIER}-build - ${BUILD_OPTIONS_STRING}-${CTEST_BUILD_CONFIGURATION}-${SCRIPT_MODE}.txt" "Generated by ${CTEST_SCRIPT_NAME}")
  102. #-----------------------------------------------------------------------------
  103. # Source directory
  104. #-----------------------------------------------------------------------------
  105. set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${DIRECTORY_NAME}-${DIRECTORY_IDENTIFIER}")
  106. ##########################################
  107. # WARNING: DO NOT EDIT BEYOND THIS POINT #
  108. ##########################################
  109. set(CTEST_NOTES_FILES "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}")
  110. #
  111. # Project specific properties
  112. #
  113. set(CTEST_PROJECT_NAME "CTK")
  114. set(CTEST_BUILD_NAME "${MY_OPERATING_SYSTEM}-${MY_COMPILER}-${BUILD_OPTIONS_STRING}-${CTEST_BUILD_CONFIGURATION}")
  115. #
  116. # Display build info
  117. #
  118. message("CTEST_SITE ................: ${CTEST_SITE}")
  119. message("CTEST_BUILD_NAME ..........: ${CTEST_BUILD_NAME}")
  120. message("SCRIPT_MODE ...............: ${SCRIPT_MODE}")
  121. message("CTEST_BUILD_CONFIGURATION .: ${CTEST_BUILD_CONFIGURATION}")
  122. message("WITH_KWSTYLE ..............: ${WITH_KWSTYLE}")
  123. message("WITH_COVERAGE: ............: ${WITH_COVERAGE}")
  124. message("WITH_MEMCHECK .............: ${WITH_MEMCHECK}")
  125. message("WITH_PACKAGES .............: ${WITH_PACKAGES}")
  126. message("WITH_DOCUMENTATION ........: ${WITH_DOCUMENTATION}")
  127. message("DOCUMENTATION_ARCHIVES_OUTPUT_DIRECTORY: ${DOCUMENTATION_ARCHIVES_OUTPUT_DIRECTORY}")
  128. #
  129. # Convenient function allowing to download a file
  130. #
  131. function(download_file url dest)
  132. file(DOWNLOAD ${url} ${dest} STATUS status)
  133. list(GET status 0 error_code)
  134. list(GET status 1 error_msg)
  135. if(error_code)
  136. message(FATAL_ERROR "error: Failed to download ${url} - ${error_msg}")
  137. endif()
  138. endfunction()
  139. #
  140. # Download and include dashboard driver script
  141. #
  142. set(url https://raw.githubusercontent.com/commontk/CTK/master/CMake/ctkDashboardDriverScript.cmake)
  143. set(dest ${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}.driver)
  144. download_file(${url} ${dest})
  145. include(${dest})