CMakeLists.txt 87 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149
  1. # a macro for tests that have a simple format where the name matches the
  2. # directory and project
  3. MACRO(ADD_TEST_MACRO NAME COMMAND)
  4. STRING(REPLACE "." "/" dir "${NAME}")
  5. STRING(REGEX REPLACE "[^.]*\\." "" proj "${NAME}")
  6. ADD_TEST(${NAME} ${CMAKE_CTEST_COMMAND}
  7. --build-and-test
  8. "${CMake_SOURCE_DIR}/Tests/${dir}"
  9. "${CMake_BINARY_DIR}/Tests/${dir}"
  10. --build-two-config
  11. --build-generator ${CMAKE_TEST_GENERATOR}
  12. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  13. --build-project ${proj}
  14. ${${NAME}_EXTRA_OPTIONS}
  15. --test-command ${COMMAND} ${ARGN})
  16. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${dir}")
  17. ENDMACRO(ADD_TEST_MACRO)
  18. INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/CheckFortran.cmake)
  19. # Fake a user home directory to avoid polluting the real one.
  20. IF(DEFINED ENV{HOME} AND NOT CTEST_NO_TEST_HOME)
  21. SET(TEST_HOME "${CMake_BINARY_DIR}/Tests/CMakeFiles/TestHome")
  22. FILE(MAKE_DIRECTORY "${TEST_HOME}")
  23. FILE(WRITE "${TEST_HOME}/.cvspass" ":pserver:[email protected]:/cvsroot/KWSys A\n")
  24. SET(TEST_HOME_ENV_CODE "# Fake a user home directory to avoid polluting the real one.
  25. # But provide original ENV{HOME} value in ENV{CTEST_REAL_HOME} for tests that
  26. # need access to the real HOME directory.
  27. SET(ENV{CTEST_REAL_HOME} \"\$ENV{HOME}\")
  28. SET(ENV{HOME} \"${TEST_HOME}\")
  29. ")
  30. ENDIF()
  31. # Choose a default configuration for CTest tests.
  32. SET(CTestTest_CONFIG Debug)
  33. IF(NOT CMAKE_CONFIGURATION_TYPES AND CMAKE_BUILD_TYPE)
  34. SET(CTestTest_CONFIG ${CMAKE_BUILD_TYPE})
  35. ENDIF()
  36. CONFIGURE_FILE(${CMake_SOURCE_DIR}/Tests/EnforceConfig.cmake.in
  37. ${CMake_BINARY_DIR}/Tests/EnforceConfig.cmake @ONLY)
  38. # Testing
  39. IF(BUILD_TESTING)
  40. IF("${CMAKE_TEST_GENERATOR}" MATCHES "Unix Makefiles")
  41. SET(TEST_CompileCommandOutput 1)
  42. ENDIF()
  43. ADD_SUBDIRECTORY(CMakeLib)
  44. ADD_SUBDIRECTORY(FindPackageModeMakefileTest)
  45. # Collect a list of all test build directories.
  46. SET(TEST_BUILD_DIRS)
  47. # Should the long tests be run?
  48. OPTION(CMAKE_RUN_LONG_TESTS
  49. "Should the long tests be run (such as Bootstrap)." ON)
  50. MARK_AS_ADVANCED(CMAKE_RUN_LONG_TESTS)
  51. IF (CMAKE_RUN_LONG_TESTS)
  52. OPTION(CTEST_TEST_CTEST
  53. "Should the tests that run a full sub ctest process be run?"
  54. OFF)
  55. MARK_AS_ADVANCED(CTEST_TEST_CTEST)
  56. OPTION(TEST_KDE4_STABLE_BRANCH
  57. "Should the KDE4 stable branch test be run?"
  58. OFF)
  59. MARK_AS_ADVANCED(TEST_KDE4_STABLE_BRANCH)
  60. ENDIF (CMAKE_RUN_LONG_TESTS)
  61. # Should tests that use CVS be run?
  62. #
  63. set(do_cvs_tests 0)
  64. if(EXISTS ${CMAKE_ROOT}/Modules/FindCVS.cmake)
  65. find_package(CVS QUIET)
  66. else(EXISTS ${CMAKE_ROOT}/Modules/FindCVS.cmake)
  67. find_program(CVS_EXECUTABLE NAMES cvs)
  68. endif(EXISTS ${CMAKE_ROOT}/Modules/FindCVS.cmake)
  69. if(CVS_EXECUTABLE)
  70. set(do_cvs_tests 1)
  71. endif(CVS_EXECUTABLE)
  72. if(do_cvs_tests AND NOT UNIX)
  73. if("${CVS_EXECUTABLE}" MATCHES "cygwin")
  74. set(do_cvs_tests 0)
  75. endif("${CVS_EXECUTABLE}" MATCHES "cygwin")
  76. endif(do_cvs_tests AND NOT UNIX)
  77. # Should CPack tests be run? By default, yes, but...
  78. #
  79. # Disable packaging test on Apple 10.3 and below. PackageMaker starts
  80. # DiskManagementTool as root and disowns it
  81. # (http://lists.apple.com/archives/installer-dev/2005/Jul/msg00005.html).
  82. # It is left holding open pipe handles and preventing ProcessUNIX from
  83. # detecting end-of-data even after its immediate child exits. Then
  84. # the test hangs until it times out and is killed. This is a
  85. # well-known bug in kwsys process execution that I would love to get
  86. # time to fix.
  87. #
  88. OPTION(CTEST_TEST_CPACK
  89. "Should the tests that use '--build-target package' be run?"
  90. ON)
  91. MARK_AS_ADVANCED(CTEST_TEST_CPACK)
  92. SET(CTEST_TEST_OSX_ARCH 0)
  93. IF(APPLE)
  94. EXECUTE_PROCESS(
  95. COMMAND sw_vers -productVersion
  96. OUTPUT_VARIABLE OSX_VERSION
  97. OUTPUT_STRIP_TRAILING_WHITESPACE
  98. )
  99. IF(OSX_VERSION MATCHES "^10\\.[0123]" OR OSX_VERSION MATCHES "ProductVersion:\t10\\.[0123]")
  100. MESSAGE(STATUS "Forcing CTEST_TEST_CPACK=OFF on OSX < 10.4")
  101. MESSAGE(STATUS "OSX_VERSION='${OSX_VERSION}'")
  102. SET(CTEST_TEST_CPACK OFF)
  103. ELSE(OSX_VERSION MATCHES "^10\\.[0123]" OR OSX_VERSION MATCHES "ProductVersion:\t10\\.[0123]")
  104. SET(CTEST_TEST_OSX_ARCH 1)
  105. ENDIF(OSX_VERSION MATCHES "^10\\.[0123]" OR OSX_VERSION MATCHES "ProductVersion:\t10\\.[0123]")
  106. ENDIF(APPLE)
  107. # Use 1500 or CTEST_TEST_TIMEOUT for long test timeout value,
  108. # whichever is greater.
  109. SET(CMAKE_LONG_TEST_TIMEOUT 1500)
  110. IF(CTEST_TEST_TIMEOUT)
  111. SET(CMAKE_LONG_TEST_TIMEOUT ${CTEST_TEST_TIMEOUT})
  112. ENDIF(CTEST_TEST_TIMEOUT)
  113. IF(CMAKE_LONG_TEST_TIMEOUT LESS 1500)
  114. SET(CMAKE_LONG_TEST_TIMEOUT 1500)
  115. ENDIF(CMAKE_LONG_TEST_TIMEOUT LESS 1500)
  116. # add a bunch of standard build-and-test style tests
  117. ADD_TEST_MACRO(CommandLineTest CommandLineTest)
  118. ADD_TEST_MACRO(FindPackageTest FindPackageTest)
  119. ADD_TEST_MACRO(FindModulesExecuteAll FindModulesExecuteAll)
  120. ADD_TEST_MACRO(StringFileTest StringFileTest)
  121. ADD_TEST_MACRO(TryCompile TryCompile)
  122. ADD_TEST_MACRO(TarTest TarTest)
  123. ADD_TEST_MACRO(SystemInformation SystemInformation)
  124. ADD_TEST_MACRO(MathTest MathTest)
  125. # assume no resources building to test
  126. SET(TEST_RESOURCES FALSE)
  127. # for windows and cygwin assume we have resources
  128. IF(WIN32 OR CYGWIN)
  129. SET(TEST_RESOURCES TRUE)
  130. ENDIF()
  131. # for borland and watcom there is no resource support
  132. IF("${CMAKE_TEST_GENERATOR}" MATCHES "WMake" OR
  133. "${CMAKE_TEST_GENERATOR}" MATCHES "Borland")
  134. SET(TEST_RESOURCES FALSE)
  135. ENDIF()
  136. IF(TEST_RESOURCES)
  137. ADD_TEST_MACRO(VSResource VSResource)
  138. ENDIF()
  139. ADD_TEST_MACRO(Simple Simple)
  140. ADD_TEST_MACRO(PreOrder PreOrder)
  141. ADD_TEST_MACRO(MissingSourceFile MissingSourceFile)
  142. SET_TESTS_PROPERTIES(MissingSourceFile PROPERTIES
  143. PASS_REGULAR_EXPRESSION "CMake Error at CMakeLists.txt:3 \\(add_executable\\):[ \r\n]*Cannot find source file:[ \r\n]*DoesNotExist/MissingSourceFile.c")
  144. IF(CMAKE_Fortran_COMPILER)
  145. ADD_TEST_MACRO(FortranOnly FortranOnly)
  146. ENDIF()
  147. ADD_TEST_MACRO(COnly COnly)
  148. ADD_TEST_MACRO(CxxOnly CxxOnly)
  149. ADD_TEST_MACRO(IPO COnly/COnly)
  150. ADD_TEST_MACRO(OutDir runtime/OutDir)
  151. ADD_TEST_MACRO(NewlineArgs NewlineArgs)
  152. ADD_TEST_MACRO(SetLang SetLang)
  153. ADD_TEST_MACRO(ExternalOBJ ExternalOBJ)
  154. ADD_TEST_MACRO(LoadCommand LoadedCommand)
  155. ADD_TEST_MACRO(LinkDirectory bin/LinkDirectory)
  156. ADD_TEST_MACRO(LinkLanguage LinkLanguage)
  157. ADD_TEST_MACRO(LinkLine LinkLine)
  158. ADD_TEST_MACRO(MacroTest miniMacroTest)
  159. ADD_TEST_MACRO(FunctionTest miniFunctionTest)
  160. ADD_TEST_MACRO(ReturnTest ReturnTest)
  161. ADD_TEST_MACRO(Properties Properties)
  162. ADD_TEST_MACRO(Assembler HelloAsm)
  163. ADD_TEST_MACRO(SourceGroups SourceGroups)
  164. ADD_TEST_MACRO(Preprocess Preprocess)
  165. ADD_TEST_MACRO(ExportImport ExportImport)
  166. ADD_TEST_MACRO(Unset Unset)
  167. ADD_TEST_MACRO(PolicyScope PolicyScope)
  168. ADD_TEST_MACRO(EmptyLibrary EmptyLibrary)
  169. SET_TESTS_PROPERTIES(EmptyLibrary PROPERTIES
  170. PASS_REGULAR_EXPRESSION "CMake Error: CMake can not determine linker language for target:test")
  171. ADD_TEST_MACRO(CrossCompile CrossCompile)
  172. SET_TESTS_PROPERTIES(CrossCompile PROPERTIES
  173. PASS_REGULAR_EXPRESSION "TRY_RUN.. invoked in cross-compiling mode")
  174. IF("${CMAKE_TEST_GENERATOR}" MATCHES "Make")
  175. ADD_TEST_MACRO(Policy0002 Policy0002)
  176. ENDIF("${CMAKE_TEST_GENERATOR}" MATCHES "Make")
  177. IF(CTEST_TEST_OSX_ARCH)
  178. ADD_TEST_MACRO(Architecture Architecture)
  179. SET_TESTS_PROPERTIES(Architecture PROPERTIES
  180. PASS_REGULAR_EXPRESSION "(file is not of required architecture|does not match cputype|not the architecture being linked)")
  181. ENDIF(CTEST_TEST_OSX_ARCH)
  182. LIST(APPEND TEST_BUILD_DIRS ${CMake_TEST_INSTALL_PREFIX})
  183. # run test for BundleUtilities on supported platforms/compilers
  184. if(MSVC OR
  185. CMAKE_SYSTEM_NAME MATCHES "Linux" OR
  186. CMAKE_SYSTEM_NAME MATCHES "Darwin")
  187. if(NOT "${CMAKE_TEST_GENERATOR}" STREQUAL "Watcom WMake")
  188. ADD_TEST(BundleUtilities ${CMAKE_CTEST_COMMAND}
  189. --build-and-test
  190. "${CMake_SOURCE_DIR}/Tests/BundleUtilities"
  191. "${CMake_BINARY_DIR}/Tests/BundleUtilities"
  192. --build-generator ${CMAKE_TEST_GENERATOR}
  193. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  194. --build-project BundleUtilities
  195. )
  196. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/BundleUtilities")
  197. endif()
  198. endif()
  199. SET(CMAKE_BUILD_TEST_SOURCE_DIR "${CMake_SOURCE_DIR}/Tests/COnly")
  200. SET(CMAKE_BUILD_TEST_BINARY_DIR "${CMake_BINARY_DIR}/Tests/CMakeBuildCOnly")
  201. CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CMakeBuildTest.cmake.in"
  202. "${CMake_BINARY_DIR}/Tests/CMakeBuildTest.cmake" @ONLY)
  203. ADD_TEST(CMakeBuildTest ${CMAKE_CMAKE_COMMAND} -P
  204. "${CMake_BINARY_DIR}/Tests/CMakeBuildTest.cmake")
  205. LIST(APPEND TEST_BUILD_DIRS ${CMAKE_BUILD_TEST_BINARY_DIR})
  206. ADD_TEST_MACRO(Module.CheckTypeSize CheckTypeSize)
  207. ADD_TEST_MACRO(Module.GenerateExportHeader GenerateExportHeader)
  208. ADD_TEST_MACRO(Module.CheckCXXCompilerFlag CheckCXXCompilerFlag)
  209. ADD_TEST(LinkFlags-prepare
  210. ${CMAKE_CTEST_COMMAND} -C \${CTEST_CONFIGURATION_TYPE}
  211. --build-and-test
  212. "${CMake_SOURCE_DIR}/Tests/LinkFlags"
  213. "${CMake_BINARY_DIR}/Tests/LinkFlags"
  214. --build-generator ${CMAKE_TEST_GENERATOR}
  215. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  216. --build-project LinkFlags
  217. --build-target LinkFlags
  218. --build-options -DTEST_CONFIG=\${CTEST_CONFIGURATION_TYPE}
  219. )
  220. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/LinkFlags")
  221. MACRO(ADD_LINK_FLAGS_TEST name depends)
  222. ADD_TEST(LinkFlags-${name}
  223. ${CMAKE_CMAKE_COMMAND} --build "${CMake_BINARY_DIR}/Tests/LinkFlags"
  224. --target LinkFlags_${name} --config \${CTEST_CONFIGURATION_TYPE}
  225. )
  226. SET_TESTS_PROPERTIES(LinkFlags-${name} PROPERTIES
  227. PASS_REGULAR_EXPRESSION "BADFLAG" DEPENDS LinkFlags-${depends})
  228. ENDMACRO()
  229. ADD_LINK_FLAGS_TEST(lib prepare)
  230. ADD_LINK_FLAGS_TEST(dll lib)
  231. ADD_LINK_FLAGS_TEST(exe dll)
  232. ADD_LINK_FLAGS_TEST(lib_config exe)
  233. ADD_LINK_FLAGS_TEST(dll_config lib_config)
  234. ADD_LINK_FLAGS_TEST(exe_config dll_config)
  235. # If we are running right now with a UnixMakefiles based generator,
  236. # build the "Simple" test with the ExtraGenerators, if available
  237. # This doesn't test whether the generated project files work (unfortunately),
  238. # mainly it tests that cmake doesn't crash when generating these project files.
  239. IF(${CMAKE_TEST_GENERATOR} MATCHES "Unix Makefiles" OR ${CMAKE_TEST_GENERATOR} MATCHES "KDevelop")
  240. # check which generators we have
  241. EXEC_PROGRAM(${CMAKE_CMAKE_COMMAND} ARGS --help OUTPUT_VARIABLE cmakeOutput )
  242. # check for the Eclipse generator
  243. IF ("${cmakeOutput}" MATCHES Eclipse)
  244. ADD_TEST(Simple_EclipseGenerator ${CMAKE_CTEST_COMMAND}
  245. --build-and-test
  246. "${CMake_SOURCE_DIR}/Tests/Simple"
  247. "${CMake_BINARY_DIR}/Tests/Simple_EclipseGenerator"
  248. --build-two-config
  249. --build-generator "Eclipse CDT4 - Unix Makefiles"
  250. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  251. --build-project Simple
  252. --test-command Simple)
  253. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Simple_EclipseGenerator")
  254. ENDIF ("${cmakeOutput}" MATCHES Eclipse)
  255. # check for the CodeBlocks generator
  256. IF ("${cmakeOutput}" MATCHES CodeBlocks)
  257. ADD_TEST(Simple_CodeBlocksGenerator ${CMAKE_CTEST_COMMAND}
  258. --build-and-test
  259. "${CMake_SOURCE_DIR}/Tests/Simple"
  260. "${CMake_BINARY_DIR}/Tests/Simple_CodeBlocksGenerator"
  261. --build-two-config
  262. --build-generator "CodeBlocks - Unix Makefiles"
  263. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  264. --build-project Simple
  265. --test-command Simple)
  266. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Simple_CodeBlocksGenerator")
  267. ENDIF ("${cmakeOutput}" MATCHES CodeBlocks)
  268. # check for the KDevelop3 generator
  269. IF ("${cmakeOutput}" MATCHES KDevelop3)
  270. ADD_TEST(Simple_KDevelop3Generator ${CMAKE_CTEST_COMMAND}
  271. --build-and-test
  272. "${CMake_SOURCE_DIR}/Tests/Simple"
  273. "${CMake_BINARY_DIR}/Tests/Simple_KDevelop3Generator"
  274. --build-two-config
  275. --build-generator "KDevelop3 - Unix Makefiles"
  276. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  277. --build-project Simple
  278. --test-command Simple)
  279. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Simple_KDevelop3Generator")
  280. ENDIF ("${cmakeOutput}" MATCHES KDevelop3)
  281. ENDIF(${CMAKE_TEST_GENERATOR} MATCHES "Unix Makefiles" OR ${CMAKE_TEST_GENERATOR} MATCHES "KDevelop")
  282. # test for correct sub-project generation
  283. # not implemented in VS6 or Xcode
  284. IF(NOT MSVC60 AND NOT XCODE AND NOT MSVC70)
  285. # run cmake and configure all of SubProject
  286. # but only build the independent executable car
  287. ADD_TEST(SubProject ${CMAKE_CTEST_COMMAND}
  288. --build-and-test
  289. "${CMake_SOURCE_DIR}/Tests/SubProject"
  290. "${CMake_BINARY_DIR}/Tests/SubProject"
  291. --build-project SubProject
  292. --build-generator ${CMAKE_TEST_GENERATOR}
  293. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  294. --build-target car
  295. --test-command car
  296. )
  297. # For stage 2, do not run cmake again.
  298. # Then build the foo sub project which should build
  299. # the bar library which should be referenced because
  300. # foo links to the static library bar, but bar is not
  301. # directly in the foo sub project
  302. ADD_TEST(SubProject-Stage2 ${CMAKE_CTEST_COMMAND}
  303. --build-and-test
  304. "${CMake_SOURCE_DIR}/Tests/SubProject/foo"
  305. "${CMake_BINARY_DIR}/Tests/SubProject/foo"
  306. --build-generator ${CMAKE_TEST_GENERATOR}
  307. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  308. --build-nocmake
  309. --build-project foo
  310. --build-target foo
  311. --test-command foo
  312. )
  313. SET_TESTS_PROPERTIES ( SubProject-Stage2 PROPERTIES DEPENDS SubProject)
  314. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/SubProject")
  315. ENDIF(NOT MSVC60 AND NOT XCODE AND NOT MSVC70)
  316. IF (CMAKE_STRICT)
  317. ADD_TEST_MACRO(DocTest DocTest)
  318. ENDIF (CMAKE_STRICT)
  319. # macro to add a test that will build a nightly release
  320. # of CMake for given platform using the release scripts
  321. MACRO(ADD_NIGHTLY_BUILD_TEST name script)
  322. SET(_TEST_DIR "${CMake_BINARY_DIR}/Tests/${name}")
  323. FILE(MAKE_DIRECTORY "${_TEST_DIR}")
  324. FILE(WRITE "${_TEST_DIR}/nightly-cmake.sh"
  325. "cd ${_TEST_DIR}
  326. ${CMake_BINARY_DIR}/bin/cmake -DCMAKE_CREATE_VERSION=nightly -P ${CMake_SOURCE_DIR}/Utilities/Release/${script}
  327. ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/Release/upload_release.cmake
  328. ")
  329. ADD_TEST(${name} /bin/sh ${_TEST_DIR}/nightly-cmake.sh)
  330. IF(COMMAND SET_TESTS_PROPERTIES AND COMMAND GET_TEST_PROPERTY)
  331. SET_TESTS_PROPERTIES (${name} PROPERTIES TIMEOUT ${CMAKE_LONG_TEST_TIMEOUT})
  332. ENDIF(COMMAND SET_TESTS_PROPERTIES AND COMMAND GET_TEST_PROPERTY)
  333. ENDMACRO(ADD_NIGHTLY_BUILD_TEST)
  334. IF(CMAKE_BUILD_NIGHTLY_RELEASES)
  335. ADD_NIGHTLY_BUILD_TEST(CMakeNightlyWindows
  336. dash2win64_release.cmake)
  337. ADD_NIGHTLY_BUILD_TEST(CMakeNightlyMac
  338. dashmacmini2_release.cmake)
  339. ADD_NIGHTLY_BUILD_TEST(CMakeNightlyMac64
  340. dashmacmini5_release.cmake)
  341. ADD_NIGHTLY_BUILD_TEST(CMakeNightlyLinux
  342. magrathea_release.cmake)
  343. ENDIF(CMAKE_BUILD_NIGHTLY_RELEASES)
  344. # add tests with more complex invocations
  345. ADD_TEST(Framework ${CMAKE_CTEST_COMMAND}
  346. --build-and-test
  347. "${CMake_SOURCE_DIR}/Tests/Framework"
  348. "${CMake_BINARY_DIR}/Tests/Framework"
  349. --build-two-config
  350. --build-generator ${CMAKE_TEST_GENERATOR}
  351. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  352. --build-project Framework
  353. --build-options
  354. "-DCMAKE_INSTALL_PREFIX:PATH=${CMake_BINARY_DIR}/Tests/Framework/Install"
  355. --test-command bar)
  356. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Framework")
  357. ADD_TEST(TargetName ${CMAKE_CTEST_COMMAND}
  358. --build-and-test
  359. "${CMake_SOURCE_DIR}/Tests/TargetName"
  360. "${CMake_BINARY_DIR}/Tests/TargetName"
  361. --build-two-config
  362. --build-generator ${CMAKE_TEST_GENERATOR}
  363. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  364. --build-project TargetName
  365. --test-command ${CMAKE_CMAKE_COMMAND} -E compare_files
  366. ${CMake_SOURCE_DIR}/Tests/TargetName/scripts/hello_world
  367. ${CMake_BINARY_DIR}/Tests/TargetName/scripts/hello_world)
  368. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/TargetName")
  369. ADD_TEST(LibName ${CMAKE_CTEST_COMMAND}
  370. --build-and-test
  371. "${CMake_SOURCE_DIR}/Tests/LibName"
  372. "${CMake_BINARY_DIR}/Tests/LibName"
  373. --build-two-config
  374. --build-generator ${CMAKE_TEST_GENERATOR}
  375. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  376. --build-project LibName
  377. --build-exe-dir "${CMake_BINARY_DIR}/Tests/LibName/lib"
  378. --test-command foobar
  379. )
  380. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/LibName")
  381. ADD_TEST(CustComDepend ${CMAKE_CTEST_COMMAND}
  382. --build-and-test
  383. "${CMake_SOURCE_DIR}/Tests/CustComDepend"
  384. "${CMake_BINARY_DIR}/Tests/CustComDepend"
  385. --build-two-config
  386. --build-generator ${CMAKE_TEST_GENERATOR}
  387. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  388. --build-project CustComDepend
  389. --build-exe-dir "${CMake_BINARY_DIR}/Tests/CustComDepend/bin"
  390. --test-command foo bar.c
  391. )
  392. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/CustComDepend")
  393. ADD_TEST(ArgumentExpansion ${CMAKE_CTEST_COMMAND}
  394. --build-and-test
  395. "${CMake_SOURCE_DIR}/Tests/ArgumentExpansion"
  396. "${CMake_BINARY_DIR}/Tests/ArgumentExpansion"
  397. --build-generator ${CMAKE_TEST_GENERATOR}
  398. --build-project ArgumentExpansion
  399. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  400. --build-exe-dir "${CMake_BINARY_DIR}/Tests/ArgumentExpansion/bin"
  401. )
  402. SET_TESTS_PROPERTIES(ArgumentExpansion PROPERTIES
  403. FAIL_REGULAR_EXPRESSION "Unexpected: ")
  404. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/ArgumentExpansion")
  405. ADD_TEST(CustomCommand ${CMAKE_CTEST_COMMAND}
  406. --build-and-test
  407. "${CMake_SOURCE_DIR}/Tests/CustomCommand"
  408. "${CMake_BINARY_DIR}/Tests/CustomCommand"
  409. --build-two-config
  410. --build-generator ${CMAKE_TEST_GENERATOR}
  411. --build-project CustomCommand
  412. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  413. --build-exe-dir "${CMake_BINARY_DIR}/Tests/CustomCommand/bin"
  414. --test-command CustomCommand
  415. )
  416. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/CustomCommand")
  417. ADD_TEST(CustomCommandWorkingDirectory ${CMAKE_CTEST_COMMAND}
  418. --build-and-test
  419. "${CMake_SOURCE_DIR}/Tests/CustomCommandWorkingDirectory"
  420. "${CMake_BINARY_DIR}/Tests/CustomCommandWorkingDirectory"
  421. --build-two-config
  422. --build-generator ${CMAKE_TEST_GENERATOR}
  423. --build-project TestWorkingDir
  424. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  425. --test-command working
  426. )
  427. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/CustomCommandWorkingDirectory")
  428. #ADD_TEST(SimpleExclude ${CMAKE_CTEST_COMMAND}
  429. # --build-and-test
  430. # "${CMake_SOURCE_DIR}/Tests/SimpleExclude"
  431. # "${CMake_BINARY_DIR}/Tests/SimpleExclude"
  432. # --build-generator ${CMAKE_TEST_GENERATOR}
  433. # --build-project SimpleExclude
  434. # --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  435. # --build-two-config
  436. # --test-command t4
  437. #--test-command "${CMAKE_COMMAND}"
  438. #"-DCONFIGURATION=\${CTEST_CONFIGURATION_TYPE}"
  439. #-P "${CMake_BINARY_DIR}/Tests/SimpleExclude/run.cmake"
  440. #)
  441. # ADD_TEST(SameName ${CMAKE_CTEST_COMMAND}
  442. # --build-and-test
  443. # "${CMake_SOURCE_DIR}/Tests/SameName"
  444. # "${CMake_BINARY_DIR}/Tests/SameName"
  445. # --build-generator ${CMAKE_TEST_GENERATOR}
  446. # --build-project SameName
  447. # --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  448. # --build-two-config
  449. # --test-command
  450. # "${CMake_BINARY_DIR}/Tests/SameName/Exe1/mytest2")
  451. ADD_TEST(OutOfSource ${CMAKE_CTEST_COMMAND}
  452. --build-and-test
  453. "${CMake_SOURCE_DIR}/Tests/OutOfSource"
  454. "${CMake_BINARY_DIR}/Tests/OutOfSource"
  455. --build-generator ${CMAKE_TEST_GENERATOR}
  456. --build-project OutOfSource
  457. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  458. --build-two-config
  459. --test-command
  460. "${CMake_BINARY_DIR}/Tests/OutOfSource/SubDir/OutOfSourceSubdir/simple")
  461. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/OutOfSource")
  462. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/OutOfSourceDeep")
  463. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/OutOfBinary")
  464. ADD_TEST(BuildDepends ${CMAKE_CTEST_COMMAND}
  465. --build-and-test
  466. "${CMake_SOURCE_DIR}/Tests/BuildDepends"
  467. "${CMake_BINARY_DIR}/Tests/BuildDepends"
  468. --build-generator ${CMAKE_TEST_GENERATOR}
  469. --build-project BuildDepends
  470. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  471. )
  472. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/BuildDepends")
  473. SET(SimpleInstallInstallDir
  474. "${CMake_BINARY_DIR}/Tests/SimpleInstall/InstallDirectory")
  475. ADD_TEST(SimpleInstall ${CMAKE_CTEST_COMMAND}
  476. --build-and-test
  477. "${CMake_SOURCE_DIR}/Tests/SimpleInstall"
  478. "${CMake_BINARY_DIR}/Tests/SimpleInstall"
  479. --build-generator ${CMAKE_TEST_GENERATOR}
  480. --build-project TestSimpleInstall
  481. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  482. --build-two-config
  483. --build-options
  484. "-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}"
  485. "-DCTEST_TEST_CPACK:BOOL=${CTEST_TEST_CPACK}"
  486. --test-command ${SimpleInstallInstallDir}/MyTest/bin/SimpleInstExe)
  487. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/SimpleInstall")
  488. ADD_TEST(SimpleInstall-Stage2 ${CMAKE_CTEST_COMMAND}
  489. --build-and-test
  490. "${CMake_SOURCE_DIR}/Tests/SimpleInstallS2"
  491. "${CMake_BINARY_DIR}/Tests/SimpleInstallS2"
  492. --build-generator ${CMAKE_TEST_GENERATOR}
  493. --build-project TestSimpleInstall
  494. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  495. --build-two-config
  496. --build-options
  497. "-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}"
  498. "-DSTAGE2:BOOL=1"
  499. --test-command ${SimpleInstallInstallDir}/MyTest/bin/SimpleInstExeS2)
  500. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/SimpleInstallS2")
  501. # By default, run the CPackComponents test if the CTEST_TEST_CPACK
  502. # option is ON:
  503. #
  504. set(CTEST_RUN_CPackComponents ${CTEST_TEST_CPACK})
  505. set(CTEST_package_X11_TEST ${CTEST_TEST_CPACK})
  506. set(CTEST_RUN_CPackComponentsForAll ${CTEST_TEST_CPACK})
  507. find_program(NSIS_MAKENSIS_EXECUTABLE NAMES makensis
  508. PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\NSIS]
  509. DOC "makensis program location"
  510. )
  511. # But on Windows, only run the CPackComponents test if the NSIS
  512. # installer builder is available:
  513. #
  514. if(WIN32)
  515. if(NSIS_MAKENSIS_EXECUTABLE)
  516. set(CTEST_RUN_CPackComponents ON)
  517. else(NSIS_MAKENSIS_EXECUTABLE)
  518. set(CTEST_RUN_CPackComponents OFF)
  519. set(CTEST_package_X11_TEST OFF)
  520. endif(NSIS_MAKENSIS_EXECUTABLE)
  521. endif(WIN32)
  522. IF(CTEST_RUN_CPackComponents)
  523. set(CPackComponents_EXTRA_OPTIONS)
  524. if(APPLE)
  525. set(CPackComponents_EXTRA_OPTIONS -DCPACK_BINARY_DRAGNDROP:BOOL=ON)
  526. endif(APPLE)
  527. if(NSIS_MAKENSIS_EXECUTABLE)
  528. set(CPackComponents_EXTRA_OPTIONS ${CPackComponents_EXTRA_OPTIONS}
  529. -DCPACK_BINARY_NSIS:BOOL=ON)
  530. endif(NSIS_MAKENSIS_EXECUTABLE)
  531. ADD_TEST(CPackComponents ${CMAKE_CTEST_COMMAND}
  532. --build-and-test
  533. "${CMake_SOURCE_DIR}/Tests/CPackComponents"
  534. "${CMake_BINARY_DIR}/Tests/CPackComponents"
  535. --build-generator ${CMAKE_TEST_GENERATOR}
  536. --build-project CPackComponents
  537. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  538. --build-two-config
  539. --build-target package
  540. --build-options
  541. -DCPACK_BINARY_DEB:BOOL=${CPACK_BINARY_DEB}
  542. -DCPACK_BINARY_RPM:BOOL=${CPACK_BINARY_RPM}
  543. ${CPackComponents_EXTRA_OPTIONS}
  544. --graphviz=CPackComponents.dot
  545. --test-command ${CMAKE_CMAKE_COMMAND}
  546. "-DCPackComponents_BINARY_DIR:PATH=${CMake_BINARY_DIR}/Tests/CPackComponents"
  547. -P "${CMake_SOURCE_DIR}/Tests/CPackComponents/VerifyResult.cmake")
  548. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/CPackComponents")
  549. ENDIF(CTEST_RUN_CPackComponents)
  550. IF(CTEST_RUN_CPackComponentsForAll)
  551. set(CPackComponentsForAll_EXTRA_OPTIONS)
  552. set(CPackRun_CPackCommand "-DCPackCommand=${CMAKE_CPACK_COMMAND}")
  553. # set up list of CPack generators
  554. list(APPEND GENLST "ZIP")
  555. if(APPLE)
  556. list(APPEND GENLST "DragNDrop")
  557. endif(APPLE)
  558. if (CMAKE_SYSTEM_NAME MATCHES "Linux" AND NOT CMAKE_CURRENT_BINARY_DIR MATCHES ".* .*")
  559. find_program(RPMBUILD NAMES rpmbuild)
  560. endif(CMAKE_SYSTEM_NAME MATCHES "Linux" AND NOT CMAKE_CURRENT_BINARY_DIR MATCHES ".* .*")
  561. if (RPMBUILD)
  562. list(APPEND GENLST "RPM")
  563. endif(RPMBUILD)
  564. if (CMAKE_SYSTEM_NAME MATCHES "Linux")
  565. find_program(DPKG NAMES dpkg)
  566. if (DPKG)
  567. list(APPEND GENLST "DEB")
  568. endif(DPKG)
  569. endif(CMAKE_SYSTEM_NAME MATCHES "Linux")
  570. # set up list of component packaging ways
  571. list(APPEND CWAYLST "default")
  572. list(APPEND CWAYLST "OnePackPerGroup")
  573. list(APPEND CWAYLST "IgnoreGroup")
  574. list(APPEND CWAYLST "AllInOne")
  575. foreach(CPackGen ${GENLST})
  576. set(CPackRun_CPackGen "-DCPackGen=${CPackGen}")
  577. foreach(CPackComponentWay ${CWAYLST})
  578. set(CPackRun_CPackComponentWay "-DCPackComponentWay=${CPackComponentWay}")
  579. ADD_TEST(CPackComponentsForAll-${CPackGen}-${CPackComponentWay} ${CMAKE_CTEST_COMMAND}
  580. --build-and-test
  581. "${CMake_SOURCE_DIR}/Tests/CPackComponentsForAll"
  582. "${CMake_BINARY_DIR}/Tests/CPackComponentsForAll/build${CPackGen}-${CPackComponentWay}"
  583. --build-generator ${CMAKE_TEST_GENERATOR}
  584. --build-project CPackComponentsForAll
  585. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  586. --build-options
  587. -DCPACK_BINARY_${CPackGen}:BOOL=ON
  588. ${CPackRun_CPackComponentWay}
  589. ${CPackComponentsForAll_EXTRA_OPTIONS}
  590. --graphviz=CPackComponentsForAll.dot
  591. --test-command ${CMAKE_CMAKE_COMMAND}
  592. "-DCPackComponentsForAll_BINARY_DIR:PATH=${CMake_BINARY_DIR}/Tests/CPackComponentsForAll/build${CPackGen}-${CPackComponentWay}"
  593. "${CPackRun_CPackCommand}"
  594. "${CPackRun_CPackGen}"
  595. "${CPackRun_CPackComponentWay}"
  596. -P "${CMake_SOURCE_DIR}/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake")
  597. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/CPackComponentsForAll/build${CPackGen}-${CPackComponentWay}")
  598. endforeach(CPackComponentWay)
  599. endforeach(CPackGen)
  600. ENDIF(CTEST_RUN_CPackComponentsForAll)
  601. # By default, turn this test off (because it takes a long time...)
  602. #
  603. if(NOT DEFINED CTEST_RUN_CPackTestAllGenerators)
  604. set(CTEST_RUN_CPackTestAllGenerators OFF)
  605. # ...but: if it appears to be a coverage dashboard, or long tests are
  606. # on, then set it to the generic CTEST_TEST_CPACK setting.
  607. #
  608. if(CMAKE_CXX_FLAGS MATCHES "-ftest-coverage" OR
  609. NOT "$ENV{COVFILE}" STREQUAL "" OR
  610. CMAKE_RUN_LONG_TESTS)
  611. set(CTEST_RUN_CPackTestAllGenerators ${CTEST_TEST_CPACK})
  612. endif(CMAKE_CXX_FLAGS MATCHES "-ftest-coverage" OR
  613. NOT "$ENV{COVFILE}" STREQUAL "" OR
  614. CMAKE_RUN_LONG_TESTS)
  615. endif(NOT DEFINED CTEST_RUN_CPackTestAllGenerators)
  616. IF(CTEST_RUN_CPackTestAllGenerators)
  617. ADD_TEST(CPackTestAllGenerators ${CMAKE_CTEST_COMMAND}
  618. --build-and-test
  619. "${CMake_SOURCE_DIR}/Tests/CPackTestAllGenerators"
  620. "${CMake_BINARY_DIR}/Tests/CPackTestAllGenerators"
  621. --build-generator ${CMAKE_TEST_GENERATOR}
  622. --build-project CPackTestAllGenerators
  623. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  624. --test-command
  625. ${CMAKE_CMAKE_COMMAND}
  626. -D dir=${CMake_BINARY_DIR}/Tests/CPackTestAllGenerators
  627. -D cpack=${CMAKE_CPACK_COMMAND}
  628. -P ${CMake_SOURCE_DIR}/Tests/CPackTestAllGenerators/RunCPack.cmake
  629. )
  630. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/CPackTestAllGenerators")
  631. ENDIF(CTEST_RUN_CPackTestAllGenerators)
  632. IF(CTEST_package_X11_TEST)
  633. SET(X11_build_target_arg --build-target package)
  634. ELSE(CTEST_package_X11_TEST)
  635. SET(X11_build_target_arg)
  636. ENDIF(CTEST_package_X11_TEST)
  637. ADD_TEST(X11 ${CMAKE_CTEST_COMMAND}
  638. --build-and-test
  639. "${CMake_SOURCE_DIR}/Tests/X11"
  640. "${CMake_BINARY_DIR}/Tests/X11"
  641. --build-generator ${CMAKE_TEST_GENERATOR}
  642. --build-project UseX11
  643. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  644. --build-two-config
  645. ${X11_build_target_arg}
  646. --test-command UseX11)
  647. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/X11")
  648. if(NOT DEFINED CTEST_RUN_CMakeTestAllGenerators)
  649. set(CTEST_RUN_CMakeTestAllGenerators ON)
  650. endif(NOT DEFINED CTEST_RUN_CMakeTestAllGenerators)
  651. IF(CTEST_RUN_CMakeTestAllGenerators)
  652. ADD_TEST(CMakeTestAllGenerators ${CMAKE_CMAKE_COMMAND}
  653. -D dir=${CMake_BINARY_DIR}/Tests/CMakeTestAllGenerators
  654. -D CMake_SOURCE_DIR=${CMake_SOURCE_DIR}
  655. -P ${CMake_SOURCE_DIR}/Tests/CMakeTestAllGenerators/RunCMake.cmake
  656. )
  657. LIST(APPEND TEST_BUILD_DIRS
  658. "${CMake_BINARY_DIR}/Tests/CMakeTestAllGenerators")
  659. ENDIF(CTEST_RUN_CMakeTestAllGenerators)
  660. if(NOT DEFINED CTEST_RUN_CMakeTestBadCommandLines)
  661. set(CTEST_RUN_CMakeTestBadCommandLines ON)
  662. endif(NOT DEFINED CTEST_RUN_CMakeTestBadCommandLines)
  663. IF(CTEST_RUN_CMakeTestBadCommandLines)
  664. ADD_TEST(CMakeTestBadCommandLines ${CMAKE_CMAKE_COMMAND}
  665. -D dir=${CMake_BINARY_DIR}/Tests/CMakeTestBadCommandLines
  666. -D gen=${CMAKE_TEST_GENERATOR}
  667. -D CMake_SOURCE_DIR=${CMake_SOURCE_DIR}
  668. -P ${CMake_SOURCE_DIR}/Tests/CMakeTestBadCommandLines/RunCMake.cmake
  669. )
  670. LIST(APPEND TEST_BUILD_DIRS
  671. "${CMake_BINARY_DIR}/Tests/CMakeTestBadCommandLines")
  672. ENDIF(CTEST_RUN_CMakeTestBadCommandLines)
  673. if(NOT DEFINED CTEST_RUN_CMakeTestMultipleConfigures)
  674. set(CTEST_RUN_CMakeTestMultipleConfigures ON)
  675. endif(NOT DEFINED CTEST_RUN_CMakeTestMultipleConfigures)
  676. IF(CTEST_RUN_CMakeTestMultipleConfigures)
  677. ADD_TEST(CMakeTestMultipleConfigures ${CMAKE_CMAKE_COMMAND}
  678. -D dir=${CMake_BINARY_DIR}/Tests/CMakeTestMultipleConfigures
  679. -D gen=${CMAKE_TEST_GENERATOR}
  680. -D CMake_SOURCE_DIR=${CMake_SOURCE_DIR}
  681. -P ${CMake_SOURCE_DIR}/Tests/CMakeTestMultipleConfigures/RunCMake.cmake
  682. )
  683. LIST(APPEND TEST_BUILD_DIRS
  684. "${CMake_BINARY_DIR}/Tests/CMakeTestMultipleConfigures")
  685. ENDIF(CTEST_RUN_CMakeTestMultipleConfigures)
  686. ADD_TEST(LoadedCommandOneConfig ${CMAKE_CTEST_COMMAND}
  687. --build-and-test
  688. "${CMake_SOURCE_DIR}/Tests/LoadCommandOneConfig"
  689. "${CMake_BINARY_DIR}/Tests/LoadCommandOneConfig"
  690. --build-generator ${CMAKE_TEST_GENERATOR}
  691. --build-project LoadCommand
  692. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  693. --test-command LoadedCommand
  694. )
  695. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/LoadCommandOneConfig")
  696. # Como does not seem to support shared libraries.
  697. GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_CXX_COMPILER} NAME_WE)
  698. IF(CMAKE_BASE_NAME MATCHES "^como$")
  699. SET(COMPILER_IS_COMO 1)
  700. ENDIF(CMAKE_BASE_NAME MATCHES "^como$")
  701. IF(NOT COMPILER_IS_COMO)
  702. SET(COMPLEX_TEST_CMAKELIB 1)
  703. IF(CMAKE_TEST_DIFFERENT_GENERATOR OR CMAKE_TEST_SYSTEM_LIBRARIES)
  704. SET(COMPLEX_TEST_CMAKELIB 0)
  705. ENDIF(CMAKE_TEST_DIFFERENT_GENERATOR OR CMAKE_TEST_SYSTEM_LIBRARIES)
  706. IF(BORLAND)
  707. SET(COMPLEX_TEST_CMAKELIB 0)
  708. ENDIF(BORLAND)
  709. ADD_TEST(complex ${CMAKE_CTEST_COMMAND}
  710. --build-and-test
  711. "${CMake_SOURCE_DIR}/Tests/Complex"
  712. "${CMake_BINARY_DIR}/Tests/Complex"
  713. --build-two-config
  714. --build-config-sample "${CMAKE_CTEST_COMMAND}"
  715. --build-generator ${CMAKE_TEST_GENERATOR}
  716. --build-project Complex
  717. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  718. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Complex/bin"
  719. --build-options
  720. -DCOMPLEX_TEST_CMAKELIB:BOOL=${COMPLEX_TEST_CMAKELIB}
  721. -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
  722. --test-command complex
  723. )
  724. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Complex")
  725. ADD_TEST(complexOneConfig ${CMAKE_CTEST_COMMAND}
  726. --build-and-test
  727. "${CMake_SOURCE_DIR}/Tests/ComplexOneConfig"
  728. "${CMake_BINARY_DIR}/Tests/ComplexOneConfig"
  729. --build-generator ${CMAKE_TEST_GENERATOR}
  730. --build-project Complex
  731. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  732. --build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexOneConfig/bin"
  733. --build-options
  734. -DCOMPLEX_TEST_CMAKELIB:BOOL=${COMPLEX_TEST_CMAKELIB}
  735. -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
  736. --test-command complex)
  737. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/ComplexOneConfig")
  738. # because of the registry write these tests depend on each other
  739. SET_TESTS_PROPERTIES ( complex PROPERTIES DEPENDS complexOneConfig)
  740. # This fails on VS 70
  741. # works on Xcode and makefiles
  742. # ADD_TEST(ConvLibrary ${CMAKE_CTEST_COMMAND}
  743. # --build-and-test
  744. # "${CMake_SOURCE_DIR}/Tests/ConvLibrary"
  745. # "${CMake_BINARY_DIR}/Tests/ConvLibrary"
  746. # --build-two-config
  747. # --build-generator ${CMAKE_TEST_GENERATOR}
  748. # --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  749. # --build-project ConvLibrary
  750. # --test-command bartest)
  751. # ADD_TEST(complexRelativePaths ${CMAKE_CTEST_COMMAND}
  752. # --build-and-test
  753. # "${CMake_SOURCE_DIR}/Tests/ComplexRelativePaths"
  754. # "${CMake_BINARY_DIR}/Tests/ComplexRelativePaths"
  755. # --build-generator ${CMAKE_TEST_GENERATOR}
  756. # --build-project complex
  757. # --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  758. # --build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexRelativePaths/bin"
  759. # --build-options -DCMAKE_USE_RELATIVE_PATHS:BOOL=ON
  760. # --test-command complex)
  761. ENDIF(NOT COMPILER_IS_COMO)
  762. ADD_TEST(Example ${CMAKE_CTEST_COMMAND}
  763. --build-and-test
  764. "${CMake_SOURCE_DIR}/Example"
  765. "${CMake_BINARY_DIR}/Example"
  766. --build-generator ${CMAKE_TEST_GENERATOR}
  767. --build-project HELLO
  768. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  769. --build-exe-dir "${CMake_BINARY_DIR}/Example/Demo"
  770. --test-command helloDemo
  771. )
  772. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Example")
  773. ADD_TEST(Environment ${CMAKE_CTEST_COMMAND}
  774. --build-and-test
  775. "${CMake_SOURCE_DIR}/Tests/Environment"
  776. "${CMake_BINARY_DIR}/Tests/Environment"
  777. --build-generator ${CMAKE_TEST_GENERATOR}
  778. --build-project EnvironmentProj
  779. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  780. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Environment"
  781. --force-new-ctest-process
  782. --test-command ${CMAKE_CTEST_COMMAND} -V
  783. )
  784. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Environment")
  785. IF(NOT QT4_FOUND)
  786. FIND_PACKAGE(Qt4)
  787. ENDIF(NOT QT4_FOUND)
  788. IF(QT4_FOUND)
  789. # test whether the Qt4 which has been found works, on some machines
  790. # which run nightly builds there were errors like "wrong file format"
  791. # for libQtCore.so. So first check it works, and only if it does add
  792. # the automoc test.
  793. INCLUDE(CheckCXXSourceCompiles)
  794. SET(_save_CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES}")
  795. SET(_save_CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES}")
  796. SET(CMAKE_REQUIRED_INCLUDES ${QT_INCLUDES})
  797. SET(CMAKE_REQUIRED_LIBRARIES ${QT_QTCORE_LIBRARIES})
  798. CHECK_CXX_SOURCE_COMPILES("#include <QCoreApplication>\n int main() {return (qApp == 0 ? 0 : 1); }\n"
  799. QT4_WORKS_FOR_AUTOMOC_TEST)
  800. SET(CMAKE_REQUIRED_INCLUDES "${_save_CMAKE_REQUIRED_INCLUDES}")
  801. SET(CMAKE_REQUIRED_LIBRARIES "${_save_CMAKE_REQUIRED_LIBRARIES}")
  802. IF(QT4_WORKS_FOR_AUTOMOC_TEST)
  803. ADD_TEST(QtAutomoc ${CMAKE_CTEST_COMMAND}
  804. --build-and-test
  805. "${CMake_SOURCE_DIR}/Tests/QtAutomoc"
  806. "${CMake_BINARY_DIR}/Tests/QtAutomoc"
  807. --build-generator ${CMAKE_TEST_GENERATOR}
  808. --build-project QtAutomoc
  809. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  810. --build-exe-dir "${CMake_BINARY_DIR}/Tests/QtAutomoc"
  811. --force-new-ctest-process
  812. --build-options -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}
  813. --test-command ${CMAKE_CTEST_COMMAND} -V
  814. )
  815. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/QtAutomoc")
  816. ENDIF()
  817. ENDIF()
  818. ADD_TEST(ExternalProject ${CMAKE_CTEST_COMMAND}
  819. --build-and-test
  820. "${CMake_SOURCE_DIR}/Tests/ExternalProject"
  821. "${CMake_BINARY_DIR}/Tests/ExternalProject"
  822. --build-generator ${CMAKE_TEST_GENERATOR}
  823. --build-project ExternalProjectTest
  824. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  825. --build-exe-dir "${CMake_BINARY_DIR}/Tests/ExternalProject"
  826. --force-new-ctest-process
  827. --test-command ${CMAKE_CTEST_COMMAND} -V
  828. )
  829. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/ExternalProject")
  830. SET_TESTS_PROPERTIES(ExternalProject PROPERTIES
  831. TIMEOUT ${CMAKE_LONG_TEST_TIMEOUT})
  832. # do each of the tutorial steps
  833. FOREACH(STP RANGE 1 7)
  834. ADD_TEST(TutorialStep${STP} ${CMAKE_CTEST_COMMAND}
  835. --build-and-test
  836. "${CMake_SOURCE_DIR}/Tests/Tutorial/Step${STP}"
  837. "${CMake_BINARY_DIR}/Tests/Tutorial/Step${STP}"
  838. --build-two-config
  839. --build-generator ${CMAKE_TEST_GENERATOR}
  840. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  841. --build-project Tutorial
  842. --test-command Tutorial 25.0)
  843. ENDFOREACH(STP)
  844. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Tutorial")
  845. ADD_TEST(testing ${CMAKE_CTEST_COMMAND} -C \${CTEST_CONFIGURATION_TYPE}
  846. --build-and-test
  847. "${CMake_SOURCE_DIR}/Tests/Testing"
  848. "${CMake_BINARY_DIR}/Tests/Testing"
  849. --build-generator ${CMAKE_TEST_GENERATOR}
  850. --build-project Testing
  851. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  852. --test-command ${CMAKE_CTEST_COMMAND} -C \${CTEST_CONFIGURATION_TYPE}
  853. )
  854. SET_TESTS_PROPERTIES(testing PROPERTIES PASS_REGULAR_EXPRESSION "Passed")
  855. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Testing")
  856. ADD_TEST(wrapping ${CMAKE_CTEST_COMMAND}
  857. --build-and-test
  858. "${CMake_SOURCE_DIR}/Tests/Wrapping"
  859. "${CMake_BINARY_DIR}/Tests/Wrapping"
  860. --build-generator ${CMAKE_TEST_GENERATOR}
  861. --build-project Wrapping
  862. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  863. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  864. --test-command wrapping
  865. )
  866. ADD_TEST(qtwrapping ${CMAKE_CTEST_COMMAND}
  867. --build-and-test
  868. "${CMake_SOURCE_DIR}/Tests/Wrapping"
  869. "${CMake_BINARY_DIR}/Tests/Wrapping"
  870. --build-generator ${CMAKE_TEST_GENERATOR}
  871. --build-project Wrapping
  872. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  873. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  874. --test-command qtwrapping
  875. )
  876. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Wrapping")
  877. ADD_TEST(testdriver1 ${CMAKE_CTEST_COMMAND}
  878. --build-and-test
  879. "${CMake_SOURCE_DIR}/Tests/TestDriver"
  880. "${CMake_BINARY_DIR}/Tests/TestDriver"
  881. --build-generator ${CMAKE_TEST_GENERATOR}
  882. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  883. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  884. --build-project TestDriverTest
  885. --test-command TestDriverTest test1
  886. )
  887. ADD_TEST(testdriver2 ${CMAKE_CTEST_COMMAND}
  888. --build-and-test
  889. "${CMake_SOURCE_DIR}/Tests/TestDriver"
  890. "${CMake_BINARY_DIR}/Tests/TestDriver"
  891. --build-generator ${CMAKE_TEST_GENERATOR}
  892. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  893. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  894. --build-project TestDriverTest
  895. --test-command TestDriverTest test2
  896. )
  897. ADD_TEST(testdriver3 ${CMAKE_CTEST_COMMAND}
  898. --build-and-test
  899. "${CMake_SOURCE_DIR}/Tests/TestDriver"
  900. "${CMake_BINARY_DIR}/Tests/TestDriver"
  901. --build-generator ${CMAKE_TEST_GENERATOR}
  902. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  903. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  904. --build-project TestDriverTest
  905. --test-command TestDriverTest subdir/test3
  906. )
  907. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/TestDriver")
  908. ADD_TEST(Dependency ${CMAKE_CTEST_COMMAND}
  909. --build-and-test
  910. "${CMake_SOURCE_DIR}/Tests/Dependency"
  911. "${CMake_BINARY_DIR}/Tests/Dependency"
  912. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/Exec"
  913. --build-generator ${CMAKE_TEST_GENERATOR}
  914. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  915. --build-project Dependency
  916. --test-command exec
  917. )
  918. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Dependency")
  919. IF("${CMAKE_SYSTEM_NAME}" MATCHES syllable)
  920. # RPATH isn't supported under Syllable, so the tests don't
  921. # find their libraries. In order to fix that LIBRARY_OUTPUT_DIR
  922. # in the tests would have to be adjusted to ${EXECUTABLE_OUTPUT_DIR}/lib .
  923. # For now we just require on Syllable that the user adjusts the DLL_PATH
  924. # environment variable, so except the two tests below all other tests will succeed.
  925. SET(_DLL_PATH "$ENV{DLL_PATH}")
  926. IF(NOT "${_DLL_PATH}" MATCHES "^(.*:)?\\@bindir\\@/\\.(:.*)?$")
  927. MESSAGE(FATAL_ERROR "In order to successfully run the CMake test suite on Syllable you need to add \"\\@bindir\\@/.\" to the DLL_PATH environment variable")
  928. ENDIF(NOT "${_DLL_PATH}" MATCHES "^(.*:)?\\@bindir\\@/\\.(:.*)?$")
  929. IF(NOT "${_DLL_PATH}" MATCHES "^(.*:)?\\@bindir\\@/\\.\\./lib(:.*)?$")
  930. MESSAGE(FATAL_ERROR "In order to successfully run the CMake test suite on Syllable you need to add \"\\@bindir\\@/../lib\" to the DLL_PATH environment variable")
  931. ENDIF(NOT "${_DLL_PATH}" MATCHES "^(.*:)?\\@bindir\\@/\\.\\./lib(:.*)?$")
  932. ELSE("${CMAKE_SYSTEM_NAME}" MATCHES syllable)
  933. ADD_TEST(JumpWithLibOut ${CMAKE_CTEST_COMMAND}
  934. --build-and-test
  935. "${CMake_SOURCE_DIR}/Tests/Jump"
  936. "${CMake_BINARY_DIR}/Tests/Jump/WithLibOut"
  937. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Jump/WithLibOut/Executable"
  938. --build-project Jump
  939. --build-generator ${CMAKE_TEST_GENERATOR}
  940. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  941. --build-options
  942. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Jump/WithLibOut/Lib
  943. --test-command jumpExecutable
  944. )
  945. ADD_TEST(JumpNoLibOut ${CMAKE_CTEST_COMMAND}
  946. --build-and-test
  947. "${CMake_SOURCE_DIR}/Tests/Jump"
  948. "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut"
  949. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut/Executable"
  950. --build-run-dir "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut/Executable"
  951. --build-project Jump
  952. --build-generator ${CMAKE_TEST_GENERATOR}
  953. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  954. --test-command jumpExecutable
  955. )
  956. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Jump")
  957. ADD_TEST(Plugin ${CMAKE_CTEST_COMMAND}
  958. --build-and-test
  959. "${CMake_SOURCE_DIR}/Tests/Plugin"
  960. "${CMake_BINARY_DIR}/Tests/Plugin"
  961. --build-generator ${CMAKE_TEST_GENERATOR}
  962. --build-project Plugin
  963. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  964. --build-two-config
  965. --test-command bin/example)
  966. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Plugin")
  967. IF(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG)
  968. ADD_TEST_MACRO(RuntimePath RuntimePath)
  969. ENDIF(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG)
  970. ENDIF("${CMAKE_SYSTEM_NAME}" MATCHES syllable)
  971. ADD_TEST(linkorder1 ${CMAKE_CTEST_COMMAND}
  972. --build-and-test
  973. "${CMake_SOURCE_DIR}/Tests/LinkLineOrder"
  974. "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
  975. --build-generator ${CMAKE_TEST_GENERATOR}
  976. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  977. --build-project LinkLineOrder
  978. --test-command Exec1
  979. )
  980. ADD_TEST(linkorder2 ${CMAKE_CTEST_COMMAND}
  981. --build-and-test
  982. "${CMake_SOURCE_DIR}/Tests/LinkLineOrder"
  983. "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
  984. --build-generator ${CMAKE_TEST_GENERATOR}
  985. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  986. --build-project LinkLineOrder
  987. --test-command Exec2
  988. )
  989. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/LinkLineOrder")
  990. SET_TESTS_PROPERTIES ( qtwrapping PROPERTIES DEPENDS wrapping)
  991. SET_TESTS_PROPERTIES ( testdriver1 PROPERTIES DEPENDS qtwrapping)
  992. SET_TESTS_PROPERTIES ( testdriver2 PROPERTIES DEPENDS testdriver1)
  993. SET_TESTS_PROPERTIES ( testdriver3 PROPERTIES DEPENDS testdriver2)
  994. SET_TESTS_PROPERTIES ( linkorder2 PROPERTIES DEPENDS linkorder1)
  995. SET_TESTS_PROPERTIES ( SimpleInstall-Stage2 PROPERTIES DEPENDS SimpleInstall)
  996. # Test static linking on toolchains known to support it.
  997. IF("${CMAKE_C_COMPILER_ID}" MATCHES "^(GNU)$"
  998. AND NOT APPLE AND NOT WIN32 AND NOT CYGWIN
  999. AND EXISTS "/usr/lib/libm.a")
  1000. ADD_TEST(LinkStatic ${CMAKE_CTEST_COMMAND}
  1001. --build-and-test
  1002. "${CMake_SOURCE_DIR}/Tests/LinkStatic"
  1003. "${CMake_BINARY_DIR}/Tests/LinkStatic"
  1004. --build-generator ${CMAKE_TEST_GENERATOR}
  1005. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  1006. --build-project LinkStatic
  1007. --build-options -DMATH_LIBRARY:FILEPATH=/usr/lib/libm.a
  1008. --test-command LinkStatic
  1009. )
  1010. ENDIF()
  1011. IF(NOT CMAKE_TEST_DIFFERENT_GENERATOR)
  1012. ADD_TEST(kwsys ${CMAKE_CTEST_COMMAND}
  1013. --build-and-test
  1014. "${CMake_SOURCE_DIR}/Source/kwsys"
  1015. "${CMake_BINARY_DIR}/Tests/kwsys"
  1016. --build-generator ${CMAKE_TEST_GENERATOR}
  1017. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  1018. --build-project kwsys
  1019. --test-command kwsysTestsCxx testIOS
  1020. )
  1021. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/kwsys")
  1022. ENDIF(NOT CMAKE_TEST_DIFFERENT_GENERATOR)
  1023. SET(MAKE_IS_GNU )
  1024. IF(${CMAKE_TEST_MAKEPROGRAM} MATCHES make)
  1025. EXEC_PROGRAM(
  1026. ${CMAKE_TEST_MAKEPROGRAM} ARGS no_such_target --version
  1027. RETURN_VALUE res OUTPUT_VARIABLE out
  1028. )
  1029. IF("${res}" EQUAL 0)
  1030. IF("${out}" MATCHES "GNU")
  1031. SET(MAKE_IS_GNU 1)
  1032. ENDIF("${out}" MATCHES "GNU")
  1033. ENDIF("${res}" EQUAL 0)
  1034. ENDIF(${CMAKE_TEST_MAKEPROGRAM} MATCHES make)
  1035. # only add this test on platforms that support it
  1036. # some old versions of make simply cannot handle spaces in paths
  1037. IF (MAKE_IS_GNU OR
  1038. "${CMAKE_TEST_MAKEPROGRAM}" MATCHES "nmake|gmake|wmake" OR
  1039. "${CMAKE_TEST_GENERATOR}" MATCHES "Visual Studio|XCode|Borland")
  1040. ADD_TEST(SubDirSpaces ${CMAKE_CTEST_COMMAND}
  1041. --build-and-test
  1042. "${CMake_SOURCE_DIR}/Tests/SubDirSpaces"
  1043. "${CMake_BINARY_DIR}/Tests/SubDirSpaces"
  1044. --build-exe-dir
  1045. "${CMake_BINARY_DIR}/Tests/SubDirSpaces/Executable Sources"
  1046. --build-generator ${CMAKE_TEST_GENERATOR}
  1047. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  1048. --build-project SUBDIR
  1049. --test-command test
  1050. "${CMake_BINARY_DIR}/Tests/SubDirSpaces/ShouldBeHere"
  1051. "${CMake_BINARY_DIR}/Tests/SubDirSpaces/testfromsubdir.obj"
  1052. )
  1053. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/SubDirSpaces")
  1054. ENDIF (MAKE_IS_GNU OR
  1055. "${CMAKE_TEST_MAKEPROGRAM}" MATCHES "nmake|gmake|wmake" OR
  1056. "${CMAKE_TEST_GENERATOR}" MATCHES "Visual Studio|XCode|Borland")
  1057. IF (WIN32)
  1058. ADD_TEST(SubDir ${CMAKE_CTEST_COMMAND}
  1059. --build-and-test
  1060. "${CMake_SOURCE_DIR}/Tests/SubDir"
  1061. "${CMake_BINARY_DIR}/Tests/SubDir"
  1062. --build-exe-dir "${CMake_BINARY_DIR}/Tests/SubDir/Executable"
  1063. --build-generator ${CMAKE_TEST_GENERATOR}
  1064. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  1065. --build-project SUBDIR
  1066. --test-command test
  1067. "${CMake_BINARY_DIR}/Tests/SubDir/ShouldBeHere"
  1068. "${CMake_BINARY_DIR}/Tests/SubDir/testfromsubdir.obj"
  1069. )
  1070. ELSE (WIN32)
  1071. ADD_TEST(SubDir ${CMAKE_CTEST_COMMAND}
  1072. --build-and-test
  1073. "${CMake_SOURCE_DIR}/Tests/SubDir"
  1074. "${CMake_BINARY_DIR}/Tests/SubDir"
  1075. --build-exe-dir "${CMake_BINARY_DIR}/Tests/SubDir/Executable"
  1076. --build-generator ${CMAKE_TEST_GENERATOR}
  1077. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  1078. --build-project SUBDIR
  1079. --test-command test
  1080. "${CMake_BINARY_DIR}/Tests/SubDir/ShouldBeHere"
  1081. "${CMake_BINARY_DIR}/Tests/SubDir/testfromsubdir.o"
  1082. )
  1083. ENDIF (WIN32)
  1084. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/SubDir")
  1085. IF(CMAKE_TEST_MSVC)
  1086. ADD_TEST_MACRO(ForceInclude foo)
  1087. ADD_TEST_MACRO(PrecompiledHeader foo)
  1088. ENDIF()
  1089. IF(CMAKE_TEST_MSVC OR
  1090. "${CMAKE_TEST_GENERATOR}" MATCHES "(MSYS|MinGW) Makefiles")
  1091. ADD_TEST_MACRO(ModuleDefinition example_exe)
  1092. ENDIF()
  1093. ADD_TEST_MACRO(CheckCompilerRelatedVariables CheckCompilerRelatedVariables)
  1094. IF("${CMAKE_TEST_GENERATOR}" MATCHES "Makefile")
  1095. ADD_TEST(MakeClean ${CMAKE_CTEST_COMMAND}
  1096. --build-and-test
  1097. "${CMake_SOURCE_DIR}/Tests/MakeClean"
  1098. "${CMake_BINARY_DIR}/Tests/MakeClean"
  1099. --build-generator ${CMAKE_TEST_GENERATOR}
  1100. --build-project MakeClean
  1101. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  1102. --build-exe-dir "${CMake_BINARY_DIR}/MakeClean"
  1103. --test-command check_clean
  1104. )
  1105. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/MakeClean")
  1106. ENDIF("${CMAKE_TEST_GENERATOR}" MATCHES "Makefile")
  1107. IF(${CMAKE_TEST_GENERATOR} MATCHES "Visual Studio")
  1108. ADD_TEST(VSExternalInclude ${CMAKE_CTEST_COMMAND}
  1109. --build-and-test
  1110. "${CMake_SOURCE_DIR}/Tests/VSExternalInclude"
  1111. "${CMake_BINARY_DIR}/Tests/VSExternalInclude"
  1112. --build-two-config
  1113. --build-generator ${CMAKE_TEST_GENERATOR}
  1114. --build-project VSExternalInclude
  1115. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  1116. --test-command VSExternalInclude)
  1117. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/VSExternalInclude")
  1118. ADD_TEST(VSMidl ${CMAKE_CTEST_COMMAND}
  1119. --build-and-test
  1120. "${CMake_SOURCE_DIR}/Tests/VSMidl"
  1121. "${CMake_BINARY_DIR}/Tests/VSMidl"
  1122. --build-two-config
  1123. --build-generator ${CMAKE_TEST_GENERATOR}
  1124. --build-project VSMidl
  1125. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  1126. --test-command VSMidl)
  1127. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/VSMidl")
  1128. ENDIF(${CMAKE_TEST_GENERATOR} MATCHES "Visual Studio")
  1129. IF (APPLE AND CMAKE_COMPILER_IS_GNUCXX)
  1130. SET(BundleTestInstallDir
  1131. "${CMake_BINARY_DIR}/Tests/BundleTest/InstallDirectory")
  1132. ADD_TEST(BundleTest ${CMAKE_CTEST_COMMAND}
  1133. --build-and-test
  1134. "${CMake_SOURCE_DIR}/Tests/BundleTest"
  1135. "${CMake_BINARY_DIR}/Tests/BundleTest"
  1136. --build-two-config
  1137. --build-generator ${CMAKE_TEST_GENERATOR}
  1138. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  1139. --build-project BundleTest
  1140. --build-target install
  1141. # --build-target package
  1142. --build-options "-DCMAKE_INSTALL_PREFIX:PATH=${BundleTestInstallDir}"
  1143. "-DCMake_SOURCE_DIR:PATH=${CMake_SOURCE_DIR}"
  1144. --test-command
  1145. ${BundleTestInstallDir}/Applications/SecondBundleExe.app/Contents/MacOS/SecondBundleExe)
  1146. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/BundleTest")
  1147. ADD_TEST(CFBundleTest ${CMAKE_CTEST_COMMAND}
  1148. --build-and-test
  1149. "${CMake_SOURCE_DIR}/Tests/CFBundleTest"
  1150. "${CMake_BINARY_DIR}/Tests/CFBundleTest"
  1151. --build-two-config
  1152. --build-generator ${CMAKE_TEST_GENERATOR}
  1153. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  1154. --build-project CFBundleTest
  1155. --test-command
  1156. ${CMAKE_CMAKE_COMMAND} -DCTEST_CONFIGURATION_TYPE=\${CTEST_CONFIGURATION_TYPE}
  1157. -Ddir=${CMake_BINARY_DIR}/Tests/CFBundleTest
  1158. -Dgen=${CMAKE_TEST_GENERATOR}
  1159. -P ${CMake_SOURCE_DIR}/Tests/CFBundleTest/VerifyResult.cmake)
  1160. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/CFBundleTest")
  1161. ADD_TEST_MACRO(ObjC++ ObjC++)
  1162. ENDIF (APPLE AND CMAKE_COMPILER_IS_GNUCXX)
  1163. IF(APPLE AND CTEST_TEST_CPACK)
  1164. ADD_TEST(BundleGeneratorTest ${CMAKE_CTEST_COMMAND}
  1165. --build-and-test
  1166. "${CMake_SOURCE_DIR}/Tests/BundleGeneratorTest"
  1167. "${CMake_BINARY_DIR}/Tests/BundleGeneratorTest"
  1168. --build-two-config
  1169. --build-generator ${CMAKE_TEST_GENERATOR}
  1170. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  1171. --build-project BundleGeneratorTest
  1172. --build-target package
  1173. --build-options "-DCMAKE_INSTALL_PREFIX:PATH=${CMake_BINARY_DIR}/Tests/BundleGeneratorTest/InstallDirectory"
  1174. )
  1175. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/BundleGeneratorTest")
  1176. ENDIF(APPLE AND CTEST_TEST_CPACK)
  1177. ADD_TEST(WarnUnusedUnusedViaSet ${CMAKE_CTEST_COMMAND}
  1178. --build-and-test
  1179. "${CMake_SOURCE_DIR}/Tests/VariableUnusedViaSet"
  1180. "${CMake_BINARY_DIR}/Tests/WarnUnusedUnusedViaSet"
  1181. --build-generator ${CMAKE_TEST_GENERATOR}
  1182. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  1183. --build-noclean
  1184. --build-project WarnUnusedUnusedViaSet
  1185. --build-options "--warn-unused-vars")
  1186. SET_TESTS_PROPERTIES(WarnUnusedUnusedViaSet PROPERTIES
  1187. PASS_REGULAR_EXPRESSION "unused variable \\(changing definition\\) 'UNUSED_VARIABLE'")
  1188. SET_TESTS_PROPERTIES(WarnUnusedUnusedViaSet PROPERTIES
  1189. FAIL_REGULAR_EXPRESSION "unused variable \\(unsetting\\) 'UNUSED_VARIABLE'")
  1190. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/WarnUnusedUnusedViaSet")
  1191. ADD_TEST(WarnUnusedUnusedViaUnset ${CMAKE_CTEST_COMMAND}
  1192. --build-and-test
  1193. "${CMake_SOURCE_DIR}/Tests/VariableUnusedViaUnset"
  1194. "${CMake_BINARY_DIR}/Tests/WarnUnusedUnusedViaUnset"
  1195. --build-generator ${CMAKE_TEST_GENERATOR}
  1196. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  1197. --build-noclean
  1198. --build-project WarnUnusedUnusedViaUnset
  1199. --build-options "--warn-unused-vars")
  1200. SET_TESTS_PROPERTIES(WarnUnusedUnusedViaUnset PROPERTIES
  1201. PASS_REGULAR_EXPRESSION "CMake Warning .*:7 \\(set\\):")
  1202. SET_TESTS_PROPERTIES(WarnUnusedUnusedViaUnset PROPERTIES
  1203. FAIL_REGULAR_EXPRESSION "CMake Warning .*:5 \\(set\\):")
  1204. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/WarnUnusedUnusedViaUnset")
  1205. ADD_TEST(WarnUnusedCliUnused ${CMAKE_CTEST_COMMAND}
  1206. --build-and-test
  1207. "${CMake_SOURCE_DIR}/Tests/VariableUsage"
  1208. "${CMake_BINARY_DIR}/Tests/WarnUnusedCliUnused"
  1209. --build-generator ${CMAKE_TEST_GENERATOR}
  1210. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  1211. --build-noclean
  1212. --build-project WarnUnusedCliUnused
  1213. --build-options "-DUNUSED_CLI_VARIABLE=Unused")
  1214. SET_TESTS_PROPERTIES(WarnUnusedCliUnused PROPERTIES
  1215. PASS_REGULAR_EXPRESSION "CMake Warning:.*Manually-specified variables were not used by the project:.* UNUSED_CLI_VARIABLE")
  1216. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/WarnUnusedCliUnused")
  1217. ADD_TEST(WarnUnusedCliUsed ${CMAKE_CTEST_COMMAND}
  1218. --build-and-test
  1219. "${CMake_SOURCE_DIR}/Tests/VariableUsage"
  1220. "${CMake_BINARY_DIR}/Tests/WarnUnusedCliUsed"
  1221. --build-generator ${CMAKE_TEST_GENERATOR}
  1222. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  1223. --build-noclean
  1224. --build-project WarnUnusedCliUsed
  1225. --build-options "-DUSED_VARIABLE=Usage proven")
  1226. SET_TESTS_PROPERTIES(WarnUnusedCliUsed PROPERTIES
  1227. PASS_REGULAR_EXPRESSION "Usage proven")
  1228. SET_TESTS_PROPERTIES(WarnUnusedCliUsed PROPERTIES
  1229. FAIL_REGULAR_EXPRESSION "CMake Warning: The variable, 'USED_VARIABLE'")
  1230. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/WarnUnusedCliUsed")
  1231. ADD_TEST(WarnUninitialized ${CMAKE_CTEST_COMMAND}
  1232. --build-and-test
  1233. "${CMake_SOURCE_DIR}/Tests/VariableUsage"
  1234. "${CMake_BINARY_DIR}/Tests/WarnUninitialized"
  1235. --build-generator ${CMAKE_TEST_GENERATOR}
  1236. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  1237. --build-noclean
  1238. --build-project WarnUninitialized
  1239. --build-options "--warn-uninitialized")
  1240. SET_TESTS_PROPERTIES(WarnUninitialized PROPERTIES
  1241. PASS_REGULAR_EXPRESSION "uninitialized variable 'USED_VARIABLE'")
  1242. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/WarnUninitialized")
  1243. ADD_TEST(TestsWorkingDirectory ${CMAKE_CTEST_COMMAND}
  1244. --build-and-test
  1245. "${CMake_SOURCE_DIR}/Tests/TestsWorkingDirectory"
  1246. "${CMake_BINARY_DIR}/Tests/TestsWorkingDirectory"
  1247. --build-generator ${CMAKE_TEST_GENERATOR}
  1248. --build-project TestsWorkingDirectoryProj
  1249. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  1250. --build-exe-dir "${CMake_BINARY_DIR}/Tests/TestsWorkingDirectory"
  1251. --force-new-ctest-process
  1252. --test-command ${CMAKE_CTEST_COMMAND} -V -C \${CTEST_CONFIGURATION_TYPE}
  1253. )
  1254. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/TestsWorkingDirectory")
  1255. # Make sure CTest can handle a test with no newline in output.
  1256. ADD_TEST(CTest.NoNewline
  1257. ${CMAKE_CMAKE_COMMAND} -E echo_append "This line has no newline!")
  1258. # A simple test for ctest in script mode
  1259. CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestScriptMode/CTestTestScriptMode.cmake.in"
  1260. "${CMake_BINARY_DIR}/Tests/CTestScriptMode/CTestTestScriptMode.cmake" @ONLY)
  1261. # ADD_TEST(CTest.ScriptMode ${CMAKE_CTEST_COMMAND}
  1262. # -S "${CMake_BINARY_DIR}/Tests/CTestScriptMode/CTestTestScriptMode.cmake"
  1263. # )
  1264. SET(CTEST_TEST_UPDATE 1)
  1265. IF(CTEST_TEST_UPDATE)
  1266. # Test CTest Update with Subversion
  1267. FIND_PACKAGE(Subversion QUIET)
  1268. IF(Subversion_FOUND)
  1269. GET_FILENAME_COMPONENT(_Subversion_BIN_DIR
  1270. ${Subversion_SVN_EXECUTABLE} PATH)
  1271. FIND_PROGRAM(Subversion_SVNADMIN_EXECUTABLE svnadmin
  1272. HINTS ${_Subversion_BIN_DIR}
  1273. )
  1274. MARK_AS_ADVANCED(Subversion_SVNADMIN_EXECUTABLE)
  1275. IF(NOT Subversion_SVNADMIN_EXECUTABLE)
  1276. SET(Subversion_FOUND FALSE)
  1277. ENDIF(NOT Subversion_SVNADMIN_EXECUTABLE)
  1278. ENDIF(Subversion_FOUND)
  1279. IF(Subversion_FOUND)
  1280. SET(CTestUpdateSVN_DIR "CTest UpdateSVN")
  1281. CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestUpdateSVN.cmake.in"
  1282. "${CMake_BINARY_DIR}/Tests/CTestUpdateSVN.cmake" @ONLY)
  1283. ADD_TEST(CTest.UpdateSVN ${CMAKE_CMAKE_COMMAND}
  1284. -P "${CMake_BINARY_DIR}/Tests/CTestUpdateSVN.cmake"
  1285. )
  1286. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${CTestUpdateSVN_DIR}")
  1287. ENDIF(Subversion_FOUND)
  1288. # Test CTest Update with CVS
  1289. IF(EXISTS ${CMAKE_ROOT}/Modules/FindCVS.cmake)
  1290. FIND_PACKAGE(CVS QUIET)
  1291. ELSE(EXISTS ${CMAKE_ROOT}/Modules/FindCVS.cmake)
  1292. FIND_PROGRAM(CVS_EXECUTABLE NAMES cvs)
  1293. SET(CVS_FOUND ${CVS_EXECUTABLE})
  1294. ENDIF(EXISTS ${CMAKE_ROOT}/Modules/FindCVS.cmake)
  1295. SET(CTEST_TEST_UPDATE_CVS ${CVS_FOUND})
  1296. IF(CTEST_TEST_UPDATE_CVS AND NOT UNIX)
  1297. IF("${CVS_EXECUTABLE}" MATCHES "cygwin")
  1298. MESSAGE(STATUS "No CTest.UpdateCVS test with cygwin cvs.exe outside cygwin!")
  1299. SET(CTEST_TEST_UPDATE_CVS 0)
  1300. ENDIF("${CVS_EXECUTABLE}" MATCHES "cygwin")
  1301. ENDIF(CTEST_TEST_UPDATE_CVS AND NOT UNIX)
  1302. IF(CTEST_TEST_UPDATE_CVS)
  1303. SET(CTestUpdateCVS_DIR "CTest UpdateCVS")
  1304. CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestUpdateCVS.cmake.in"
  1305. "${CMake_BINARY_DIR}/Tests/CTestUpdateCVS.cmake" @ONLY)
  1306. ADD_TEST(CTest.UpdateCVS ${CMAKE_CMAKE_COMMAND}
  1307. -P "${CMake_BINARY_DIR}/Tests/CTestUpdateCVS.cmake"
  1308. )
  1309. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${CTestUpdateCVS_DIR}")
  1310. ENDIF(CTEST_TEST_UPDATE_CVS)
  1311. # Test CTest Update with BZR
  1312. FIND_PROGRAM(BZR_EXECUTABLE NAMES bzr)
  1313. MARK_AS_ADVANCED(BZR_EXECUTABLE)
  1314. SET(CTEST_TEST_UPDATE_BZR 0)
  1315. IF(BZR_EXECUTABLE)
  1316. IF(NOT "${BZR_EXECUTABLE}" MATCHES "cygwin" OR UNIX)
  1317. SET(CTEST_TEST_UPDATE_BZR 1)
  1318. ENDIF(NOT "${BZR_EXECUTABLE}" MATCHES "cygwin" OR UNIX)
  1319. ENDIF(BZR_EXECUTABLE)
  1320. IF(CTEST_TEST_UPDATE_BZR)
  1321. # Check if xmloutput plugin is there
  1322. EXECUTE_PROCESS(COMMAND ${BZR_EXECUTABLE} xmlplugins RESULT_VARIABLE xmlplugres
  1323. OUTPUT_QUIET ERROR_QUIET)
  1324. IF( NOT ${xmlplugres} )
  1325. SET(CTestUpdateBZR_DIR "CTest UpdateBZR")
  1326. CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestUpdateBZR.cmake.in"
  1327. "${CMake_BINARY_DIR}/Tests/CTestUpdateBZR.cmake" @ONLY)
  1328. ADD_TEST(CTest.UpdateBZR ${CMAKE_CMAKE_COMMAND}
  1329. -P "${CMake_BINARY_DIR}/Tests/CTestUpdateBZR.cmake"
  1330. )
  1331. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${CTestUpdateBZR_DIR}")
  1332. SET(CTestUpdateBZR_DIR "CTest UpdateBZR_CLocale")
  1333. CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestUpdateBZR.cmake.in"
  1334. "${CMake_BINARY_DIR}/Tests/CTestUpdateBZR_CLocale.cmake" @ONLY)
  1335. ADD_TEST(CTest.UpdateBZR.CLocale ${CMAKE_CMAKE_COMMAND}
  1336. -P "${CMake_BINARY_DIR}/Tests/CTestUpdateBZR_CLocale.cmake"
  1337. )
  1338. SET_TESTS_PROPERTIES(CTest.UpdateBZR.CLocale PROPERTIES ENVIRONMENT LC_ALL=C)
  1339. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${CTestUpdateBZR_DIR}")
  1340. ENDIF( NOT ${xmlplugres} )
  1341. ENDIF(CTEST_TEST_UPDATE_BZR)
  1342. # Test CTest Update with GIT
  1343. FIND_PROGRAM(GIT_EXECUTABLE NAMES git)
  1344. MARK_AS_ADVANCED(GIT_EXECUTABLE)
  1345. SET(CTEST_TEST_UPDATE_GIT 0)
  1346. IF(GIT_EXECUTABLE)
  1347. IF(NOT "${GIT_EXECUTABLE}" MATCHES "cygwin" OR UNIX)
  1348. SET(CTEST_TEST_UPDATE_GIT 1)
  1349. ENDIF(NOT "${GIT_EXECUTABLE}" MATCHES "cygwin" OR UNIX)
  1350. ENDIF(GIT_EXECUTABLE)
  1351. IF(CTEST_TEST_UPDATE_GIT)
  1352. SET(CTestUpdateGIT_DIR "CTest UpdateGIT")
  1353. CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestUpdateGIT.cmake.in"
  1354. "${CMake_BINARY_DIR}/Tests/CTestUpdateGIT.cmake" @ONLY)
  1355. ADD_TEST(CTest.UpdateGIT ${CMAKE_CMAKE_COMMAND}
  1356. -P "${CMake_BINARY_DIR}/Tests/CTestUpdateGIT.cmake"
  1357. )
  1358. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${CTestUpdateGIT_DIR}")
  1359. ENDIF(CTEST_TEST_UPDATE_GIT)
  1360. # Test CTest Update with HG
  1361. FIND_PROGRAM(HG_EXECUTABLE NAMES hg)
  1362. MARK_AS_ADVANCED(HG_EXECUTABLE)
  1363. SET(CTEST_TEST_UPDATE_HG 0)
  1364. IF(HG_EXECUTABLE)
  1365. IF(NOT "${HG_EXECUTABLE}" MATCHES "cygwin" OR UNIX)
  1366. SET(CTEST_TEST_UPDATE_HG 1)
  1367. ENDIF(NOT "${HG_EXECUTABLE}" MATCHES "cygwin" OR UNIX)
  1368. ENDIF(HG_EXECUTABLE)
  1369. IF(CTEST_TEST_UPDATE_HG)
  1370. SET(CTestUpdateHG_DIR "CTest UpdateHG")
  1371. CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestUpdateHG.cmake.in"
  1372. "${CMake_BINARY_DIR}/Tests/CTestUpdateHG.cmake" @ONLY)
  1373. ADD_TEST(CTest.UpdateHG ${CMAKE_CMAKE_COMMAND}
  1374. -P "${CMake_BINARY_DIR}/Tests/CTestUpdateHG.cmake"
  1375. )
  1376. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${CTestUpdateHG_DIR}")
  1377. ENDIF(CTEST_TEST_UPDATE_HG)
  1378. ENDIF(CTEST_TEST_UPDATE)
  1379. CONFIGURE_FILE(
  1380. "${CMake_SOURCE_DIR}/Tests/CTestTestFailure/testNoBuild.cmake.in"
  1381. "${CMake_BINARY_DIR}/Tests/CTestTestFailure/testNoBuild.cmake"
  1382. @ONLY ESCAPE_QUOTES)
  1383. ADD_TEST(CTestTestNoBuild ${CMAKE_CTEST_COMMAND}
  1384. -S "${CMake_BINARY_DIR}/Tests/CTestTestFailure/testNoBuild.cmake" -V
  1385. --output-log "${CMake_BINARY_DIR}/Tests/CTestTestFailure/testOut1.log"
  1386. )
  1387. SET_TESTS_PROPERTIES(CTestTestNoBuild PROPERTIES
  1388. FAIL_REGULAR_EXPRESSION "Error" WILL_FAIL true)
  1389. CONFIGURE_FILE(
  1390. "${CMake_SOURCE_DIR}/Tests/CTestTestFailure/testNoExe.cmake.in"
  1391. "${CMake_BINARY_DIR}/Tests/CTestTestFailure/testNoExe.cmake"
  1392. @ONLY ESCAPE_QUOTES)
  1393. ADD_TEST(CTestTestNoExe ${CMAKE_CTEST_COMMAND}
  1394. -S "${CMake_BINARY_DIR}/Tests/CTestTestFailure/testNoExe.cmake" -V
  1395. --output-log "${CMake_BINARY_DIR}/Tests/CTestTestFailure/testOut2.log"
  1396. )
  1397. SET_TESTS_PROPERTIES(CTestTestNoExe PROPERTIES DEPENDS CTestTestNoBuild
  1398. PASS_REGULAR_EXPRESSION "Could not find executable"
  1399. FAIL_REGULAR_EXPRESSION "SegFault")
  1400. CONFIGURE_FILE(
  1401. "${CMake_SOURCE_DIR}/Tests/CTestTestUpload/test.cmake.in"
  1402. "${CMake_BINARY_DIR}/Tests/CTestTestUpload/test.cmake"
  1403. @ONLY ESCAPE_QUOTES)
  1404. ADD_TEST(CTestTestUpload ${CMAKE_CTEST_COMMAND}
  1405. -S "${CMake_BINARY_DIR}/Tests/CTestTestUpload/test.cmake" -V
  1406. --output-log "${CMake_BINARY_DIR}/Tests/CTestTestUpload/testOut.log"
  1407. )
  1408. SET_TESTS_PROPERTIES(CTestTestUpload PROPERTIES
  1409. PASS_REGULAR_EXPRESSION "Upload\\.xml")
  1410. # Use macro, not function so that build can still be driven by CMake 2.4.
  1411. # After 2.6 is required, this could be a function without the extra 'set'
  1412. # calls.
  1413. #
  1414. macro(add_config_tests cfg)
  1415. set(cfg "${cfg}")
  1416. set(base "${CMake_BINARY_DIR}/Tests/CTestConfig")
  1417. # Test -S script with a -C config arg to ctest:
  1418. configure_file(
  1419. "${CMake_SOURCE_DIR}/Tests/CTestConfig/script.cmake.in"
  1420. "${base}/${cfg}-script.cmake"
  1421. @ONLY ESCAPE_QUOTES)
  1422. add_test(CTestConfig.Script.${cfg} ${CMAKE_CTEST_COMMAND}
  1423. -C ${cfg}
  1424. -S "${base}/${cfg}-script.cmake" -VV
  1425. --output-log "${base}/${cfg}-script.log"
  1426. )
  1427. # Test -D dashboard with a -C config arg to ctest.
  1428. # (Actual commands inside a cmake -P script because we need to be able to set
  1429. # the working directory reliably...)
  1430. configure_file(
  1431. "${CMake_SOURCE_DIR}/Tests/CTestConfig/dashboard.cmake.in"
  1432. "${base}/${cfg}-dashboard.cmake"
  1433. @ONLY ESCAPE_QUOTES)
  1434. add_test(CTestConfig.Dashboard.${cfg} ${CMAKE_CMAKE_COMMAND}
  1435. -P "${base}/${cfg}-dashboard.cmake" -VV
  1436. )
  1437. endmacro()
  1438. add_config_tests(Debug)
  1439. add_config_tests(MinSizeRel)
  1440. add_config_tests(Release)
  1441. add_config_tests(RelWithDebInfo)
  1442. add_test(CMakeCommands.build_command ${CMAKE_CMAKE_COMMAND}
  1443. -DCMake_SOURCE_DIR=${CMake_SOURCE_DIR}
  1444. -Ddir=${CMake_BINARY_DIR}/Tests/CMakeCommands/build_command
  1445. -Dgen=${CMAKE_TEST_GENERATOR}
  1446. -P "${CMake_SOURCE_DIR}/Tests/CMakeCommands/build_command/RunCMake.cmake"
  1447. )
  1448. CONFIGURE_FILE(
  1449. "${CMake_SOURCE_DIR}/Tests/CTestTestCrash/test.cmake.in"
  1450. "${CMake_BINARY_DIR}/Tests/CTestTestCrash/test.cmake"
  1451. @ONLY ESCAPE_QUOTES)
  1452. ADD_TEST(CTestTestCrash ${CMAKE_CTEST_COMMAND}
  1453. -S "${CMake_BINARY_DIR}/Tests/CTestTestCrash/test.cmake" -V
  1454. --output-log "${CMake_BINARY_DIR}/Tests/CTestTestCrash/testOutput.log"
  1455. )
  1456. # with watcom the SEGFAULT is not found, it just fails
  1457. IF(CMAKE_TEST_GENERATOR MATCHES "Watcom WMake")
  1458. SET_TESTS_PROPERTIES(CTestTestCrash PROPERTIES
  1459. PASS_REGULAR_EXPRESSION "Failed")
  1460. ELSE(CMAKE_TEST_GENERATOR MATCHES "Watcom WMake")
  1461. SET_TESTS_PROPERTIES(CTestTestCrash PROPERTIES
  1462. PASS_REGULAR_EXPRESSION "(Illegal|SegFault)")
  1463. ENDIF(CMAKE_TEST_GENERATOR MATCHES "Watcom WMake")
  1464. CONFIGURE_FILE(
  1465. "${CMake_SOURCE_DIR}/Tests/CTestTestBadExe/test.cmake.in"
  1466. "${CMake_BINARY_DIR}/Tests/CTestTestBadExe/test.cmake"
  1467. @ONLY ESCAPE_QUOTES)
  1468. ADD_TEST(CTestTestBadExe ${CMAKE_CTEST_COMMAND}
  1469. -S "${CMake_BINARY_DIR}/Tests/CTestTestBadExe/test.cmake" -V
  1470. --output-log "${CMake_BINARY_DIR}/Tests/CTestTestBadExe/testOutput.log"
  1471. )
  1472. SET(CTestTestBadExe_REGEX "BAD_COMMAND")
  1473. # some cygwin can not be made to produce a BAD_COMMAND error
  1474. # the best we can get from it is a failed test
  1475. IF(CYGWIN)
  1476. SET(CTestTestBadExe_REGEX "(\\*\\*\\*Failed)|BAD_COMMAND")
  1477. ENDIF()
  1478. SET_TESTS_PROPERTIES(CTestTestBadExe PROPERTIES
  1479. PASS_REGULAR_EXPRESSION "${CTestTestBadExe_REGEX}")
  1480. CONFIGURE_FILE(
  1481. "${CMake_SOURCE_DIR}/Tests/CTestTestParallel/test.cmake.in"
  1482. "${CMake_BINARY_DIR}/Tests/CTestTestParallel/test.cmake"
  1483. @ONLY ESCAPE_QUOTES)
  1484. ADD_TEST(CTestTestParallel ${CMAKE_CTEST_COMMAND}
  1485. -S "${CMake_BINARY_DIR}/Tests/CTestTestParallel/test.cmake" -V
  1486. --output-log "${CMake_BINARY_DIR}/Tests/CTestTestParallel/testOutput.log"
  1487. )
  1488. ADD_TEST(CTestTestPrintLabels ${CMAKE_CTEST_COMMAND} --print-labels)
  1489. SET_TESTS_PROPERTIES(CTestTestPrintLabels PROPERTIES LABELS "Label1;Label2")
  1490. SET_TESTS_PROPERTIES(CTestTestPrintLabels PROPERTIES PASS_REGULAR_EXPRESSION
  1491. "All Labels:.* Label1.* Label2")
  1492. CONFIGURE_FILE(
  1493. "${CMake_SOURCE_DIR}/Tests/CTestTestResourceLock/test.cmake.in"
  1494. "${CMake_BINARY_DIR}/Tests/CTestTestResourceLock/test.cmake"
  1495. @ONLY ESCAPE_QUOTES)
  1496. ADD_TEST(CTestTestResourceLock ${CMAKE_CTEST_COMMAND}
  1497. -S "${CMake_BINARY_DIR}/Tests/CTestTestResourceLock/test.cmake" -V
  1498. --output-log "${CMake_BINARY_DIR}/Tests/CTestTestResourceLock/output.log"
  1499. )
  1500. CONFIGURE_FILE(
  1501. "${CMake_SOURCE_DIR}/Tests/CTestTestScheduler/test.cmake.in"
  1502. "${CMake_BINARY_DIR}/Tests/CTestTestScheduler/test.cmake"
  1503. @ONLY ESCAPE_QUOTES)
  1504. ADD_TEST(CTestTestScheduler ${CMAKE_CTEST_COMMAND}
  1505. -S "${CMake_BINARY_DIR}/Tests/CTestTestScheduler/test.cmake" -V
  1506. --output-log "${CMake_BINARY_DIR}/Tests/CTestTestScheduler/testOutput.log"
  1507. )
  1508. SET_TESTS_PROPERTIES(CTestTestScheduler PROPERTIES
  1509. PASS_REGULAR_EXPRESSION "Start 1.*Start 2.*Start 3.*Start 4.*Start 4.*Start 3.*Start 2.*Start 1"
  1510. RESOURCE_LOCK "CostData")
  1511. CONFIGURE_FILE(
  1512. "${CMake_SOURCE_DIR}/Tests/CTestTestCostSerial/test.cmake.in"
  1513. "${CMake_BINARY_DIR}/Tests/CTestTestCostSerial/test.cmake"
  1514. @ONLY ESCAPE_QUOTES)
  1515. ADD_TEST(CTestTestCostSerial ${CMAKE_CTEST_COMMAND}
  1516. -S "${CMake_BINARY_DIR}/Tests/CTestTestCostSerial/test.cmake" -V
  1517. --output-log "${CMake_BINARY_DIR}/Tests/CTestTestCostSerial/testOutput.log"
  1518. )
  1519. SET_TESTS_PROPERTIES(CTestTestCostSerial PROPERTIES
  1520. PASS_REGULAR_EXPRESSION "Start 2.*Start 3.*Start 1.*Start 2.*Start 3.*Start 1"
  1521. RESOURCE_LOCK "CostData")
  1522. CONFIGURE_FILE(
  1523. "${CMake_SOURCE_DIR}/Tests/CTestTestStopTime/test.cmake.in"
  1524. "${CMake_BINARY_DIR}/Tests/CTestTestStopTime/test.cmake"
  1525. @ONLY ESCAPE_QUOTES)
  1526. CONFIGURE_FILE(
  1527. "${CMake_SOURCE_DIR}/Tests/CTestTestStopTime/GetDate.cmake"
  1528. "${CMake_BINARY_DIR}/Tests/CTestTestStopTime/GetDate.cmake"
  1529. COPYONLY)
  1530. ADD_TEST(CTestTestStopTime ${CMAKE_CTEST_COMMAND}
  1531. -S "${CMake_BINARY_DIR}/Tests/CTestTestStopTime/test.cmake" -V
  1532. --output-log "${CMake_BINARY_DIR}/Tests/CTestTestStopTime/testOutput.log"
  1533. )
  1534. SET_TESTS_PROPERTIES(CTestTestStopTime PROPERTIES
  1535. PASS_REGULAR_EXPRESSION "The stop time has been passed")
  1536. CONFIGURE_FILE(
  1537. "${CMake_SOURCE_DIR}/Tests/CTestTestSubdir/test.cmake.in"
  1538. "${CMake_BINARY_DIR}/Tests/CTestTestSubdir/test.cmake"
  1539. @ONLY ESCAPE_QUOTES)
  1540. ADD_TEST(CTestTestSubdir ${CMAKE_CTEST_COMMAND}
  1541. -S "${CMake_BINARY_DIR}/Tests/CTestTestSubdir/test.cmake" -V
  1542. --output-log "${CMake_BINARY_DIR}/Tests/CTestTestSubdir/testOutput.log"
  1543. )
  1544. #make sure all 3 subdirs were added
  1545. SET_TESTS_PROPERTIES(CTestTestSubdir PROPERTIES
  1546. PASS_REGULAR_EXPRESSION "0 tests failed out of 3")
  1547. CONFIGURE_FILE(
  1548. "${CMake_SOURCE_DIR}/Tests/CTestTestTimeout/test.cmake.in"
  1549. "${CMake_BINARY_DIR}/Tests/CTestTestTimeout/test.cmake"
  1550. @ONLY ESCAPE_QUOTES)
  1551. ADD_TEST(CTestTestTimeout ${CMAKE_CTEST_COMMAND}
  1552. -C "\${CTestTest_CONFIG}"
  1553. -S "${CMake_BINARY_DIR}/Tests/CTestTestTimeout/test.cmake" -V
  1554. --output-log "${CMake_BINARY_DIR}/Tests/CTestTestTimeout/testOutput.log"
  1555. )
  1556. SET_TESTS_PROPERTIES(CTestTestTimeout PROPERTIES
  1557. PASS_REGULAR_EXPRESSION "TestTimeout *\\.+ *\\*\\*\\*Timeout.*CheckChild *\\.+ *Passed")
  1558. CONFIGURE_FILE(
  1559. "${CMake_SOURCE_DIR}/Tests/CTestTestZeroTimeout/test.cmake.in"
  1560. "${CMake_BINARY_DIR}/Tests/CTestTestZeroTimeout/test.cmake"
  1561. @ONLY ESCAPE_QUOTES)
  1562. ADD_TEST(CTestTestZeroTimeout ${CMAKE_CTEST_COMMAND}
  1563. -S "${CMake_BINARY_DIR}/Tests/CTestTestZeroTimeout/test.cmake" -V
  1564. --output-log
  1565. "${CMake_BINARY_DIR}/Tests/CTestTestZeroTimeout/testOutput.log")
  1566. SET_TESTS_PROPERTIES(CTestTestZeroTimeout PROPERTIES
  1567. FAIL_REGULAR_EXPRESSION "\\*\\*\\*Timeout")
  1568. CONFIGURE_FILE(
  1569. "${CMake_SOURCE_DIR}/Tests/CTestTestDepends/test.cmake.in"
  1570. "${CMake_BINARY_DIR}/Tests/CTestTestDepends/test.cmake"
  1571. @ONLY ESCAPE_QUOTES)
  1572. ADD_TEST(CTestTestDepends ${CMAKE_CTEST_COMMAND}
  1573. -C "\${CTestTest_CONFIG}"
  1574. -S "${CMake_BINARY_DIR}/Tests/CTestTestDepends/test.cmake" -V
  1575. --output-log "${CMake_BINARY_DIR}/Tests/CTestTestDepends/testOutput.log"
  1576. )
  1577. CONFIGURE_FILE(
  1578. "${CMake_SOURCE_DIR}/Tests/CTestTestCycle/test.cmake.in"
  1579. "${CMake_BINARY_DIR}/Tests/CTestTestCycle/test.cmake"
  1580. @ONLY ESCAPE_QUOTES)
  1581. ADD_TEST(CTestTestCycle ${CMAKE_CTEST_COMMAND}
  1582. -C "\${CTestTest_CONFIG}"
  1583. -S "${CMake_BINARY_DIR}/Tests/CTestTestCycle/test.cmake" -V
  1584. --output-log "${CMake_BINARY_DIR}/Tests/CTestTestCycle/testOutput.log"
  1585. )
  1586. SET_TESTS_PROPERTIES(CTestTestCycle PROPERTIES
  1587. PASS_REGULAR_EXPRESSION "a cycle exists in the test dependency graph")
  1588. CONFIGURE_FILE(
  1589. "${CMake_SOURCE_DIR}/Tests/CTestTestRunScript/test.cmake.in"
  1590. "${CMake_BINARY_DIR}/Tests/CTestTestRunScript/test.cmake"
  1591. @ONLY ESCAPE_QUOTES)
  1592. CONFIGURE_FILE(
  1593. "${CMake_SOURCE_DIR}/Tests/CTestTestRunScript/hello.cmake.in"
  1594. "${CMake_BINARY_DIR}/Tests/CTestTestRunScript/hello.cmake"
  1595. @ONLY ESCAPE_QUOTES)
  1596. ADD_TEST(CTestTestRunScript ${CMAKE_CTEST_COMMAND}
  1597. -S "${CMake_BINARY_DIR}/Tests/CTestTestRunScript/test.cmake" -V
  1598. --output-log "${CMake_BINARY_DIR}/Tests/CTestTestRunScript/testOutput.log"
  1599. )
  1600. ADD_TEST(CTestTestShowOnly ${CMAKE_CTEST_COMMAND} -N)
  1601. ADD_TEST(CTestBatchTest ${CMAKE_CTEST_COMMAND} -B)
  1602. # Use macro, not function so that build can still be driven by CMake 2.4.
  1603. # After 2.6 is required, this could be a function without the extra 'set'
  1604. # calls.
  1605. #
  1606. macro(add_failed_submit_test name source build in out log regex)
  1607. # Have variables named source, build and drop_method because the
  1608. # configure_file call expects those variables to be defined.
  1609. #
  1610. set(source "${source}")
  1611. set(build "${build}")
  1612. configure_file("${in}" "${out}" @ONLY)
  1613. add_test(${name} ${CMAKE_CTEST_COMMAND} -S "${out}" -V --output-log "${log}")
  1614. set_tests_properties(${name} PROPERTIES PASS_REGULAR_EXPRESSION "${regex}")
  1615. endmacro()
  1616. set(regex "(Problems when submitting via S*CP")
  1617. set(regex "${regex}|Error message was: ")
  1618. set(regex "${regex}([Cc]ould *n.t resolve host")
  1619. set(regex "${regex}|[Cc]ould *n.t connect to host")
  1620. set(regex "${regex}|Empty reply from server")
  1621. set(regex "${regex}|The requested URL returned error")
  1622. set(regex "${regex}|libcurl was built with SSL disabled. https: not supported)")
  1623. set(regex "${regex}|Submission method .xmlrpc. not compiled into CTest")
  1624. set(regex "${regex}|Submission problem")
  1625. set(regex "${regex}|Submission successful)")
  1626. set(ctest_coverage_labels_args "")
  1627. foreach(drop_method cp ftp http https scp xmlrpc)
  1628. # Cycle through these values each time through the loop:
  1629. if(ctest_coverage_labels_args STREQUAL "")
  1630. set(ctest_coverage_labels_args "LABELS Everything")
  1631. elseif(ctest_coverage_labels_args STREQUAL "LABELS Everything")
  1632. set(ctest_coverage_labels_args "LABELS 0ArgTest")
  1633. else()
  1634. set(ctest_coverage_labels_args "")
  1635. endif()
  1636. add_failed_submit_test(CTestTestFailedSubmit-${drop_method}
  1637. "${CMake_SOURCE_DIR}/Tests/CTestTest/SmallAndFast"
  1638. "${CMake_BINARY_DIR}/Tests/CTestTestFailedSubmits/${drop_method}"
  1639. "${CMake_SOURCE_DIR}/Tests/CTestTestFailedSubmits/test.cmake.in"
  1640. "${CMake_BINARY_DIR}/Tests/CTestTestFailedSubmits/test-${drop_method}.cmake"
  1641. "${CMake_BINARY_DIR}/Tests/CTestTestFailedSubmits/test-${drop_method}.log"
  1642. "${regex}"
  1643. )
  1644. endforeach()
  1645. IF (CMAKE_TESTS_CDASH_SERVER)
  1646. SET(regex "^([^:]+)://([^/]+)(/.*)$")
  1647. IF ("${CMAKE_TESTS_CDASH_SERVER}" MATCHES "${regex}")
  1648. SET(protocol "${CMAKE_MATCH_1}")
  1649. SET(server "${CMAKE_MATCH_2}")
  1650. SET(path "${CMAKE_MATCH_3}")
  1651. ELSE ("${CMAKE_TESTS_CDASH_SERVER}" MATCHES "${regex}")
  1652. SET(protocol "http")
  1653. SET(server "www.cdash.org")
  1654. SET(path "/CDash")
  1655. MESSAGE("warning: CMAKE_TESTS_CDASH_SERVER does not match expected regex...")
  1656. MESSAGE(" ...using default url='${protocol}://${server}${path}' for CTestTest[23]")
  1657. ENDIF ("${CMAKE_TESTS_CDASH_SERVER}" MATCHES "${regex}")
  1658. ENDIF (CMAKE_TESTS_CDASH_SERVER)
  1659. IF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS AND CMAKE_TESTS_CDASH_SERVER)
  1660. CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest/test.cmake.in"
  1661. "${CMake_BINARY_DIR}/Tests/CTestTest/test.cmake" @ONLY ESCAPE_QUOTES)
  1662. ADD_TEST(CTestTest ${CMAKE_CTEST_COMMAND}
  1663. -S "${CMake_BINARY_DIR}/Tests/CTestTest/test.cmake" -V
  1664. --output-log "${CMake_BINARY_DIR}/Tests/CTestTest/testOutput.log"
  1665. )
  1666. CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest2/test.cmake.in"
  1667. "${CMake_BINARY_DIR}/Tests/CTestTest2/test.cmake" @ONLY ESCAPE_QUOTES)
  1668. ADD_TEST(CTestTest2 ${CMAKE_CTEST_COMMAND}
  1669. -S "${CMake_BINARY_DIR}/Tests/CTestTest2/test.cmake" -V
  1670. --output-log "${CMake_BINARY_DIR}/Tests/CTestTest2/testOutput.log"
  1671. )
  1672. CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTestChecksum/test.cmake.in"
  1673. "${CMake_BINARY_DIR}/Tests/CTestTestChecksum/test.cmake" @ONLY
  1674. ESCAPE_QUOTES)
  1675. ADD_TEST(CTestTestChecksum ${CMAKE_CTEST_COMMAND}
  1676. -S "${CMake_BINARY_DIR}/Tests/CTestTestChecksum/test.cmake" -V
  1677. --output-log
  1678. "${CMake_BINARY_DIR}/Tests/CTestTestChecksum/testOutput.log"
  1679. )
  1680. SET_TESTS_PROPERTIES(CTestTestChecksum PROPERTIES PASS_REGULAR_EXPRESSION
  1681. "Submission failed: Checksum failed for file")
  1682. # these tests take a long time, make sure they have it
  1683. # if timeouts have not already been set
  1684. GET_TEST_PROPERTY(CTestTest TIMEOUT PREVIOUS_TIMEOUT)
  1685. IF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND)
  1686. SET_TESTS_PROPERTIES ( CTestTest
  1687. PROPERTIES TIMEOUT ${CMAKE_LONG_TEST_TIMEOUT})
  1688. ENDIF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND)
  1689. GET_TEST_PROPERTY(CTestTest2 TIMEOUT PREVIOUS_TIMEOUT)
  1690. IF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND)
  1691. SET_TESTS_PROPERTIES ( CTestTest2
  1692. PROPERTIES TIMEOUT ${CMAKE_LONG_TEST_TIMEOUT})
  1693. ENDIF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND)
  1694. ENDIF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS AND CMAKE_TESTS_CDASH_SERVER)
  1695. IF (CMAKE_RUN_LONG_TESTS AND TEST_KDE4_STABLE_BRANCH)
  1696. IF(UNIX)
  1697. IF(NOT QT4_FOUND)
  1698. FIND_PACKAGE(Qt4)
  1699. ENDIF(NOT QT4_FOUND)
  1700. SET(TRY_BUILD_KDE4 TRUE)
  1701. IF(QT4_FOUND)
  1702. # check whether it's Qt 4.5 in a cmake 2.4. compatible way:
  1703. IF(NOT EXISTS "${QT_QTNETWORK_INCLUDE_DIR}/QAbstractNetworkCache")
  1704. SET(TRY_BUILD_KDE4 FALSE)
  1705. ENDIF(NOT EXISTS "${QT_QTNETWORK_INCLUDE_DIR}/QAbstractNetworkCache")
  1706. ELSE(QT4_FOUND)
  1707. SET(TRY_BUILD_KDE4 FALSE)
  1708. ENDIF(QT4_FOUND)
  1709. FIND_PACKAGE(Perl)
  1710. IF(NOT PERL_FOUND)
  1711. SET(TRY_BUILD_KDE4 FALSE)
  1712. ENDIF(NOT PERL_FOUND)
  1713. FIND_PACKAGE(ZLIB)
  1714. IF(NOT ZLIB_FOUND)
  1715. SET(TRY_BUILD_KDE4 FALSE)
  1716. ENDIF(NOT ZLIB_FOUND)
  1717. IF(TRY_BUILD_KDE4)
  1718. FILE(MAKE_DIRECTORY ${CMake_BINARY_DIR}/Tests/KDE4StableBranchTest)
  1719. SET(TEST_KDE4_BASE_DIR ${CMake_BINARY_DIR}/Tests/KDE4StableBranchTest)
  1720. CONFIGURE_FILE(${CMake_SOURCE_DIR}/Tests/KDE4StableBranchTest/test_kde4.sh.in ${CMake_BINARY_DIR}/Tests/KDE4StableBranchTest/test_kde4.sh @ONLY)
  1721. EXECUTE_PROCESS(COMMAND chmod 755 ${CMake_BINARY_DIR}/Tests/KDE4StableBranchTest/test_kde4.sh )
  1722. ADD_TEST(KDE4StableBranchTest ${CMake_BINARY_DIR}/Tests/KDE4StableBranchTest/test_kde4.sh)
  1723. ENDIF(TRY_BUILD_KDE4)
  1724. ENDIF(UNIX)
  1725. ENDIF (CMAKE_RUN_LONG_TESTS AND TEST_KDE4_STABLE_BRANCH)
  1726. IF("${CMAKE_TEST_GENERATOR}" MATCHES Xcode)
  1727. SET(CMAKE_SKIP_BOOTSTRAP_TEST 1)
  1728. ENDIF("${CMAKE_TEST_GENERATOR}" MATCHES Xcode)
  1729. IF(EXISTS "${CMake_BINARY_DIR}/CMakeLists.txt")
  1730. # If there is CMakeLists.txt in the binary tree, assume in-source build
  1731. SET(CMAKE_SKIP_BOOTSTRAP_TEST 1)
  1732. ENDIF(EXISTS "${CMake_BINARY_DIR}/CMakeLists.txt")
  1733. SET(bootstrap "")
  1734. IF(CMAKE_RUN_LONG_TESTS AND NOT CMAKE_SKIP_BOOTSTRAP_TEST)
  1735. IF(UNIX)
  1736. SET(bootstrap ${CMake_SOURCE_DIR}/bootstrap)
  1737. ELSEIF(MSYS)
  1738. CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/bootstrap.bat.in
  1739. ${CMAKE_CURRENT_BINARY_DIR}/bootstrap.bat @ONLY)
  1740. SET(bootstrap ${CMAKE_CURRENT_BINARY_DIR}/bootstrap.bat)
  1741. ENDIF()
  1742. ENDIF()
  1743. IF(bootstrap)
  1744. ADD_TEST(BootstrapTest ${CMAKE_CTEST_COMMAND}
  1745. --build-and-test
  1746. ${CMake_SOURCE_DIR}
  1747. ${CMake_BINARY_DIR}/Tests/BootstrapTest
  1748. --build-nocmake
  1749. --build-noclean
  1750. --build-makeprogram ${bootstrap}
  1751. --build-generator "${CMAKE_TEST_GENERATOR}"
  1752. --test-command
  1753. ${CMake_BINARY_DIR}/Tests/BootstrapTest/Bootstrap.cmk/cmake)
  1754. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/BootstrapTest")
  1755. # Make this test run early during parallel execution
  1756. SET_TESTS_PROPERTIES(BootstrapTest PROPERTIES COST 5000)
  1757. # provide more time for the bootstrap test
  1758. GET_TEST_PROPERTY(BootstrapTest TIMEOUT PREVIOUS_TIMEOUT)
  1759. IF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND)
  1760. SET_TESTS_PROPERTIES ( BootstrapTest
  1761. PROPERTIES TIMEOUT 5400)
  1762. ENDIF ("${PREVIOUS_TIMEOUT}" MATCHES NOTFOUND)
  1763. ENDIF()
  1764. IF(CMAKE_Fortran_COMPILER)
  1765. ADD_TEST(Fortran ${CMAKE_CTEST_COMMAND}
  1766. --build-and-test
  1767. "${CMake_SOURCE_DIR}/Tests/Fortran"
  1768. "${CMake_BINARY_DIR}/Tests/Fortran"
  1769. --build-generator ${CMAKE_TEST_GENERATOR}
  1770. --build-project testf
  1771. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  1772. --build-two-config
  1773. --test-command testf)
  1774. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Fortran")
  1775. # FortranCInterface tests.
  1776. IF(UNIX)
  1777. CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/FortranC/Flags.cmake.in
  1778. ${CMAKE_CURRENT_BINARY_DIR}/FortranC/Flags.cmake @ONLY)
  1779. ADD_TEST(FortranC.Flags ${CMAKE_CMAKE_COMMAND} -P
  1780. ${CMAKE_CURRENT_BINARY_DIR}/FortranC/Flags.cmake)
  1781. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/FortranC/Flags")
  1782. ELSE()
  1783. ADD_TEST(FortranC ${CMAKE_CTEST_COMMAND}
  1784. --build-and-test
  1785. "${CMake_SOURCE_DIR}/Tests/FortranC"
  1786. "${CMake_BINARY_DIR}/Tests/FortranC"
  1787. --build-generator ${CMAKE_TEST_GENERATOR}
  1788. --build-project FortranC
  1789. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  1790. --build-two-config
  1791. --test-command CMakeFiles/FortranCInterface/FortranCInterface)
  1792. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/FortranC")
  1793. ENDIF()
  1794. ENDIF()
  1795. find_package(Java COMPONENTS Development QUIET)
  1796. IF(Java_JAVA_EXECUTABLE AND Java_JAVAC_EXECUTABLE AND Java_JAR_EXECUTABLE AND NOT MINGW
  1797. AND NOT "${CMAKE_TEST_GENERATOR}" MATCHES "Xcode")
  1798. GET_FILENAME_COMPONENT(JNIPATH ${JAVA_COMPILE} PATH)
  1799. FIND_FILE(JNI_H jni.h
  1800. "${JNIPATH}/../include"
  1801. "${JNIPATH}/../java/include")
  1802. IF(JNI_H AND EXISTS "${JNI_H}") # in case jni.h is a broken symlink
  1803. FILE(READ "${JNI_H}" JNI_FILE)
  1804. IF("${JNI_FILE}" MATCHES "JDK1_2")
  1805. ADD_TEST(Java ${CMAKE_CTEST_COMMAND}
  1806. --build-and-test
  1807. "${CMake_SOURCE_DIR}/Tests/Java"
  1808. "${CMake_BINARY_DIR}/Tests/Java"
  1809. --build-generator ${CMAKE_TEST_GENERATOR}
  1810. --build-project hello
  1811. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  1812. --build-two-config
  1813. --build-run-dir "${CMake_BINARY_DIR}/Tests/Java/"
  1814. --test-command ${JAVA_RUNTIME} -classpath hello.jar HelloWorld)
  1815. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Java")
  1816. ENDIF("${JNI_FILE}" MATCHES "JDK1_2")
  1817. ENDIF()
  1818. ENDIF()
  1819. # add some cross compiler tests, for now only with makefile based generators
  1820. IF(CMAKE_TEST_GENERATOR MATCHES "Makefiles" OR CMAKE_TEST_GENERATOR MATCHES "KDevelop")
  1821. # if sdcc is found, build the SimpleCOnly project with sdcc
  1822. FIND_PROGRAM(SDCC_EXECUTABLE sdcc)
  1823. MARK_AS_ADVANCED(SDCC_EXECUTABLE)
  1824. IF(SDCC_EXECUTABLE)
  1825. ADD_TEST(SimpleCOnly_sdcc ${CMAKE_CTEST_COMMAND}
  1826. --build-and-test
  1827. "${CMake_SOURCE_DIR}/Tests/SimpleCOnly"
  1828. "${CMake_BINARY_DIR}/Tests/SimpleCOnly_sdcc"
  1829. --build-generator ${CMAKE_TEST_GENERATOR}
  1830. --build-project SimpleC
  1831. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  1832. --build-options
  1833. "-DCMAKE_SYSTEM_NAME=Generic"
  1834. "-DCMAKE_C_COMPILER=${SDCC_EXECUTABLE}")
  1835. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/SimpleCOnly_sdcc")
  1836. ENDIF(SDCC_EXECUTABLE)
  1837. # If a Linux -> MinGW cross compiler is found then try it
  1838. FIND_PROGRAM(MINGW_CC_LINUX2WIN_EXECUTABLE i586-mingw32msvc-gcc)
  1839. FIND_PROGRAM(MINGW_CXX_LINUX2WIN_EXECUTABLE i586-mingw32msvc-g++)
  1840. FIND_PROGRAM(MINGW_RC_LINUX2WIN_EXECUTABLE i586-mingw32msvc-windres)
  1841. MARK_AS_ADVANCED(MINGW_CC_LINUX2WIN_EXECUTABLE MINGW_CXX_LINUX2WIN_EXECUTABLE MINGW_RC_LINUX2WIN_EXECUTABLE)
  1842. IF(MINGW_CC_LINUX2WIN_EXECUTABLE AND MINGW_CXX_LINUX2WIN_EXECUTABLE AND MINGW_RC_LINUX2WIN_EXECUTABLE)
  1843. ADD_TEST(Simple_Mingw_Linux2Win ${CMAKE_CTEST_COMMAND}
  1844. --build-and-test
  1845. "${CMake_SOURCE_DIR}/Tests/Simple"
  1846. "${CMake_BINARY_DIR}/Tests/Simple_Mingw_Linux2Win"
  1847. --build-generator ${CMAKE_TEST_GENERATOR}
  1848. --build-project Simple
  1849. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  1850. --build-options
  1851. "-DCMAKE_SYSTEM_NAME=Windows"
  1852. "-DCMAKE_C_COMPILER=${MINGW_CC_LINUX2WIN_EXECUTABLE}"
  1853. "-DCMAKE_CXX_COMPILER=${MINGW_CXX_LINUX2WIN_EXECUTABLE}"
  1854. "-DCMAKE_RC_COMPILER=${MINGW_RC_LINUX2WIN_EXECUTABLE}"
  1855. )
  1856. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Simple_Mingw_Linux2Win")
  1857. ENDIF()
  1858. ENDIF(CMAKE_TEST_GENERATOR MATCHES "Makefiles" OR CMAKE_TEST_GENERATOR MATCHES "KDevelop")
  1859. IF(UNIX)
  1860. STRING(COMPARE EQUAL "${CMAKE_INSTALL_PREFIX}" "${CMake_BINARY_DIR}/Tests/TestShellInstall/Prefix"
  1861. PREFIX_IS_FOR_TEST)
  1862. IF(PREFIX_IS_FOR_TEST)
  1863. CONFIGURE_FILE(
  1864. ${CMake_SOURCE_DIR}/Tests/TestInstall.sh.in
  1865. ${CMake_BINARY_DIR}/Tests/TestShellInstall/TestInstall.sh
  1866. @ONLY IMMEDIATE
  1867. )
  1868. ADD_TEST(ShellInstall /bin/sh ${CMake_BINARY_DIR}/Tests/TestShellInstall/TestShellInstall.sh)
  1869. ENDIF(PREFIX_IS_FOR_TEST)
  1870. ENDIF(UNIX)
  1871. IF(CMAKE_TEST_PROJECT_CSE_DIR)
  1872. SET(script "${CMAKE_TEST_PROJECT_CSE_DIR}/BuildProjectCSE.cmake")
  1873. IF(NOT EXISTS "${script}")
  1874. SET(script "${CMAKE_TEST_PROJECT_CSE_DIR}/cse_build.cmake")
  1875. ENDIF(NOT EXISTS "${script}")
  1876. IF(NOT EXISTS "${script}")
  1877. MESSAGE("warning: CMAKE_TEST_PROJECT_CSE_DIR set, but no build script found...")
  1878. ENDIF(NOT EXISTS "${script}")
  1879. ADD_TEST(BuildCSE ${CMAKE_CTEST_COMMAND} -V -S "${script}")
  1880. SET_TESTS_PROPERTIES(BuildCSE PROPERTIES TIMEOUT 5400)
  1881. ENDIF(CMAKE_TEST_PROJECT_CSE_DIR)
  1882. IF(CMAKE_TEST_PLPLOT_DIR)
  1883. ADD_TEST(plplot ${CMAKE_CTEST_COMMAND} -V -S ${CMAKE_TEST_PLPLOT_DIR}/../../EasyDashboardScripts/plplot.cmake )
  1884. SET_TESTS_PROPERTIES ( plplot PROPERTIES TIMEOUT 5400)
  1885. ENDIF(CMAKE_TEST_PLPLOT_DIR)
  1886. IF(CMAKE_TEST_CHICKEN_DIR)
  1887. ADD_TEST(Chicken ${CMAKE_CTEST_COMMAND} -V -S ${CMAKE_TEST_CHICKEN_DIR}/../../EasyDashboardScripts/Chicken.cmake )
  1888. SET_TESTS_PROPERTIES ( Chicken PROPERTIES TIMEOUT 5400)
  1889. ENDIF(CMAKE_TEST_CHICKEN_DIR)
  1890. IF(CMAKE_TEST_KDELIBS_ALPHA_1_DIR)
  1891. ADD_TEST(KDELibsAlpha1 ${CMAKE_CTEST_COMMAND} -V -S ${CMAKE_TEST_KDELIBS_ALPHA_1_DIR}/../../EasyDashboardScripts/kdelibs.cmake )
  1892. SET_TESTS_PROPERTIES ( KDELibsAlpha1 PROPERTIES TIMEOUT 5400)
  1893. ENDIF(CMAKE_TEST_KDELIBS_ALPHA_1_DIR)
  1894. # If this is not an in-source build, provide a target to wipe out
  1895. # all the test build directories.
  1896. IF(NOT EXISTS "${CMake_BINARY_DIR}/CMakeLists.txt")
  1897. CONFIGURE_FILE(${CMake_SOURCE_DIR}/Tests/test_clean.cmake.in
  1898. ${CMake_BINARY_DIR}/Tests/test_clean.cmake @ONLY)
  1899. ADD_CUSTOM_TARGET(test_clean
  1900. COMMAND ${CMAKE_COMMAND} -P ${CMake_BINARY_DIR}/Tests/test_clean.cmake
  1901. COMMENT "Removing test build directories."
  1902. )
  1903. ENDIF(NOT EXISTS "${CMake_BINARY_DIR}/CMakeLists.txt")
  1904. ADD_TEST(CMakeWizardTest ${CMAKE_CMAKE_COMMAND}
  1905. -D build_dir:STRING=${CMAKE_CURRENT_BINARY_DIR}/CMakeWizardTest
  1906. -D source_dir:STRING=${CMAKE_CURRENT_SOURCE_DIR}/Tutorial/Step3
  1907. -D CMAKE_CTEST_COMMAND:STRING=${CMAKE_CTEST_COMMAND}
  1908. -P ${CMAKE_CURRENT_SOURCE_DIR}/CMakeWizardTest.cmake)
  1909. # If the cache variable CMAKE_CONTRACT_PROJECTS is set
  1910. # then the dashboard will run a contract with CMake test of that
  1911. # name. For example CMAKE_CONTRACT_PROJECTS = vtk542 would run
  1912. # the vtk542 contract test.
  1913. # For each Contract test, the project should provide a directory
  1914. # with at least one CMakeLists.txt file that uses ExternalProject
  1915. # to download and configure the project. The directory should also
  1916. # contain a RunTest.cmake file that has a single set of the format:
  1917. # SET(project_RUN_TEST testToRun)
  1918. # The testToRun should be a test executable that can be run to
  1919. # smoke test the build.
  1920. FOREACH(project ${CMAKE_CONTRACT_PROJECTS})
  1921. INCLUDE(Contracts/${project}/RunTest.cmake)
  1922. ADD_TEST_MACRO(Contracts.${project}
  1923. ${${project}_RUN_TEST})
  1924. # Contract test timeout in seconds.
  1925. # Default to 6 hours.
  1926. IF(DEFINED ${project}_TEST_TIMEOUT)
  1927. SET(timeout ${${project}_TEST_TIMEOUT})
  1928. ELSEIF(CMAKE_CONTRACT_TEST_TIMEOUT_DEFAULT)
  1929. SET(timeout ${CMAKE_CONTRACT_TEST_TIMEOUT_DEFAULT})
  1930. ELSE()
  1931. SET(timeout 21600)
  1932. ENDIF()
  1933. SET_TESTS_PROPERTIES(Contracts.${project} PROPERTIES TIMEOUT ${timeout})
  1934. ENDFOREACH()
  1935. IF(TEST_CompileCommandOutput)
  1936. SET(CompileCommandOutput_EXTRA_OPTIONS
  1937. --build-options -DMAKE_SUPPORTS_SPACES=${MAKE_IS_GNU})
  1938. ADD_TEST_MACRO(CompileCommandOutput
  1939. "${CMake_BINARY_DIR}/Tests/CMakeLib/runcompilecommands")
  1940. ENDIF()
  1941. ADD_TEST(IncludeDirectories ${CMAKE_CTEST_COMMAND}
  1942. --build-and-test
  1943. "${CMake_SOURCE_DIR}/Tests/IncludeDirectories"
  1944. "${CMake_BINARY_DIR}/Tests/IncludeDirectories"
  1945. --build-two-config
  1946. --build-generator ${CMAKE_TEST_GENERATOR}
  1947. --build-project IncludeDirectories
  1948. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  1949. --test-command IncludeDirectories)
  1950. LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/IncludeDirectories")
  1951. IF(CMAKE_USE_KWSTYLE AND KWSTYLE_EXECUTABLE)
  1952. # The "make StyleCheck" command line as a test. If the test fails, look
  1953. # for lines like "Error #0 (624) Line length exceed 88 (max=79)" in the
  1954. # output to find where the style errors are...
  1955. ADD_TEST(KWStyle ${KWSTYLE_EXECUTABLE}
  1956. -xml ${CMake_BINARY_DIR}/CMake.kws.xml
  1957. -o ${CMake_SOURCE_DIR}/Utilities/KWStyle/CMakeOverwrite.txt
  1958. -v
  1959. -D ${CMake_BINARY_DIR}/CMakeKWSFiles.txt
  1960. )
  1961. SET_TESTS_PROPERTIES(KWStyle PROPERTIES
  1962. WORKING_DIRECTORY ${CMake_BINARY_DIR}/Utilities/KWStyle)
  1963. ENDIF()
  1964. ENDIF(BUILD_TESTING)
  1965. SUBDIRS(CMakeTests)