CMakeLists.txt 38 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120
  1. CMAKE_MINIMUM_REQUIRED(VERSION 1.5)
  2. INCLUDE_REGULAR_EXPRESSION("^.*$")
  3. # configure the .h file
  4. CONFIGURE_FILE(
  5. "${CMake_SOURCE_DIR}/Source/cmConfigure.cmake.h.in"
  6. "${CMake_BINARY_DIR}/Source/cmConfigure.h"
  7. )
  8. CONFIGURE_FILE(
  9. "${CMake_SOURCE_DIR}/Source/CPack/cmCPackConfigure.h.in"
  10. "${CMake_BINARY_DIR}/Source/CPack/cmCPackConfigure.h"
  11. )
  12. # add the include path to find the .h
  13. INCLUDE_DIRECTORIES(
  14. "${CMake_BINARY_DIR}/Source"
  15. "${CMake_SOURCE_DIR}/Source"
  16. ${CMAKE_ZLIB_INCLUDES}
  17. ${CMAKE_EXPAT_INCLUDES}
  18. ${CMAKE_TAR_INCLUDES}
  19. )
  20. # let cmake know it is supposed to use it
  21. ADD_DEFINITIONS(-DCMAKE_BUILD_WITH_CMAKE)
  22. OPTION(CMAKE_REGENERATE_YACCLEX
  23. "Regenerate YACC and LEXX files" OFF)
  24. MARK_AS_ADVANCED(CMAKE_REGENERATE_YACCLEX)
  25. IF(CMAKE_REGENERATE_YACCLEX)
  26. SET(parsersLexers cmCommandArgument cmExpr)
  27. FIND_PROGRAM(YACC_EXECUTABLE
  28. NAMES yacc bison
  29. PATHS /usr/bin
  30. DOC "Yacc or Bison executable")
  31. FIND_PROGRAM(FLEX_EXECUTABLE
  32. NAMES flex
  33. PATHS /usr/bin
  34. DOC "Flex executable")
  35. MARK_AS_ADVANCED(YACC_EXECUTABLE FLEX_EXECUTABLE)
  36. IF(YACC_EXECUTABLE)
  37. SET(BISON_FLAGS)
  38. IF(YACC_EXECUTABLE MATCHES "bison")
  39. SET(BISON_FLAGS "--yacc")
  40. ENDIF(YACC_EXECUTABLE MATCHES "bison")
  41. SET(yacc_files)
  42. FOREACH(name ${parsersLexers})
  43. SET(src "${CMAKE_CURRENT_SOURCE_DIR}/${name}Parser.y")
  44. SET(dst "${CMAKE_CURRENT_BINARY_DIR}/${name}Parser.cxx")
  45. SET(hdr "${CMAKE_CURRENT_BINARY_DIR}/${name}ParserTokens.h")
  46. ADD_CUSTOM_COMMAND(
  47. OUTPUT "${dst}"
  48. DEPENDS "${src}"
  49. COMMAND ${YACC_EXECUTABLE}
  50. ARGS --name-prefix=${name}_yy --defines="${hdr}" -o"${dst}" "${src}")
  51. SET(yacc_files ${yacc_files} "${dst}")
  52. ENDFOREACH(name)
  53. ADD_CUSTOM_TARGET(RerunYacc DEPENDS ${yacc_files})
  54. ENDIF(YACC_EXECUTABLE)
  55. IF(FLEX_EXECUTABLE)
  56. SET(lex_files)
  57. FOREACH(name ${parsersLexers})
  58. SET(src "${CMAKE_CURRENT_SOURCE_DIR}/${name}Lexer.in.l")
  59. SET(dst "${CMAKE_CURRENT_BINARY_DIR}/${name}Lexer.cxx")
  60. SET(hdr "${CMAKE_CURRENT_BINARY_DIR}/${name}Lexer.h")
  61. ADD_CUSTOM_COMMAND(
  62. OUTPUT "${dst}"
  63. DEPENDS "${src}"
  64. COMMAND ${FLEX_EXECUTABLE}
  65. ARGS --prefix=${name}_yy --header-file="${hdr}" -o"${dst}" "${src}")
  66. SET(lex_files ${lex_files} "${dst}")
  67. ENDFOREACH(name)
  68. ADD_CUSTOM_TARGET(RerunLex DEPENDS ${lex_files})
  69. ENDIF(FLEX_EXECUTABLE)
  70. ENDIF(CMAKE_REGENERATE_YACCLEX)
  71. #
  72. # Sources for CMakeLib
  73. #
  74. SET(SRCS
  75. cmBootstrapCommands.cxx
  76. cmCacheManager.cxx
  77. cmCacheManager.h
  78. cmCommands.cxx
  79. cmCommands.h
  80. cmCommandArgumentLexer.cxx
  81. cmCommandArgumentParser.cxx
  82. cmCommandArgumentParserHelper.cxx
  83. cmCustomCommand.cxx
  84. cmCustomCommand.h
  85. cmDepends.cxx
  86. cmDepends.h
  87. cmDependsC.cxx
  88. cmDependsC.h
  89. cmDependsFortran.cxx
  90. cmDependsFortran.h
  91. cmDependsFortranLexer.cxx
  92. cmDependsFortranParser.cxx
  93. cmDependsFortranParser.h
  94. cmDependsJava.cxx
  95. cmDependsJava.h
  96. cmDependsJavaLexer.cxx
  97. cmDependsJavaParser.cxx
  98. cmDependsJavaParserHelper.cxx
  99. cmDependsJavaParserHelper.h
  100. cmDocumentation.cxx
  101. cmDynamicLoader.cxx
  102. cmDynamicLoader.h
  103. cmExprLexer.cxx
  104. cmExprParser.cxx
  105. cmExprParserHelper.cxx
  106. cmGeneratedFileStream.cxx
  107. cmGlobalGenerator.cxx
  108. cmGlobalGenerator.h
  109. cmGlobalUnixMakefileGenerator3.cxx
  110. cmGlobalUnixMakefileGenerator3.h
  111. cmInstallGenerator.h
  112. cmInstallGenerator.cxx
  113. cmInstallFilesGenerator.h
  114. cmInstallFilesGenerator.cxx
  115. cmInstallScriptGenerator.h
  116. cmInstallScriptGenerator.cxx
  117. cmInstallTargetGenerator.h
  118. cmInstallTargetGenerator.cxx
  119. cmListFileCache.cxx
  120. cmListFileCache.h
  121. cmListFileLexer.c
  122. cmLocalGenerator.cxx
  123. cmLocalGenerator.h
  124. cmLocalUnixMakefileGenerator3.cxx
  125. cmMakeDepend.cxx
  126. cmMakeDepend.h
  127. cmMakefile.cxx
  128. cmMakefile.h
  129. cmMakefileTargetGenerator.cxx
  130. cmMakefileExecutableTargetGenerator.cxx
  131. cmMakefileLibraryTargetGenerator.cxx
  132. cmMakefileUtilityTargetGenerator.cxx
  133. cmOrderLinkDirectories.cxx
  134. cmFileTimeComparison.cxx
  135. cmFileTimeComparison.h
  136. cmSourceFile.cxx
  137. cmSourceFile.h
  138. cmSourceGroup.cxx
  139. cmSourceGroup.h
  140. cmSystemTools.cxx
  141. cmSystemTools.h
  142. cmTarget.cxx
  143. cmTarget.h
  144. cmTest.cxx
  145. cmTest.h
  146. cmVariableWatch.cxx
  147. cmVariableWatch.h
  148. cmVersion.cxx
  149. cmVersion.h
  150. cmXMLParser.cxx
  151. cmXMLParser.h
  152. cmake.cxx
  153. cmake.h
  154. cmakewizard.cxx
  155. cmakewizard.h
  156. )
  157. # Kdevelop only works on UNIX and not windows
  158. IF(UNIX)
  159. SET(SRCS ${SRCS}
  160. cmGlobalKdevelopGenerator.cxx
  161. cmLocalKdevelopGenerator.cxx)
  162. ENDIF(UNIX)
  163. # XCode only works on apple
  164. IF(APPLE)
  165. SET(SRCS ${SRCS}
  166. cmXCodeObject.cxx
  167. cmXCode21Object.cxx
  168. cmGlobalXCodeGenerator.cxx
  169. cmGlobalXCodeGenerator.h
  170. cmGlobalXCode21Generator.cxx
  171. cmGlobalXCode21Generator.h
  172. cmLocalXCodeGenerator.cxx
  173. cmLocalXCodeGenerator.h)
  174. ENDIF(APPLE)
  175. IF (WIN32)
  176. IF(NOT UNIX)
  177. SET(SRCS ${SRCS}
  178. cmGlobalBorlandMakefileGenerator.cxx
  179. cmGlobalBorlandMakefileGenerator.h
  180. cmGlobalMSYSMakefileGenerator.cxx
  181. cmGlobalMinGWMakefileGenerator.cxx
  182. cmGlobalNMakeMakefileGenerator.cxx
  183. cmGlobalNMakeMakefileGenerator.h
  184. cmGlobalVisualStudio6Generator.cxx
  185. cmGlobalVisualStudio6Generator.h
  186. cmGlobalVisualStudio71Generator.cxx
  187. cmGlobalVisualStudio71Generator.h
  188. cmGlobalVisualStudio7Generator.cxx
  189. cmGlobalVisualStudio7Generator.h
  190. cmGlobalVisualStudio8Generator.cxx
  191. cmGlobalVisualStudio8Generator.h
  192. cmGlobalVisualStudio8Win64Generator.cxx
  193. cmGlobalVisualStudio8Win64Generator.h
  194. cmGlobalWatcomWMakeGenerator.cxx
  195. cmLocalVisualStudio6Generator.cxx
  196. cmLocalVisualStudio6Generator.h
  197. cmLocalVisualStudio7Generator.cxx
  198. cmLocalVisualStudio7Generator.h
  199. cmLocalVisualStudioGenerator.cxx
  200. cmLocalVisualStudioGenerator.h
  201. cmWin32ProcessExecution.cxx
  202. cmWin32ProcessExecution.h
  203. )
  204. ENDIF(NOT UNIX)
  205. ENDIF (WIN32)
  206. # create a library used by the command line and the GUI
  207. ADD_LIBRARY(CMakeLib ${SRCS})
  208. TARGET_LINK_LIBRARIES(CMakeLib cmsys ${CMAKE_EXPAT_LIBRARIES} ${CMAKE_ZLIB_LIBRARIES} ${CMAKE_TAR_LIBRARIES})
  209. # On Apple we need Carbon
  210. IF(APPLE)
  211. TARGET_LINK_LIBRARIES(CMakeLib "-framework Carbon")
  212. ENDIF(APPLE)
  213. # On some platforms we need the rpcrt4 library for the VS 7 generators.
  214. IF(CMAKE_BUILD_ON_VISUAL_STUDIO OR MINGW)
  215. TARGET_LINK_LIBRARIES(CMakeLib rpcrt4)
  216. ENDIF(CMAKE_BUILD_ON_VISUAL_STUDIO OR MINGW)
  217. #
  218. # CTestLib
  219. #
  220. INCLUDE_DIRECTORIES(
  221. "${CMAKE_SOURCE_DIR}/Source/CTest"
  222. ${CMAKE_XMLRPC_INCLUDES}
  223. ${CMAKE_CURL_INCLUDES}
  224. )
  225. #
  226. # Sources for CTestLib
  227. #
  228. SET(CMTEST_SRCS cmCTest.cxx
  229. CTest/cmCTestBuildAndTestHandler.cxx
  230. CTest/cmCTestBuildCommand.cxx
  231. CTest/cmCTestBuildHandler.cxx
  232. CTest/cmCTestConfigureCommand.cxx
  233. CTest/cmCTestConfigureHandler.cxx
  234. CTest/cmCTestCoverageCommand.cxx
  235. CTest/cmCTestCoverageHandler.cxx
  236. CTest/cmCTestEmptyBinaryDirectoryCommand.cxx
  237. CTest/cmCTestGenericHandler.cxx
  238. CTest/cmCTestHandlerCommand.cxx
  239. CTest/cmCTestMemCheckCommand.cxx
  240. CTest/cmCTestMemCheckHandler.cxx
  241. CTest/cmCTestReadCustomFilesCommand.cxx
  242. CTest/cmCTestRunScriptCommand.cxx
  243. CTest/cmCTestScriptHandler.cxx
  244. CTest/cmCTestSleepCommand.cxx
  245. CTest/cmCTestStartCommand.cxx
  246. CTest/cmCTestSubmitCommand.cxx
  247. CTest/cmCTestSubmitHandler.cxx
  248. CTest/cmCTestTestCommand.cxx
  249. CTest/cmCTestTestHandler.cxx
  250. CTest/cmCTestUpdateCommand.cxx
  251. CTest/cmCTestUpdateHandler.cxx
  252. )
  253. # Build CTestLib
  254. ADD_LIBRARY(CTestLib ${CMTEST_SRCS})
  255. TARGET_LINK_LIBRARIES(CTestLib CMakeLib ${CMAKE_CURL_LIBRARIES} ${CMAKE_XMLRPC_LIBRARIES})
  256. #
  257. # Sources for CPack
  258. #
  259. SET(CPACK_SRCS
  260. CPack/cmCPackGenerators.cxx
  261. CPack/cmCPackSTGZGenerator.cxx
  262. CPack/cmCPackTGZGenerator.cxx
  263. CPack/cmCPackNSISGenerator.cxx
  264. CPack/cmCPackPackageMakerGenerator.cxx
  265. CPack/cmCPackZIPGenerator.cxx
  266. CPack/cmCPackTarBZip2Generator.cxx
  267. CPack/cmCPackTarCompressGenerator.cxx
  268. CPack/cmCPackGenericGenerator.cxx
  269. CPack/cmCPackLog.cxx
  270. )
  271. # Build CPackLib
  272. ADD_LIBRARY(CPackLib ${CPACK_SRCS})
  273. TARGET_LINK_LIBRARIES(CPackLib CMakeLib)
  274. IF(APPLE)
  275. ADD_EXECUTABLE(cmakexbuild cmakexbuild.cxx)
  276. TARGET_LINK_LIBRARIES(cmakexbuild CMakeLib)
  277. ENDIF(APPLE)
  278. # Build CMake executable
  279. ADD_EXECUTABLE(cmake cmakemain.cxx)
  280. TARGET_LINK_LIBRARIES(cmake CMakeLib)
  281. ADD_EXECUTABLE(DumpDocumentation cmDumpDocumentation)
  282. TARGET_LINK_LIBRARIES(DumpDocumentation CMakeLib)
  283. # Build special executable for running programs on Windows 98
  284. IF(WIN32)
  285. IF(NOT UNIX)
  286. ADD_EXECUTABLE(cmw9xcom cmw9xcom.cxx)
  287. TARGET_LINK_LIBRARIES(cmw9xcom CMakeLib)
  288. ENDIF(NOT UNIX)
  289. ENDIF(WIN32)
  290. # Build CTest executable
  291. ADD_EXECUTABLE(ctest ctest.cxx)
  292. TARGET_LINK_LIBRARIES(ctest CTestLib)
  293. # Build CPack executable
  294. ADD_EXECUTABLE(cpack CPack/cpack.cxx)
  295. TARGET_LINK_LIBRARIES(cpack CPackLib)
  296. # Curses GUI
  297. IF(BUILD_CursesDialog)
  298. INCLUDE(${CMake_SOURCE_DIR}/Source/CursesDialog/CMakeLists.txt)
  299. ENDIF(BUILD_CursesDialog)
  300. # MFC GUI
  301. # MFC libraries are only available on Visual Studio
  302. IF(BUILD_MFCDialog)
  303. SUBDIRS(MFCDialog)
  304. ENDIF(BUILD_MFCDialog)
  305. # WX Widgets GUI
  306. OPTION(CMAKE_BUILD_WX_DIALOG "Build wxWidgets dialog for CMake" FALSE)
  307. MARK_AS_ADVANCED(CMAKE_BUILD_WX_DIALOG)
  308. IF(CMAKE_BUILD_WX_DIALOG)
  309. SUBDIRS(WXDialog)
  310. ENDIF(CMAKE_BUILD_WX_DIALOG)
  311. # Testing
  312. IF (NOT DART_ROOT)
  313. SET(MAKEPROGRAM ${CMAKE_MAKE_PROGRAM})
  314. ENDIF (NOT DART_ROOT)
  315. IF(BUILD_TESTING)
  316. SET(CMAKE_TEST_GENERATOR "" CACHE STRING "Generator used when running tests")
  317. SET(CMAKE_TEST_MAKEPROGRAM "" CACHE FILEPATH "Generator used when running tests")
  318. IF(NOT CMAKE_TEST_GENERATOR)
  319. SET(CMAKE_TEST_GENERATOR "${CMAKE_GENERATOR}")
  320. SET(CMAKE_TEST_MAKEPROGRAM "${MAKEPROGRAM}")
  321. ELSE(NOT CMAKE_TEST_GENERATOR)
  322. SET(CMAKE_TEST_DIFFERENT_GENERATOR TRUE)
  323. ENDIF(NOT CMAKE_TEST_GENERATOR)
  324. # This variable is set by cmake, however to
  325. # test cmake we want to make sure that
  326. # the ctest from this cmake is used for testing
  327. # and not the ctest from the cmake building and testing
  328. # cmake.
  329. SET(CMAKE_CTEST_COMMAND "${EXECUTABLE_OUTPUT_PATH}/ctest")
  330. # Should the long tests be run?
  331. OPTION(CMAKE_RUN_LONG_TESTS "Should the long tests be run (such as Bootstrap)." ON)
  332. MARK_AS_ADVANCED(CMAKE_RUN_LONG_TESTS)
  333. ADD_TEST(CommandLineTest ${CMAKE_CTEST_COMMAND}
  334. --build-and-test
  335. "${CMake_SOURCE_DIR}/Tests/CommandLineTest"
  336. "${CMake_BINARY_DIR}/Tests/CommandLineTest"
  337. --build-two-config
  338. --build-generator ${CMAKE_TEST_GENERATOR}
  339. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  340. --build-project CommandLineTest
  341. --test-command CommandLineTest)
  342. ADD_TEST(TarTest ${CMAKE_CTEST_COMMAND}
  343. --build-and-test
  344. "${CMake_SOURCE_DIR}/Tests/TarTest"
  345. "${CMake_BINARY_DIR}/Tests/TarTest"
  346. --build-two-config
  347. --build-generator ${CMAKE_TEST_GENERATOR}
  348. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  349. --build-project TestTar
  350. --test-command TestTarExec)
  351. ADD_TEST(CustomCommand ${CMAKE_CTEST_COMMAND}
  352. --build-and-test
  353. "${CMake_SOURCE_DIR}/Tests/CustomCommand"
  354. "${CMake_BINARY_DIR}/Tests/CustomCommand"
  355. --build-two-config
  356. --build-generator ${CMAKE_TEST_GENERATOR}
  357. --build-project CustomCommand
  358. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  359. --build-exe-dir "${CMake_BINARY_DIR}/Tests/CustomCommand/bin"
  360. --test-command CustomCommand
  361. )
  362. ADD_TEST(CustomCommandWorkingDirectory ${CMAKE_CTEST_COMMAND}
  363. --build-and-test
  364. "${CMake_SOURCE_DIR}/Tests/CustomCommandWorkingDirectory"
  365. "${CMake_BINARY_DIR}/Tests/CustomCommandWorkingDirectory"
  366. --build-two-config
  367. --build-generator ${CMAKE_TEST_GENERATOR}
  368. --build-project TestWorkingDir
  369. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  370. --build-exe-dir "${CMake_BINARY_DIR}/Tests/CustomCommandWorkingDirectory"
  371. --test-command working
  372. )
  373. ADD_TEST(FindPackageTest ${CMAKE_CTEST_COMMAND}
  374. --build-and-test
  375. "${CMake_SOURCE_DIR}/Tests/FindPackageTest"
  376. "${CMake_BINARY_DIR}/Tests/FindPackageTest"
  377. --build-two-config
  378. --build-generator ${CMAKE_TEST_GENERATOR}
  379. --build-project FindPackageTest
  380. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  381. --test-command FindPackageTest)
  382. ADD_TEST(SystemInformation ${CMAKE_CTEST_COMMAND}
  383. --build-and-test
  384. "${CMake_SOURCE_DIR}/Tests/SystemInformation"
  385. "${CMake_BINARY_DIR}/Tests/SystemInformation"
  386. --build-two-config
  387. --build-generator ${CMAKE_TEST_GENERATOR}
  388. --build-project DumpInformation
  389. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  390. --test-command DumpInformation)
  391. ADD_TEST(StringFileTest ${CMAKE_CTEST_COMMAND}
  392. --build-and-test
  393. "${CMake_SOURCE_DIR}/Tests/StringFileTest"
  394. "${CMake_BINARY_DIR}/Tests/StringFileTest"
  395. --build-two-config
  396. --build-generator ${CMAKE_TEST_GENERATOR}
  397. --build-project StringFileTest
  398. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  399. --test-command StringFileTest)
  400. ADD_TEST(MathTest ${CMAKE_CTEST_COMMAND}
  401. --build-and-test
  402. "${CMake_SOURCE_DIR}/Tests/MathTest"
  403. "${CMake_BINARY_DIR}/Tests/MathTest"
  404. --build-two-config
  405. --build-generator ${CMAKE_TEST_GENERATOR}
  406. --build-project MathTest
  407. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  408. --test-command MathTestExec)
  409. ADD_TEST(TryCompile ${CMAKE_CTEST_COMMAND}
  410. --build-and-test
  411. "${CMake_SOURCE_DIR}/Tests/TryCompile"
  412. "${CMake_BINARY_DIR}/Tests/TryCompile"
  413. --build-generator ${CMAKE_TEST_GENERATOR}
  414. --build-project TryCompile
  415. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  416. --build-two-config
  417. --test-command TryCompile)
  418. ADD_TEST(simple ${CMAKE_CTEST_COMMAND}
  419. --build-and-test
  420. "${CMake_SOURCE_DIR}/Tests/Simple"
  421. "${CMake_BINARY_DIR}/Tests/Simple"
  422. --build-generator ${CMAKE_TEST_GENERATOR}
  423. --build-project Simple
  424. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  425. --build-two-config
  426. --test-command simple)
  427. # ADD_TEST(SameName ${CMAKE_CTEST_COMMAND}
  428. # --build-and-test
  429. # "${CMake_SOURCE_DIR}/Tests/SameName"
  430. # "${CMake_BINARY_DIR}/Tests/SameName"
  431. # --build-generator ${CMAKE_TEST_GENERATOR}
  432. # --build-project SameName
  433. # --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  434. # --build-two-config
  435. # --test-command
  436. # "${CMake_BINARY_DIR}/Tests/SameName/Exe1/mytest2")
  437. ADD_TEST(OutOfSource ${CMAKE_CTEST_COMMAND}
  438. --build-and-test
  439. "${CMake_SOURCE_DIR}/Tests/OutOfSource"
  440. "${CMake_BINARY_DIR}/Tests/OutOfSource"
  441. --build-generator ${CMAKE_TEST_GENERATOR}
  442. --build-project OutOfSource
  443. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  444. --build-two-config
  445. --test-command
  446. "${CMake_BINARY_DIR}/Tests/OutOfSource/SubDir/OutOfSourceSubdir/simple")
  447. ADD_TEST(PreOrder ${CMAKE_CTEST_COMMAND}
  448. --build-and-test
  449. "${CMake_SOURCE_DIR}/Tests/PreOrder"
  450. "${CMake_BINARY_DIR}/Tests/PreOrder"
  451. --build-generator ${CMAKE_TEST_GENERATOR}
  452. --build-project PreOrder
  453. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  454. --build-two-config
  455. --test-command simple)
  456. ADD_TEST(conly ${CMAKE_CTEST_COMMAND}
  457. --build-and-test
  458. "${CMake_SOURCE_DIR}/Tests/COnly"
  459. "${CMake_BINARY_DIR}/Tests/COnly"
  460. --build-generator ${CMAKE_TEST_GENERATOR}
  461. --build-project conly
  462. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  463. --build-two-config
  464. --test-command conly)
  465. ADD_TEST(CxxOnly ${CMAKE_CTEST_COMMAND}
  466. --build-and-test
  467. "${CMake_SOURCE_DIR}/Tests/CxxOnly"
  468. "${CMake_BINARY_DIR}/Tests/CxxOnly"
  469. --build-generator ${CMAKE_TEST_GENERATOR}
  470. --build-project cxxonly
  471. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  472. --build-two-config
  473. --test-command cxxonly)
  474. ADD_TEST(MacroTest ${CMAKE_CTEST_COMMAND}
  475. --build-and-test
  476. "${CMake_SOURCE_DIR}/Tests/MacroTest"
  477. "${CMake_BINARY_DIR}/Tests/MacroTest"
  478. --build-generator ${CMAKE_TEST_GENERATOR}
  479. --build-project littleMacroTest
  480. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  481. --build-two-config
  482. --test-command miniMacroTest)
  483. SET(SimpleInstallInstallDir
  484. "${CMake_BINARY_DIR}/Tests/SimpleInstall/InstallDirectory")
  485. ADD_TEST(SimpleInstall ${CMAKE_CTEST_COMMAND}
  486. --build-and-test
  487. "${CMake_SOURCE_DIR}/Tests/SimpleInstall"
  488. "${CMake_BINARY_DIR}/Tests/SimpleInstall"
  489. --build-generator ${CMAKE_TEST_GENERATOR}
  490. --build-project TestSimpleInstall
  491. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  492. --build-two-config
  493. --build-options
  494. "-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}"
  495. --test-command ${SimpleInstallInstallDir}/MyTest/bin/SimpleInstallExe)
  496. ADD_TEST(SimpleInstall-Stage2 ${CMAKE_CTEST_COMMAND}
  497. --build-and-test
  498. "${CMake_SOURCE_DIR}/Tests/SimpleInstallS2"
  499. "${CMake_BINARY_DIR}/Tests/SimpleInstallS2"
  500. --build-generator ${CMAKE_TEST_GENERATOR}
  501. --build-project TestSimpleInstall
  502. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  503. --build-two-config
  504. --build-options
  505. "-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}"
  506. "-DSTAGE2:BOOL=1"
  507. --test-command ${SimpleInstallInstallDir}/MyTest/bin/SimpleInstallS2)
  508. ADD_TEST(X11 ${CMAKE_CTEST_COMMAND}
  509. --build-and-test
  510. "${CMake_SOURCE_DIR}/Tests/X11"
  511. "${CMake_BINARY_DIR}/Tests/X11"
  512. --build-generator ${CMAKE_TEST_GENERATOR}
  513. --build-project UseX11
  514. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  515. --build-two-config
  516. --test-command UseX11)
  517. ADD_TEST(LoadedCommand ${CMAKE_CTEST_COMMAND}
  518. --build-and-test
  519. "${CMake_SOURCE_DIR}/Tests/LoadCommand"
  520. "${CMake_BINARY_DIR}/Tests/LoadCommand"
  521. --build-generator ${CMAKE_TEST_GENERATOR}
  522. --build-project LoadedCommand
  523. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  524. --build-two-config
  525. --test-command LoadedCommand)
  526. ADD_TEST(LoadedCommandOneConfig ${CMAKE_CTEST_COMMAND}
  527. --build-and-test
  528. "${CMake_SOURCE_DIR}/Tests/LoadCommandOneConfig"
  529. "${CMake_BINARY_DIR}/Tests/LoadCommandOneConfig"
  530. --build-generator ${CMAKE_TEST_GENERATOR}
  531. --build-project LoadedCommand
  532. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  533. --test-command LoadedCommand
  534. )
  535. # Como does not seem to support shared libraries.
  536. GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_CXX_COMPILER} NAME_WE)
  537. IF(CMAKE_BASE_NAME MATCHES "^como$")
  538. SET(COMPILER_IS_COMO 1)
  539. ENDIF(CMAKE_BASE_NAME MATCHES "^como$")
  540. IF(NOT COMPILER_IS_COMO)
  541. ADD_TEST(complex ${CMAKE_CTEST_COMMAND}
  542. --build-and-test
  543. "${CMake_SOURCE_DIR}/Tests/Complex"
  544. "${CMake_BINARY_DIR}/Tests/Complex"
  545. --build-two-config
  546. --build-generator ${CMAKE_TEST_GENERATOR}
  547. --build-project complex
  548. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  549. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Complex/bin"
  550. --build-options
  551. -DCMAKE_TEST_DIFFERENT_GENERATOR:BOOL=${CMAKE_TEST_DIFFERENT_GENERATOR}
  552. --test-command complex
  553. )
  554. ADD_TEST(complexOneConfig ${CMAKE_CTEST_COMMAND}
  555. --build-and-test
  556. "${CMake_SOURCE_DIR}/Tests/ComplexOneConfig"
  557. "${CMake_BINARY_DIR}/Tests/ComplexOneConfig"
  558. --build-generator ${CMAKE_TEST_GENERATOR}
  559. --build-project complex
  560. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  561. --build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexOneConfig/bin"
  562. --build-options
  563. -DCMAKE_TEST_DIFFERENT_GENERATOR:BOOL=${CMAKE_TEST_DIFFERENT_GENERATOR}
  564. --test-command complex)
  565. # ADD_TEST(complexRelativePaths ${CMAKE_CTEST_COMMAND}
  566. # --build-and-test
  567. # "${CMake_SOURCE_DIR}/Tests/ComplexRelativePaths"
  568. # "${CMake_BINARY_DIR}/Tests/ComplexRelativePaths"
  569. # --build-generator ${CMAKE_TEST_GENERATOR}
  570. # --build-project complex
  571. # --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  572. # --build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexRelativePaths/bin"
  573. # --build-options -DCMAKE_USE_RELATIVE_PATHS:BOOL=ON
  574. # --test-command complex)
  575. ENDIF(NOT COMPILER_IS_COMO)
  576. ADD_TEST(Example ${CMAKE_CTEST_COMMAND}
  577. --build-and-test
  578. "${CMake_SOURCE_DIR}/Example"
  579. "${CMake_BINARY_DIR}/Example"
  580. --build-generator ${CMAKE_TEST_GENERATOR}
  581. --build-project HELLO
  582. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  583. --build-exe-dir "${CMake_BINARY_DIR}/Example/Demo"
  584. --test-command helloDemo
  585. )
  586. ADD_TEST(TutorialStep1 ${CMAKE_CTEST_COMMAND}
  587. --build-and-test
  588. "${CMake_SOURCE_DIR}/Tests/Tutorial/Step1"
  589. "${CMake_BINARY_DIR}/Tests/Tutorial/Step1"
  590. --build-two-config
  591. --build-generator ${CMAKE_TEST_GENERATOR}
  592. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  593. --build-project Tutorial
  594. --test-command Tutorial 25.0)
  595. ADD_TEST(TutorialStep2 ${CMAKE_CTEST_COMMAND}
  596. --build-and-test
  597. "${CMake_SOURCE_DIR}/Tests/Tutorial/Step2"
  598. "${CMake_BINARY_DIR}/Tests/Tutorial/Step2"
  599. --build-two-config
  600. --build-generator ${CMAKE_TEST_GENERATOR}
  601. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  602. --build-project Tutorial
  603. --test-command Tutorial 25.0)
  604. ADD_TEST(TutorialStep3 ${CMAKE_CTEST_COMMAND}
  605. --build-and-test
  606. "${CMake_SOURCE_DIR}/Tests/Tutorial/Step3"
  607. "${CMake_BINARY_DIR}/Tests/Tutorial/Step3"
  608. --build-two-config
  609. --build-generator ${CMAKE_TEST_GENERATOR}
  610. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  611. --build-project Tutorial
  612. --test-command Tutorial 25.0)
  613. ADD_TEST(TutorialStep4 ${CMAKE_CTEST_COMMAND}
  614. --build-and-test
  615. "${CMake_SOURCE_DIR}/Tests/Tutorial/Step4"
  616. "${CMake_BINARY_DIR}/Tests/Tutorial/Step4"
  617. --build-two-config
  618. --build-generator ${CMAKE_TEST_GENERATOR}
  619. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  620. --build-project Tutorial
  621. --test-command Tutorial 25.0)
  622. ADD_TEST(TutorialStep5 ${CMAKE_CTEST_COMMAND}
  623. --build-and-test
  624. "${CMake_SOURCE_DIR}/Tests/Tutorial/Step5"
  625. "${CMake_BINARY_DIR}/Tests/Tutorial/Step5"
  626. --build-two-config
  627. --build-generator ${CMAKE_TEST_GENERATOR}
  628. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  629. --build-project Tutorial
  630. --test-command Tutorial 25.0)
  631. ADD_TEST(testing ${CMAKE_CTEST_COMMAND}
  632. --build-and-test
  633. "${CMake_SOURCE_DIR}/Tests/Testing"
  634. "${CMake_BINARY_DIR}/Tests/Testing"
  635. --build-generator ${CMAKE_TEST_GENERATOR}
  636. --build-project testing
  637. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  638. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Testing/bin"
  639. --test-command testing
  640. )
  641. ADD_TEST(wrapping ${CMAKE_CTEST_COMMAND}
  642. --build-and-test
  643. "${CMake_SOURCE_DIR}/Tests/Wrapping"
  644. "${CMake_BINARY_DIR}/Tests/Wrapping"
  645. --build-generator ${CMAKE_TEST_GENERATOR}
  646. --build-project wrapping
  647. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  648. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  649. --test-command wrapping
  650. )
  651. # use the FindQt3.cmake from this cmake as it may not be in an older version of cmake
  652. INCLUDE (${CMAKE_SOURCE_DIR}/Modules/FindQt3.cmake)
  653. MARK_AS_ADVANCED(
  654. QT_INCLUDE_PATH
  655. QT_MOC_EXE
  656. QT_QT_LIBRARY
  657. QT_UIC_EXE)
  658. IF (QT_FOUND AND QT_UIC_EXECUTABLE)
  659. ADD_TEST(qtwrapping ${CMAKE_CTEST_COMMAND}
  660. --build-and-test
  661. "${CMake_SOURCE_DIR}/Tests/Wrapping"
  662. "${CMake_BINARY_DIR}/Tests/Wrapping"
  663. --build-generator ${CMAKE_TEST_GENERATOR}
  664. --build-project Wrapping
  665. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  666. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  667. --test-command qtwrapping
  668. )
  669. ENDIF (QT_FOUND AND QT_UIC_EXECUTABLE)
  670. ADD_TEST(testdriver1 ${CMAKE_CTEST_COMMAND}
  671. --build-and-test
  672. "${CMake_SOURCE_DIR}/Tests/TestDriver"
  673. "${CMake_BINARY_DIR}/Tests/TestDriver"
  674. --build-generator ${CMAKE_TEST_GENERATOR}
  675. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  676. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  677. --build-project TestDriverTest
  678. --test-command TestDriverTest test1
  679. )
  680. ADD_TEST(testdriver2 ${CMAKE_CTEST_COMMAND}
  681. --build-and-test
  682. "${CMake_SOURCE_DIR}/Tests/TestDriver"
  683. "${CMake_BINARY_DIR}/Tests/TestDriver"
  684. --build-generator ${CMAKE_TEST_GENERATOR}
  685. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  686. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  687. --build-project TestDriverTest
  688. --test-command TestDriverTest test2
  689. )
  690. ADD_TEST(testdriver3 ${CMAKE_CTEST_COMMAND}
  691. --build-and-test
  692. "${CMake_SOURCE_DIR}/Tests/TestDriver"
  693. "${CMake_BINARY_DIR}/Tests/TestDriver"
  694. --build-generator ${CMAKE_TEST_GENERATOR}
  695. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  696. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  697. --build-project TestDriverTest
  698. --test-command TestDriverTest subdir/test3
  699. )
  700. ADD_TEST(dependency_w_libout ${CMAKE_CTEST_COMMAND}
  701. --build-and-test
  702. "${CMake_SOURCE_DIR}/Tests/Dependency"
  703. "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
  704. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec"
  705. --build-project Dependency
  706. --build-generator ${CMAKE_TEST_GENERATOR}
  707. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  708. --build-options
  709. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
  710. --test-command exec
  711. )
  712. ADD_TEST(dependency_wo_lib_out ${CMAKE_CTEST_COMMAND}
  713. --build-and-test
  714. "${CMake_SOURCE_DIR}/Tests/Dependency"
  715. "${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut"
  716. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut/Exec"
  717. --build-generator ${CMAKE_TEST_GENERATOR}
  718. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  719. --build-project Dependency
  720. --test-command exec
  721. )
  722. ADD_TEST(dependency2 ${CMAKE_CTEST_COMMAND}
  723. --build-and-test
  724. "${CMake_SOURCE_DIR}/Tests/Dependency"
  725. "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
  726. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec2"
  727. --build-generator ${CMAKE_TEST_GENERATOR}
  728. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  729. --build-project Dependency
  730. --build-options
  731. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
  732. --test-command exec2
  733. )
  734. ADD_TEST(dependency3 ${CMAKE_CTEST_COMMAND}
  735. --build-and-test
  736. "${CMake_SOURCE_DIR}/Tests/Dependency"
  737. "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
  738. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec3"
  739. --build-generator ${CMAKE_TEST_GENERATOR}
  740. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  741. --build-project Dependency
  742. --build-options
  743. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
  744. --test-command exec3)
  745. ADD_TEST(dependency4 ${CMAKE_CTEST_COMMAND}
  746. --build-and-test
  747. "${CMake_SOURCE_DIR}/Tests/Dependency"
  748. "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
  749. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec4"
  750. --build-generator ${CMAKE_TEST_GENERATOR}
  751. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  752. --build-project Dependency
  753. --build-options
  754. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
  755. --test-command exec4
  756. )
  757. ADD_TEST(JumpWithLibOut ${CMAKE_CTEST_COMMAND}
  758. --build-and-test
  759. "${CMake_SOURCE_DIR}/Tests/Jump"
  760. "${CMake_BINARY_DIR}/Tests/Jump/WithLibOut"
  761. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Jump/WithLibOut/Executable"
  762. --build-project Jump
  763. --build-generator ${CMAKE_TEST_GENERATOR}
  764. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  765. --build-options
  766. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Jump/WithLibOut/Lib
  767. --test-command jumpExecutable
  768. )
  769. ADD_TEST(JumpNoLibOut ${CMAKE_CTEST_COMMAND}
  770. --build-and-test
  771. "${CMake_SOURCE_DIR}/Tests/Jump"
  772. "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut"
  773. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut/Executable"
  774. --build-run-dir "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut/Executable"
  775. --build-project Jump
  776. --build-generator ${CMAKE_TEST_GENERATOR}
  777. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  778. --test-command jumpExecutable
  779. )
  780. ADD_TEST(linkline ${CMAKE_CTEST_COMMAND}
  781. --build-and-test
  782. "${CMake_SOURCE_DIR}/Tests/LinkLine"
  783. "${CMake_BINARY_DIR}/Tests/LinkLine"
  784. --build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLine"
  785. --build-generator ${CMAKE_TEST_GENERATOR}
  786. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  787. --build-project Linkline
  788. --test-command Exec
  789. )
  790. ADD_TEST(linkorder1 ${CMAKE_CTEST_COMMAND}
  791. --build-and-test
  792. "${CMake_SOURCE_DIR}/Tests/LinkLineOrder"
  793. "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
  794. --build-generator ${CMAKE_TEST_GENERATOR}
  795. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  796. --build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
  797. --build-project LinkLineOrder
  798. --test-command Exec1
  799. )
  800. ADD_TEST(linkorder2 ${CMAKE_CTEST_COMMAND}
  801. --build-and-test
  802. "${CMake_SOURCE_DIR}/Tests/LinkLineOrder"
  803. "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
  804. --build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
  805. --build-generator ${CMAKE_TEST_GENERATOR}
  806. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  807. --build-project LinkLineOrder
  808. --test-command Exec2
  809. )
  810. ADD_TEST(ExternalOBJ ${CMAKE_CTEST_COMMAND}
  811. --build-and-test
  812. "${CMake_SOURCE_DIR}/Tests/ExternalOBJ"
  813. "${CMake_BINARY_DIR}/Tests/ExternalOBJ"
  814. --build-generator ${CMAKE_TEST_GENERATOR}
  815. --build-project ExternalOBJ
  816. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  817. --build-exe-dir "${CMake_BINARY_DIR}/ExternalOBJ"
  818. --test-command executable
  819. )
  820. IF(NOT CMAKE_TEST_DIFFERENT_GENERATOR)
  821. ADD_TEST(kwsys ${CMAKE_CTEST_COMMAND}
  822. --build-and-test
  823. "${CMake_SOURCE_DIR}/Source/kwsys"
  824. "${CMake_BINARY_DIR}/Tests/kwsys"
  825. --build-exe-dir "${CMake_BINARY_DIR}/Tests/kwsys"
  826. --build-generator ${CMAKE_TEST_GENERATOR}
  827. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  828. --build-project kwsys
  829. --test-command testIOS
  830. )
  831. ENDIF(NOT CMAKE_TEST_DIFFERENT_GENERATOR)
  832. IF (WIN32)
  833. ADD_TEST(SubDir ${CMAKE_CTEST_COMMAND}
  834. --build-and-test
  835. "${CMake_SOURCE_DIR}/Tests/SubDir"
  836. "${CMake_BINARY_DIR}/Tests/SubDir"
  837. --build-exe-dir "${CMake_BINARY_DIR}/Tests/SubDir/Executable"
  838. --build-generator ${CMAKE_TEST_GENERATOR}
  839. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  840. --build-project SUBDIR
  841. --test-command test
  842. "${CMake_BINARY_DIR}/Tests/SubDir/ShouldBeHere"
  843. "${CMake_BINARY_DIR}/Tests/SubDir/testfromsubdir.obj"
  844. )
  845. ELSE (WIN32)
  846. ADD_TEST(SubDir ${CMAKE_CTEST_COMMAND}
  847. --build-and-test
  848. "${CMake_SOURCE_DIR}/Tests/SubDir"
  849. "${CMake_BINARY_DIR}/Tests/SubDir"
  850. --build-exe-dir "${CMake_BINARY_DIR}/Tests/SubDir/Executable"
  851. --build-generator ${CMAKE_TEST_GENERATOR}
  852. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  853. --build-project SUBDIR
  854. --test-command test
  855. "${CMake_BINARY_DIR}/Tests/SubDir/ShouldBeHere"
  856. "${CMake_BINARY_DIR}/Tests/SubDir/testfromsubdir.o"
  857. )
  858. ENDIF (WIN32)
  859. IF("${CMAKE_TEST_GENERATOR}" MATCHES "Makefile")
  860. ADD_TEST(MakeClean ${CMAKE_CTEST_COMMAND}
  861. --build-and-test
  862. "${CMake_SOURCE_DIR}/Tests/MakeClean"
  863. "${CMake_BINARY_DIR}/Tests/MakeClean"
  864. --build-generator ${CMAKE_TEST_GENERATOR}
  865. --build-project MakeClean
  866. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  867. --build-exe-dir "${CMake_BINARY_DIR}/MakeClean"
  868. --test-command check_clean
  869. )
  870. ENDIF("${CMAKE_TEST_GENERATOR}" MATCHES "Makefile")
  871. IF(${CMAKE_TEST_GENERATOR} MATCHES "Visual Studio")
  872. ADD_TEST(VSExternalInclude ${CMAKE_CTEST_COMMAND}
  873. --build-and-test
  874. "${CMake_SOURCE_DIR}/Tests/VSExternalInclude"
  875. "${CMake_BINARY_DIR}/Tests/VSExternalInclude"
  876. --build-two-config
  877. --build-generator ${CMAKE_TEST_GENERATOR}
  878. --build-project VSExternalInclude
  879. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  880. --test-command VSExternalInclude)
  881. ENDIF(${CMAKE_TEST_GENERATOR} MATCHES "Visual Studio")
  882. IF (APPLE AND CMAKE_COMPILER_IS_GNUCXX)
  883. SET(BundleTestInstallDir
  884. "${CMake_BINARY_DIR}/Tests/BundleTest/InstallDirectory")
  885. ADD_TEST(BundleTest ${CMAKE_CTEST_COMMAND}
  886. --build-and-test
  887. "${CMake_SOURCE_DIR}/Tests/BundleTest"
  888. "${CMake_BINARY_DIR}/Tests/BundleTest"
  889. --build-two-config
  890. --build-generator ${CMAKE_TEST_GENERATOR}
  891. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  892. --build-project BundleTest
  893. --build-target install
  894. # --build-target package
  895. --build-options "-DCMAKE_INSTALL_PREFIX:PATH=${BundleTestInstallDir}"
  896. "-DCMake_SOURCE_DIR:PATH=${CMAKE_SOURCE_DIR}"
  897. --test-command
  898. ${BundleTestInstallDir}/Application/SecondBundleExe.app/Contents/MacOS/SecondBundleExe)
  899. ADD_TEST(objc++ ${CMAKE_CTEST_COMMAND}
  900. --build-and-test
  901. "${CMake_SOURCE_DIR}/Tests/ObjC++"
  902. "${CMake_BINARY_DIR}/Tests/ObjC++"
  903. --build-generator ${CMAKE_TEST_GENERATOR}
  904. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  905. --build-project objc++
  906. --test-command objc++
  907. )
  908. ENDIF (APPLE AND CMAKE_COMPILER_IS_GNUCXX)
  909. IF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS)
  910. CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest/test.cmake.in"
  911. "${CMake_BINARY_DIR}/Tests/CTestTest/test.cmake" @ONLY ESCAPE_QUOTES)
  912. ADD_TEST(CTestTest ${CMAKE_CTEST_COMMAND}
  913. -S "${CMake_BINARY_DIR}/Tests/CTestTest/test.cmake" -V
  914. --output-log "${CMake_BINARY_DIR}/Tests/CTestTest/testOutput.log"
  915. )
  916. CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest2/test.cmake.in"
  917. "${CMake_BINARY_DIR}/Tests/CTestTest2/test.cmake" @ONLY ESCAPE_QUOTES)
  918. ADD_TEST(CTestTest2 ${CMAKE_CTEST_COMMAND}
  919. -S "${CMake_BINARY_DIR}/Tests/CTestTest2/test.cmake" -V
  920. --output-log "${CMake_BINARY_DIR}/Tests/CTestTest2/testOutput.log"
  921. )
  922. CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest3/test.cmake.in"
  923. "${CMake_BINARY_DIR}/Tests/CTestTest3/test.cmake" @ONLY ESCAPE_QUOTES)
  924. ADD_TEST(CTestTest3 ${CMAKE_CTEST_COMMAND}
  925. -S "${CMake_BINARY_DIR}/Tests/CTestTest3/test.cmake" -V
  926. --output-log "${CMake_BINARY_DIR}/Tests/CTestTest3/testOutput.log"
  927. )
  928. ENDIF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS)
  929. IF("${CMAKE_TEST_GENERATOR}" MATCHES Xcode)
  930. SET(CMAKE_SKIP_BOOTSTRAP_TEST 1)
  931. ENDIF("${CMAKE_TEST_GENERATOR}" MATCHES Xcode)
  932. IF(EXISTS "${CMAKE_BINARY_DIR}/CMakeLists.txt")
  933. # If there is CMakeLists.txt in the binary tree, assume in-source build
  934. SET(CMAKE_SKIP_BOOTSTRAP_TEST 1)
  935. ENDIF(EXISTS "${CMAKE_BINARY_DIR}/CMakeLists.txt")
  936. IF(UNIX AND CMAKE_RUN_LONG_TESTS AND NOT CMAKE_SKIP_BOOTSTRAP_TEST)
  937. ADD_TEST(BootstrapTest ${CMAKE_CTEST_COMMAND}
  938. --build-and-test
  939. ${CMake_SOURCE_DIR}
  940. ${CMake_BINARY_DIR}/Tests/BootstrapTest
  941. --build-nocmake
  942. --build-noclean
  943. --build-makeprogram ${CMake_SOURCE_DIR}/bootstrap
  944. --build-generator "${CMAKE_TEST_GENERATOR}"
  945. --test-command ${CMake_BINARY_DIR}/Tests/BootstrapTest/Bootstrap.cmk/cmake)
  946. ENDIF(UNIX AND CMAKE_RUN_LONG_TESTS AND NOT CMAKE_SKIP_BOOTSTRAP_TEST)
  947. # fortran does not work for IDE builds because
  948. # CMAKE_STANDARD_LIBRARIES needs to be per language
  949. IF(CMAKE_TEST_GENERATOR MATCHES "Makefiles")
  950. # see if we can find a fortran compiler on the machine
  951. # if so, add the fortran test and see if it works.
  952. SET(CMAKE_Fortran_COMPILER_LIST ifort ifc efc f95 pgf95
  953. lf95 xlf95 fort gfortran f90 pgf90 xlf90
  954. epcf90 f77 fort77 frt pgf77 xlf fl32 af77 g77 )
  955. FIND_PROGRAM(CMAKE_Fortran_COMPILER_FULLPATH NAMES ${CMAKE_Fortran_COMPILER_LIST} )
  956. MARK_AS_ADVANCED(CMAKE_Fortran_COMPILER_FULLPATH)
  957. IF(CMAKE_Fortran_COMPILER_FULLPATH)
  958. ADD_TEST(Fortran ${CMAKE_CTEST_COMMAND}
  959. --build-and-test
  960. "${CMake_SOURCE_DIR}/Tests/Fortran"
  961. "${CMake_BINARY_DIR}/Tests/Fortran"
  962. --build-generator ${CMAKE_TEST_GENERATOR}
  963. --build-project testf
  964. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  965. --build-two-config
  966. --test-command testf)
  967. ENDIF(CMAKE_Fortran_COMPILER_FULLPATH)
  968. ENDIF(CMAKE_TEST_GENERATOR MATCHES "Makefiles")
  969. IF(NOT CMAKE_TEST_GENERATOR MATCHES "Xcode")
  970. INCLUDE(FindJava)
  971. IF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE AND NOT MINGW)
  972. GET_FILENAME_COMPONENT(JNIPATH ${JAVA_COMPILE} PATH)
  973. FIND_FILE(JNI_H jni.h
  974. "${JNIPATH}/../include"
  975. "${JNIPATH}/../java/include")
  976. IF(JNI_H)
  977. FILE(READ "${JNI_H}" JNI_FILE)
  978. IF("${JNI_FILE}" MATCHES "JDK1_2")
  979. ADD_TEST(Java ${CMAKE_CTEST_COMMAND}
  980. --build-and-test
  981. "${CMake_SOURCE_DIR}/Tests/Java"
  982. "${CMake_BINARY_DIR}/Tests/Java"
  983. --build-generator ${CMAKE_TEST_GENERATOR}
  984. --build-project hello
  985. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  986. --build-two-config
  987. --build-run-dir "${CMake_BINARY_DIR}/Tests/Java/"
  988. --test-command ${JAVA_RUNTIME} -classpath hello.jar HelloWorld)
  989. ENDIF("${JNI_FILE}" MATCHES "JDK1_2")
  990. ENDIF(JNI_H)
  991. ENDIF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE AND NOT MINGW)
  992. ENDIF(NOT CMAKE_TEST_GENERATOR MATCHES "Xcode")
  993. IF (CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE OR WXWINDOWS_INCLUDE_DIR)
  994. # Will be set if the wxwindows gui is on
  995. ADD_TEST(UseWX ${CMAKE_CTEST_COMMAND}
  996. --build-and-test
  997. "${CMake_SOURCE_DIR}/Tests/UseWX"
  998. "${CMake_BINARY_DIR}/Tests/UseWX"
  999. --build-generator ${CMAKE_TEST_GENERATOR}
  1000. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  1001. --build-exe-dir ${CMake_BINARY_DIR}/Tests/UseWX
  1002. --build-project UsewxWindows
  1003. --build-options -DCMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE:FILEPATH=${CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE}
  1004. --test-command UseWX
  1005. )
  1006. ENDIF (CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE OR WXWINDOWS_INCLUDE_DIR)
  1007. IF(UNIX)
  1008. STRING(COMPARE EQUAL "${CMAKE_INSTALL_PREFIX}" "${CMake_BINARY_DIR}/Tests/TestShellInstall/Prefix"
  1009. PREFIX_IS_FOR_TEST)
  1010. IF(PREFIX_IS_FOR_TEST)
  1011. CONFIGURE_FILE(
  1012. ${CMake_SOURCE_DIR}/Tests/TestInstall.sh.in
  1013. ${CMake_BINARY_DIR}/Tests/TestShellInstall/TestInstall.sh
  1014. @ONLY IMMEDIATE
  1015. )
  1016. ADD_TEST(ShellInstall /bin/sh ${CMake_BINARY_DIR}/Tests/TestShellInstall/TestShellInstall.sh)
  1017. ENDIF(PREFIX_IS_FOR_TEST)
  1018. ENDIF(UNIX)
  1019. ENDIF(BUILD_TESTING)
  1020. INCLUDE (${CMAKE_BINARY_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
  1021. INCLUDE (${CMAKE_SOURCE_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
  1022. INSTALL_TARGETS(/bin cmake)
  1023. INSTALL_TARGETS(/bin ctest)
  1024. INSTALL_TARGETS(/bin cpack)
  1025. IF(APPLE)
  1026. INSTALL_TARGETS(/bin cmakexbuild)
  1027. ENDIF(APPLE)
  1028. INSTALL_FILES(${CMAKE_DATA_DIR}/include cmCPluginAPI.h)