CMakeLists.txt 37 KB

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