CMakeLists.txt 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830
  1. CMAKE_MINIMUM_REQUIRED(VERSION 1.5)
  2. # configure the .h file
  3. CONFIGURE_FILE(
  4. "${CMake_SOURCE_DIR}/Source/cmConfigure.cmake.h.in"
  5. "${CMake_BINARY_DIR}/Source/cmConfigure.h"
  6. )
  7. # add the include path to find the .h
  8. INCLUDE_DIRECTORIES(
  9. "${CMake_BINARY_DIR}/Source"
  10. "${CMake_SOURCE_DIR}/Source"
  11. )
  12. # let cmake know it is supposed to use it
  13. ADD_DEFINITIONS(-DCMAKE_BUILD_WITH_CMAKE)
  14. #
  15. # Sources for CMakeLib
  16. #
  17. SET(SRCS
  18. cmBootstrapCommands.cxx
  19. cmCacheManager.cxx
  20. cmCacheManager.h
  21. cmCommands.cxx
  22. cmCommands.h
  23. cmCustomCommand.cxx
  24. cmCustomCommand.h
  25. cmDepends.cxx
  26. cmDepends.h
  27. cmDependsC.cxx
  28. cmDependsC.h
  29. cmDependsFortran.cxx
  30. cmDependsFortran.h
  31. cmDependsFortranLexer.cxx
  32. cmDependsFortranParser.cxx
  33. cmDependsFortranParser.h
  34. cmDependsJava.cxx
  35. cmDependsJava.h
  36. cmDependsJavaLexer.cxx
  37. cmDependsJavaParser.cxx
  38. cmDependsJavaParserHelper.cxx
  39. cmDependsJavaParserHelper.h
  40. cmDocumentation.cxx
  41. cmDynamicLoader.cxx
  42. cmDynamicLoader.h
  43. cmGeneratedFileStream.cxx
  44. cmGlob.cxx
  45. cmGlobalGenerator.cxx
  46. cmGlobalGenerator.h
  47. cmGlobalUnixMakefileGenerator.cxx
  48. cmGlobalUnixMakefileGenerator.h
  49. cmGlobalXCodeGenerator.cxx
  50. cmListFileCache.cxx
  51. cmListFileCache.h
  52. cmListFileLexer.c
  53. cmLocalGenerator.cxx
  54. cmLocalGenerator.h
  55. cmLocalUnixMakefileGenerator2.cxx
  56. cmLocalXCodeGenerator.cxx
  57. cmMakeDepend.cxx
  58. cmMakeDepend.h
  59. cmMakefile.cxx
  60. cmMakefile.h
  61. cmOrderLinkDirectories.cxx
  62. cmSourceFile.cxx
  63. cmSourceFile.h
  64. cmSourceGroup.cxx
  65. cmSourceGroup.h
  66. cmSystemTools.cxx
  67. cmSystemTools.h
  68. cmTarget.cxx
  69. cmTarget.h
  70. cmVariableWatch.cxx
  71. cmVariableWatch.h
  72. cmVersion.cxx
  73. cmVersion.h
  74. cmXCodeObject.cxx
  75. cmXMLParser.cxx
  76. cmXMLParser.h
  77. cmake.cxx
  78. cmake.h
  79. cmakewizard.cxx
  80. cmakewizard.h
  81. )
  82. # Kdevelop only works on UNIX and not windows
  83. IF(UNIX)
  84. SET(SRCS ${SRCS}
  85. cmGlobalKdevelopGenerator.cxx
  86. cmLocalKdevelopGenerator.cxx)
  87. ENDIF(UNIX)
  88. IF (WIN32)
  89. IF(NOT UNIX)
  90. SET(SRCS ${SRCS}
  91. cmGlobalBorlandMakefileGenerator.cxx
  92. cmGlobalNMakeMakefileGenerator.cxx
  93. cmGlobalVisualStudio6Generator.cxx
  94. cmLocalVisualStudio6Generator.cxx
  95. cmGlobalBorlandMakefileGenerator.h
  96. cmGlobalNMakeMakefileGenerator.h
  97. cmGlobalVisualStudio6Generator.h
  98. cmLocalVisualStudio6Generator.h
  99. cmWin32ProcessExecution.cxx
  100. cmWin32ProcessExecution.h
  101. )
  102. IF(NOT MINGW)
  103. SET(SRCS ${SRCS}
  104. cmGlobalVisualStudio71Generator.h
  105. cmGlobalVisualStudio8Generator.h
  106. cmGlobalVisualStudio7Generator.h
  107. cmLocalVisualStudio7Generator.h
  108. cmGlobalVisualStudio8Generator.cxx
  109. cmGlobalVisualStudio71Generator.cxx
  110. cmGlobalVisualStudio7Generator.cxx
  111. cmLocalVisualStudio7Generator.cxx)
  112. ENDIF(NOT MINGW)
  113. ENDIF(NOT UNIX)
  114. ENDIF (WIN32)
  115. # create a library used by the command line and the GUI
  116. ADD_LIBRARY(CMakeLib ${SRCS})
  117. TARGET_LINK_LIBRARIES(CMakeLib cmsys ${CMAKE_EXPAT_LIBRARIES} cmzlib)
  118. IF (UNIX)
  119. TARGET_LINK_LIBRARIES(CMakeLib ${CMAKE_DL_LIBS})
  120. ENDIF (UNIX)
  121. IF(CMAKE_BUILD_ON_VISUAL_STUDIO)
  122. # On Visual Studio we need rpcrt4.lib for cmVisualStudio7 generator.
  123. TARGET_LINK_LIBRARIES(CMakeLib rpcrt4.lib)
  124. ENDIF(CMAKE_BUILD_ON_VISUAL_STUDIO)
  125. #
  126. # CTestLib
  127. #
  128. INCLUDE_DIRECTORIES(
  129. "${CMAKE_SOURCE_DIR}/Source/CTest"
  130. ${CMAKE_XMLRPC_INCLUDES}
  131. )
  132. #
  133. # Sources for CTestLib
  134. #
  135. SET(CMTEST_SRCS cmCTest.cxx
  136. CTest/cmCTestGenericHandler.cxx
  137. CTest/cmCTestBuildHandler.cxx
  138. CTest/cmCTestConfigureHandler.cxx
  139. CTest/cmCTestCoverageHandler.cxx
  140. CTest/cmCTestScriptHandler.cxx
  141. CTest/cmCTestTestHandler.cxx
  142. CTest/cmCTestUpdateHandler.cxx
  143. CTest/cmCTestEmptyBinaryDirectoryCommand.cxx
  144. CTest/cmCTestRunScriptCommand.cxx
  145. CTest/cmCTestSleepCommand.cxx
  146. CTest/cmCTestStartCommand.cxx
  147. CTest/cmCTestUpdateCommand.cxx
  148. CTest/cmCTestMemCheckHandler.cxx
  149. CTest/cmCTestSubmit.cxx
  150. )
  151. # Build CTestLib
  152. ADD_LIBRARY(CTestLib ${CMTEST_SRCS})
  153. TARGET_LINK_LIBRARIES(CTestLib CMakeLib ${CMAKE_CURL_LIBRARIES} ${CMAKE_XMLRPC_LIBRARIES})
  154. # Build CMake executable
  155. ADD_EXECUTABLE(cmake cmakemain.cxx)
  156. TARGET_LINK_LIBRARIES(cmake CMakeLib)
  157. ADD_EXECUTABLE(DumpDocumentation cmDumpDocumentation)
  158. TARGET_LINK_LIBRARIES(DumpDocumentation CMakeLib)
  159. # Build special executable for running programs on Windows 98
  160. IF(WIN32)
  161. IF(NOT UNIX)
  162. ADD_EXECUTABLE(cmw9xcom cmw9xcom.cxx)
  163. TARGET_LINK_LIBRARIES(cmw9xcom CMakeLib)
  164. ENDIF(NOT UNIX)
  165. ENDIF(WIN32)
  166. # Build CTest executable
  167. ADD_EXECUTABLE(ctest ctest.cxx)
  168. TARGET_LINK_LIBRARIES(ctest CTestLib)
  169. # Curses GUI
  170. IF (UNIX)
  171. INCLUDE (${CMake_SOURCE_DIR}/Modules/FindCurses.cmake OPTIONAL)
  172. IF (CURSES_LIBRARY)
  173. INCLUDE(${CMake_SOURCE_DIR}/Source/CursesDialog/CMakeLists.txt)
  174. ENDIF (CURSES_LIBRARY)
  175. ENDIF (UNIX)
  176. # MFC GUI
  177. # MFC libraries are only available on Visual Studio
  178. IF(CMAKE_BUILD_ON_VISUAL_STUDIO)
  179. SUBDIRS(MFCDialog)
  180. ENDIF(CMAKE_BUILD_ON_VISUAL_STUDIO)
  181. # WX Widgets GUI
  182. OPTION(CMAKE_BUILD_WX_DIALOG "Build wxWidgets dialog for CMake" FALSE)
  183. MARK_AS_ADVANCED(CMAKE_BUILD_WX_DIALOG)
  184. IF(CMAKE_BUILD_WX_DIALOG)
  185. SUBDIRS(WXDialog)
  186. ENDIF(CMAKE_BUILD_WX_DIALOG)
  187. # Testing
  188. IF (NOT DART_ROOT)
  189. SET(MAKEPROGRAM ${CMAKE_MAKE_PROGRAM})
  190. ENDIF (NOT DART_ROOT)
  191. IF(BUILD_TESTING)
  192. # This variable is set by cmake, however to
  193. # test cmake we want to make sure that
  194. # the ctest from this cmake is used for testing
  195. # and not the ctest from the cmake building and testing
  196. # cmake.
  197. SET(CMAKE_CTEST_COMMAND "${EXECUTABLE_OUTPUT_PATH}/ctest")
  198. # Should the long tests be run?
  199. OPTION(CMAKE_RUN_LONG_TESTS "Should the long tests be run (such as Bootstrap)." ON)
  200. MARK_AS_ADVANCED(CMAKE_RUN_LONG_TESTS)
  201. ADD_TEST(CommandLineTest ${CMAKE_CTEST_COMMAND}
  202. --build-and-test
  203. "${CMake_SOURCE_DIR}/Tests/CommandLineTest"
  204. "${CMake_BINARY_DIR}/Tests/CommandLineTest"
  205. --build-two-config
  206. --build-generator ${CMAKE_GENERATOR}
  207. --build-makeprogram ${MAKEPROGRAM}
  208. --build-project CommandLineTest
  209. --test-command CommandLineTest)
  210. ADD_TEST(CustomCommand ${CMAKE_CTEST_COMMAND}
  211. --build-and-test
  212. "${CMake_SOURCE_DIR}/Tests/CustomCommand"
  213. "${CMake_BINARY_DIR}/Tests/CustomCommand"
  214. --build-two-config
  215. --build-generator ${CMAKE_GENERATOR}
  216. --build-project CustomCommand
  217. --build-makeprogram ${MAKEPROGRAM}
  218. --build-exe-dir "${CMake_BINARY_DIR}/Tests/CustomCommand/bin"
  219. --test-command CustomCommand
  220. )
  221. ADD_TEST(FindPackageTest ${CMAKE_CTEST_COMMAND}
  222. --build-and-test
  223. "${CMake_SOURCE_DIR}/Tests/FindPackageTest"
  224. "${CMake_BINARY_DIR}/Tests/FindPackageTest"
  225. --build-two-config
  226. --build-generator ${CMAKE_GENERATOR}
  227. --build-project FindPackageTest
  228. --build-makeprogram ${MAKEPROGRAM}
  229. --test-command FindPackageTest)
  230. ADD_TEST(SystemInformation ${CMAKE_CTEST_COMMAND}
  231. --build-and-test
  232. "${CMake_SOURCE_DIR}/Tests/SystemInformation"
  233. "${CMake_BINARY_DIR}/Tests/SystemInformation"
  234. --build-two-config
  235. --build-generator ${CMAKE_GENERATOR}
  236. --build-project DumpInformation
  237. --build-makeprogram ${MAKEPROGRAM}
  238. --test-command DumpInformation)
  239. ADD_TEST(StringFileTest ${CMAKE_CTEST_COMMAND}
  240. --build-and-test
  241. "${CMake_SOURCE_DIR}/Tests/StringFileTest"
  242. "${CMake_BINARY_DIR}/Tests/StringFileTest"
  243. --build-two-config
  244. --build-generator ${CMAKE_GENERATOR}
  245. --build-project StringFileTest
  246. --build-makeprogram ${MAKEPROGRAM}
  247. --test-command StringFileTest)
  248. ADD_TEST(TryCompile ${CMAKE_CTEST_COMMAND}
  249. --build-and-test
  250. "${CMake_SOURCE_DIR}/Tests/TryCompile"
  251. "${CMake_BINARY_DIR}/Tests/TryCompile"
  252. --build-generator ${CMAKE_GENERATOR}
  253. --build-project TryCompile
  254. --build-makeprogram ${MAKEPROGRAM}
  255. --build-two-config
  256. --test-command TryCompile)
  257. ADD_TEST(simple ${CMAKE_CTEST_COMMAND}
  258. --build-and-test
  259. "${CMake_SOURCE_DIR}/Tests/Simple"
  260. "${CMake_BINARY_DIR}/Tests/Simple"
  261. --build-generator ${CMAKE_GENERATOR}
  262. --build-project Simple
  263. --build-makeprogram ${MAKEPROGRAM}
  264. --build-two-config
  265. --test-command simple)
  266. ADD_TEST(OutOfSource ${CMAKE_CTEST_COMMAND}
  267. --build-and-test
  268. "${CMake_SOURCE_DIR}/Tests/OutOfSource"
  269. "${CMake_BINARY_DIR}/Tests/OutOfSource"
  270. --build-generator ${CMAKE_GENERATOR}
  271. --build-project OutOfSource
  272. --build-makeprogram ${MAKEPROGRAM}
  273. --build-two-config
  274. --test-command
  275. "${CMake_BINARY_DIR}/Tests/OutOfSource/SubDir/OutOfSourceSubdir/simple")
  276. ADD_TEST(PreOrder ${CMAKE_CTEST_COMMAND}
  277. --build-and-test
  278. "${CMake_SOURCE_DIR}/Tests/PreOrder"
  279. "${CMake_BINARY_DIR}/Tests/PreOrder"
  280. --build-generator ${CMAKE_GENERATOR}
  281. --build-project PreOrder
  282. --build-makeprogram ${MAKEPROGRAM}
  283. --build-two-config
  284. --test-command simple)
  285. ADD_TEST(conly ${CMAKE_CTEST_COMMAND}
  286. --build-and-test
  287. "${CMake_SOURCE_DIR}/Tests/COnly"
  288. "${CMake_BINARY_DIR}/Tests/COnly"
  289. --build-generator ${CMAKE_GENERATOR}
  290. --build-project conly
  291. --build-makeprogram ${MAKEPROGRAM}
  292. --build-two-config
  293. --test-command conly)
  294. SET(SimpleInstallInstallDir
  295. "${CMake_BINARY_DIR}/Tests/SimpleInstall/InstallDirectory")
  296. ADD_TEST(SimpleInstall ${CMAKE_CTEST_COMMAND}
  297. --build-and-test
  298. "${CMake_SOURCE_DIR}/Tests/SimpleInstall"
  299. "${CMake_BINARY_DIR}/Tests/SimpleInstall"
  300. --build-generator ${CMAKE_GENERATOR}
  301. --build-project TestSimpleInstall
  302. --build-makeprogram ${MAKEPROGRAM}
  303. --build-two-config
  304. --build-options
  305. "-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}"
  306. --test-command ${SimpleInstallInstallDir}/bin/SimpleInstall)
  307. ADD_TEST(SimpleInstall-Stage2 ${CMAKE_CTEST_COMMAND}
  308. --build-and-test
  309. "${CMake_SOURCE_DIR}/Tests/SimpleInstallS2"
  310. "${CMake_BINARY_DIR}/Tests/SimpleInstallS2"
  311. --build-generator ${CMAKE_GENERATOR}
  312. --build-project TestSimpleInstall
  313. --build-makeprogram ${MAKEPROGRAM}
  314. --build-two-config
  315. --build-options
  316. "-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}"
  317. "-DSTAGE2:BOOL=1"
  318. --test-command ${SimpleInstallInstallDir}/bin/SimpleInstallS2)
  319. ADD_TEST(X11 ${CMAKE_CTEST_COMMAND}
  320. --build-and-test
  321. "${CMake_SOURCE_DIR}/Tests/X11"
  322. "${CMake_BINARY_DIR}/Tests/X11"
  323. --build-generator ${CMAKE_GENERATOR}
  324. --build-project UseX11
  325. --build-makeprogram ${MAKEPROGRAM}
  326. --build-two-config
  327. --test-command UseX11)
  328. ADD_TEST(LoadedCommand ${CMAKE_CTEST_COMMAND}
  329. --build-and-test
  330. "${CMake_SOURCE_DIR}/Tests/LoadCommand"
  331. "${CMake_BINARY_DIR}/Tests/LoadCommand"
  332. --build-generator ${CMAKE_GENERATOR}
  333. --build-project LoadedCommand
  334. --build-makeprogram ${MAKEPROGRAM}
  335. --build-two-config
  336. --test-command LoadedCommand)
  337. ADD_TEST(LoadedCommandOneConfig ${CMAKE_CTEST_COMMAND}
  338. --build-and-test
  339. "${CMake_SOURCE_DIR}/Tests/LoadCommandOneConfig"
  340. "${CMake_BINARY_DIR}/Tests/LoadCommandOneConfig"
  341. --build-generator ${CMAKE_GENERATOR}
  342. --build-project LoadedCommand
  343. --build-makeprogram ${MAKEPROGRAM}
  344. --test-command LoadedCommand
  345. )
  346. # Como does not seem to support shared libraries.
  347. GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_CXX_COMPILER} NAME_WE)
  348. IF(CMAKE_BASE_NAME MATCHES "^como$")
  349. SET(COMPILER_IS_COMO 1)
  350. ENDIF(CMAKE_BASE_NAME MATCHES "^como$")
  351. IF(NOT COMPILER_IS_COMO)
  352. ADD_TEST(complex ${CMAKE_CTEST_COMMAND}
  353. --build-and-test
  354. "${CMake_SOURCE_DIR}/Tests/Complex"
  355. "${CMake_BINARY_DIR}/Tests/Complex"
  356. --build-two-config
  357. --build-generator ${CMAKE_GENERATOR}
  358. --build-project complex
  359. --build-makeprogram ${MAKEPROGRAM}
  360. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Complex/bin"
  361. --test-command complex
  362. )
  363. ADD_TEST(complexOneConfig ${CMAKE_CTEST_COMMAND}
  364. --build-and-test
  365. "${CMake_SOURCE_DIR}/Tests/ComplexOneConfig"
  366. "${CMake_BINARY_DIR}/Tests/ComplexOneConfig"
  367. --build-generator ${CMAKE_GENERATOR}
  368. --build-project complex
  369. --build-makeprogram ${MAKEPROGRAM}
  370. --build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexOneConfig/bin"
  371. --test-command complex)
  372. ADD_TEST(complexRelativePaths ${CMAKE_CTEST_COMMAND}
  373. --build-and-test
  374. "${CMake_SOURCE_DIR}/Tests/ComplexRelativePaths"
  375. "${CMake_BINARY_DIR}/Tests/ComplexRelativePaths"
  376. --build-generator ${CMAKE_GENERATOR}
  377. --build-project complex
  378. --build-makeprogram ${MAKEPROGRAM}
  379. --build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexRelativePaths/bin"
  380. --build-options -DCMAKE_USE_RELATIVE_PATHS:BOOL=ON
  381. --test-command complex)
  382. ENDIF(NOT COMPILER_IS_COMO)
  383. ADD_TEST(Example ${CMAKE_CTEST_COMMAND}
  384. --build-and-test
  385. "${CMake_SOURCE_DIR}/Example"
  386. "${CMake_BINARY_DIR}/Example"
  387. --build-generator ${CMAKE_GENERATOR}
  388. --build-project HELLO
  389. --build-makeprogram ${MAKEPROGRAM}
  390. --build-exe-dir "${CMake_BINARY_DIR}/Example/Demo"
  391. --test-command helloDemo
  392. )
  393. ADD_TEST(testing ${CMAKE_CTEST_COMMAND}
  394. --build-and-test
  395. "${CMake_SOURCE_DIR}/Tests/Testing"
  396. "${CMake_BINARY_DIR}/Tests/Testing"
  397. --build-generator ${CMAKE_GENERATOR}
  398. --build-project testing
  399. --build-makeprogram ${MAKEPROGRAM}
  400. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Testing/bin"
  401. --test-command testing
  402. )
  403. ADD_TEST(wrapping ${CMAKE_CTEST_COMMAND}
  404. --build-and-test
  405. "${CMake_SOURCE_DIR}/Tests/Wrapping"
  406. "${CMake_BINARY_DIR}/Tests/Wrapping"
  407. --build-generator ${CMAKE_GENERATOR}
  408. --build-project wrapping
  409. --build-makeprogram ${MAKEPROGRAM}
  410. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  411. --test-command wrapping
  412. )
  413. INCLUDE ( ${CMAKE_ROOT}/Modules/FindQt.cmake )
  414. MARK_AS_ADVANCED(
  415. QT_INCLUDE_PATH
  416. QT_MOC_EXE
  417. QT_QT_LIBRARY
  418. QT_UIC_EXE)
  419. IF (QT_FOUND)
  420. ADD_TEST(qtwrapping ${CMAKE_CTEST_COMMAND}
  421. --build-and-test
  422. "${CMake_SOURCE_DIR}/Tests/Wrapping"
  423. "${CMake_BINARY_DIR}/Tests/Wrapping"
  424. --build-generator ${CMAKE_GENERATOR}
  425. --build-project Wrapping
  426. --build-makeprogram ${MAKEPROGRAM}
  427. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  428. --test-command qtwrapping
  429. )
  430. ENDIF (QT_FOUND)
  431. ADD_TEST(testdriver1 ${CMAKE_CTEST_COMMAND}
  432. --build-and-test
  433. "${CMake_SOURCE_DIR}/Tests/TestDriver"
  434. "${CMake_BINARY_DIR}/Tests/TestDriver"
  435. --build-generator ${CMAKE_GENERATOR}
  436. --build-makeprogram ${MAKEPROGRAM}
  437. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  438. --build-project TestDriverTest
  439. --test-command TestDriverTest test1
  440. )
  441. ADD_TEST(testdriver2 ${CMAKE_CTEST_COMMAND}
  442. --build-and-test
  443. "${CMake_SOURCE_DIR}/Tests/TestDriver"
  444. "${CMake_BINARY_DIR}/Tests/TestDriver"
  445. --build-generator ${CMAKE_GENERATOR}
  446. --build-makeprogram ${MAKEPROGRAM}
  447. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  448. --build-project TestDriverTest
  449. --test-command TestDriverTest test2
  450. )
  451. ADD_TEST(testdriver3 ${CMAKE_CTEST_COMMAND}
  452. --build-and-test
  453. "${CMake_SOURCE_DIR}/Tests/TestDriver"
  454. "${CMake_BINARY_DIR}/Tests/TestDriver"
  455. --build-generator ${CMAKE_GENERATOR}
  456. --build-makeprogram ${MAKEPROGRAM}
  457. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  458. --build-project TestDriverTest
  459. --test-command TestDriverTest subdir/test3
  460. )
  461. ADD_TEST(dependency_w_libout ${CMAKE_CTEST_COMMAND}
  462. --build-and-test
  463. "${CMake_SOURCE_DIR}/Tests/Dependency"
  464. "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
  465. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec"
  466. --build-project Dependency
  467. --build-generator ${CMAKE_GENERATOR}
  468. --build-makeprogram ${MAKEPROGRAM}
  469. --build-options
  470. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
  471. --test-command exec
  472. )
  473. ADD_TEST(dependency_wo_lib_out ${CMAKE_CTEST_COMMAND}
  474. --build-and-test
  475. "${CMake_SOURCE_DIR}/Tests/Dependency"
  476. "${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut"
  477. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut/Exec"
  478. --build-generator ${CMAKE_GENERATOR}
  479. --build-makeprogram ${MAKEPROGRAM}
  480. --build-project Dependency
  481. --test-command exec
  482. )
  483. ADD_TEST(dependency2 ${CMAKE_CTEST_COMMAND}
  484. --build-and-test
  485. "${CMake_SOURCE_DIR}/Tests/Dependency"
  486. "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
  487. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec2"
  488. --build-generator ${CMAKE_GENERATOR}
  489. --build-makeprogram ${MAKEPROGRAM}
  490. --build-project Dependency
  491. --build-options
  492. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
  493. --test-command exec2
  494. )
  495. ADD_TEST(dependency3 ${CMAKE_CTEST_COMMAND}
  496. --build-and-test
  497. "${CMake_SOURCE_DIR}/Tests/Dependency"
  498. "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
  499. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec3"
  500. --build-generator ${CMAKE_GENERATOR}
  501. --build-makeprogram ${MAKEPROGRAM}
  502. --build-project Dependency
  503. --build-options
  504. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
  505. --test-command exec3)
  506. ADD_TEST(dependency4 ${CMAKE_CTEST_COMMAND}
  507. --build-and-test
  508. "${CMake_SOURCE_DIR}/Tests/Dependency"
  509. "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
  510. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec4"
  511. --build-generator ${CMAKE_GENERATOR}
  512. --build-makeprogram ${MAKEPROGRAM}
  513. --build-project Dependency
  514. --build-options
  515. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
  516. --test-command exec4
  517. )
  518. ADD_TEST(JumpWithLibOut ${CMAKE_CTEST_COMMAND}
  519. --build-and-test
  520. "${CMake_SOURCE_DIR}/Tests/Jump"
  521. "${CMake_BINARY_DIR}/Tests/Jump/WithLibOut"
  522. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Jump/WithLibOut/Executable"
  523. --build-project Jump
  524. --build-generator ${CMAKE_GENERATOR}
  525. --build-makeprogram ${MAKEPROGRAM}
  526. --build-options
  527. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Jump/WithLibOut/Lib
  528. --test-command jumpExecutable
  529. )
  530. ADD_TEST(JumpNoLibOut ${CMAKE_CTEST_COMMAND}
  531. --build-and-test
  532. "${CMake_SOURCE_DIR}/Tests/Jump"
  533. "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut"
  534. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut/Executable"
  535. --build-run-dir "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut/Executable"
  536. --build-project Jump
  537. --build-generator ${CMAKE_GENERATOR}
  538. --build-makeprogram ${MAKEPROGRAM}
  539. --test-command jumpExecutable
  540. )
  541. ADD_TEST(linkline ${CMAKE_CTEST_COMMAND}
  542. --build-and-test
  543. "${CMake_SOURCE_DIR}/Tests/LinkLine"
  544. "${CMake_BINARY_DIR}/Tests/LinkLine"
  545. --build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLine"
  546. --build-generator ${CMAKE_GENERATOR}
  547. --build-makeprogram ${MAKEPROGRAM}
  548. --build-project Linkline
  549. --test-command Exec
  550. )
  551. ADD_TEST(linkorder1 ${CMAKE_CTEST_COMMAND}
  552. --build-and-test
  553. "${CMake_SOURCE_DIR}/Tests/LinkLineOrder"
  554. "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
  555. --build-generator ${CMAKE_GENERATOR}
  556. --build-makeprogram ${MAKEPROGRAM}
  557. --build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
  558. --build-project LinkLineOrder
  559. --test-command Exec1
  560. )
  561. ADD_TEST(linkorder2 ${CMAKE_CTEST_COMMAND}
  562. --build-and-test
  563. "${CMake_SOURCE_DIR}/Tests/LinkLineOrder"
  564. "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
  565. --build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
  566. --build-generator ${CMAKE_GENERATOR}
  567. --build-makeprogram ${MAKEPROGRAM}
  568. --build-project LinkLineOrder
  569. --test-command Exec2
  570. )
  571. ADD_TEST(ExternalOBJ ${CMAKE_CTEST_COMMAND}
  572. --build-and-test
  573. "${CMake_SOURCE_DIR}/Tests/ExternalOBJ"
  574. "${CMake_BINARY_DIR}/Tests/ExternalOBJ"
  575. --build-generator ${CMAKE_GENERATOR}
  576. --build-project ExternalOBJ
  577. --build-makeprogram ${MAKEPROGRAM}
  578. --build-exe-dir "${CMake_BINARY_DIR}/ExternalOBJ"
  579. --test-command executable
  580. )
  581. ADD_TEST(curl ${CMAKE_CTEST_COMMAND}
  582. --build-and-test
  583. "${CMake_SOURCE_DIR}/Source/CTest/Curl"
  584. "${CMake_BINARY_DIR}/Tests/Curl"
  585. --build-generator ${CMAKE_GENERATOR}
  586. --build-makeprogram ${MAKEPROGRAM}
  587. --build-project LIBCURL
  588. --test-command LIBCURL)
  589. ADD_TEST(kwsys ${CMAKE_CTEST_COMMAND}
  590. --build-and-test
  591. "${CMake_SOURCE_DIR}/Source/kwsys"
  592. "${CMake_BINARY_DIR}/Tests/kwsys"
  593. --build-exe-dir "${CMake_BINARY_DIR}/Tests/kwsys"
  594. --build-generator ${CMAKE_GENERATOR}
  595. --build-makeprogram ${MAKEPROGRAM}
  596. --build-project kwsys
  597. --test-command test1
  598. )
  599. IF (WIN32)
  600. ADD_TEST(SubDir ${CMAKE_CTEST_COMMAND}
  601. --build-and-test
  602. "${CMake_SOURCE_DIR}/Tests/SubDir"
  603. "${CMake_BINARY_DIR}/Tests/SubDir"
  604. --build-exe-dir "${CMake_BINARY_DIR}/Tests/SubDir/Executable"
  605. --build-generator ${CMAKE_GENERATOR}
  606. --build-makeprogram ${MAKEPROGRAM}
  607. --build-project SUBDIR
  608. --test-command test
  609. "${CMake_BINARY_DIR}/Tests/SubDir/ShouldBeHere"
  610. "${CMake_BINARY_DIR}/Tests/SubDir/testfromsubdir.obj"
  611. )
  612. ELSE (WIN32)
  613. ADD_TEST(SubDir ${CMAKE_CTEST_COMMAND}
  614. --build-and-test
  615. "${CMake_SOURCE_DIR}/Tests/SubDir"
  616. "${CMake_BINARY_DIR}/Tests/SubDir"
  617. --build-exe-dir "${CMake_BINARY_DIR}/Tests/SubDir/Executable"
  618. --build-generator ${CMAKE_GENERATOR}
  619. --build-makeprogram ${MAKEPROGRAM}
  620. --build-project SUBDIR
  621. --test-command test
  622. "${CMake_BINARY_DIR}/Tests/SubDir/ShouldBeHere"
  623. "${CMake_BINARY_DIR}/Tests/SubDir/testfromsubdir.o"
  624. )
  625. ENDIF (WIN32)
  626. IF("${CMAKE_GENERATOR}" MATCHES "Makefile")
  627. ADD_TEST(MakeClean ${CMAKE_CTEST_COMMAND}
  628. --build-and-test
  629. "${CMake_SOURCE_DIR}/Tests/MakeClean"
  630. "${CMake_BINARY_DIR}/Tests/MakeClean"
  631. --build-generator ${CMAKE_GENERATOR}
  632. --build-project MakeClean
  633. --build-makeprogram ${MAKEPROGRAM}
  634. --build-exe-dir "${CMake_BINARY_DIR}/MakeClean"
  635. --test-command check_clean
  636. )
  637. ENDIF("${CMAKE_GENERATOR}" MATCHES "Makefile")
  638. IF(${CMAKE_GENERATOR} MATCHES "Visual Studio")
  639. ADD_TEST(VSExternalInclude ${CMAKE_CTEST_COMMAND}
  640. --build-and-test
  641. "${CMake_SOURCE_DIR}/Tests/VSExternalInclude"
  642. "${CMake_BINARY_DIR}/Tests/VSExternalInclude"
  643. --build-two-config
  644. --build-generator ${CMAKE_GENERATOR}
  645. --build-project VSExternalInclude
  646. --build-makeprogram ${MAKEPROGRAM}
  647. --test-command VSExternalInclude)
  648. ENDIF(${CMAKE_GENERATOR} MATCHES "Visual Studio")
  649. IF (APPLE AND CMAKE_COMPILER_IS_GNUCXX)
  650. ADD_TEST(objc++ ${CMAKE_CTEST_COMMAND}
  651. --build-and-test
  652. "${CMake_SOURCE_DIR}/Tests/Objc++"
  653. "${CMake_BINARY_DIR}/Tests/Objc++"
  654. --build-generator ${CMAKE_GENERATOR}
  655. --build-makeprogram ${MAKEPROGRAM}
  656. --build-project objc++
  657. --test-command objc++
  658. )
  659. ENDIF (APPLE AND CMAKE_COMPILER_IS_GNUCXX)
  660. IF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS)
  661. CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest/test.cmake.in"
  662. "${CMake_BINARY_DIR}/Tests/CTestTest/test.cmake" @ONLY ESCAPE_QUOTES)
  663. ADD_TEST(CTestTest ${CMAKE_CTEST_COMMAND}
  664. -S "${CMake_BINARY_DIR}/Tests/CTestTest/test.cmake" -V
  665. )
  666. ENDIF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS)
  667. IF("${CMAKE_GENERATOR}" MATCHES XCode)
  668. SET(CMAKE_SKIP_BOOTSTRAP_TEST 1)
  669. ENDIF("${CMAKE_GENERATOR}" MATCHES XCode)
  670. IF(UNIX AND CMAKE_RUN_LONG_TESTS AND NOT CMAKE_SKIP_BOOTSTRAP_TEST)
  671. ADD_TEST(BootstrapTest ${CMAKE_CTEST_COMMAND}
  672. --build-and-test
  673. ${CMake_SOURCE_DIR}
  674. ${CMake_BINARY_DIR}/Tests/BootstrapTest
  675. --build-nocmake
  676. --build-noclean
  677. --build-makeprogram ${CMake_SOURCE_DIR}/bootstrap
  678. --build-generator "${CMAKE_GENERATOR}"
  679. --test-command ${CMake_BINARY_DIR}/Tests/BootstrapTest/Bootstrap.cmk/cmake)
  680. ENDIF(UNIX AND CMAKE_RUN_LONG_TESTS AND NOT CMAKE_SKIP_BOOTSTRAP_TEST)
  681. IF(CMAKE_GENERATOR MATCHES "Makefiles")
  682. # see if we can find a fortran compiler on the machine
  683. # if so, add the fortran test and see if it works.
  684. SET(CMAKE_Fortran_COMPILER_LIST ifort ifc efc f95 pgf95
  685. lf95 xlf95 fort gfortran f90 pgf90 xlf90
  686. epcf90 f77 fort77 frt pgf77 xlf fl32 af77 g77 )
  687. FIND_PROGRAM(CMAKE_Fortran_COMPILER_FULLPATH NAMES ${CMAKE_Fortran_COMPILER_LIST} )
  688. MARK_AS_ADVANCED(CMAKE_Fortran_COMPILER_FULLPATH)
  689. IF(CMAKE_Fortran_COMPILER_FULLPATH)
  690. ADD_TEST(Fortran ${CMAKE_CTEST_COMMAND}
  691. --build-and-test
  692. "${CMake_SOURCE_DIR}/Tests/Fortran"
  693. "${CMake_BINARY_DIR}/Tests/Fortran"
  694. --build-generator ${CMAKE_GENERATOR}
  695. --build-project testf
  696. --build-makeprogram ${MAKEPROGRAM}
  697. --build-two-config
  698. --test-command testf)
  699. ENDIF(CMAKE_Fortran_COMPILER_FULLPATH)
  700. INCLUDE(FindJava)
  701. IF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE)
  702. GET_FILENAME_COMPONENT(JNIPATH ${JAVA_COMPILE} PATH)
  703. FIND_FILE(JNI_H jni.h
  704. "${JNIPATH}/../include"
  705. "${JNIPATH}/../java/include")
  706. IF(JNI_H)
  707. FILE(READ "${JNI_H}" JNI_FILE)
  708. IF("${JNI_FILE}" MATCHES "JDK1_2")
  709. ADD_TEST(Java ${CMAKE_CTEST_COMMAND}
  710. --build-and-test
  711. "${CMake_SOURCE_DIR}/Tests/Java"
  712. "${CMake_BINARY_DIR}/Tests/Java"
  713. --build-generator ${CMAKE_GENERATOR}
  714. --build-project hello
  715. --build-makeprogram ${MAKEPROGRAM}
  716. --build-two-config
  717. --build-run-dir "${CMake_BINARY_DIR}/Tests/Java/"
  718. --test-command ${JAVA_RUNTIME} -classpath hello.jar HelloWorld)
  719. ELSE("${JNI_FILE}" MATCHES "JDK1_2")
  720. MESSAGE(STATUS "No Java Test because ${JNI_H} does not contain JDK1_2 define")
  721. ENDIF("${JNI_FILE}" MATCHES "JDK1_2")
  722. ELSE(JNI_H)
  723. MESSAGE(STATUS "No Java Test because jni.h could not be found. tried:\n${JNIPATH}/../include and ${JNIPATH}/../java/include")
  724. ENDIF(JNI_H)
  725. ENDIF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE)
  726. ENDIF(CMAKE_GENERATOR MATCHES "Makefiles")
  727. IF (CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE OR WXWINDOWS_INCLUDE_DIR)
  728. # Will be set if the wxwindows gui is on
  729. ADD_TEST(UseWX ${CMAKE_CTEST_COMMAND}
  730. --build-and-test
  731. "${CMake_SOURCE_DIR}/Tests/UseWX"
  732. "${CMake_BINARY_DIR}/Tests/UseWX"
  733. --build-generator ${CMAKE_GENERATOR}
  734. --build-makeprogram ${MAKEPROGRAM}
  735. --build-exe-dir ${CMake_BINARY_DIR}/Tests/UseWX
  736. --build-project UsewxWindows
  737. --build-options -DCMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE:FILEPATH=${CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE}
  738. --test-command UseWX
  739. )
  740. ENDIF (CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE OR WXWINDOWS_INCLUDE_DIR)
  741. IF(UNIX)
  742. STRING(COMPARE EQUAL "${CMAKE_INSTALL_PREFIX}" "${CMake_BINARY_DIR}/Tests/TestShellInstall/Prefix"
  743. PREFIX_IS_FOR_TEST)
  744. IF(PREFIX_IS_FOR_TEST)
  745. CONFIGURE_FILE(
  746. ${CMake_SOURCE_DIR}/Tests/TestInstall.sh.in
  747. ${CMake_BINARY_DIR}/Tests/TestShellInstall/TestInstall.sh
  748. @ONLY IMMEDIATE
  749. )
  750. ADD_TEST(ShellInstall /bin/sh ${CMake_BINARY_DIR}/Tests/TestShellInstall/TestShellInstall.sh)
  751. ENDIF(PREFIX_IS_FOR_TEST)
  752. ENDIF(UNIX)
  753. ENDIF(BUILD_TESTING)
  754. INCLUDE (${CMAKE_BINARY_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
  755. INCLUDE (${CMAKE_SOURCE_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
  756. INSTALL_TARGETS(/bin cmake)
  757. INSTALL_TARGETS(/bin ctest)
  758. INSTALL_FILES(${CMAKE_DATA_DIR}/include cmCPluginAPI.h)