CMakeLists.txt 27 KB

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