CMakeLists.txt 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393
  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. cmGlob.cxx
  18. cmGlobalGenerator.cxx
  19. cmGlobalUnixMakefileGenerator.cxx
  20. cmLocalGenerator.cxx
  21. cmLocalUnixMakefileGenerator.cxx
  22. cmVariableWatch.cxx
  23. cmake.h
  24. cmakewizard.h
  25. cmMakeDepend.h
  26. cmMakefile.h
  27. cmSourceFile.h
  28. cmSystemTools.h
  29. cmDynamicLoader.h
  30. cmCommands.h
  31. cmTarget.h
  32. cmCustomCommand.h
  33. cmCacheManager.h
  34. cmSourceGroup.h
  35. cmListFileCache.h
  36. cmGlobalGenerator.h
  37. cmGlobalUnixMakefileGenerator.h
  38. cmLocalGenerator.h
  39. cmLocalUnixMakefileGenerator.h
  40. cmVariableWatch.h
  41. )
  42. # configure the .h file
  43. CONFIGURE_FILE(
  44. ${CMake_SOURCE_DIR}/Source/cmConfigure.cmake.h.in
  45. ${CMake_BINARY_DIR}/Source/cmConfigure.h )
  46. # add the include path to find the .h
  47. INCLUDE_DIRECTORIES(${CMake_BINARY_DIR}/Source)
  48. INCLUDE_DIRECTORIES(${CMake_SOURCE_DIR}/Source)
  49. # let cmake know it is supposed to use it
  50. ADD_DEFINITIONS(-DCMAKE_BUILD_WITH_CMAKE)
  51. IF (APPLE)
  52. SET(SRCS ${SRCS}
  53. cmGlobalCodeWarriorGenerator.cxx
  54. cmLocalCodeWarriorGenerator.cxx
  55. cmGlobalCodeWarriorGenerator.h
  56. cmLocalCodeWarriorGenerator.h
  57. )
  58. ENDIF (APPLE)
  59. IF (WIN32)
  60. IF(NOT UNIX)
  61. SET(SRCS ${SRCS}
  62. cmGlobalBorlandMakefileGenerator.cxx
  63. cmGlobalNMakeMakefileGenerator.cxx
  64. cmGlobalVisualStudio6Generator.cxx
  65. cmLocalVisualStudio6Generator.cxx
  66. cmGlobalBorlandMakefileGenerator.h
  67. cmGlobalNMakeMakefileGenerator.h
  68. cmGlobalVisualStudio6Generator.h
  69. cmLocalVisualStudio6Generator.h
  70. cmWin32ProcessExecution.cxx
  71. cmWin32ProcessExecution.h
  72. )
  73. IF(NOT MINGW)
  74. SET(SRCS ${SRCS}
  75. cmGlobalVisualStudio7Generator.h
  76. cmLocalVisualStudio7Generator.h
  77. cmGlobalVisualStudio71Generator.cxx
  78. cmGlobalVisualStudio7Generator.cxx
  79. cmLocalVisualStudio7Generator.cxx)
  80. ENDIF(NOT MINGW)
  81. ENDIF(NOT UNIX)
  82. ENDIF (WIN32)
  83. # create a library used by the command line and the GUI
  84. ADD_LIBRARY(CMakeLib ${SRCS})
  85. TARGET_LINK_LIBRARIES(CMakeLib cmsys)
  86. # always link in the library
  87. # the library is found here
  88. LINK_DIRECTORIES(${CMake_BINARY_DIR}/Source)
  89. IF(CMAKE_BUILD_MFC_DIALOG)
  90. LINK_LIBRARIES( rpcrt4.lib )
  91. ADD_EXECUTABLE(cmw9xcom cmw9xcom.cxx)
  92. TARGET_LINK_LIBRARIES(cmw9xcom CMakeLib)
  93. SUBDIRS(MFCDialog)
  94. ENDIF(CMAKE_BUILD_MFC_DIALOG)
  95. ADD_EXECUTABLE(cmake cmakemain.cxx)
  96. ADD_EXECUTABLE(DumpDocumentation cmDumpDocumentation)
  97. SET(CMTEST_SRCS ctest.cxx cmCTest.cxx)
  98. IF (UNIX)
  99. TARGET_LINK_LIBRARIES(CMakeLib ${CMAKE_DL_LIBS})
  100. ENDIF (UNIX)
  101. TARGET_LINK_LIBRARIES(cmake CMakeLib)
  102. TARGET_LINK_LIBRARIES(DumpDocumentation CMakeLib)
  103. IF(CMAKE_BUILD_WITH_CURL)
  104. SUBDIRS(CTest)
  105. SET(CMTEST_SRCS ${CMTEST_SRCS} CTest/cmCTestSubmit.cxx)
  106. ADD_DEFINITIONS(-DHAVE_CURL)
  107. INCLUDE_DIRECTORIES(
  108. ${CMAKE_SOURCE_DIR}/Source/CTest/Curl
  109. ${CMAKE_SOURCE_DIR}/Source/CTest
  110. )
  111. ENDIF(CMAKE_BUILD_WITH_CURL)
  112. ADD_EXECUTABLE(ctest ${CMTEST_SRCS})
  113. TARGET_LINK_LIBRARIES(ctest CMakeLib)
  114. IF(CMAKE_BUILD_WITH_CURL)
  115. TARGET_LINK_LIBRARIES(ctest Curl)
  116. ENDIF(CMAKE_BUILD_WITH_CURL)
  117. IF (UNIX)
  118. INCLUDE (${CMake_SOURCE_DIR}/Modules/FindCurses.cmake OPTIONAL)
  119. IF (CURSES_LIBRARY)
  120. INCLUDE(${CMake_SOURCE_DIR}/Source/CursesDialog/CMakeLists.txt)
  121. ENDIF (CURSES_LIBRARY)
  122. ENDIF (UNIX)
  123. OPTION(CMAKE_BUILD_WX_DIALOG "Build wxWindows dialog for CMake" FALSE)
  124. MARK_AS_ADVANCED(CMAKE_BUILD_WX_DIALOG)
  125. IF(CMAKE_BUILD_WX_DIALOG)
  126. SUBDIRS(WXDialog)
  127. ENDIF(CMAKE_BUILD_WX_DIALOG)
  128. IF (NOT DART_ROOT)
  129. SET(MAKEPROGRAM ${CMAKE_MAKE_PROGRAM})
  130. ENDIF (NOT DART_ROOT)
  131. CONFIGURE_FILE(
  132. ${CMake_SOURCE_DIR}/Source/cmaketest.h.in
  133. ${CMake_BINARY_DIR}/Source/cmaketest.h ESCAPE_QUOTES)
  134. ADD_EXECUTABLE(cmaketest cmaketest.cxx)
  135. TARGET_LINK_LIBRARIES(cmaketest CMakeLib)
  136. IF(BUILD_TESTING)
  137. ADD_TEST(CommandLineTest ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  138. ${CMake_SOURCE_DIR}/Tests/CommandLineTest
  139. ${CMake_BINARY_DIR}/Tests/CommandLineTest
  140. CommandLineTest)
  141. ADD_TEST(CustomCommand ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  142. ${CMake_SOURCE_DIR}/Tests/CustomCommand
  143. ${CMake_BINARY_DIR}/Tests/CustomCommand
  144. CustomCommand
  145. ${CMake_BINARY_DIR}/Tests/CustomCommand/bin)
  146. ADD_TEST(FindPackageTest ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  147. ${CMake_SOURCE_DIR}/Tests/FindPackageTest
  148. ${CMake_BINARY_DIR}/Tests/FindPackageTest
  149. FindPackageTest)
  150. ADD_TEST(SystemInformation ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  151. ${CMake_SOURCE_DIR}/Tests/SystemInformation
  152. ${CMake_BINARY_DIR}/Tests/SystemInformation
  153. DumpInformation)
  154. ADD_TEST(StringFileTest ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  155. ${CMake_SOURCE_DIR}/Tests/StringFileTest
  156. ${CMake_BINARY_DIR}/Tests/StringFileTest
  157. StringFileTest)
  158. ADD_TEST(TryCompile ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  159. ${CMake_SOURCE_DIR}/Tests/TryCompile
  160. ${CMake_BINARY_DIR}/Tests/TryCompile
  161. TryCompile)
  162. ADD_TEST(simple ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  163. ${CMake_SOURCE_DIR}/Tests/Simple
  164. ${CMake_BINARY_DIR}/Tests/Simple
  165. simple)
  166. ADD_TEST(conly ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  167. ${CMake_SOURCE_DIR}/Tests/COnly
  168. ${CMake_BINARY_DIR}/Tests/COnly
  169. conly)
  170. ADD_TEST(X11 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  171. ${CMake_SOURCE_DIR}/Tests/X11
  172. ${CMake_BINARY_DIR}/Tests/X11
  173. UseX11)
  174. ADD_TEST(LoadedCommand ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  175. ${CMake_SOURCE_DIR}/Tests/LoadCommand
  176. ${CMake_BINARY_DIR}/Tests/LoadCommand
  177. LoadedCommand)
  178. ADD_TEST(LoadedCommandOneConfig ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  179. ${CMake_SOURCE_DIR}/Tests/LoadCommand
  180. ${CMake_BINARY_DIR}/Tests/LoadCommandOneConfig
  181. LoadedCommand ONLY_ONE_CONFIG)
  182. # Como does not seem to support shared libraries.
  183. GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_CXX_COMPILER} NAME_WE)
  184. IF(CMAKE_BASE_NAME MATCHES "^como$")
  185. SET(COMPILER_IS_COMO 1)
  186. ENDIF(CMAKE_BASE_NAME MATCHES "^como$")
  187. IF(NOT COMPILER_IS_COMO)
  188. ADD_TEST(complex ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  189. ${CMake_SOURCE_DIR}/Tests/Complex
  190. ${CMake_BINARY_DIR}/Tests/Complex
  191. complex
  192. ${CMake_BINARY_DIR}/Tests/Complex/bin)
  193. ADD_TEST(complexOneConfig ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  194. ${CMake_SOURCE_DIR}/Tests/Complex
  195. ${CMake_BINARY_DIR}/Tests/ComplexOneConfig
  196. complex
  197. ${CMake_BINARY_DIR}/Tests/ComplexOneConfig/bin ONLY_ONE_CONFIG)
  198. ENDIF(NOT COMPILER_IS_COMO)
  199. ADD_TEST(Example ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  200. ${CMake_SOURCE_DIR}/Example
  201. ${CMake_BINARY_DIR}/Example
  202. helloDemo
  203. ${CMake_BINARY_DIR}/Example/Demo
  204. HELLO)
  205. ADD_TEST(testing ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  206. ${CMake_SOURCE_DIR}/Tests/Testing
  207. ${CMake_BINARY_DIR}/Tests/Testing
  208. testing
  209. ${CMake_BINARY_DIR}/Tests/Testing/bin)
  210. ADD_TEST(wrapping ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  211. ${CMake_SOURCE_DIR}/Tests/Wrapping
  212. ${CMake_BINARY_DIR}/Tests/Wrapping
  213. wrapping
  214. ${CMake_BINARY_DIR}/Tests/Wrapping/bin)
  215. INCLUDE ( ${CMAKE_ROOT}/Modules/FindQt.cmake )
  216. MARK_AS_ADVANCED(
  217. QT_INCLUDE_PATH
  218. QT_MOC_EXE
  219. QT_QT_LIBRARY
  220. QT_UIC_EXE)
  221. IF (QT_FOUND)
  222. ADD_TEST(qtwrapping ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  223. ${CMake_SOURCE_DIR}/Tests/Wrapping
  224. ${CMake_BINARY_DIR}/Tests/Wrapping
  225. qtwrapping
  226. ${CMake_BINARY_DIR}/Tests/Wrapping/bin
  227. wrapping)
  228. ENDIF (QT_FOUND)
  229. ADD_TEST(testdriver1 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  230. ${CMake_SOURCE_DIR}/Tests/TestDriver
  231. ${CMake_BINARY_DIR}/Tests/TestDriver
  232. TestDriverTest
  233. ${CMake_BINARY_DIR}/Tests/Wrapping/bin
  234. TestDriverTest test1)
  235. ADD_TEST(testdriver2 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  236. ${CMake_SOURCE_DIR}/Tests/TestDriver
  237. ${CMake_BINARY_DIR}/Tests/TestDriver
  238. TestDriverTest
  239. ${CMake_BINARY_DIR}/Tests/Wrapping/bin
  240. TestDriverTest test2)
  241. ADD_TEST(testdriver3 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  242. ${CMake_SOURCE_DIR}/Tests/TestDriver
  243. ${CMake_BINARY_DIR}/Tests/TestDriver
  244. TestDriverTest
  245. ${CMake_BINARY_DIR}/Tests/Wrapping/bin
  246. TestDriverTest subdir/test3)
  247. ADD_TEST(dependency_w_libout ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  248. ${CMake_SOURCE_DIR}/Tests/Dependency
  249. ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut
  250. exec
  251. ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec
  252. Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib)
  253. ADD_TEST(dependency_wo_lib_out ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  254. ${CMake_SOURCE_DIR}/Tests/Dependency
  255. ${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut
  256. exec
  257. ${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut/Exec
  258. Dependency)
  259. ADD_TEST(dependency2 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  260. ${CMake_SOURCE_DIR}/Tests/Dependency
  261. ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut
  262. exec2
  263. ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec2
  264. Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib)
  265. ADD_TEST(dependency3 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  266. ${CMake_SOURCE_DIR}/Tests/Dependency
  267. ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut
  268. exec3
  269. ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec3
  270. Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib)
  271. ADD_TEST(dependency4 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  272. ${CMake_SOURCE_DIR}/Tests/Dependency
  273. ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut
  274. exec4
  275. ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec4
  276. Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib)
  277. ADD_TEST(linkline ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  278. ${CMake_SOURCE_DIR}/Tests/LinkLine
  279. ${CMake_BINARY_DIR}/Tests/LinkLine
  280. Exec
  281. ${CMake_BINARY_DIR}/Tests/LinkLine
  282. LinkLine)
  283. ADD_TEST(linkorder1 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  284. ${CMake_SOURCE_DIR}/Tests/LinkLineOrder
  285. ${CMake_BINARY_DIR}/Tests/LinkLineOrder
  286. Exec1
  287. ${CMake_BINARY_DIR}/Tests/LinkLineOrder
  288. LinkLineOrder)
  289. ADD_TEST(linkorder2 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  290. ${CMake_SOURCE_DIR}/Tests/LinkLineOrder
  291. ${CMake_BINARY_DIR}/Tests/LinkLineOrder
  292. Exec2
  293. ${CMake_BINARY_DIR}/Tests/LinkLineOrder
  294. LinkLineOrder)
  295. ADD_TEST(curl ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  296. ${CMake_SOURCE_DIR}/Source/CTest/Curl
  297. ${CMake_BINARY_DIR}/Tests/Curl
  298. LIBCURL)
  299. ADD_TEST(kwsys ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  300. ${CMake_SOURCE_DIR}/Source/kwsys
  301. ${CMake_BINARY_DIR}/Tests/kwsys
  302. test1
  303. ${CMake_BINARY_DIR}/Tests/kwsys
  304. kwsys)
  305. IF (APPLE)
  306. ADD_TEST(objc++ ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  307. ${CMake_SOURCE_DIR}/Tests/Objc++
  308. ${CMake_BINARY_DIR}/Tests/Objc++
  309. objc++)
  310. ENDIF (APPLE)
  311. IF (CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE OR WXWINDOWS_INCLUDE_DIR)
  312. # Will be set if the wxwindows gui is on
  313. ADD_TEST(UseWX ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  314. ${CMake_SOURCE_DIR}/Tests/UseWX
  315. ${CMake_BINARY_DIR}/Tests/UseWX
  316. UseWX
  317. ${CMake_BINARY_DIR}/Tests/UseWX
  318. UsewxWindows
  319. CMAKE_ARGS -DCMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE:FILEPATH=${CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE})
  320. ENDIF (CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE OR WXWINDOWS_INCLUDE_DIR)
  321. IF(UNIX)
  322. IF("x${CMAKE_INSTALL_PREFIX}" MATCHES "^x${CMake_BINARY_DIR}/Tests/TestInstall/Prefix$")
  323. CONFIGURE_FILE(
  324. ${CMake_SOURCE_DIR}/Tests/TestInstall.sh.in
  325. ${CMake_BINARY_DIR}/Tests/TestInstall/TestInstall.sh
  326. @ONLY IMMEDIATE
  327. )
  328. ADD_TEST(Install /bin/sh ${CMake_BINARY_DIR}/Tests/TestInstall/TestInstall.sh)
  329. ENDIF("x${CMAKE_INSTALL_PREFIX}" MATCHES "^x${CMake_BINARY_DIR}/Tests/TestInstall/Prefix$")
  330. ENDIF(UNIX)
  331. ENDIF(BUILD_TESTING)
  332. INCLUDE (${CMAKE_BINARY_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
  333. INCLUDE (${CMAKE_SOURCE_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
  334. INSTALL_TARGETS(/bin cmake)
  335. INSTALL_TARGETS(/bin ctest)
  336. INSTALL_FILES(${CMAKE_DATA_DIR}/include cmCPluginAPI.h)