CMakeLists.txt 37 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111
  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. cmWin32ProcessExecution.cxx
  200. cmWin32ProcessExecution.h
  201. )
  202. ENDIF(NOT UNIX)
  203. ENDIF (WIN32)
  204. # create a library used by the command line and the GUI
  205. ADD_LIBRARY(CMakeLib ${SRCS})
  206. TARGET_LINK_LIBRARIES(CMakeLib cmsys ${CMAKE_EXPAT_LIBRARIES} ${CMAKE_ZLIB_LIBRARIES} ${CMAKE_TAR_LIBRARIES})
  207. # On UNIX platforms we need the dl libraries for loading plugins.
  208. IF(UNIX)
  209. TARGET_LINK_LIBRARIES(CMakeLib ${CMAKE_DL_LIBS})
  210. ENDIF(UNIX)
  211. # On Apple we need Carbon
  212. IF(APPLE)
  213. FIND_LIBRARY(CARBON Carbon)
  214. TARGET_LINK_LIBRARIES(CMakeLib ${CARBON})
  215. ENDIF(APPLE)
  216. # On some platforms we need the rpcrt4 library for the VS 7 generators.
  217. IF(CMAKE_BUILD_ON_VISUAL_STUDIO OR MINGW)
  218. TARGET_LINK_LIBRARIES(CMakeLib rpcrt4)
  219. ENDIF(CMAKE_BUILD_ON_VISUAL_STUDIO OR MINGW)
  220. #
  221. # CTestLib
  222. #
  223. INCLUDE_DIRECTORIES(
  224. "${CMAKE_SOURCE_DIR}/Source/CTest"
  225. ${CMAKE_XMLRPC_INCLUDES}
  226. ${CMAKE_CURL_INCLUDES}
  227. )
  228. #
  229. # Sources for CTestLib
  230. #
  231. SET(CMTEST_SRCS cmCTest.cxx
  232. CTest/cmCTestBuildAndTestHandler.cxx
  233. CTest/cmCTestBuildCommand.cxx
  234. CTest/cmCTestBuildHandler.cxx
  235. CTest/cmCTestConfigureCommand.cxx
  236. CTest/cmCTestConfigureHandler.cxx
  237. CTest/cmCTestCoverageCommand.cxx
  238. CTest/cmCTestCoverageHandler.cxx
  239. CTest/cmCTestEmptyBinaryDirectoryCommand.cxx
  240. CTest/cmCTestGenericHandler.cxx
  241. CTest/cmCTestHandlerCommand.cxx
  242. CTest/cmCTestMemCheckCommand.cxx
  243. CTest/cmCTestMemCheckHandler.cxx
  244. CTest/cmCTestReadCustomFilesCommand.cxx
  245. CTest/cmCTestRunScriptCommand.cxx
  246. CTest/cmCTestScriptHandler.cxx
  247. CTest/cmCTestSleepCommand.cxx
  248. CTest/cmCTestStartCommand.cxx
  249. CTest/cmCTestSubmitCommand.cxx
  250. CTest/cmCTestSubmitHandler.cxx
  251. CTest/cmCTestTestCommand.cxx
  252. CTest/cmCTestTestHandler.cxx
  253. CTest/cmCTestUpdateCommand.cxx
  254. CTest/cmCTestUpdateHandler.cxx
  255. )
  256. # Build CTestLib
  257. ADD_LIBRARY(CTestLib ${CMTEST_SRCS})
  258. TARGET_LINK_LIBRARIES(CTestLib CMakeLib ${CMAKE_CURL_LIBRARIES} ${CMAKE_XMLRPC_LIBRARIES})
  259. #
  260. # Sources for CPack
  261. #
  262. SET(CPACK_SRCS
  263. CPack/cmCPackGenerators.cxx
  264. CPack/cmCPackSTGZGenerator.cxx
  265. CPack/cmCPackTGZGenerator.cxx
  266. CPack/cmCPackNSISGenerator.cxx
  267. CPack/cmCPackPackageMakerGenerator.cxx
  268. CPack/cmCPackZIPGenerator.cxx
  269. CPack/cmCPackGenericGenerator.cxx
  270. CPack/cmCPackLog.cxx
  271. )
  272. # Build CPackLib
  273. ADD_LIBRARY(CPackLib ${CPACK_SRCS})
  274. TARGET_LINK_LIBRARIES(CPackLib CMakeLib)
  275. IF(APPLE)
  276. ADD_EXECUTABLE(cmakexbuild cmakexbuild.cxx)
  277. TARGET_LINK_LIBRARIES(cmakexbuild CMakeLib)
  278. ENDIF(APPLE)
  279. # Build CMake executable
  280. ADD_EXECUTABLE(cmake cmakemain.cxx)
  281. TARGET_LINK_LIBRARIES(cmake CMakeLib)
  282. ADD_EXECUTABLE(DumpDocumentation cmDumpDocumentation)
  283. TARGET_LINK_LIBRARIES(DumpDocumentation CMakeLib)
  284. # Build special executable for running programs on Windows 98
  285. IF(WIN32)
  286. IF(NOT UNIX)
  287. ADD_EXECUTABLE(cmw9xcom cmw9xcom.cxx)
  288. TARGET_LINK_LIBRARIES(cmw9xcom CMakeLib)
  289. ENDIF(NOT UNIX)
  290. ENDIF(WIN32)
  291. # Build CTest executable
  292. ADD_EXECUTABLE(ctest ctest.cxx)
  293. TARGET_LINK_LIBRARIES(ctest CTestLib)
  294. # Build CPack executable
  295. ADD_EXECUTABLE(cpack CPack/cpack.cxx)
  296. TARGET_LINK_LIBRARIES(cpack CPackLib)
  297. # Curses GUI
  298. IF(BUILD_CursesDialog)
  299. INCLUDE(${CMake_SOURCE_DIR}/Source/CursesDialog/CMakeLists.txt)
  300. ENDIF(BUILD_CursesDialog)
  301. # MFC GUI
  302. # MFC libraries are only available on Visual Studio
  303. IF(BUILD_MFCDialog)
  304. SUBDIRS(MFCDialog)
  305. ENDIF(BUILD_MFCDialog)
  306. # WX Widgets GUI
  307. OPTION(CMAKE_BUILD_WX_DIALOG "Build wxWidgets dialog for CMake" FALSE)
  308. MARK_AS_ADVANCED(CMAKE_BUILD_WX_DIALOG)
  309. IF(CMAKE_BUILD_WX_DIALOG)
  310. SUBDIRS(WXDialog)
  311. ENDIF(CMAKE_BUILD_WX_DIALOG)
  312. # Testing
  313. IF (NOT DART_ROOT)
  314. SET(MAKEPROGRAM ${CMAKE_MAKE_PROGRAM})
  315. ENDIF (NOT DART_ROOT)
  316. IF(BUILD_TESTING)
  317. SET(CMAKE_TEST_GENERATOR "" CACHE STRING "Generator used when running tests")
  318. SET(CMAKE_TEST_MAKEPROGRAM "" CACHE FILEPATH "Generator used when running tests")
  319. IF(NOT CMAKE_TEST_GENERATOR)
  320. SET(CMAKE_TEST_GENERATOR "${CMAKE_GENERATOR}")
  321. SET(CMAKE_TEST_MAKEPROGRAM "${MAKEPROGRAM}")
  322. ELSE(NOT CMAKE_TEST_GENERATOR)
  323. SET(CMAKE_TEST_DIFFERENT_GENERATOR TRUE)
  324. ENDIF(NOT CMAKE_TEST_GENERATOR)
  325. # This variable is set by cmake, however to
  326. # test cmake we want to make sure that
  327. # the ctest from this cmake is used for testing
  328. # and not the ctest from the cmake building and testing
  329. # cmake.
  330. SET(CMAKE_CTEST_COMMAND "${EXECUTABLE_OUTPUT_PATH}/ctest")
  331. # Should the long tests be run?
  332. OPTION(CMAKE_RUN_LONG_TESTS "Should the long tests be run (such as Bootstrap)." ON)
  333. MARK_AS_ADVANCED(CMAKE_RUN_LONG_TESTS)
  334. ADD_TEST(CommandLineTest ${CMAKE_CTEST_COMMAND}
  335. --build-and-test
  336. "${CMake_SOURCE_DIR}/Tests/CommandLineTest"
  337. "${CMake_BINARY_DIR}/Tests/CommandLineTest"
  338. --build-two-config
  339. --build-generator ${CMAKE_TEST_GENERATOR}
  340. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  341. --build-project CommandLineTest
  342. --test-command CommandLineTest)
  343. ADD_TEST(TarTest ${CMAKE_CTEST_COMMAND}
  344. --build-and-test
  345. "${CMake_SOURCE_DIR}/Tests/TarTest"
  346. "${CMake_BINARY_DIR}/Tests/TarTest"
  347. --build-two-config
  348. --build-generator ${CMAKE_TEST_GENERATOR}
  349. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  350. --build-project TestTar
  351. --test-command TestTarExec)
  352. ADD_TEST(CustomCommand ${CMAKE_CTEST_COMMAND}
  353. --build-and-test
  354. "${CMake_SOURCE_DIR}/Tests/CustomCommand"
  355. "${CMake_BINARY_DIR}/Tests/CustomCommand"
  356. --build-two-config
  357. --build-generator ${CMAKE_TEST_GENERATOR}
  358. --build-project CustomCommand
  359. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  360. --build-exe-dir "${CMake_BINARY_DIR}/Tests/CustomCommand/bin"
  361. --test-command CustomCommand
  362. )
  363. ADD_TEST(CustomCommandWorkingDirectory ${CMAKE_CTEST_COMMAND}
  364. --build-and-test
  365. "${CMake_SOURCE_DIR}/Tests/CustomCommandWorkingDirectory"
  366. "${CMake_BINARY_DIR}/Tests/CustomCommandWorkingDirectory"
  367. --build-two-config
  368. --build-generator ${CMAKE_TEST_GENERATOR}
  369. --build-project TestWorkingDir
  370. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  371. --build-exe-dir "${CMake_BINARY_DIR}/Tests/CustomCommandWorkingDirectory"
  372. --test-command working
  373. )
  374. ADD_TEST(FindPackageTest ${CMAKE_CTEST_COMMAND}
  375. --build-and-test
  376. "${CMake_SOURCE_DIR}/Tests/FindPackageTest"
  377. "${CMake_BINARY_DIR}/Tests/FindPackageTest"
  378. --build-two-config
  379. --build-generator ${CMAKE_TEST_GENERATOR}
  380. --build-project FindPackageTest
  381. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  382. --test-command FindPackageTest)
  383. ADD_TEST(SystemInformation ${CMAKE_CTEST_COMMAND}
  384. --build-and-test
  385. "${CMake_SOURCE_DIR}/Tests/SystemInformation"
  386. "${CMake_BINARY_DIR}/Tests/SystemInformation"
  387. --build-two-config
  388. --build-generator ${CMAKE_TEST_GENERATOR}
  389. --build-project DumpInformation
  390. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  391. --test-command DumpInformation)
  392. ADD_TEST(StringFileTest ${CMAKE_CTEST_COMMAND}
  393. --build-and-test
  394. "${CMake_SOURCE_DIR}/Tests/StringFileTest"
  395. "${CMake_BINARY_DIR}/Tests/StringFileTest"
  396. --build-two-config
  397. --build-generator ${CMAKE_TEST_GENERATOR}
  398. --build-project StringFileTest
  399. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  400. --test-command StringFileTest)
  401. ADD_TEST(MathTest ${CMAKE_CTEST_COMMAND}
  402. --build-and-test
  403. "${CMake_SOURCE_DIR}/Tests/MathTest"
  404. "${CMake_BINARY_DIR}/Tests/MathTest"
  405. --build-two-config
  406. --build-generator ${CMAKE_TEST_GENERATOR}
  407. --build-project MathTest
  408. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  409. --test-command MathTestExec)
  410. ADD_TEST(TryCompile ${CMAKE_CTEST_COMMAND}
  411. --build-and-test
  412. "${CMake_SOURCE_DIR}/Tests/TryCompile"
  413. "${CMake_BINARY_DIR}/Tests/TryCompile"
  414. --build-generator ${CMAKE_TEST_GENERATOR}
  415. --build-project TryCompile
  416. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  417. --build-two-config
  418. --test-command TryCompile)
  419. ADD_TEST(simple ${CMAKE_CTEST_COMMAND}
  420. --build-and-test
  421. "${CMake_SOURCE_DIR}/Tests/Simple"
  422. "${CMake_BINARY_DIR}/Tests/Simple"
  423. --build-generator ${CMAKE_TEST_GENERATOR}
  424. --build-project Simple
  425. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  426. --build-two-config
  427. --test-command simple)
  428. # ADD_TEST(SameName ${CMAKE_CTEST_COMMAND}
  429. # --build-and-test
  430. # "${CMake_SOURCE_DIR}/Tests/SameName"
  431. # "${CMake_BINARY_DIR}/Tests/SameName"
  432. # --build-generator ${CMAKE_TEST_GENERATOR}
  433. # --build-project SameName
  434. # --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  435. # --build-two-config
  436. # --test-command
  437. # "${CMake_BINARY_DIR}/Tests/SameName/Exe1/mytest2")
  438. ADD_TEST(OutOfSource ${CMAKE_CTEST_COMMAND}
  439. --build-and-test
  440. "${CMake_SOURCE_DIR}/Tests/OutOfSource"
  441. "${CMake_BINARY_DIR}/Tests/OutOfSource"
  442. --build-generator ${CMAKE_TEST_GENERATOR}
  443. --build-project OutOfSource
  444. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  445. --build-two-config
  446. --test-command
  447. "${CMake_BINARY_DIR}/Tests/OutOfSource/SubDir/OutOfSourceSubdir/simple")
  448. ADD_TEST(PreOrder ${CMAKE_CTEST_COMMAND}
  449. --build-and-test
  450. "${CMake_SOURCE_DIR}/Tests/PreOrder"
  451. "${CMake_BINARY_DIR}/Tests/PreOrder"
  452. --build-generator ${CMAKE_TEST_GENERATOR}
  453. --build-project PreOrder
  454. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  455. --build-two-config
  456. --test-command simple)
  457. ADD_TEST(conly ${CMAKE_CTEST_COMMAND}
  458. --build-and-test
  459. "${CMake_SOURCE_DIR}/Tests/COnly"
  460. "${CMake_BINARY_DIR}/Tests/COnly"
  461. --build-generator ${CMAKE_TEST_GENERATOR}
  462. --build-project conly
  463. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  464. --build-two-config
  465. --test-command conly)
  466. ADD_TEST(MacroTest ${CMAKE_CTEST_COMMAND}
  467. --build-and-test
  468. "${CMake_SOURCE_DIR}/Tests/MacroTest"
  469. "${CMake_BINARY_DIR}/Tests/MacroTest"
  470. --build-generator ${CMAKE_TEST_GENERATOR}
  471. --build-project littleMacroTest
  472. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  473. --build-two-config
  474. --test-command miniMacroTest)
  475. SET(SimpleInstallInstallDir
  476. "${CMake_BINARY_DIR}/Tests/SimpleInstall/InstallDirectory")
  477. ADD_TEST(SimpleInstall ${CMAKE_CTEST_COMMAND}
  478. --build-and-test
  479. "${CMake_SOURCE_DIR}/Tests/SimpleInstall"
  480. "${CMake_BINARY_DIR}/Tests/SimpleInstall"
  481. --build-generator ${CMAKE_TEST_GENERATOR}
  482. --build-project TestSimpleInstall
  483. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  484. --build-two-config
  485. --build-options
  486. "-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}"
  487. --test-command ${SimpleInstallInstallDir}/MyTest/bin/SimpleInstallExe)
  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/SimpleInstallS2)
  500. ADD_TEST(X11 ${CMAKE_CTEST_COMMAND}
  501. --build-and-test
  502. "${CMake_SOURCE_DIR}/Tests/X11"
  503. "${CMake_BINARY_DIR}/Tests/X11"
  504. --build-generator ${CMAKE_TEST_GENERATOR}
  505. --build-project UseX11
  506. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  507. --build-two-config
  508. --test-command UseX11)
  509. ADD_TEST(LoadedCommand ${CMAKE_CTEST_COMMAND}
  510. --build-and-test
  511. "${CMake_SOURCE_DIR}/Tests/LoadCommand"
  512. "${CMake_BINARY_DIR}/Tests/LoadCommand"
  513. --build-generator ${CMAKE_TEST_GENERATOR}
  514. --build-project LoadedCommand
  515. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  516. --build-two-config
  517. --test-command LoadedCommand)
  518. ADD_TEST(LoadedCommandOneConfig ${CMAKE_CTEST_COMMAND}
  519. --build-and-test
  520. "${CMake_SOURCE_DIR}/Tests/LoadCommandOneConfig"
  521. "${CMake_BINARY_DIR}/Tests/LoadCommandOneConfig"
  522. --build-generator ${CMAKE_TEST_GENERATOR}
  523. --build-project LoadedCommand
  524. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  525. --test-command LoadedCommand
  526. )
  527. # Como does not seem to support shared libraries.
  528. GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_CXX_COMPILER} NAME_WE)
  529. IF(CMAKE_BASE_NAME MATCHES "^como$")
  530. SET(COMPILER_IS_COMO 1)
  531. ENDIF(CMAKE_BASE_NAME MATCHES "^como$")
  532. IF(NOT COMPILER_IS_COMO)
  533. ADD_TEST(complex ${CMAKE_CTEST_COMMAND}
  534. --build-and-test
  535. "${CMake_SOURCE_DIR}/Tests/Complex"
  536. "${CMake_BINARY_DIR}/Tests/Complex"
  537. --build-two-config
  538. --build-generator ${CMAKE_TEST_GENERATOR}
  539. --build-project complex
  540. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  541. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Complex/bin"
  542. --build-options
  543. -DCMAKE_TEST_DIFFERENT_GENERATOR:BOOL=${CMAKE_TEST_DIFFERENT_GENERATOR}
  544. --test-command complex
  545. )
  546. ADD_TEST(complexOneConfig ${CMAKE_CTEST_COMMAND}
  547. --build-and-test
  548. "${CMake_SOURCE_DIR}/Tests/ComplexOneConfig"
  549. "${CMake_BINARY_DIR}/Tests/ComplexOneConfig"
  550. --build-generator ${CMAKE_TEST_GENERATOR}
  551. --build-project complex
  552. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  553. --build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexOneConfig/bin"
  554. --build-options
  555. -DCMAKE_TEST_DIFFERENT_GENERATOR:BOOL=${CMAKE_TEST_DIFFERENT_GENERATOR}
  556. --test-command complex)
  557. # ADD_TEST(complexRelativePaths ${CMAKE_CTEST_COMMAND}
  558. # --build-and-test
  559. # "${CMake_SOURCE_DIR}/Tests/ComplexRelativePaths"
  560. # "${CMake_BINARY_DIR}/Tests/ComplexRelativePaths"
  561. # --build-generator ${CMAKE_TEST_GENERATOR}
  562. # --build-project complex
  563. # --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  564. # --build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexRelativePaths/bin"
  565. # --build-options -DCMAKE_USE_RELATIVE_PATHS:BOOL=ON
  566. # --test-command complex)
  567. ENDIF(NOT COMPILER_IS_COMO)
  568. ADD_TEST(Example ${CMAKE_CTEST_COMMAND}
  569. --build-and-test
  570. "${CMake_SOURCE_DIR}/Example"
  571. "${CMake_BINARY_DIR}/Example"
  572. --build-generator ${CMAKE_TEST_GENERATOR}
  573. --build-project HELLO
  574. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  575. --build-exe-dir "${CMake_BINARY_DIR}/Example/Demo"
  576. --test-command helloDemo
  577. )
  578. ADD_TEST(TutorialStep1 ${CMAKE_CTEST_COMMAND}
  579. --build-and-test
  580. "${CMake_SOURCE_DIR}/Tests/Tutorial/Step1"
  581. "${CMake_BINARY_DIR}/Tests/Tutorial/Step1"
  582. --build-two-config
  583. --build-generator ${CMAKE_TEST_GENERATOR}
  584. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  585. --build-project Tutorial
  586. --test-command Tutorial 25.0)
  587. ADD_TEST(TutorialStep2 ${CMAKE_CTEST_COMMAND}
  588. --build-and-test
  589. "${CMake_SOURCE_DIR}/Tests/Tutorial/Step2"
  590. "${CMake_BINARY_DIR}/Tests/Tutorial/Step2"
  591. --build-two-config
  592. --build-generator ${CMAKE_TEST_GENERATOR}
  593. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  594. --build-project Tutorial
  595. --test-command Tutorial 25.0)
  596. ADD_TEST(TutorialStep3 ${CMAKE_CTEST_COMMAND}
  597. --build-and-test
  598. "${CMake_SOURCE_DIR}/Tests/Tutorial/Step3"
  599. "${CMake_BINARY_DIR}/Tests/Tutorial/Step3"
  600. --build-two-config
  601. --build-generator ${CMAKE_TEST_GENERATOR}
  602. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  603. --build-project Tutorial
  604. --test-command Tutorial 25.0)
  605. ADD_TEST(TutorialStep4 ${CMAKE_CTEST_COMMAND}
  606. --build-and-test
  607. "${CMake_SOURCE_DIR}/Tests/Tutorial/Step4"
  608. "${CMake_BINARY_DIR}/Tests/Tutorial/Step4"
  609. --build-two-config
  610. --build-generator ${CMAKE_TEST_GENERATOR}
  611. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  612. --build-project Tutorial
  613. --test-command Tutorial 25.0)
  614. ADD_TEST(TutorialStep5 ${CMAKE_CTEST_COMMAND}
  615. --build-and-test
  616. "${CMake_SOURCE_DIR}/Tests/Tutorial/Step5"
  617. "${CMake_BINARY_DIR}/Tests/Tutorial/Step5"
  618. --build-two-config
  619. --build-generator ${CMAKE_TEST_GENERATOR}
  620. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  621. --build-project Tutorial
  622. --test-command Tutorial 25.0)
  623. ADD_TEST(testing ${CMAKE_CTEST_COMMAND}
  624. --build-and-test
  625. "${CMake_SOURCE_DIR}/Tests/Testing"
  626. "${CMake_BINARY_DIR}/Tests/Testing"
  627. --build-generator ${CMAKE_TEST_GENERATOR}
  628. --build-project testing
  629. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  630. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Testing/bin"
  631. --test-command testing
  632. )
  633. ADD_TEST(wrapping ${CMAKE_CTEST_COMMAND}
  634. --build-and-test
  635. "${CMake_SOURCE_DIR}/Tests/Wrapping"
  636. "${CMake_BINARY_DIR}/Tests/Wrapping"
  637. --build-generator ${CMAKE_TEST_GENERATOR}
  638. --build-project wrapping
  639. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  640. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  641. --test-command wrapping
  642. )
  643. # use the FindQt3.cmake from this cmake as it may not be in an older version of cmake
  644. INCLUDE (${CMAKE_SOURCE_DIR}/Modules/FindQt3.cmake)
  645. MARK_AS_ADVANCED(
  646. QT_INCLUDE_PATH
  647. QT_MOC_EXE
  648. QT_QT_LIBRARY
  649. QT_UIC_EXE)
  650. IF (QT_FOUND AND QT_UIC_EXECUTABLE)
  651. ADD_TEST(qtwrapping ${CMAKE_CTEST_COMMAND}
  652. --build-and-test
  653. "${CMake_SOURCE_DIR}/Tests/Wrapping"
  654. "${CMake_BINARY_DIR}/Tests/Wrapping"
  655. --build-generator ${CMAKE_TEST_GENERATOR}
  656. --build-project Wrapping
  657. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  658. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  659. --test-command qtwrapping
  660. )
  661. ENDIF (QT_FOUND AND QT_UIC_EXECUTABLE)
  662. ADD_TEST(testdriver1 ${CMAKE_CTEST_COMMAND}
  663. --build-and-test
  664. "${CMake_SOURCE_DIR}/Tests/TestDriver"
  665. "${CMake_BINARY_DIR}/Tests/TestDriver"
  666. --build-generator ${CMAKE_TEST_GENERATOR}
  667. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  668. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  669. --build-project TestDriverTest
  670. --test-command TestDriverTest test1
  671. )
  672. ADD_TEST(testdriver2 ${CMAKE_CTEST_COMMAND}
  673. --build-and-test
  674. "${CMake_SOURCE_DIR}/Tests/TestDriver"
  675. "${CMake_BINARY_DIR}/Tests/TestDriver"
  676. --build-generator ${CMAKE_TEST_GENERATOR}
  677. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  678. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  679. --build-project TestDriverTest
  680. --test-command TestDriverTest test2
  681. )
  682. ADD_TEST(testdriver3 ${CMAKE_CTEST_COMMAND}
  683. --build-and-test
  684. "${CMake_SOURCE_DIR}/Tests/TestDriver"
  685. "${CMake_BINARY_DIR}/Tests/TestDriver"
  686. --build-generator ${CMAKE_TEST_GENERATOR}
  687. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  688. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  689. --build-project TestDriverTest
  690. --test-command TestDriverTest subdir/test3
  691. )
  692. ADD_TEST(dependency_w_libout ${CMAKE_CTEST_COMMAND}
  693. --build-and-test
  694. "${CMake_SOURCE_DIR}/Tests/Dependency"
  695. "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
  696. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec"
  697. --build-project Dependency
  698. --build-generator ${CMAKE_TEST_GENERATOR}
  699. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  700. --build-options
  701. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
  702. --test-command exec
  703. )
  704. ADD_TEST(dependency_wo_lib_out ${CMAKE_CTEST_COMMAND}
  705. --build-and-test
  706. "${CMake_SOURCE_DIR}/Tests/Dependency"
  707. "${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut"
  708. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut/Exec"
  709. --build-generator ${CMAKE_TEST_GENERATOR}
  710. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  711. --build-project Dependency
  712. --test-command exec
  713. )
  714. ADD_TEST(dependency2 ${CMAKE_CTEST_COMMAND}
  715. --build-and-test
  716. "${CMake_SOURCE_DIR}/Tests/Dependency"
  717. "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
  718. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec2"
  719. --build-generator ${CMAKE_TEST_GENERATOR}
  720. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  721. --build-project Dependency
  722. --build-options
  723. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
  724. --test-command exec2
  725. )
  726. ADD_TEST(dependency3 ${CMAKE_CTEST_COMMAND}
  727. --build-and-test
  728. "${CMake_SOURCE_DIR}/Tests/Dependency"
  729. "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
  730. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec3"
  731. --build-generator ${CMAKE_TEST_GENERATOR}
  732. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  733. --build-project Dependency
  734. --build-options
  735. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
  736. --test-command exec3)
  737. ADD_TEST(dependency4 ${CMAKE_CTEST_COMMAND}
  738. --build-and-test
  739. "${CMake_SOURCE_DIR}/Tests/Dependency"
  740. "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
  741. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec4"
  742. --build-generator ${CMAKE_TEST_GENERATOR}
  743. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  744. --build-project Dependency
  745. --build-options
  746. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
  747. --test-command exec4
  748. )
  749. ADD_TEST(JumpWithLibOut ${CMAKE_CTEST_COMMAND}
  750. --build-and-test
  751. "${CMake_SOURCE_DIR}/Tests/Jump"
  752. "${CMake_BINARY_DIR}/Tests/Jump/WithLibOut"
  753. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Jump/WithLibOut/Executable"
  754. --build-project Jump
  755. --build-generator ${CMAKE_TEST_GENERATOR}
  756. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  757. --build-options
  758. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Jump/WithLibOut/Lib
  759. --test-command jumpExecutable
  760. )
  761. ADD_TEST(JumpNoLibOut ${CMAKE_CTEST_COMMAND}
  762. --build-and-test
  763. "${CMake_SOURCE_DIR}/Tests/Jump"
  764. "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut"
  765. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut/Executable"
  766. --build-run-dir "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut/Executable"
  767. --build-project Jump
  768. --build-generator ${CMAKE_TEST_GENERATOR}
  769. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  770. --test-command jumpExecutable
  771. )
  772. ADD_TEST(linkline ${CMAKE_CTEST_COMMAND}
  773. --build-and-test
  774. "${CMake_SOURCE_DIR}/Tests/LinkLine"
  775. "${CMake_BINARY_DIR}/Tests/LinkLine"
  776. --build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLine"
  777. --build-generator ${CMAKE_TEST_GENERATOR}
  778. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  779. --build-project Linkline
  780. --test-command Exec
  781. )
  782. ADD_TEST(linkorder1 ${CMAKE_CTEST_COMMAND}
  783. --build-and-test
  784. "${CMake_SOURCE_DIR}/Tests/LinkLineOrder"
  785. "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
  786. --build-generator ${CMAKE_TEST_GENERATOR}
  787. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  788. --build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
  789. --build-project LinkLineOrder
  790. --test-command Exec1
  791. )
  792. ADD_TEST(linkorder2 ${CMAKE_CTEST_COMMAND}
  793. --build-and-test
  794. "${CMake_SOURCE_DIR}/Tests/LinkLineOrder"
  795. "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
  796. --build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
  797. --build-generator ${CMAKE_TEST_GENERATOR}
  798. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  799. --build-project LinkLineOrder
  800. --test-command Exec2
  801. )
  802. ADD_TEST(ExternalOBJ ${CMAKE_CTEST_COMMAND}
  803. --build-and-test
  804. "${CMake_SOURCE_DIR}/Tests/ExternalOBJ"
  805. "${CMake_BINARY_DIR}/Tests/ExternalOBJ"
  806. --build-generator ${CMAKE_TEST_GENERATOR}
  807. --build-project ExternalOBJ
  808. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  809. --build-exe-dir "${CMake_BINARY_DIR}/ExternalOBJ"
  810. --test-command executable
  811. )
  812. IF(NOT CMAKE_TEST_DIFFERENT_GENERATOR)
  813. ADD_TEST(kwsys ${CMAKE_CTEST_COMMAND}
  814. --build-and-test
  815. "${CMake_SOURCE_DIR}/Source/kwsys"
  816. "${CMake_BINARY_DIR}/Tests/kwsys"
  817. --build-exe-dir "${CMake_BINARY_DIR}/Tests/kwsys"
  818. --build-generator ${CMAKE_TEST_GENERATOR}
  819. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  820. --build-project kwsys
  821. --test-command testIOS
  822. )
  823. ENDIF(NOT CMAKE_TEST_DIFFERENT_GENERATOR)
  824. IF (WIN32)
  825. ADD_TEST(SubDir ${CMAKE_CTEST_COMMAND}
  826. --build-and-test
  827. "${CMake_SOURCE_DIR}/Tests/SubDir"
  828. "${CMake_BINARY_DIR}/Tests/SubDir"
  829. --build-exe-dir "${CMake_BINARY_DIR}/Tests/SubDir/Executable"
  830. --build-generator ${CMAKE_TEST_GENERATOR}
  831. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  832. --build-project SUBDIR
  833. --test-command test
  834. "${CMake_BINARY_DIR}/Tests/SubDir/ShouldBeHere"
  835. "${CMake_BINARY_DIR}/Tests/SubDir/testfromsubdir.obj"
  836. )
  837. ELSE (WIN32)
  838. ADD_TEST(SubDir ${CMAKE_CTEST_COMMAND}
  839. --build-and-test
  840. "${CMake_SOURCE_DIR}/Tests/SubDir"
  841. "${CMake_BINARY_DIR}/Tests/SubDir"
  842. --build-exe-dir "${CMake_BINARY_DIR}/Tests/SubDir/Executable"
  843. --build-generator ${CMAKE_TEST_GENERATOR}
  844. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  845. --build-project SUBDIR
  846. --test-command test
  847. "${CMake_BINARY_DIR}/Tests/SubDir/ShouldBeHere"
  848. "${CMake_BINARY_DIR}/Tests/SubDir/testfromsubdir.o"
  849. )
  850. ENDIF (WIN32)
  851. IF("${CMAKE_TEST_GENERATOR}" MATCHES "Makefile")
  852. ADD_TEST(MakeClean ${CMAKE_CTEST_COMMAND}
  853. --build-and-test
  854. "${CMake_SOURCE_DIR}/Tests/MakeClean"
  855. "${CMake_BINARY_DIR}/Tests/MakeClean"
  856. --build-generator ${CMAKE_TEST_GENERATOR}
  857. --build-project MakeClean
  858. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  859. --build-exe-dir "${CMake_BINARY_DIR}/MakeClean"
  860. --test-command check_clean
  861. )
  862. ENDIF("${CMAKE_TEST_GENERATOR}" MATCHES "Makefile")
  863. IF(${CMAKE_TEST_GENERATOR} MATCHES "Visual Studio")
  864. ADD_TEST(VSExternalInclude ${CMAKE_CTEST_COMMAND}
  865. --build-and-test
  866. "${CMake_SOURCE_DIR}/Tests/VSExternalInclude"
  867. "${CMake_BINARY_DIR}/Tests/VSExternalInclude"
  868. --build-two-config
  869. --build-generator ${CMAKE_TEST_GENERATOR}
  870. --build-project VSExternalInclude
  871. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  872. --test-command VSExternalInclude)
  873. ENDIF(${CMAKE_TEST_GENERATOR} MATCHES "Visual Studio")
  874. IF (APPLE AND CMAKE_COMPILER_IS_GNUCXX)
  875. SET(BundleTestInstallDir
  876. "${CMake_BINARY_DIR}/Tests/BundleTest/InstallDirectory")
  877. ADD_TEST(BundleTest ${CMAKE_CTEST_COMMAND}
  878. --build-and-test
  879. "${CMake_SOURCE_DIR}/Tests/BundleTest"
  880. "${CMake_BINARY_DIR}/Tests/BundleTest"
  881. --build-two-config
  882. --build-generator ${CMAKE_TEST_GENERATOR}
  883. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  884. --build-project BundleTest
  885. --build-target install
  886. # --build-target package
  887. --build-options "-DCMAKE_INSTALL_PREFIX:PATH=${BundleTestInstallDir}"
  888. --test-command
  889. ${BundleTestInstallDir}/Application/BundleTestExe.app/Contents/MacOS/BundleTestExe)
  890. ADD_TEST(objc++ ${CMAKE_CTEST_COMMAND}
  891. --build-and-test
  892. "${CMake_SOURCE_DIR}/Tests/ObjC++"
  893. "${CMake_BINARY_DIR}/Tests/ObjC++"
  894. --build-generator ${CMAKE_TEST_GENERATOR}
  895. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  896. --build-project objc++
  897. --test-command objc++
  898. )
  899. ENDIF (APPLE AND CMAKE_COMPILER_IS_GNUCXX)
  900. IF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS)
  901. CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest/test.cmake.in"
  902. "${CMake_BINARY_DIR}/Tests/CTestTest/test.cmake" @ONLY ESCAPE_QUOTES)
  903. ADD_TEST(CTestTest ${CMAKE_CTEST_COMMAND}
  904. -S "${CMake_BINARY_DIR}/Tests/CTestTest/test.cmake" -V
  905. --output-log "${CMake_BINARY_DIR}/Tests/CTestTest/testOutput.log"
  906. )
  907. CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest2/test.cmake.in"
  908. "${CMake_BINARY_DIR}/Tests/CTestTest2/test.cmake" @ONLY ESCAPE_QUOTES)
  909. ADD_TEST(CTestTest2 ${CMAKE_CTEST_COMMAND}
  910. -S "${CMake_BINARY_DIR}/Tests/CTestTest2/test.cmake" -V
  911. --output-log "${CMake_BINARY_DIR}/Tests/CTestTest2/testOutput.log"
  912. )
  913. CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest3/test.cmake.in"
  914. "${CMake_BINARY_DIR}/Tests/CTestTest3/test.cmake" @ONLY ESCAPE_QUOTES)
  915. ADD_TEST(CTestTest3 ${CMAKE_CTEST_COMMAND}
  916. -S "${CMake_BINARY_DIR}/Tests/CTestTest3/test.cmake" -V
  917. --output-log "${CMake_BINARY_DIR}/Tests/CTestTest3/testOutput.log"
  918. )
  919. ENDIF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS)
  920. IF("${CMAKE_TEST_GENERATOR}" MATCHES Xcode)
  921. SET(CMAKE_SKIP_BOOTSTRAP_TEST 1)
  922. ENDIF("${CMAKE_TEST_GENERATOR}" MATCHES Xcode)
  923. IF(EXISTS "${CMAKE_BINARY_DIR}/CMakeLists.txt")
  924. # If there is CMakeLists.txt in the binary tree, assume in-source build
  925. SET(CMAKE_SKIP_BOOTSTRAP_TEST 1)
  926. ENDIF(EXISTS "${CMAKE_BINARY_DIR}/CMakeLists.txt")
  927. IF(UNIX AND CMAKE_RUN_LONG_TESTS AND NOT CMAKE_SKIP_BOOTSTRAP_TEST)
  928. ADD_TEST(BootstrapTest ${CMAKE_CTEST_COMMAND}
  929. --build-and-test
  930. ${CMake_SOURCE_DIR}
  931. ${CMake_BINARY_DIR}/Tests/BootstrapTest
  932. --build-nocmake
  933. --build-noclean
  934. --build-makeprogram ${CMake_SOURCE_DIR}/bootstrap
  935. --build-generator "${CMAKE_TEST_GENERATOR}"
  936. --test-command ${CMake_BINARY_DIR}/Tests/BootstrapTest/Bootstrap.cmk/cmake)
  937. ENDIF(UNIX AND CMAKE_RUN_LONG_TESTS AND NOT CMAKE_SKIP_BOOTSTRAP_TEST)
  938. # fortran does not work for IDE builds because
  939. # CMAKE_STANDARD_LIBRARIES needs to be per language
  940. IF(CMAKE_TEST_GENERATOR MATCHES "Makefiles")
  941. # see if we can find a fortran compiler on the machine
  942. # if so, add the fortran test and see if it works.
  943. SET(CMAKE_Fortran_COMPILER_LIST ifort ifc efc f95 pgf95
  944. lf95 xlf95 fort gfortran f90 pgf90 xlf90
  945. epcf90 f77 fort77 frt pgf77 xlf fl32 af77 g77 )
  946. FIND_PROGRAM(CMAKE_Fortran_COMPILER_FULLPATH NAMES ${CMAKE_Fortran_COMPILER_LIST} )
  947. MARK_AS_ADVANCED(CMAKE_Fortran_COMPILER_FULLPATH)
  948. IF(CMAKE_Fortran_COMPILER_FULLPATH)
  949. ADD_TEST(Fortran ${CMAKE_CTEST_COMMAND}
  950. --build-and-test
  951. "${CMake_SOURCE_DIR}/Tests/Fortran"
  952. "${CMake_BINARY_DIR}/Tests/Fortran"
  953. --build-generator ${CMAKE_TEST_GENERATOR}
  954. --build-project testf
  955. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  956. --build-two-config
  957. --test-command testf)
  958. ENDIF(CMAKE_Fortran_COMPILER_FULLPATH)
  959. ENDIF(CMAKE_TEST_GENERATOR MATCHES "Makefiles")
  960. IF(NOT CMAKE_TEST_GENERATOR MATCHES "Xcode")
  961. INCLUDE(FindJava)
  962. IF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE AND NOT MINGW)
  963. GET_FILENAME_COMPONENT(JNIPATH ${JAVA_COMPILE} PATH)
  964. FIND_FILE(JNI_H jni.h
  965. "${JNIPATH}/../include"
  966. "${JNIPATH}/../java/include")
  967. IF(JNI_H)
  968. FILE(READ "${JNI_H}" JNI_FILE)
  969. IF("${JNI_FILE}" MATCHES "JDK1_2")
  970. ADD_TEST(Java ${CMAKE_CTEST_COMMAND}
  971. --build-and-test
  972. "${CMake_SOURCE_DIR}/Tests/Java"
  973. "${CMake_BINARY_DIR}/Tests/Java"
  974. --build-generator ${CMAKE_TEST_GENERATOR}
  975. --build-project hello
  976. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  977. --build-two-config
  978. --build-run-dir "${CMake_BINARY_DIR}/Tests/Java/"
  979. --test-command ${JAVA_RUNTIME} -classpath hello.jar HelloWorld)
  980. ENDIF("${JNI_FILE}" MATCHES "JDK1_2")
  981. ENDIF(JNI_H)
  982. ENDIF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE AND NOT MINGW)
  983. ENDIF(NOT CMAKE_TEST_GENERATOR MATCHES "Xcode")
  984. IF (CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE OR WXWINDOWS_INCLUDE_DIR)
  985. # Will be set if the wxwindows gui is on
  986. ADD_TEST(UseWX ${CMAKE_CTEST_COMMAND}
  987. --build-and-test
  988. "${CMake_SOURCE_DIR}/Tests/UseWX"
  989. "${CMake_BINARY_DIR}/Tests/UseWX"
  990. --build-generator ${CMAKE_TEST_GENERATOR}
  991. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  992. --build-exe-dir ${CMake_BINARY_DIR}/Tests/UseWX
  993. --build-project UsewxWindows
  994. --build-options -DCMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE:FILEPATH=${CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE}
  995. --test-command UseWX
  996. )
  997. ENDIF (CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE OR WXWINDOWS_INCLUDE_DIR)
  998. IF(UNIX)
  999. STRING(COMPARE EQUAL "${CMAKE_INSTALL_PREFIX}" "${CMake_BINARY_DIR}/Tests/TestShellInstall/Prefix"
  1000. PREFIX_IS_FOR_TEST)
  1001. IF(PREFIX_IS_FOR_TEST)
  1002. CONFIGURE_FILE(
  1003. ${CMake_SOURCE_DIR}/Tests/TestInstall.sh.in
  1004. ${CMake_BINARY_DIR}/Tests/TestShellInstall/TestInstall.sh
  1005. @ONLY IMMEDIATE
  1006. )
  1007. ADD_TEST(ShellInstall /bin/sh ${CMake_BINARY_DIR}/Tests/TestShellInstall/TestShellInstall.sh)
  1008. ENDIF(PREFIX_IS_FOR_TEST)
  1009. ENDIF(UNIX)
  1010. ENDIF(BUILD_TESTING)
  1011. INCLUDE (${CMAKE_BINARY_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
  1012. INCLUDE (${CMAKE_SOURCE_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
  1013. INSTALL_TARGETS(/bin cmake)
  1014. INSTALL_TARGETS(/bin ctest)
  1015. INSTALL_TARGETS(/bin cpack)
  1016. IF(APPLE)
  1017. INSTALL_TARGETS(/bin cmakexbuild)
  1018. ENDIF(APPLE)
  1019. INSTALL_FILES(${CMAKE_DATA_DIR}/include cmCPluginAPI.h)