CMakeLists.txt 26 KB

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