CMakeLists.txt 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110
  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. TARGET_LINK_LIBRARIES(CMakeLib -framework Carbon)
  214. ENDIF(APPLE)
  215. # On some platforms we need the rpcrt4 library for the VS 7 generators.
  216. IF(CMAKE_BUILD_ON_VISUAL_STUDIO OR MINGW)
  217. TARGET_LINK_LIBRARIES(CMakeLib rpcrt4)
  218. ENDIF(CMAKE_BUILD_ON_VISUAL_STUDIO OR MINGW)
  219. #
  220. # CTestLib
  221. #
  222. INCLUDE_DIRECTORIES(
  223. "${CMAKE_SOURCE_DIR}/Source/CTest"
  224. ${CMAKE_XMLRPC_INCLUDES}
  225. ${CMAKE_CURL_INCLUDES}
  226. )
  227. #
  228. # Sources for CTestLib
  229. #
  230. SET(CMTEST_SRCS cmCTest.cxx
  231. CTest/cmCTestBuildAndTestHandler.cxx
  232. CTest/cmCTestBuildCommand.cxx
  233. CTest/cmCTestBuildHandler.cxx
  234. CTest/cmCTestConfigureCommand.cxx
  235. CTest/cmCTestConfigureHandler.cxx
  236. CTest/cmCTestCoverageCommand.cxx
  237. CTest/cmCTestCoverageHandler.cxx
  238. CTest/cmCTestEmptyBinaryDirectoryCommand.cxx
  239. CTest/cmCTestGenericHandler.cxx
  240. CTest/cmCTestHandlerCommand.cxx
  241. CTest/cmCTestMemCheckCommand.cxx
  242. CTest/cmCTestMemCheckHandler.cxx
  243. CTest/cmCTestReadCustomFilesCommand.cxx
  244. CTest/cmCTestRunScriptCommand.cxx
  245. CTest/cmCTestScriptHandler.cxx
  246. CTest/cmCTestSleepCommand.cxx
  247. CTest/cmCTestStartCommand.cxx
  248. CTest/cmCTestSubmitCommand.cxx
  249. CTest/cmCTestSubmitHandler.cxx
  250. CTest/cmCTestTestCommand.cxx
  251. CTest/cmCTestTestHandler.cxx
  252. CTest/cmCTestUpdateCommand.cxx
  253. CTest/cmCTestUpdateHandler.cxx
  254. )
  255. # Build CTestLib
  256. ADD_LIBRARY(CTestLib ${CMTEST_SRCS})
  257. TARGET_LINK_LIBRARIES(CTestLib CMakeLib ${CMAKE_CURL_LIBRARIES} ${CMAKE_XMLRPC_LIBRARIES})
  258. #
  259. # Sources for CPack
  260. #
  261. SET(CPACK_SRCS
  262. CPack/cmCPackGenerators.cxx
  263. CPack/cmCPackSTGZGenerator.cxx
  264. CPack/cmCPackTGZGenerator.cxx
  265. CPack/cmCPackNSISGenerator.cxx
  266. CPack/cmCPackPackageMakerGenerator.cxx
  267. CPack/cmCPackZIPGenerator.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(MacroTest ${CMAKE_CTEST_COMMAND}
  466. --build-and-test
  467. "${CMake_SOURCE_DIR}/Tests/MacroTest"
  468. "${CMake_BINARY_DIR}/Tests/MacroTest"
  469. --build-generator ${CMAKE_TEST_GENERATOR}
  470. --build-project littleMacroTest
  471. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  472. --build-two-config
  473. --test-command miniMacroTest)
  474. SET(SimpleInstallInstallDir
  475. "${CMake_BINARY_DIR}/Tests/SimpleInstall/InstallDirectory")
  476. ADD_TEST(SimpleInstall ${CMAKE_CTEST_COMMAND}
  477. --build-and-test
  478. "${CMake_SOURCE_DIR}/Tests/SimpleInstall"
  479. "${CMake_BINARY_DIR}/Tests/SimpleInstall"
  480. --build-generator ${CMAKE_TEST_GENERATOR}
  481. --build-project TestSimpleInstall
  482. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  483. --build-two-config
  484. --build-options
  485. "-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}"
  486. --test-command ${SimpleInstallInstallDir}/MyTest/bin/SimpleInstallExe)
  487. ADD_TEST(SimpleInstall-Stage2 ${CMAKE_CTEST_COMMAND}
  488. --build-and-test
  489. "${CMake_SOURCE_DIR}/Tests/SimpleInstallS2"
  490. "${CMake_BINARY_DIR}/Tests/SimpleInstallS2"
  491. --build-generator ${CMAKE_TEST_GENERATOR}
  492. --build-project TestSimpleInstall
  493. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  494. --build-two-config
  495. --build-options
  496. "-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}"
  497. "-DSTAGE2:BOOL=1"
  498. --test-command ${SimpleInstallInstallDir}/MyTest/bin/SimpleInstallS2)
  499. ADD_TEST(X11 ${CMAKE_CTEST_COMMAND}
  500. --build-and-test
  501. "${CMake_SOURCE_DIR}/Tests/X11"
  502. "${CMake_BINARY_DIR}/Tests/X11"
  503. --build-generator ${CMAKE_TEST_GENERATOR}
  504. --build-project UseX11
  505. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  506. --build-two-config
  507. --test-command UseX11)
  508. ADD_TEST(LoadedCommand ${CMAKE_CTEST_COMMAND}
  509. --build-and-test
  510. "${CMake_SOURCE_DIR}/Tests/LoadCommand"
  511. "${CMake_BINARY_DIR}/Tests/LoadCommand"
  512. --build-generator ${CMAKE_TEST_GENERATOR}
  513. --build-project LoadedCommand
  514. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  515. --build-two-config
  516. --test-command LoadedCommand)
  517. ADD_TEST(LoadedCommandOneConfig ${CMAKE_CTEST_COMMAND}
  518. --build-and-test
  519. "${CMake_SOURCE_DIR}/Tests/LoadCommandOneConfig"
  520. "${CMake_BINARY_DIR}/Tests/LoadCommandOneConfig"
  521. --build-generator ${CMAKE_TEST_GENERATOR}
  522. --build-project LoadedCommand
  523. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  524. --test-command LoadedCommand
  525. )
  526. # Como does not seem to support shared libraries.
  527. GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_CXX_COMPILER} NAME_WE)
  528. IF(CMAKE_BASE_NAME MATCHES "^como$")
  529. SET(COMPILER_IS_COMO 1)
  530. ENDIF(CMAKE_BASE_NAME MATCHES "^como$")
  531. IF(NOT COMPILER_IS_COMO)
  532. ADD_TEST(complex ${CMAKE_CTEST_COMMAND}
  533. --build-and-test
  534. "${CMake_SOURCE_DIR}/Tests/Complex"
  535. "${CMake_BINARY_DIR}/Tests/Complex"
  536. --build-two-config
  537. --build-generator ${CMAKE_TEST_GENERATOR}
  538. --build-project complex
  539. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  540. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Complex/bin"
  541. --build-options
  542. -DCMAKE_TEST_DIFFERENT_GENERATOR:BOOL=${CMAKE_TEST_DIFFERENT_GENERATOR}
  543. --test-command complex
  544. )
  545. ADD_TEST(complexOneConfig ${CMAKE_CTEST_COMMAND}
  546. --build-and-test
  547. "${CMake_SOURCE_DIR}/Tests/ComplexOneConfig"
  548. "${CMake_BINARY_DIR}/Tests/ComplexOneConfig"
  549. --build-generator ${CMAKE_TEST_GENERATOR}
  550. --build-project complex
  551. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  552. --build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexOneConfig/bin"
  553. --build-options
  554. -DCMAKE_TEST_DIFFERENT_GENERATOR:BOOL=${CMAKE_TEST_DIFFERENT_GENERATOR}
  555. --test-command complex)
  556. # ADD_TEST(complexRelativePaths ${CMAKE_CTEST_COMMAND}
  557. # --build-and-test
  558. # "${CMake_SOURCE_DIR}/Tests/ComplexRelativePaths"
  559. # "${CMake_BINARY_DIR}/Tests/ComplexRelativePaths"
  560. # --build-generator ${CMAKE_TEST_GENERATOR}
  561. # --build-project complex
  562. # --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  563. # --build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexRelativePaths/bin"
  564. # --build-options -DCMAKE_USE_RELATIVE_PATHS:BOOL=ON
  565. # --test-command complex)
  566. ENDIF(NOT COMPILER_IS_COMO)
  567. ADD_TEST(Example ${CMAKE_CTEST_COMMAND}
  568. --build-and-test
  569. "${CMake_SOURCE_DIR}/Example"
  570. "${CMake_BINARY_DIR}/Example"
  571. --build-generator ${CMAKE_TEST_GENERATOR}
  572. --build-project HELLO
  573. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  574. --build-exe-dir "${CMake_BINARY_DIR}/Example/Demo"
  575. --test-command helloDemo
  576. )
  577. ADD_TEST(TutorialStep1 ${CMAKE_CTEST_COMMAND}
  578. --build-and-test
  579. "${CMake_SOURCE_DIR}/Tests/Tutorial/Step1"
  580. "${CMake_BINARY_DIR}/Tests/Tutorial/Step1"
  581. --build-two-config
  582. --build-generator ${CMAKE_TEST_GENERATOR}
  583. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  584. --build-project Tutorial
  585. --test-command Tutorial 25.0)
  586. ADD_TEST(TutorialStep2 ${CMAKE_CTEST_COMMAND}
  587. --build-and-test
  588. "${CMake_SOURCE_DIR}/Tests/Tutorial/Step2"
  589. "${CMake_BINARY_DIR}/Tests/Tutorial/Step2"
  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(TutorialStep3 ${CMAKE_CTEST_COMMAND}
  596. --build-and-test
  597. "${CMake_SOURCE_DIR}/Tests/Tutorial/Step3"
  598. "${CMake_BINARY_DIR}/Tests/Tutorial/Step3"
  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(TutorialStep4 ${CMAKE_CTEST_COMMAND}
  605. --build-and-test
  606. "${CMake_SOURCE_DIR}/Tests/Tutorial/Step4"
  607. "${CMake_BINARY_DIR}/Tests/Tutorial/Step4"
  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(TutorialStep5 ${CMAKE_CTEST_COMMAND}
  614. --build-and-test
  615. "${CMake_SOURCE_DIR}/Tests/Tutorial/Step5"
  616. "${CMake_BINARY_DIR}/Tests/Tutorial/Step5"
  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(testing ${CMAKE_CTEST_COMMAND}
  623. --build-and-test
  624. "${CMake_SOURCE_DIR}/Tests/Testing"
  625. "${CMake_BINARY_DIR}/Tests/Testing"
  626. --build-generator ${CMAKE_TEST_GENERATOR}
  627. --build-project testing
  628. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  629. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Testing/bin"
  630. --test-command testing
  631. )
  632. ADD_TEST(wrapping ${CMAKE_CTEST_COMMAND}
  633. --build-and-test
  634. "${CMake_SOURCE_DIR}/Tests/Wrapping"
  635. "${CMake_BINARY_DIR}/Tests/Wrapping"
  636. --build-generator ${CMAKE_TEST_GENERATOR}
  637. --build-project wrapping
  638. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  639. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  640. --test-command wrapping
  641. )
  642. # use the FindQt3.cmake from this cmake as it may not be in an older version of cmake
  643. INCLUDE (${CMAKE_SOURCE_DIR}/Modules/FindQt3.cmake)
  644. MARK_AS_ADVANCED(
  645. QT_INCLUDE_PATH
  646. QT_MOC_EXE
  647. QT_QT_LIBRARY
  648. QT_UIC_EXE)
  649. IF (QT_FOUND AND QT_UIC_EXECUTABLE)
  650. ADD_TEST(qtwrapping ${CMAKE_CTEST_COMMAND}
  651. --build-and-test
  652. "${CMake_SOURCE_DIR}/Tests/Wrapping"
  653. "${CMake_BINARY_DIR}/Tests/Wrapping"
  654. --build-generator ${CMAKE_TEST_GENERATOR}
  655. --build-project Wrapping
  656. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  657. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  658. --test-command qtwrapping
  659. )
  660. ENDIF (QT_FOUND AND QT_UIC_EXECUTABLE)
  661. ADD_TEST(testdriver1 ${CMAKE_CTEST_COMMAND}
  662. --build-and-test
  663. "${CMake_SOURCE_DIR}/Tests/TestDriver"
  664. "${CMake_BINARY_DIR}/Tests/TestDriver"
  665. --build-generator ${CMAKE_TEST_GENERATOR}
  666. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  667. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  668. --build-project TestDriverTest
  669. --test-command TestDriverTest test1
  670. )
  671. ADD_TEST(testdriver2 ${CMAKE_CTEST_COMMAND}
  672. --build-and-test
  673. "${CMake_SOURCE_DIR}/Tests/TestDriver"
  674. "${CMake_BINARY_DIR}/Tests/TestDriver"
  675. --build-generator ${CMAKE_TEST_GENERATOR}
  676. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  677. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  678. --build-project TestDriverTest
  679. --test-command TestDriverTest test2
  680. )
  681. ADD_TEST(testdriver3 ${CMAKE_CTEST_COMMAND}
  682. --build-and-test
  683. "${CMake_SOURCE_DIR}/Tests/TestDriver"
  684. "${CMake_BINARY_DIR}/Tests/TestDriver"
  685. --build-generator ${CMAKE_TEST_GENERATOR}
  686. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  687. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  688. --build-project TestDriverTest
  689. --test-command TestDriverTest subdir/test3
  690. )
  691. ADD_TEST(dependency_w_libout ${CMAKE_CTEST_COMMAND}
  692. --build-and-test
  693. "${CMake_SOURCE_DIR}/Tests/Dependency"
  694. "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
  695. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec"
  696. --build-project Dependency
  697. --build-generator ${CMAKE_TEST_GENERATOR}
  698. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  699. --build-options
  700. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
  701. --test-command exec
  702. )
  703. ADD_TEST(dependency_wo_lib_out ${CMAKE_CTEST_COMMAND}
  704. --build-and-test
  705. "${CMake_SOURCE_DIR}/Tests/Dependency"
  706. "${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut"
  707. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut/Exec"
  708. --build-generator ${CMAKE_TEST_GENERATOR}
  709. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  710. --build-project Dependency
  711. --test-command exec
  712. )
  713. ADD_TEST(dependency2 ${CMAKE_CTEST_COMMAND}
  714. --build-and-test
  715. "${CMake_SOURCE_DIR}/Tests/Dependency"
  716. "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
  717. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec2"
  718. --build-generator ${CMAKE_TEST_GENERATOR}
  719. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  720. --build-project Dependency
  721. --build-options
  722. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
  723. --test-command exec2
  724. )
  725. ADD_TEST(dependency3 ${CMAKE_CTEST_COMMAND}
  726. --build-and-test
  727. "${CMake_SOURCE_DIR}/Tests/Dependency"
  728. "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
  729. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec3"
  730. --build-generator ${CMAKE_TEST_GENERATOR}
  731. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  732. --build-project Dependency
  733. --build-options
  734. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
  735. --test-command exec3)
  736. ADD_TEST(dependency4 ${CMAKE_CTEST_COMMAND}
  737. --build-and-test
  738. "${CMake_SOURCE_DIR}/Tests/Dependency"
  739. "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
  740. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec4"
  741. --build-generator ${CMAKE_TEST_GENERATOR}
  742. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  743. --build-project Dependency
  744. --build-options
  745. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
  746. --test-command exec4
  747. )
  748. ADD_TEST(JumpWithLibOut ${CMAKE_CTEST_COMMAND}
  749. --build-and-test
  750. "${CMake_SOURCE_DIR}/Tests/Jump"
  751. "${CMake_BINARY_DIR}/Tests/Jump/WithLibOut"
  752. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Jump/WithLibOut/Executable"
  753. --build-project Jump
  754. --build-generator ${CMAKE_TEST_GENERATOR}
  755. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  756. --build-options
  757. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Jump/WithLibOut/Lib
  758. --test-command jumpExecutable
  759. )
  760. ADD_TEST(JumpNoLibOut ${CMAKE_CTEST_COMMAND}
  761. --build-and-test
  762. "${CMake_SOURCE_DIR}/Tests/Jump"
  763. "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut"
  764. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut/Executable"
  765. --build-run-dir "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut/Executable"
  766. --build-project Jump
  767. --build-generator ${CMAKE_TEST_GENERATOR}
  768. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  769. --test-command jumpExecutable
  770. )
  771. ADD_TEST(linkline ${CMAKE_CTEST_COMMAND}
  772. --build-and-test
  773. "${CMake_SOURCE_DIR}/Tests/LinkLine"
  774. "${CMake_BINARY_DIR}/Tests/LinkLine"
  775. --build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLine"
  776. --build-generator ${CMAKE_TEST_GENERATOR}
  777. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  778. --build-project Linkline
  779. --test-command Exec
  780. )
  781. ADD_TEST(linkorder1 ${CMAKE_CTEST_COMMAND}
  782. --build-and-test
  783. "${CMake_SOURCE_DIR}/Tests/LinkLineOrder"
  784. "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
  785. --build-generator ${CMAKE_TEST_GENERATOR}
  786. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  787. --build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
  788. --build-project LinkLineOrder
  789. --test-command Exec1
  790. )
  791. ADD_TEST(linkorder2 ${CMAKE_CTEST_COMMAND}
  792. --build-and-test
  793. "${CMake_SOURCE_DIR}/Tests/LinkLineOrder"
  794. "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
  795. --build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
  796. --build-generator ${CMAKE_TEST_GENERATOR}
  797. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  798. --build-project LinkLineOrder
  799. --test-command Exec2
  800. )
  801. ADD_TEST(ExternalOBJ ${CMAKE_CTEST_COMMAND}
  802. --build-and-test
  803. "${CMake_SOURCE_DIR}/Tests/ExternalOBJ"
  804. "${CMake_BINARY_DIR}/Tests/ExternalOBJ"
  805. --build-generator ${CMAKE_TEST_GENERATOR}
  806. --build-project ExternalOBJ
  807. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  808. --build-exe-dir "${CMake_BINARY_DIR}/ExternalOBJ"
  809. --test-command executable
  810. )
  811. IF(NOT CMAKE_TEST_DIFFERENT_GENERATOR)
  812. ADD_TEST(kwsys ${CMAKE_CTEST_COMMAND}
  813. --build-and-test
  814. "${CMake_SOURCE_DIR}/Source/kwsys"
  815. "${CMake_BINARY_DIR}/Tests/kwsys"
  816. --build-exe-dir "${CMake_BINARY_DIR}/Tests/kwsys"
  817. --build-generator ${CMAKE_TEST_GENERATOR}
  818. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  819. --build-project kwsys
  820. --test-command testIOS
  821. )
  822. ENDIF(NOT CMAKE_TEST_DIFFERENT_GENERATOR)
  823. IF (WIN32)
  824. ADD_TEST(SubDir ${CMAKE_CTEST_COMMAND}
  825. --build-and-test
  826. "${CMake_SOURCE_DIR}/Tests/SubDir"
  827. "${CMake_BINARY_DIR}/Tests/SubDir"
  828. --build-exe-dir "${CMake_BINARY_DIR}/Tests/SubDir/Executable"
  829. --build-generator ${CMAKE_TEST_GENERATOR}
  830. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  831. --build-project SUBDIR
  832. --test-command test
  833. "${CMake_BINARY_DIR}/Tests/SubDir/ShouldBeHere"
  834. "${CMake_BINARY_DIR}/Tests/SubDir/testfromsubdir.obj"
  835. )
  836. ELSE (WIN32)
  837. ADD_TEST(SubDir ${CMAKE_CTEST_COMMAND}
  838. --build-and-test
  839. "${CMake_SOURCE_DIR}/Tests/SubDir"
  840. "${CMake_BINARY_DIR}/Tests/SubDir"
  841. --build-exe-dir "${CMake_BINARY_DIR}/Tests/SubDir/Executable"
  842. --build-generator ${CMAKE_TEST_GENERATOR}
  843. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  844. --build-project SUBDIR
  845. --test-command test
  846. "${CMake_BINARY_DIR}/Tests/SubDir/ShouldBeHere"
  847. "${CMake_BINARY_DIR}/Tests/SubDir/testfromsubdir.o"
  848. )
  849. ENDIF (WIN32)
  850. IF("${CMAKE_TEST_GENERATOR}" MATCHES "Makefile")
  851. ADD_TEST(MakeClean ${CMAKE_CTEST_COMMAND}
  852. --build-and-test
  853. "${CMake_SOURCE_DIR}/Tests/MakeClean"
  854. "${CMake_BINARY_DIR}/Tests/MakeClean"
  855. --build-generator ${CMAKE_TEST_GENERATOR}
  856. --build-project MakeClean
  857. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  858. --build-exe-dir "${CMake_BINARY_DIR}/MakeClean"
  859. --test-command check_clean
  860. )
  861. ENDIF("${CMAKE_TEST_GENERATOR}" MATCHES "Makefile")
  862. IF(${CMAKE_TEST_GENERATOR} MATCHES "Visual Studio")
  863. ADD_TEST(VSExternalInclude ${CMAKE_CTEST_COMMAND}
  864. --build-and-test
  865. "${CMake_SOURCE_DIR}/Tests/VSExternalInclude"
  866. "${CMake_BINARY_DIR}/Tests/VSExternalInclude"
  867. --build-two-config
  868. --build-generator ${CMAKE_TEST_GENERATOR}
  869. --build-project VSExternalInclude
  870. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  871. --test-command VSExternalInclude)
  872. ENDIF(${CMAKE_TEST_GENERATOR} MATCHES "Visual Studio")
  873. IF (APPLE AND CMAKE_COMPILER_IS_GNUCXX)
  874. SET(BundleTestInstallDir
  875. "${CMake_BINARY_DIR}/Tests/BundleTest/InstallDirectory")
  876. ADD_TEST(BundleTest ${CMAKE_CTEST_COMMAND}
  877. --build-and-test
  878. "${CMake_SOURCE_DIR}/Tests/BundleTest"
  879. "${CMake_BINARY_DIR}/Tests/BundleTest"
  880. --build-two-config
  881. --build-generator ${CMAKE_TEST_GENERATOR}
  882. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  883. --build-project BundleTest
  884. --build-target install
  885. # --build-target package
  886. --build-options "-DCMAKE_INSTALL_PREFIX:PATH=${BundleTestInstallDir}"
  887. --test-command
  888. ${BundleTestInstallDir}/Application/BundleTestExe.app/Contents/MacOS/BundleTestExe)
  889. ADD_TEST(objc++ ${CMAKE_CTEST_COMMAND}
  890. --build-and-test
  891. "${CMake_SOURCE_DIR}/Tests/ObjC++"
  892. "${CMake_BINARY_DIR}/Tests/ObjC++"
  893. --build-generator ${CMAKE_TEST_GENERATOR}
  894. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  895. --build-project objc++
  896. --test-command objc++
  897. )
  898. ENDIF (APPLE AND CMAKE_COMPILER_IS_GNUCXX)
  899. IF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS)
  900. CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest/test.cmake.in"
  901. "${CMake_BINARY_DIR}/Tests/CTestTest/test.cmake" @ONLY ESCAPE_QUOTES)
  902. ADD_TEST(CTestTest ${CMAKE_CTEST_COMMAND}
  903. -S "${CMake_BINARY_DIR}/Tests/CTestTest/test.cmake" -V
  904. --output-log "${CMake_BINARY_DIR}/Tests/CTestTest/testOutput.log"
  905. )
  906. CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest2/test.cmake.in"
  907. "${CMake_BINARY_DIR}/Tests/CTestTest2/test.cmake" @ONLY ESCAPE_QUOTES)
  908. ADD_TEST(CTestTest2 ${CMAKE_CTEST_COMMAND}
  909. -S "${CMake_BINARY_DIR}/Tests/CTestTest2/test.cmake" -V
  910. --output-log "${CMake_BINARY_DIR}/Tests/CTestTest2/testOutput.log"
  911. )
  912. CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest3/test.cmake.in"
  913. "${CMake_BINARY_DIR}/Tests/CTestTest3/test.cmake" @ONLY ESCAPE_QUOTES)
  914. ADD_TEST(CTestTest3 ${CMAKE_CTEST_COMMAND}
  915. -S "${CMake_BINARY_DIR}/Tests/CTestTest3/test.cmake" -V
  916. --output-log "${CMake_BINARY_DIR}/Tests/CTestTest3/testOutput.log"
  917. )
  918. ENDIF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS)
  919. IF("${CMAKE_TEST_GENERATOR}" MATCHES Xcode)
  920. SET(CMAKE_SKIP_BOOTSTRAP_TEST 1)
  921. ENDIF("${CMAKE_TEST_GENERATOR}" MATCHES Xcode)
  922. IF(EXISTS "${CMAKE_BINARY_DIR}/CMakeLists.txt")
  923. # If there is CMakeLists.txt in the binary tree, assume in-source build
  924. SET(CMAKE_SKIP_BOOTSTRAP_TEST 1)
  925. ENDIF(EXISTS "${CMAKE_BINARY_DIR}/CMakeLists.txt")
  926. IF(UNIX AND CMAKE_RUN_LONG_TESTS AND NOT CMAKE_SKIP_BOOTSTRAP_TEST)
  927. ADD_TEST(BootstrapTest ${CMAKE_CTEST_COMMAND}
  928. --build-and-test
  929. ${CMake_SOURCE_DIR}
  930. ${CMake_BINARY_DIR}/Tests/BootstrapTest
  931. --build-nocmake
  932. --build-noclean
  933. --build-makeprogram ${CMake_SOURCE_DIR}/bootstrap
  934. --build-generator "${CMAKE_TEST_GENERATOR}"
  935. --test-command ${CMake_BINARY_DIR}/Tests/BootstrapTest/Bootstrap.cmk/cmake)
  936. ENDIF(UNIX AND CMAKE_RUN_LONG_TESTS AND NOT CMAKE_SKIP_BOOTSTRAP_TEST)
  937. # fortran does not work for IDE builds because
  938. # CMAKE_STANDARD_LIBRARIES needs to be per language
  939. IF(CMAKE_TEST_GENERATOR MATCHES "Makefiles")
  940. # see if we can find a fortran compiler on the machine
  941. # if so, add the fortran test and see if it works.
  942. SET(CMAKE_Fortran_COMPILER_LIST ifort ifc efc f95 pgf95
  943. lf95 xlf95 fort gfortran f90 pgf90 xlf90
  944. epcf90 f77 fort77 frt pgf77 xlf fl32 af77 g77 )
  945. FIND_PROGRAM(CMAKE_Fortran_COMPILER_FULLPATH NAMES ${CMAKE_Fortran_COMPILER_LIST} )
  946. MARK_AS_ADVANCED(CMAKE_Fortran_COMPILER_FULLPATH)
  947. IF(CMAKE_Fortran_COMPILER_FULLPATH)
  948. ADD_TEST(Fortran ${CMAKE_CTEST_COMMAND}
  949. --build-and-test
  950. "${CMake_SOURCE_DIR}/Tests/Fortran"
  951. "${CMake_BINARY_DIR}/Tests/Fortran"
  952. --build-generator ${CMAKE_TEST_GENERATOR}
  953. --build-project testf
  954. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  955. --build-two-config
  956. --test-command testf)
  957. ENDIF(CMAKE_Fortran_COMPILER_FULLPATH)
  958. ENDIF(CMAKE_TEST_GENERATOR MATCHES "Makefiles")
  959. IF(NOT CMAKE_TEST_GENERATOR MATCHES "Xcode")
  960. INCLUDE(FindJava)
  961. IF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE AND NOT MINGW)
  962. GET_FILENAME_COMPONENT(JNIPATH ${JAVA_COMPILE} PATH)
  963. FIND_FILE(JNI_H jni.h
  964. "${JNIPATH}/../include"
  965. "${JNIPATH}/../java/include")
  966. IF(JNI_H)
  967. FILE(READ "${JNI_H}" JNI_FILE)
  968. IF("${JNI_FILE}" MATCHES "JDK1_2")
  969. ADD_TEST(Java ${CMAKE_CTEST_COMMAND}
  970. --build-and-test
  971. "${CMake_SOURCE_DIR}/Tests/Java"
  972. "${CMake_BINARY_DIR}/Tests/Java"
  973. --build-generator ${CMAKE_TEST_GENERATOR}
  974. --build-project hello
  975. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  976. --build-two-config
  977. --build-run-dir "${CMake_BINARY_DIR}/Tests/Java/"
  978. --test-command ${JAVA_RUNTIME} -classpath hello.jar HelloWorld)
  979. ENDIF("${JNI_FILE}" MATCHES "JDK1_2")
  980. ENDIF(JNI_H)
  981. ENDIF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE AND NOT MINGW)
  982. ENDIF(NOT CMAKE_TEST_GENERATOR MATCHES "Xcode")
  983. IF (CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE OR WXWINDOWS_INCLUDE_DIR)
  984. # Will be set if the wxwindows gui is on
  985. ADD_TEST(UseWX ${CMAKE_CTEST_COMMAND}
  986. --build-and-test
  987. "${CMake_SOURCE_DIR}/Tests/UseWX"
  988. "${CMake_BINARY_DIR}/Tests/UseWX"
  989. --build-generator ${CMAKE_TEST_GENERATOR}
  990. --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
  991. --build-exe-dir ${CMake_BINARY_DIR}/Tests/UseWX
  992. --build-project UsewxWindows
  993. --build-options -DCMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE:FILEPATH=${CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE}
  994. --test-command UseWX
  995. )
  996. ENDIF (CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE OR WXWINDOWS_INCLUDE_DIR)
  997. IF(UNIX)
  998. STRING(COMPARE EQUAL "${CMAKE_INSTALL_PREFIX}" "${CMake_BINARY_DIR}/Tests/TestShellInstall/Prefix"
  999. PREFIX_IS_FOR_TEST)
  1000. IF(PREFIX_IS_FOR_TEST)
  1001. CONFIGURE_FILE(
  1002. ${CMake_SOURCE_DIR}/Tests/TestInstall.sh.in
  1003. ${CMake_BINARY_DIR}/Tests/TestShellInstall/TestInstall.sh
  1004. @ONLY IMMEDIATE
  1005. )
  1006. ADD_TEST(ShellInstall /bin/sh ${CMake_BINARY_DIR}/Tests/TestShellInstall/TestShellInstall.sh)
  1007. ENDIF(PREFIX_IS_FOR_TEST)
  1008. ENDIF(UNIX)
  1009. ENDIF(BUILD_TESTING)
  1010. INCLUDE (${CMAKE_BINARY_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
  1011. INCLUDE (${CMAKE_SOURCE_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
  1012. INSTALL_TARGETS(/bin cmake)
  1013. INSTALL_TARGETS(/bin ctest)
  1014. INSTALL_TARGETS(/bin cpack)
  1015. IF(APPLE)
  1016. INSTALL_TARGETS(/bin cmakexbuild)
  1017. ENDIF(APPLE)
  1018. INSTALL_FILES(${CMAKE_DATA_DIR}/include cmCPluginAPI.h)