CMakeLists.txt 12 KB

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