CMakeLists.txt 26 KB

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