CMakeLists.txt 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384
  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. cmGlobalVisualStudio71Generator.cxx
  67. cmGlobalVisualStudio7Generator.cxx
  68. cmLocalVisualStudio7Generator.cxx
  69. cmGlobalBorlandMakefileGenerator.h
  70. cmGlobalNMakeMakefileGenerator.h
  71. cmGlobalVisualStudio6Generator.h
  72. cmLocalVisualStudio6Generator.h
  73. cmGlobalVisualStudio7Generator.h
  74. cmLocalVisualStudio7Generator.h
  75. cmWin32ProcessExecution.cxx
  76. cmWin32ProcessExecution.h
  77. )
  78. ENDIF(NOT UNIX)
  79. ENDIF (WIN32)
  80. # create a library used by the command line and the GUI
  81. ADD_LIBRARY(CMakeLib ${SRCS})
  82. TARGET_LINK_LIBRARIES(CMakeLib cmsys)
  83. # always link in the library
  84. # the library is found here
  85. LINK_DIRECTORIES(${CMake_BINARY_DIR}/Source)
  86. IF (WIN32)
  87. IF(NOT UNIX)
  88. IF( NOT BORLAND )
  89. LINK_LIBRARIES( rpcrt4.lib )
  90. ADD_EXECUTABLE(cmw9xcom cmw9xcom.cxx)
  91. TARGET_LINK_LIBRARIES(cmw9xcom CMakeLib)
  92. SUBDIRS(MFCDialog)
  93. ENDIF( NOT BORLAND )
  94. ENDIF(NOT UNIX)
  95. ENDIF (WIN32)
  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. SUBDIRS(CursesDialog/form)
  122. INCLUDE(${CMake_SOURCE_DIR}/Source/CursesDialog/CMakeLists.txt)
  123. ENDIF (CURSES_LIBRARY)
  124. ENDIF (UNIX)
  125. OPTION(CMAKE_BUILD_WX_DIALOG "Build wxWindows dialog for CMake" FALSE)
  126. MARK_AS_ADVANCED(CMAKE_BUILD_WX_DIALOG)
  127. IF(CMAKE_BUILD_WX_DIALOG)
  128. SUBDIRS(WXDialog)
  129. ENDIF(CMAKE_BUILD_WX_DIALOG)
  130. IF (NOT DART_ROOT)
  131. SET(MAKEPROGRAM ${CMAKE_MAKE_PROGRAM})
  132. ENDIF (NOT DART_ROOT)
  133. CONFIGURE_FILE(
  134. ${CMake_SOURCE_DIR}/Source/cmaketest.h.in
  135. ${CMake_BINARY_DIR}/Source/cmaketest.h ESCAPE_QUOTES)
  136. ADD_EXECUTABLE(cmaketest cmaketest.cxx)
  137. TARGET_LINK_LIBRARIES(cmaketest CMakeLib)
  138. IF(BUILD_TESTING)
  139. ADD_TEST(CommandLineTest ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  140. ${CMake_SOURCE_DIR}/Tests/CommandLineTest
  141. ${CMake_BINARY_DIR}/Tests/CommandLineTest
  142. CommandLineTest)
  143. ADD_TEST(CustomCommand ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  144. ${CMake_SOURCE_DIR}/Tests/CustomCommand
  145. ${CMake_BINARY_DIR}/Tests/CustomCommand
  146. CustomCommand
  147. ${CMake_BINARY_DIR}/Tests/CustomCommand/bin)
  148. ADD_TEST(FindPackageTest ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  149. ${CMake_SOURCE_DIR}/Tests/FindPackageTest
  150. ${CMake_BINARY_DIR}/Tests/FindPackageTest
  151. FindPackageTest)
  152. ADD_TEST(SystemInformation ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  153. ${CMake_SOURCE_DIR}/Tests/SystemInformation
  154. ${CMake_BINARY_DIR}/Tests/SystemInformation
  155. DumpInformation)
  156. ADD_TEST(StringFileTest ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  157. ${CMake_SOURCE_DIR}/Tests/StringFileTest
  158. ${CMake_BINARY_DIR}/Tests/StringFileTest
  159. StringFileTest)
  160. ADD_TEST(TryCompile ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  161. ${CMake_SOURCE_DIR}/Tests/TryCompile
  162. ${CMake_BINARY_DIR}/Tests/TryCompile
  163. TryCompile)
  164. ADD_TEST(simple ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  165. ${CMake_SOURCE_DIR}/Tests/Simple
  166. ${CMake_BINARY_DIR}/Tests/Simple
  167. simple)
  168. ADD_TEST(conly ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  169. ${CMake_SOURCE_DIR}/Tests/COnly
  170. ${CMake_BINARY_DIR}/Tests/COnly
  171. conly)
  172. ADD_TEST(X11 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  173. ${CMake_SOURCE_DIR}/Tests/X11
  174. ${CMake_BINARY_DIR}/Tests/X11
  175. UseX11)
  176. ADD_TEST(LoadedCommand ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  177. ${CMake_SOURCE_DIR}/Tests/LoadCommand
  178. ${CMake_BINARY_DIR}/Tests/LoadCommand
  179. LoadedCommand)
  180. ADD_TEST(LoadedCommandOneConfig ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  181. ${CMake_SOURCE_DIR}/Tests/LoadCommand
  182. ${CMake_BINARY_DIR}/Tests/LoadCommandOneConfig
  183. LoadedCommand ONLY_ONE_CONFIG)
  184. # Como does not seem to support shared libraries.
  185. GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_CXX_COMPILER} NAME_WE)
  186. IF(CMAKE_BASE_NAME MATCHES "^como$")
  187. SET(COMPILER_IS_COMO 1)
  188. ENDIF(CMAKE_BASE_NAME MATCHES "^como$")
  189. IF(NOT COMPILER_IS_COMO)
  190. ADD_TEST(complex ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  191. ${CMake_SOURCE_DIR}/Tests/Complex
  192. ${CMake_BINARY_DIR}/Tests/Complex
  193. complex
  194. ${CMake_BINARY_DIR}/Tests/Complex/bin)
  195. ADD_TEST(complexOneConfig ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  196. ${CMake_SOURCE_DIR}/Tests/Complex
  197. ${CMake_BINARY_DIR}/Tests/ComplexOneConfig
  198. complex
  199. ${CMake_BINARY_DIR}/Tests/ComplexOneConfig/bin ONLY_ONE_CONFIG)
  200. ENDIF(NOT COMPILER_IS_COMO)
  201. ADD_TEST(Example ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  202. ${CMake_SOURCE_DIR}/Example
  203. ${CMake_BINARY_DIR}/Example
  204. helloDemo
  205. ${CMake_BINARY_DIR}/Example/Demo
  206. HELLO)
  207. ADD_TEST(testing ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  208. ${CMake_SOURCE_DIR}/Tests/Testing
  209. ${CMake_BINARY_DIR}/Tests/Testing
  210. testing
  211. ${CMake_BINARY_DIR}/Tests/Testing/bin)
  212. ADD_TEST(wrapping ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  213. ${CMake_SOURCE_DIR}/Tests/Wrapping
  214. ${CMake_BINARY_DIR}/Tests/Wrapping
  215. wrapping
  216. ${CMake_BINARY_DIR}/Tests/Wrapping/bin)
  217. INCLUDE ( ${CMAKE_ROOT}/Modules/FindQt.cmake )
  218. MARK_AS_ADVANCED(
  219. QT_INCLUDE_PATH
  220. QT_MOC_EXE
  221. QT_QT_LIBRARY
  222. QT_UIC_EXE)
  223. IF (QT_FOUND)
  224. ADD_TEST(qtwrapping ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  225. ${CMake_SOURCE_DIR}/Tests/Wrapping
  226. ${CMake_BINARY_DIR}/Tests/Wrapping
  227. qtwrapping
  228. ${CMake_BINARY_DIR}/Tests/Wrapping/bin
  229. wrapping)
  230. ENDIF (QT_FOUND)
  231. ADD_TEST(testdriver1 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  232. ${CMake_SOURCE_DIR}/Tests/TestDriver
  233. ${CMake_BINARY_DIR}/Tests/TestDriver
  234. TestDriverTest
  235. ${CMake_BINARY_DIR}/Tests/Wrapping/bin
  236. TestDriverTest test1)
  237. ADD_TEST(testdriver2 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  238. ${CMake_SOURCE_DIR}/Tests/TestDriver
  239. ${CMake_BINARY_DIR}/Tests/TestDriver
  240. TestDriverTest
  241. ${CMake_BINARY_DIR}/Tests/Wrapping/bin
  242. TestDriverTest test2)
  243. ADD_TEST(testdriver3 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  244. ${CMake_SOURCE_DIR}/Tests/TestDriver
  245. ${CMake_BINARY_DIR}/Tests/TestDriver
  246. TestDriverTest
  247. ${CMake_BINARY_DIR}/Tests/Wrapping/bin
  248. TestDriverTest subdir/test3)
  249. ADD_TEST(dependency_w_libout ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  250. ${CMake_SOURCE_DIR}/Tests/Dependency
  251. ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut
  252. exec
  253. ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec
  254. Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib)
  255. ADD_TEST(dependency_wo_lib_out ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  256. ${CMake_SOURCE_DIR}/Tests/Dependency
  257. ${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut
  258. exec
  259. ${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut/Exec
  260. Dependency)
  261. ADD_TEST(dependency2 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  262. ${CMake_SOURCE_DIR}/Tests/Dependency
  263. ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut
  264. exec2
  265. ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec2
  266. Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib)
  267. ADD_TEST(dependency3 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  268. ${CMake_SOURCE_DIR}/Tests/Dependency
  269. ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut
  270. exec3
  271. ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec3
  272. Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib)
  273. ADD_TEST(dependency4 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  274. ${CMake_SOURCE_DIR}/Tests/Dependency
  275. ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut
  276. exec4
  277. ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec4
  278. Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib)
  279. ADD_TEST(linkline ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  280. ${CMake_SOURCE_DIR}/Tests/LinkLine
  281. ${CMake_BINARY_DIR}/Tests/LinkLine
  282. Exec
  283. ${CMake_BINARY_DIR}/Tests/LinkLine
  284. LinkLine)
  285. ADD_TEST(linkorder1 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  286. ${CMake_SOURCE_DIR}/Tests/LinkLineOrder
  287. ${CMake_BINARY_DIR}/Tests/LinkLineOrder
  288. Exec1
  289. ${CMake_BINARY_DIR}/Tests/LinkLineOrder
  290. LinkLineOrder)
  291. ADD_TEST(linkorder2 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  292. ${CMake_SOURCE_DIR}/Tests/LinkLineOrder
  293. ${CMake_BINARY_DIR}/Tests/LinkLineOrder
  294. Exec2
  295. ${CMake_BINARY_DIR}/Tests/LinkLineOrder
  296. LinkLineOrder)
  297. ADD_TEST(curl ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  298. ${CMake_SOURCE_DIR}/Source/CTest/Curl
  299. ${CMake_BINARY_DIR}/Tests/Curl
  300. LIBCURL)
  301. ADD_TEST(kwsys ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  302. ${CMake_SOURCE_DIR}/Source/kwsys
  303. ${CMake_BINARY_DIR}/Tests/kwsys
  304. test1
  305. ${CMake_BINARY_DIR}/Tests/kwsys
  306. kwsys)
  307. IF (APPLE)
  308. ADD_TEST(objc++ ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  309. ${CMake_SOURCE_DIR}/Tests/Objc++
  310. ${CMake_BINARY_DIR}/Tests/Objc++
  311. objc++)
  312. ENDIF (APPLE)
  313. IF(UNIX)
  314. IF("x${CMAKE_INSTALL_PREFIX}" MATCHES "^x${CMake_BINARY_DIR}/Tests/TestInstall/Prefix$")
  315. CONFIGURE_FILE(
  316. ${CMake_SOURCE_DIR}/Tests/TestInstall.sh.in
  317. ${CMake_BINARY_DIR}/Tests/TestInstall/TestInstall.sh
  318. @ONLY IMMEDIATE
  319. )
  320. ADD_TEST(Install /bin/sh ${CMake_BINARY_DIR}/Tests/TestInstall/TestInstall.sh)
  321. ENDIF("x${CMAKE_INSTALL_PREFIX}" MATCHES "^x${CMake_BINARY_DIR}/Tests/TestInstall/Prefix$")
  322. ENDIF(UNIX)
  323. ENDIF(BUILD_TESTING)
  324. INCLUDE (${CMAKE_BINARY_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
  325. INCLUDE (${CMAKE_SOURCE_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
  326. INSTALL_TARGETS(/bin cmake)
  327. INSTALL_TARGETS(/bin ctest)
  328. INSTALL_FILES(${CMAKE_DATA_DIR}/include cmCPluginAPI.h)