CMakeLists.txt 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353
  1. CMAKE_MINIMUM_REQUIRED(VERSION 1.5)
  2. SET(SRCS
  3. cmake.cxx
  4. cmakewizard.cxx
  5. cmMakeDepend.cxx
  6. cmMakefile.cxx
  7. cmRegularExpression.cxx
  8. cmSourceFile.cxx
  9. cmSystemTools.cxx
  10. cmDirectory.cxx
  11. cmDocumentation.cxx
  12. cmDynamicLoader.cxx
  13. cmCommands.cxx
  14. cmTarget.cxx
  15. cmCustomCommand.cxx
  16. cmCacheManager.cxx
  17. cmSourceGroup.cxx
  18. cmListFileCache.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. cmRegularExpression.h
  29. cmSourceFile.h
  30. cmSystemTools.h
  31. cmDynamicLoader.h
  32. cmDirectory.h
  33. cmCommands.h
  34. cmTarget.h
  35. cmCustomCommand.h
  36. cmCacheManager.h
  37. cmSourceGroup.h
  38. cmListFileCache.h
  39. cmGlobalGenerator.h
  40. cmGlobalUnixMakefileGenerator.h
  41. cmLocalGenerator.h
  42. cmLocalUnixMakefileGenerator.h
  43. cmVariableWatch.h
  44. )
  45. # configure the .h file
  46. CONFIGURE_FILE(
  47. ${CMake_SOURCE_DIR}/Source/cmConfigure.cmake.h.in
  48. ${CMake_BINARY_DIR}/Source/cmConfigure.h )
  49. # add the include path to find the .h
  50. INCLUDE_DIRECTORIES(${CMake_BINARY_DIR}/Source)
  51. INCLUDE_DIRECTORIES(${CMake_SOURCE_DIR}/Source)
  52. # let cmake know it is supposed to use it
  53. ADD_DEFINITIONS(-DCMAKE_BUILD_WITH_CMAKE)
  54. IF (APPLE)
  55. SET(SRCS ${SRCS}
  56. cmGlobalCodeWarriorGenerator.cxx
  57. cmLocalCodeWarriorGenerator.cxx
  58. cmGlobalCodeWarriorGenerator.h
  59. cmLocalCodeWarriorGenerator.h
  60. )
  61. ENDIF (APPLE)
  62. IF (WIN32)
  63. IF(NOT UNIX)
  64. SET(SRCS ${SRCS}
  65. cmGlobalBorlandMakefileGenerator.cxx
  66. cmGlobalNMakeMakefileGenerator.cxx
  67. cmGlobalVisualStudio6Generator.cxx
  68. cmLocalVisualStudio6Generator.cxx
  69. cmGlobalVisualStudio71Generator.cxx
  70. cmGlobalVisualStudio7Generator.cxx
  71. cmLocalVisualStudio7Generator.cxx
  72. cmGlobalBorlandMakefileGenerator.h
  73. cmGlobalNMakeMakefileGenerator.h
  74. cmGlobalVisualStudio6Generator.h
  75. cmLocalVisualStudio6Generator.h
  76. cmGlobalVisualStudio7Generator.h
  77. cmLocalVisualStudio7Generator.h
  78. cmWin32ProcessExecution.cxx
  79. cmWin32ProcessExecution.h
  80. )
  81. IF( NOT BORLAND )
  82. LINK_LIBRARIES( rpcrt4.lib )
  83. ADD_EXECUTABLE(cmw9xcom cmw9xcom.cxx)
  84. TARGET_LINK_LIBRARIES(cmw9xcom CMakeLib)
  85. SUBDIRS(MFCDialog)
  86. ENDIF( NOT BORLAND )
  87. ENDIF(NOT UNIX)
  88. ENDIF (WIN32)
  89. # create a library used by the command line and the GUI
  90. ADD_LIBRARY(CMakeLib ${SRCS})
  91. # always link in the library
  92. # the library is found here
  93. LINK_DIRECTORIES(${CMake_BINARY_DIR}/Source)
  94. ADD_EXECUTABLE(cmake cmakemain.cxx)
  95. ADD_EXECUTABLE(DumpDocumentation cmDumpDocumentation)
  96. SET(CMTEST_SRCS ctest.cxx cmCTest.cxx)
  97. IF (UNIX)
  98. TARGET_LINK_LIBRARIES(CMakeLib ${CMAKE_DL_LIBS})
  99. ENDIF (UNIX)
  100. TARGET_LINK_LIBRARIES(cmake CMakeLib)
  101. TARGET_LINK_LIBRARIES(DumpDocumentation CMakeLib)
  102. SET(CMAKE_BUILD_WITH_CURL 1)
  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. SUBDIRS(CursesDialog/form)
  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(DumpDocumentation ${EXECUTABLE_OUTPUT_PATH}/DumpDocumentation
  139. --all-for-coverage)
  140. ADD_TEST(SystemInformation ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  141. ${CMake_SOURCE_DIR}/Tests/SystemInformation
  142. ${CMake_BINARY_DIR}/Tests/SystemInformation
  143. DumpInformation)
  144. ADD_TEST(TryCompile ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  145. ${CMake_SOURCE_DIR}/Tests/TryCompile
  146. ${CMake_BINARY_DIR}/Tests/TryCompile
  147. TryCompile)
  148. ADD_TEST(simple ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  149. ${CMake_SOURCE_DIR}/Tests/Simple
  150. ${CMake_BINARY_DIR}/Tests/Simple
  151. simple)
  152. ADD_TEST(conly ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  153. ${CMake_SOURCE_DIR}/Tests/COnly
  154. ${CMake_BINARY_DIR}/Tests/COnly
  155. conly)
  156. ADD_TEST(X11 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  157. ${CMake_SOURCE_DIR}/Tests/X11
  158. ${CMake_BINARY_DIR}/Tests/X11
  159. UseX11)
  160. ADD_TEST(LoadedCommand ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  161. ${CMake_SOURCE_DIR}/Tests/LoadCommand
  162. ${CMake_BINARY_DIR}/Tests/LoadCommand
  163. LoadedCommand)
  164. ADD_TEST(LoadedCommandOneConfig ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  165. ${CMake_SOURCE_DIR}/Tests/LoadCommand
  166. ${CMake_BINARY_DIR}/Tests/LoadCommandOneConfig
  167. LoadedCommand ONLY_ONE_CONFIG)
  168. # Como does not seem to support shared libraries.
  169. GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_CXX_COMPILER} NAME_WE)
  170. IF(CMAKE_BASE_NAME MATCHES "^como$")
  171. SET(COMPILER_IS_COMO 1)
  172. ENDIF(CMAKE_BASE_NAME MATCHES "^como$")
  173. IF(NOT COMPILER_IS_COMO)
  174. ADD_TEST(complex ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  175. ${CMake_SOURCE_DIR}/Tests/Complex
  176. ${CMake_BINARY_DIR}/Tests/Complex
  177. complex
  178. ${CMake_BINARY_DIR}/Tests/Complex/bin)
  179. ADD_TEST(complexOneConfig ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  180. ${CMake_SOURCE_DIR}/Tests/Complex
  181. ${CMake_BINARY_DIR}/Tests/ComplexOneConfig
  182. complex
  183. ${CMake_BINARY_DIR}/Tests/ComplexOneConfig/bin ONLY_ONE_CONFIG)
  184. ENDIF(NOT COMPILER_IS_COMO)
  185. ADD_TEST(Example ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  186. ${CMake_SOURCE_DIR}/Example
  187. ${CMake_BINARY_DIR}/Example
  188. helloDemo
  189. ${CMake_BINARY_DIR}/Example/Demo
  190. HELLO)
  191. ADD_TEST(testing ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  192. ${CMake_SOURCE_DIR}/Tests/Testing
  193. ${CMake_BINARY_DIR}/Tests/Testing
  194. testing
  195. ${CMake_BINARY_DIR}/Tests/Testing/bin)
  196. ADD_TEST(wrapping ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  197. ${CMake_SOURCE_DIR}/Tests/Wrapping
  198. ${CMake_BINARY_DIR}/Tests/Wrapping
  199. wrapping
  200. ${CMake_BINARY_DIR}/Tests/Wrapping/bin)
  201. INCLUDE ( ${CMAKE_ROOT}/Modules/FindQt.cmake )
  202. MARK_AS_ADVANCED(
  203. QT_INCLUDE_PATH
  204. QT_MOC_EXE
  205. QT_QT_LIBRARY
  206. QT_UIC_EXE)
  207. IF (QT_FOUND)
  208. ADD_TEST(qtwrapping ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  209. ${CMake_SOURCE_DIR}/Tests/Wrapping
  210. ${CMake_BINARY_DIR}/Tests/Wrapping
  211. qtwrapping
  212. ${CMake_BINARY_DIR}/Tests/Wrapping/bin)
  213. ENDIF (QT_FOUND)
  214. ADD_TEST(testdriver1 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  215. ${CMake_SOURCE_DIR}/Tests/TestDriver
  216. ${CMake_BINARY_DIR}/Tests/TestDriver
  217. TestDriverTest
  218. ${CMake_BINARY_DIR}/Tests/Wrapping/bin
  219. TestDriverTest test1)
  220. ADD_TEST(testdriver2 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  221. ${CMake_SOURCE_DIR}/Tests/TestDriver
  222. ${CMake_BINARY_DIR}/Tests/TestDriver
  223. TestDriverTest
  224. ${CMake_BINARY_DIR}/Tests/Wrapping/bin
  225. TestDriverTest test2)
  226. ADD_TEST(testdriver3 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  227. ${CMake_SOURCE_DIR}/Tests/TestDriver
  228. ${CMake_BINARY_DIR}/Tests/TestDriver
  229. TestDriverTest
  230. ${CMake_BINARY_DIR}/Tests/Wrapping/bin
  231. TestDriverTest subdir/test3)
  232. ADD_TEST(dependency_w_libout ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  233. ${CMake_SOURCE_DIR}/Tests/Dependency
  234. ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut
  235. exec
  236. ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec
  237. Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib)
  238. ADD_TEST(dependency_wo_lib_out ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  239. ${CMake_SOURCE_DIR}/Tests/Dependency
  240. ${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut
  241. exec
  242. ${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut/Exec
  243. Dependency)
  244. ADD_TEST(dependency2 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  245. ${CMake_SOURCE_DIR}/Tests/Dependency
  246. ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut
  247. exec2
  248. ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec2
  249. Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib)
  250. ADD_TEST(dependency3 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  251. ${CMake_SOURCE_DIR}/Tests/Dependency
  252. ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut
  253. exec3
  254. ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec3
  255. Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib)
  256. ADD_TEST(dependency4 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  257. ${CMake_SOURCE_DIR}/Tests/Dependency
  258. ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut
  259. exec4
  260. ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec4
  261. Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib)
  262. ADD_TEST(linkline ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  263. ${CMake_SOURCE_DIR}/Tests/LinkLine
  264. ${CMake_BINARY_DIR}/Tests/LinkLine
  265. Exec
  266. ${CMake_BINARY_DIR}/Tests/LinkLine
  267. LinkLine)
  268. ADD_TEST(linkorder1 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  269. ${CMake_SOURCE_DIR}/Tests/LinkLineOrder
  270. ${CMake_BINARY_DIR}/Tests/LinkLineOrder
  271. Exec1
  272. ${CMake_BINARY_DIR}/Tests/LinkLineOrder
  273. LinkLineOrder)
  274. ADD_TEST(linkorder2 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  275. ${CMake_SOURCE_DIR}/Tests/LinkLineOrder
  276. ${CMake_BINARY_DIR}/Tests/LinkLineOrder
  277. Exec2
  278. ${CMake_BINARY_DIR}/Tests/LinkLineOrder
  279. LinkLineOrder)
  280. ADD_TEST(curl ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  281. ${CMake_SOURCE_DIR}/Source/CTest/Curl
  282. ${CMake_BINARY_DIR}/Tests/Curl
  283. LIBCURL)
  284. ADD_TEST(kwsys ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  285. ${CMake_SOURCE_DIR}/Source/kwsys
  286. ${CMake_BINARY_DIR}/Tests/kwsys
  287. test1
  288. ${CMake_BINARY_DIR}/Tests/kwsys
  289. kwsys)
  290. IF (APPLE)
  291. ADD_TEST(objc++ ${EXECUTABLE_OUTPUT_PATH}/cmaketest
  292. ${CMake_SOURCE_DIR}/Tests/Objc++
  293. ${CMake_BINARY_DIR}/Tests/Objc++
  294. objc++)
  295. ENDIF (APPLE)
  296. ENDIF(BUILD_TESTING)
  297. INCLUDE (${CMAKE_BINARY_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
  298. INCLUDE (${CMAKE_SOURCE_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
  299. INSTALL_TARGETS(/bin cmake)
  300. INSTALL_TARGETS(/bin ctest)
  301. INSTALL_TARGETS(/bin cmaketest)
  302. INSTALL_FILES(/share/CMake/include cmCPluginAPI.h)