CMakeLists.txt 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819
  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. cmLocalUnixMakefileGenerator.cxx
  56. cmLocalUnixMakefileGenerator.h
  57. cmLocalUnixMakefileGenerator2.cxx
  58. cmLocalXCodeGenerator.cxx
  59. cmMakeDepend.cxx
  60. cmMakeDepend.h
  61. cmMakefile.cxx
  62. cmMakefile.h
  63. cmOrderLinkDirectories.cxx
  64. cmSourceFile.cxx
  65. cmSourceFile.h
  66. cmSourceGroup.cxx
  67. cmSourceGroup.h
  68. cmSystemTools.cxx
  69. cmSystemTools.h
  70. cmTarget.cxx
  71. cmTarget.h
  72. cmVariableWatch.cxx
  73. cmVariableWatch.h
  74. cmVersion.cxx
  75. cmVersion.h
  76. cmXCodeObject.cxx
  77. cmXMLParser.cxx
  78. cmXMLParser.h
  79. cmake.cxx
  80. cmake.h
  81. cmakewizard.cxx
  82. cmakewizard.h
  83. )
  84. # Kdevelop only works on UNIX and not windows
  85. IF(UNIX)
  86. SET(SRCS ${SRCS}
  87. cmGlobalKdevelopGenerator.cxx
  88. cmLocalKdevelopGenerator.cxx)
  89. ENDIF(UNIX)
  90. IF (WIN32)
  91. IF(NOT UNIX)
  92. SET(SRCS ${SRCS}
  93. cmGlobalBorlandMakefileGenerator.cxx
  94. cmGlobalNMakeMakefileGenerator.cxx
  95. cmGlobalVisualStudio6Generator.cxx
  96. cmLocalVisualStudio6Generator.cxx
  97. cmGlobalBorlandMakefileGenerator.h
  98. cmGlobalNMakeMakefileGenerator.h
  99. cmGlobalVisualStudio6Generator.h
  100. cmLocalVisualStudio6Generator.h
  101. cmWin32ProcessExecution.cxx
  102. cmWin32ProcessExecution.h
  103. )
  104. IF(NOT MINGW)
  105. SET(SRCS ${SRCS}
  106. cmGlobalVisualStudio71Generator.h
  107. cmGlobalVisualStudio8Generator.h
  108. cmGlobalVisualStudio7Generator.h
  109. cmLocalVisualStudio7Generator.h
  110. cmGlobalVisualStudio8Generator.cxx
  111. cmGlobalVisualStudio71Generator.cxx
  112. cmGlobalVisualStudio7Generator.cxx
  113. cmLocalVisualStudio7Generator.cxx)
  114. ENDIF(NOT MINGW)
  115. ENDIF(NOT UNIX)
  116. ENDIF (WIN32)
  117. # create a library used by the command line and the GUI
  118. ADD_LIBRARY(CMakeLib ${SRCS})
  119. TARGET_LINK_LIBRARIES(CMakeLib cmsys ${CMAKE_EXPAT_LIBRARIES} cmzlib)
  120. IF (UNIX)
  121. TARGET_LINK_LIBRARIES(CMakeLib ${CMAKE_DL_LIBS})
  122. ENDIF (UNIX)
  123. IF(CMAKE_BUILD_ON_VISUAL_STUDIO)
  124. # On Visual Studio we need rpcrt4.lib for cmVisualStudio7 generator.
  125. TARGET_LINK_LIBRARIES(CMakeLib rpcrt4.lib)
  126. ENDIF(CMAKE_BUILD_ON_VISUAL_STUDIO)
  127. #
  128. # CTestLib
  129. #
  130. INCLUDE_DIRECTORIES(
  131. "${CMAKE_SOURCE_DIR}/Source/CTest"
  132. ${CMAKE_XMLRPC_INCLUDES}
  133. )
  134. #
  135. # Sources for CTestLib
  136. #
  137. SET(CMTEST_SRCS cmCTest.cxx
  138. CTest/cmCTestGenericHandler.cxx
  139. CTest/cmCTestBuildHandler.cxx
  140. CTest/cmCTestConfigureHandler.cxx
  141. CTest/cmCTestCoverageHandler.cxx
  142. CTest/cmCTestScriptHandler.cxx
  143. CTest/cmCTestTestHandler.cxx
  144. CTest/cmCTestUpdateHandler.cxx
  145. CTest/cmCTestEmptyBinaryDirectoryCommand.cxx
  146. CTest/cmCTestRunScriptCommand.cxx
  147. CTest/cmCTestSleepCommand.cxx
  148. CTest/cmCTestStartCommand.cxx
  149. CTest/cmCTestUpdateCommand.cxx
  150. CTest/cmCTestMemCheckHandler.cxx
  151. CTest/cmCTestSubmit.cxx
  152. )
  153. # Build CTestLib
  154. ADD_LIBRARY(CTestLib ${CMTEST_SRCS})
  155. TARGET_LINK_LIBRARIES(CTestLib CMakeLib ${CMAKE_CURL_LIBRARIES} ${CMAKE_XMLRPC_LIBRARIES})
  156. # Build CMake executable
  157. ADD_EXECUTABLE(cmake cmakemain.cxx)
  158. TARGET_LINK_LIBRARIES(cmake CMakeLib)
  159. ADD_EXECUTABLE(DumpDocumentation cmDumpDocumentation)
  160. TARGET_LINK_LIBRARIES(DumpDocumentation CMakeLib)
  161. # Build special executable for running programs on Windows 98
  162. IF(WIN32)
  163. ADD_EXECUTABLE(cmw9xcom cmw9xcom.cxx)
  164. TARGET_LINK_LIBRARIES(cmw9xcom CMakeLib)
  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(PreOrder ${CMAKE_CTEST_COMMAND}
  267. --build-and-test
  268. "${CMake_SOURCE_DIR}/Tests/PreOrder"
  269. "${CMake_BINARY_DIR}/Tests/PreOrder"
  270. --build-generator ${CMAKE_GENERATOR}
  271. --build-project PreOrder
  272. --build-makeprogram ${MAKEPROGRAM}
  273. --build-two-config
  274. --test-command simple)
  275. ADD_TEST(conly ${CMAKE_CTEST_COMMAND}
  276. --build-and-test
  277. "${CMake_SOURCE_DIR}/Tests/COnly"
  278. "${CMake_BINARY_DIR}/Tests/COnly"
  279. --build-generator ${CMAKE_GENERATOR}
  280. --build-project conly
  281. --build-makeprogram ${MAKEPROGRAM}
  282. --build-two-config
  283. --test-command conly)
  284. SET(SimpleInstallInstallDir
  285. "${CMake_BINARY_DIR}/Tests/SimpleInstall/InstallDirectory")
  286. ADD_TEST(SimpleInstall ${CMAKE_CTEST_COMMAND}
  287. --build-and-test
  288. "${CMake_SOURCE_DIR}/Tests/SimpleInstall"
  289. "${CMake_BINARY_DIR}/Tests/SimpleInstall"
  290. --build-generator ${CMAKE_GENERATOR}
  291. --build-project TestSimpleInstall
  292. --build-makeprogram ${MAKEPROGRAM}
  293. --build-two-config
  294. --build-options
  295. "-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}"
  296. --test-command ${SimpleInstallInstallDir}/bin/SimpleInstall)
  297. ADD_TEST(SimpleInstall-Stage2 ${CMAKE_CTEST_COMMAND}
  298. --build-and-test
  299. "${CMake_SOURCE_DIR}/Tests/SimpleInstallS2"
  300. "${CMake_BINARY_DIR}/Tests/SimpleInstallS2"
  301. --build-generator ${CMAKE_GENERATOR}
  302. --build-project TestSimpleInstall
  303. --build-makeprogram ${MAKEPROGRAM}
  304. --build-two-config
  305. --build-options
  306. "-DCMAKE_INSTALL_PREFIX:PATH=${SimpleInstallInstallDir}"
  307. "-DSTAGE2:BOOL=1"
  308. --test-command ${SimpleInstallInstallDir}/bin/SimpleInstallS2)
  309. ADD_TEST(X11 ${CMAKE_CTEST_COMMAND}
  310. --build-and-test
  311. "${CMake_SOURCE_DIR}/Tests/X11"
  312. "${CMake_BINARY_DIR}/Tests/X11"
  313. --build-generator ${CMAKE_GENERATOR}
  314. --build-project UseX11
  315. --build-makeprogram ${MAKEPROGRAM}
  316. --build-two-config
  317. --test-command UseX11)
  318. ADD_TEST(LoadedCommand ${CMAKE_CTEST_COMMAND}
  319. --build-and-test
  320. "${CMake_SOURCE_DIR}/Tests/LoadCommand"
  321. "${CMake_BINARY_DIR}/Tests/LoadCommand"
  322. --build-generator ${CMAKE_GENERATOR}
  323. --build-project LoadedCommand
  324. --build-makeprogram ${MAKEPROGRAM}
  325. --build-two-config
  326. --test-command LoadedCommand)
  327. ADD_TEST(LoadedCommandOneConfig ${CMAKE_CTEST_COMMAND}
  328. --build-and-test
  329. "${CMake_SOURCE_DIR}/Tests/LoadCommandOneConfig"
  330. "${CMake_BINARY_DIR}/Tests/LoadCommandOneConfig"
  331. --build-generator ${CMAKE_GENERATOR}
  332. --build-project LoadedCommand
  333. --build-makeprogram ${MAKEPROGRAM}
  334. --test-command LoadedCommand
  335. )
  336. # Como does not seem to support shared libraries.
  337. GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_CXX_COMPILER} NAME_WE)
  338. IF(CMAKE_BASE_NAME MATCHES "^como$")
  339. SET(COMPILER_IS_COMO 1)
  340. ENDIF(CMAKE_BASE_NAME MATCHES "^como$")
  341. IF(NOT COMPILER_IS_COMO)
  342. ADD_TEST(complex ${CMAKE_CTEST_COMMAND}
  343. --build-and-test
  344. "${CMake_SOURCE_DIR}/Tests/Complex"
  345. "${CMake_BINARY_DIR}/Tests/Complex"
  346. --build-two-config
  347. --build-generator ${CMAKE_GENERATOR}
  348. --build-project complex
  349. --build-makeprogram ${MAKEPROGRAM}
  350. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Complex/bin"
  351. --test-command complex
  352. )
  353. ADD_TEST(complexOneConfig ${CMAKE_CTEST_COMMAND}
  354. --build-and-test
  355. "${CMake_SOURCE_DIR}/Tests/ComplexOneConfig"
  356. "${CMake_BINARY_DIR}/Tests/ComplexOneConfig"
  357. --build-generator ${CMAKE_GENERATOR}
  358. --build-project complex
  359. --build-makeprogram ${MAKEPROGRAM}
  360. --build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexOneConfig/bin"
  361. --test-command complex)
  362. ADD_TEST(complexRelativePaths ${CMAKE_CTEST_COMMAND}
  363. --build-and-test
  364. "${CMake_SOURCE_DIR}/Tests/ComplexRelativePaths"
  365. "${CMake_BINARY_DIR}/Tests/ComplexRelativePaths"
  366. --build-generator ${CMAKE_GENERATOR}
  367. --build-project complex
  368. --build-makeprogram ${MAKEPROGRAM}
  369. --build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexRelativePaths/bin"
  370. --build-options -DCMAKE_USE_RELATIVE_PATHS:BOOL=ON
  371. --test-command complex)
  372. ENDIF(NOT COMPILER_IS_COMO)
  373. ADD_TEST(Example ${CMAKE_CTEST_COMMAND}
  374. --build-and-test
  375. "${CMake_SOURCE_DIR}/Example"
  376. "${CMake_BINARY_DIR}/Example"
  377. --build-generator ${CMAKE_GENERATOR}
  378. --build-project HELLO
  379. --build-makeprogram ${MAKEPROGRAM}
  380. --build-exe-dir "${CMake_BINARY_DIR}/Example/Demo"
  381. --test-command helloDemo
  382. )
  383. ADD_TEST(testing ${CMAKE_CTEST_COMMAND}
  384. --build-and-test
  385. "${CMake_SOURCE_DIR}/Tests/Testing"
  386. "${CMake_BINARY_DIR}/Tests/Testing"
  387. --build-generator ${CMAKE_GENERATOR}
  388. --build-project testing
  389. --build-makeprogram ${MAKEPROGRAM}
  390. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Testing/bin"
  391. --test-command testing
  392. )
  393. ADD_TEST(wrapping ${CMAKE_CTEST_COMMAND}
  394. --build-and-test
  395. "${CMake_SOURCE_DIR}/Tests/Wrapping"
  396. "${CMake_BINARY_DIR}/Tests/Wrapping"
  397. --build-generator ${CMAKE_GENERATOR}
  398. --build-project wrapping
  399. --build-makeprogram ${MAKEPROGRAM}
  400. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  401. --test-command wrapping
  402. )
  403. INCLUDE ( ${CMAKE_ROOT}/Modules/FindQt.cmake )
  404. MARK_AS_ADVANCED(
  405. QT_INCLUDE_PATH
  406. QT_MOC_EXE
  407. QT_QT_LIBRARY
  408. QT_UIC_EXE)
  409. IF (QT_FOUND)
  410. ADD_TEST(qtwrapping ${CMAKE_CTEST_COMMAND}
  411. --build-and-test
  412. "${CMake_SOURCE_DIR}/Tests/Wrapping"
  413. "${CMake_BINARY_DIR}/Tests/Wrapping"
  414. --build-generator ${CMAKE_GENERATOR}
  415. --build-project Wrapping
  416. --build-makeprogram ${MAKEPROGRAM}
  417. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  418. --test-command qtwrapping
  419. )
  420. ENDIF (QT_FOUND)
  421. ADD_TEST(testdriver1 ${CMAKE_CTEST_COMMAND}
  422. --build-and-test
  423. "${CMake_SOURCE_DIR}/Tests/TestDriver"
  424. "${CMake_BINARY_DIR}/Tests/TestDriver"
  425. --build-generator ${CMAKE_GENERATOR}
  426. --build-makeprogram ${MAKEPROGRAM}
  427. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
  428. --build-project TestDriverTest
  429. --test-command TestDriverTest test1
  430. )
  431. ADD_TEST(testdriver2 ${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 test2
  440. )
  441. ADD_TEST(testdriver3 ${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 subdir/test3
  450. )
  451. ADD_TEST(dependency_w_libout ${CMAKE_CTEST_COMMAND}
  452. --build-and-test
  453. "${CMake_SOURCE_DIR}/Tests/Dependency"
  454. "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
  455. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec"
  456. --build-project Dependency
  457. --build-generator ${CMAKE_GENERATOR}
  458. --build-makeprogram ${MAKEPROGRAM}
  459. --build-options
  460. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
  461. --test-command exec
  462. )
  463. ADD_TEST(dependency_wo_lib_out ${CMAKE_CTEST_COMMAND}
  464. --build-and-test
  465. "${CMake_SOURCE_DIR}/Tests/Dependency"
  466. "${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut"
  467. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut/Exec"
  468. --build-generator ${CMAKE_GENERATOR}
  469. --build-makeprogram ${MAKEPROGRAM}
  470. --build-project Dependency
  471. --test-command exec
  472. )
  473. ADD_TEST(dependency2 ${CMAKE_CTEST_COMMAND}
  474. --build-and-test
  475. "${CMake_SOURCE_DIR}/Tests/Dependency"
  476. "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
  477. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec2"
  478. --build-generator ${CMAKE_GENERATOR}
  479. --build-makeprogram ${MAKEPROGRAM}
  480. --build-project Dependency
  481. --build-options
  482. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
  483. --test-command exec2
  484. )
  485. ADD_TEST(dependency3 ${CMAKE_CTEST_COMMAND}
  486. --build-and-test
  487. "${CMake_SOURCE_DIR}/Tests/Dependency"
  488. "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
  489. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec3"
  490. --build-generator ${CMAKE_GENERATOR}
  491. --build-makeprogram ${MAKEPROGRAM}
  492. --build-project Dependency
  493. --build-options
  494. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
  495. --test-command exec3)
  496. ADD_TEST(dependency4 ${CMAKE_CTEST_COMMAND}
  497. --build-and-test
  498. "${CMake_SOURCE_DIR}/Tests/Dependency"
  499. "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
  500. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec4"
  501. --build-generator ${CMAKE_GENERATOR}
  502. --build-makeprogram ${MAKEPROGRAM}
  503. --build-project Dependency
  504. --build-options
  505. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
  506. --test-command exec4
  507. )
  508. ADD_TEST(JumpWithLibOut ${CMAKE_CTEST_COMMAND}
  509. --build-and-test
  510. "${CMake_SOURCE_DIR}/Tests/Jump"
  511. "${CMake_BINARY_DIR}/Tests/Jump/WithLibOut"
  512. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Jump/WithLibOut/Executable"
  513. --build-project Jump
  514. --build-generator ${CMAKE_GENERATOR}
  515. --build-makeprogram ${MAKEPROGRAM}
  516. --build-options
  517. -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Jump/WithLibOut/Lib
  518. --test-command jumpExecutable
  519. )
  520. ADD_TEST(JumpNoLibOut ${CMAKE_CTEST_COMMAND}
  521. --build-and-test
  522. "${CMake_SOURCE_DIR}/Tests/Jump"
  523. "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut"
  524. --build-exe-dir "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut/Executable"
  525. --build-run-dir "${CMake_BINARY_DIR}/Tests/Jump/NoLibOut/Executable"
  526. --build-project Jump
  527. --build-generator ${CMAKE_GENERATOR}
  528. --build-makeprogram ${MAKEPROGRAM}
  529. --test-command jumpExecutable
  530. )
  531. ADD_TEST(linkline ${CMAKE_CTEST_COMMAND}
  532. --build-and-test
  533. "${CMake_SOURCE_DIR}/Tests/LinkLine"
  534. "${CMake_BINARY_DIR}/Tests/LinkLine"
  535. --build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLine"
  536. --build-generator ${CMAKE_GENERATOR}
  537. --build-makeprogram ${MAKEPROGRAM}
  538. --build-project Linkline
  539. --test-command Exec
  540. )
  541. ADD_TEST(linkorder1 ${CMAKE_CTEST_COMMAND}
  542. --build-and-test
  543. "${CMake_SOURCE_DIR}/Tests/LinkLineOrder"
  544. "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
  545. --build-generator ${CMAKE_GENERATOR}
  546. --build-makeprogram ${MAKEPROGRAM}
  547. --build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
  548. --build-project LinkLineOrder
  549. --test-command Exec1
  550. )
  551. ADD_TEST(linkorder2 ${CMAKE_CTEST_COMMAND}
  552. --build-and-test
  553. "${CMake_SOURCE_DIR}/Tests/LinkLineOrder"
  554. "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
  555. --build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
  556. --build-generator ${CMAKE_GENERATOR}
  557. --build-makeprogram ${MAKEPROGRAM}
  558. --build-project LinkLineOrder
  559. --test-command Exec2
  560. )
  561. ADD_TEST(ExternalOBJ ${CMAKE_CTEST_COMMAND}
  562. --build-and-test
  563. "${CMake_SOURCE_DIR}/Tests/ExternalOBJ"
  564. "${CMake_BINARY_DIR}/Tests/ExternalOBJ"
  565. --build-generator ${CMAKE_GENERATOR}
  566. --build-project ExternalOBJ
  567. --build-makeprogram ${MAKEPROGRAM}
  568. --build-exe-dir "${CMake_BINARY_DIR}/ExternalOBJ"
  569. --test-command executable
  570. )
  571. ADD_TEST(curl ${CMAKE_CTEST_COMMAND}
  572. --build-and-test
  573. "${CMake_SOURCE_DIR}/Source/CTest/Curl"
  574. "${CMake_BINARY_DIR}/Tests/Curl"
  575. --build-generator ${CMAKE_GENERATOR}
  576. --build-makeprogram ${MAKEPROGRAM}
  577. --build-project LIBCURL
  578. --test-command LIBCURL)
  579. ADD_TEST(kwsys ${CMAKE_CTEST_COMMAND}
  580. --build-and-test
  581. "${CMake_SOURCE_DIR}/Source/kwsys"
  582. "${CMake_BINARY_DIR}/Tests/kwsys"
  583. --build-exe-dir "${CMake_BINARY_DIR}/Tests/kwsys"
  584. --build-generator ${CMAKE_GENERATOR}
  585. --build-makeprogram ${MAKEPROGRAM}
  586. --build-project kwsys
  587. --test-command test1
  588. )
  589. IF (WIN32)
  590. ADD_TEST(SubDir ${CMAKE_CTEST_COMMAND}
  591. --build-and-test
  592. "${CMake_SOURCE_DIR}/Tests/SubDir"
  593. "${CMake_BINARY_DIR}/Tests/SubDir"
  594. --build-exe-dir "${CMake_BINARY_DIR}/Tests/SubDir/Executable"
  595. --build-generator ${CMAKE_GENERATOR}
  596. --build-makeprogram ${MAKEPROGRAM}
  597. --build-project SUBDIR
  598. --test-command test
  599. "${CMake_BINARY_DIR}/Tests/SubDir/ShouldBeHere"
  600. "${CMake_BINARY_DIR}/Tests/SubDir/testfromsubdir.obj"
  601. )
  602. ELSE (WIN32)
  603. ADD_TEST(SubDir ${CMAKE_CTEST_COMMAND}
  604. --build-and-test
  605. "${CMake_SOURCE_DIR}/Tests/SubDir"
  606. "${CMake_BINARY_DIR}/Tests/SubDir"
  607. --build-exe-dir "${CMake_BINARY_DIR}/Tests/SubDir/Executable"
  608. --build-generator ${CMAKE_GENERATOR}
  609. --build-makeprogram ${MAKEPROGRAM}
  610. --build-project SUBDIR
  611. --test-command test
  612. "${CMake_BINARY_DIR}/Tests/SubDir/ShouldBeHere"
  613. "${CMake_BINARY_DIR}/Tests/SubDir/testfromsubdir.o"
  614. )
  615. ENDIF (WIN32)
  616. IF("${CMAKE_GENERATOR}" MATCHES "Makefile")
  617. ADD_TEST(MakeClean ${CMAKE_CTEST_COMMAND}
  618. --build-and-test
  619. "${CMake_SOURCE_DIR}/Tests/MakeClean"
  620. "${CMake_BINARY_DIR}/Tests/MakeClean"
  621. --build-generator ${CMAKE_GENERATOR}
  622. --build-project MakeClean
  623. --build-makeprogram ${MAKEPROGRAM}
  624. --build-exe-dir "${CMake_BINARY_DIR}/MakeClean"
  625. --test-command check_clean
  626. )
  627. ENDIF("${CMAKE_GENERATOR}" MATCHES "Makefile")
  628. IF(${CMAKE_GENERATOR} MATCHES "Visual Studio")
  629. ADD_TEST(VSExternalInclude ${CMAKE_CTEST_COMMAND}
  630. --build-and-test
  631. "${CMake_SOURCE_DIR}/Tests/VSExternalInclude"
  632. "${CMake_BINARY_DIR}/Tests/VSExternalInclude"
  633. --build-two-config
  634. --build-generator ${CMAKE_GENERATOR}
  635. --build-project VSExternalInclude
  636. --build-makeprogram ${MAKEPROGRAM}
  637. --test-command VSExternalInclude)
  638. ENDIF(${CMAKE_GENERATOR} MATCHES "Visual Studio")
  639. IF (APPLE AND CMAKE_COMPILER_IS_GNUCXX)
  640. ADD_TEST(objc++ ${CMAKE_CTEST_COMMAND}
  641. --build-and-test
  642. "${CMake_SOURCE_DIR}/Tests/Objc++"
  643. "${CMake_BINARY_DIR}/Tests/Objc++"
  644. --build-generator ${CMAKE_GENERATOR}
  645. --build-makeprogram ${MAKEPROGRAM}
  646. --build-project objc++
  647. --test-command objc++
  648. )
  649. ENDIF (APPLE AND CMAKE_COMPILER_IS_GNUCXX)
  650. IF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS)
  651. CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest/test.cmake.in"
  652. "${CMake_BINARY_DIR}/Tests/CTestTest/test.cmake" @ONLY ESCAPE_QUOTES)
  653. ADD_TEST(CTestTest ${CMAKE_CTEST_COMMAND}
  654. -S "${CMake_BINARY_DIR}/Tests/CTestTest/test.cmake" -V
  655. )
  656. ENDIF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS)
  657. IF("${CMAKE_GENERATOR}" MATCHES XCode)
  658. SET(CMAKE_SKIP_BOOTSTRAP_TEST 1)
  659. ENDIF("${CMAKE_GENERATOR}" MATCHES XCode)
  660. IF(UNIX AND CMAKE_RUN_LONG_TESTS AND NOT CMAKE_SKIP_BOOTSTRAP_TEST)
  661. ADD_TEST(BootstrapTest ${CMAKE_CTEST_COMMAND}
  662. --build-and-test
  663. ${CMake_SOURCE_DIR}
  664. ${CMake_BINARY_DIR}/Tests/BootstrapTest
  665. --build-nocmake
  666. --build-noclean
  667. --build-makeprogram ${CMake_SOURCE_DIR}/bootstrap
  668. --build-generator "${CMAKE_GENERATOR}"
  669. --test-command ${CMake_BINARY_DIR}/Tests/BootstrapTest/Bootstrap.cmk/cmake)
  670. ENDIF(UNIX AND CMAKE_RUN_LONG_TESTS AND NOT CMAKE_SKIP_BOOTSTRAP_TEST)
  671. IF(CMAKE_GENERATOR MATCHES "Makefiles")
  672. # see if we can find a fortran compiler on the machine
  673. # if so, add the fortran test and see if it works.
  674. SET(CMAKE_Fortran_COMPILER_LIST ifort ifc efc f95 pgf95
  675. lf95 xlf95 fort gfortran f90 pgf90 xlf90
  676. epcf90 f77 fort77 frt pgf77 xlf fl32 af77 g77 )
  677. FIND_PROGRAM(CMAKE_Fortran_COMPILER_FULLPATH NAMES ${CMAKE_Fortran_COMPILER_LIST} )
  678. MARK_AS_ADVANCED(CMAKE_Fortran_COMPILER_FULLPATH)
  679. IF(CMAKE_Fortran_COMPILER_FULLPATH)
  680. ADD_TEST(Fortran ${CMAKE_CTEST_COMMAND}
  681. --build-and-test
  682. "${CMake_SOURCE_DIR}/Tests/Fortran"
  683. "${CMake_BINARY_DIR}/Tests/Fortran"
  684. --build-generator ${CMAKE_GENERATOR}
  685. --build-project testf
  686. --build-makeprogram ${MAKEPROGRAM}
  687. --build-two-config
  688. --test-command testf)
  689. ENDIF(CMAKE_Fortran_COMPILER_FULLPATH)
  690. INCLUDE(FindJava)
  691. IF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE)
  692. GET_FILENAME_COMPONENT(JNIPATH ${JAVA_COMPILE} PATH)
  693. FIND_FILE(JNI_H jni.h
  694. "${JNIPATH}/../include"
  695. "${JNIPATH}/../java/include")
  696. IF(JNI_H)
  697. FILE(READ "${JNI_H}" JNI_FILE)
  698. IF("${JNI_FILE}" MATCHES "JDK1_2")
  699. ADD_TEST(Java ${CMAKE_CTEST_COMMAND}
  700. --build-and-test
  701. "${CMake_SOURCE_DIR}/Tests/Java"
  702. "${CMake_BINARY_DIR}/Tests/Java"
  703. --build-generator ${CMAKE_GENERATOR}
  704. --build-project hello
  705. --build-makeprogram ${MAKEPROGRAM}
  706. --build-two-config
  707. --build-run-dir "${CMake_BINARY_DIR}/Tests/Java/"
  708. --test-command ${JAVA_RUNTIME} -classpath hello.jar HelloWorld)
  709. ELSE("${JNI_FILE}" MATCHES "JDK1_2")
  710. MESSAGE(STATUS "No Java Test because ${JNI_H} does not contain JDK1_2 define")
  711. ENDIF("${JNI_FILE}" MATCHES "JDK1_2")
  712. ELSE(JNI_H)
  713. MESSAGE(STATUS "No Java Test because jni.h could not be found. tried:\n${JNIPATH}/../include and ${JNIPATH}/../java/include")
  714. ENDIF(JNI_H)
  715. ENDIF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE)
  716. ENDIF(CMAKE_GENERATOR MATCHES "Makefiles")
  717. IF (CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE OR WXWINDOWS_INCLUDE_DIR)
  718. # Will be set if the wxwindows gui is on
  719. ADD_TEST(UseWX ${CMAKE_CTEST_COMMAND}
  720. --build-and-test
  721. "${CMake_SOURCE_DIR}/Tests/UseWX"
  722. "${CMake_BINARY_DIR}/Tests/UseWX"
  723. --build-generator ${CMAKE_GENERATOR}
  724. --build-makeprogram ${MAKEPROGRAM}
  725. --build-exe-dir ${CMake_BINARY_DIR}/Tests/UseWX
  726. --build-project UsewxWindows
  727. --build-options -DCMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE:FILEPATH=${CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE}
  728. --test-command UseWX
  729. )
  730. ENDIF (CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE OR WXWINDOWS_INCLUDE_DIR)
  731. IF(UNIX)
  732. STRING(COMPARE EQUAL "${CMAKE_INSTALL_PREFIX}" "${CMake_BINARY_DIR}/Tests/TestShellInstall/Prefix"
  733. PREFIX_IS_FOR_TEST)
  734. IF(PREFIX_IS_FOR_TEST)
  735. CONFIGURE_FILE(
  736. ${CMake_SOURCE_DIR}/Tests/TestInstall.sh.in
  737. ${CMake_BINARY_DIR}/Tests/TestShellInstall/TestInstall.sh
  738. @ONLY IMMEDIATE
  739. )
  740. ADD_TEST(ShellInstall /bin/sh ${CMake_BINARY_DIR}/Tests/TestShellInstall/TestShellInstall.sh)
  741. ENDIF(PREFIX_IS_FOR_TEST)
  742. ENDIF(UNIX)
  743. ENDIF(BUILD_TESTING)
  744. INCLUDE (${CMAKE_BINARY_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
  745. INCLUDE (${CMAKE_SOURCE_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
  746. INSTALL_TARGETS(/bin cmake)
  747. INSTALL_TARGETS(/bin ctest)
  748. INSTALL_FILES(${CMAKE_DATA_DIR}/include cmCPluginAPI.h)