CMakeLists.txt 24 KB

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