CMakeLists.txt 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571
  1. #=============================================================================
  2. # CMake - Cross Platform Makefile Generator
  3. # Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
  4. #
  5. # Distributed under the OSI-approved BSD License (the "License");
  6. # see accompanying file Copyright.txt for details.
  7. #
  8. # This software is distributed WITHOUT ANY WARRANTY; without even the
  9. # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  10. # See the License for more information.
  11. #=============================================================================
  12. INCLUDE(CheckIncludeFile)
  13. # Check if we can build support for ELF parsing.
  14. CHECK_INCLUDE_FILE("elf.h" HAVE_ELF_H)
  15. IF(HAVE_ELF_H)
  16. SET(CMAKE_USE_ELF_PARSER 1)
  17. ELSE(HAVE_ELF_H)
  18. SET(CMAKE_USE_ELF_PARSER)
  19. ENDIF(HAVE_ELF_H)
  20. SET(EXECUTABLE_OUTPUT_PATH ${CMake_BIN_DIR})
  21. # configure the .h file
  22. CONFIGURE_FILE(
  23. "${CMake_SOURCE_DIR}/Source/cmConfigure.cmake.h.in"
  24. "${CMake_BINARY_DIR}/Source/cmConfigure.h"
  25. )
  26. CONFIGURE_FILE(
  27. "${CMake_SOURCE_DIR}/Source/cmVersionConfig.h.in"
  28. "${CMake_BINARY_DIR}/Source/cmVersionConfig.h"
  29. )
  30. CONFIGURE_FILE(
  31. "${CMake_SOURCE_DIR}/Source/CPack/cmCPackConfigure.h.in"
  32. "${CMake_BINARY_DIR}/Source/CPack/cmCPackConfigure.h"
  33. )
  34. # add the include path to find the .h
  35. INCLUDE_DIRECTORIES(
  36. "${CMake_BINARY_DIR}/Source"
  37. "${CMake_SOURCE_DIR}/Source"
  38. ${CMAKE_ZLIB_INCLUDES}
  39. ${CMAKE_EXPAT_INCLUDES}
  40. ${CMAKE_TAR_INCLUDES}
  41. ${CMAKE_COMPRESS_INCLUDES}
  42. )
  43. # let cmake know it is supposed to use it
  44. ADD_DEFINITIONS(-DCMAKE_BUILD_WITH_CMAKE)
  45. OPTION(CMAKE_REGENERATE_YACCLEX
  46. "Regenerate YACC and LEXX files" OFF)
  47. MARK_AS_ADVANCED(CMAKE_REGENERATE_YACCLEX)
  48. IF(CMAKE_REGENERATE_YACCLEX)
  49. SET(parsersLexers cmDependsFortran cmCommandArgument cmExpr)
  50. FIND_PROGRAM(YACC_EXECUTABLE
  51. NAMES yacc bison
  52. PATHS /usr/bin
  53. DOC "Yacc or Bison executable")
  54. FIND_PROGRAM(FLEX_EXECUTABLE
  55. NAMES flex
  56. PATHS /usr/bin
  57. DOC "Flex executable")
  58. MARK_AS_ADVANCED(YACC_EXECUTABLE FLEX_EXECUTABLE)
  59. IF(YACC_EXECUTABLE)
  60. SET(BISON_FLAGS)
  61. IF(YACC_EXECUTABLE MATCHES "bison")
  62. SET(BISON_FLAGS "--yacc")
  63. ENDIF(YACC_EXECUTABLE MATCHES "bison")
  64. SET(yacc_files)
  65. FOREACH(name ${parsersLexers})
  66. SET(src "${CMAKE_CURRENT_SOURCE_DIR}/${name}Parser.y")
  67. SET(dst "${CMAKE_CURRENT_BINARY_DIR}/${name}Parser.cxx")
  68. SET(hdr "${CMAKE_CURRENT_BINARY_DIR}/${name}ParserTokens.h")
  69. ADD_CUSTOM_COMMAND(
  70. OUTPUT "${dst}"
  71. DEPENDS "${src}"
  72. COMMAND
  73. ${YACC_EXECUTABLE}
  74. --name-prefix=${name}_yy --defines=${hdr} -o${dst} ${src}
  75. )
  76. SET(yacc_files ${yacc_files} "${dst}")
  77. ENDFOREACH(name)
  78. ADD_CUSTOM_TARGET(RerunYacc DEPENDS ${yacc_files})
  79. ENDIF(YACC_EXECUTABLE)
  80. IF(FLEX_EXECUTABLE)
  81. SET(lex_files)
  82. FOREACH(name ${parsersLexers})
  83. SET(src "${CMAKE_CURRENT_SOURCE_DIR}/${name}Lexer.in.l")
  84. SET(dst "${CMAKE_CURRENT_BINARY_DIR}/${name}Lexer.cxx")
  85. SET(hdr "${CMAKE_CURRENT_BINARY_DIR}/${name}Lexer.h")
  86. ADD_CUSTOM_COMMAND(
  87. OUTPUT "${dst}"
  88. DEPENDS "${src}"
  89. COMMAND
  90. ${FLEX_EXECUTABLE}
  91. --prefix=${name}_yy --header-file=${hdr} -o${dst} ${src}
  92. )
  93. SET(lex_files ${lex_files} "${dst}")
  94. ENDFOREACH(name)
  95. ADD_CUSTOM_TARGET(RerunLex DEPENDS ${lex_files})
  96. ENDIF(FLEX_EXECUTABLE)
  97. ENDIF(CMAKE_REGENERATE_YACCLEX)
  98. # Check if we can build the ELF parser.
  99. IF(CMAKE_USE_ELF_PARSER)
  100. SET(ELF_SRCS cmELF.h cmELF.cxx)
  101. ENDIF(CMAKE_USE_ELF_PARSER)
  102. #
  103. # Sources for CMakeLib
  104. #
  105. SET(SRCS
  106. cmStandardIncludes.cxx
  107. cmArchiveWrite.cxx
  108. cmBootstrapCommands.cxx
  109. cmCacheManager.cxx
  110. cmCacheManager.h
  111. cmCommands.cxx
  112. cmCommands.h
  113. cmCommandArgumentLexer.cxx
  114. cmCommandArgumentParser.cxx
  115. cmCommandArgumentParserHelper.cxx
  116. cmComputeComponentGraph.cxx
  117. cmComputeComponentGraph.h
  118. cmComputeLinkDepends.cxx
  119. cmComputeLinkDepends.h
  120. cmComputeLinkInformation.cxx
  121. cmComputeLinkInformation.h
  122. cmComputeTargetDepends.h
  123. cmComputeTargetDepends.cxx
  124. cmCryptoHash.cxx
  125. cmCryptoHash.h
  126. cmCustomCommand.cxx
  127. cmCustomCommand.h
  128. cmCustomCommandGenerator.cxx
  129. cmCustomCommandGenerator.h
  130. cmDefinitions.cxx
  131. cmDefinitions.h
  132. cmDepends.cxx
  133. cmDepends.h
  134. cmDependsC.cxx
  135. cmDependsC.h
  136. cmDependsFortran.cxx
  137. cmDependsFortran.h
  138. cmDependsFortranLexer.cxx
  139. cmDependsFortranParser.cxx
  140. cmDependsFortranParser.h
  141. cmDependsJava.cxx
  142. cmDependsJava.h
  143. cmDependsJavaLexer.cxx
  144. cmDependsJavaParser.cxx
  145. cmDependsJavaParserHelper.cxx
  146. cmDependsJavaParserHelper.h
  147. cmDocumentation.cxx
  148. cmDocumentationFormatter.cxx
  149. cmDocumentationFormatterHTML.cxx
  150. cmDocumentationFormatterDocbook.cxx
  151. cmDocumentationFormatterMan.cxx
  152. cmDocumentationFormatterText.cxx
  153. cmDocumentationFormatterUsage.cxx
  154. cmDocumentationSection.cxx
  155. cmDocumentCompileDefinitions.h
  156. cmDocumentGeneratorExpressions.h
  157. cmDocumentLocationUndefined.h
  158. cmDocumentVariables.cxx
  159. cmDynamicLoader.cxx
  160. cmDynamicLoader.h
  161. ${ELF_SRCS}
  162. cmExprLexer.cxx
  163. cmExprParser.cxx
  164. cmExprParserHelper.cxx
  165. cmExportBuildFileGenerator.h
  166. cmExportBuildFileGenerator.cxx
  167. cmExportFileGenerator.h
  168. cmExportFileGenerator.cxx
  169. cmExportInstallFileGenerator.h
  170. cmExportInstallFileGenerator.cxx
  171. cmExtraCodeBlocksGenerator.cxx
  172. cmExtraCodeBlocksGenerator.h
  173. cmExtraEclipseCDT4Generator.cxx
  174. cmExtraEclipseCDT4Generator.h
  175. cmFileTimeComparison.cxx
  176. cmFileTimeComparison.h
  177. cmGeneratedFileStream.cxx
  178. cmGeneratorExpression.cxx
  179. cmGeneratorExpression.h
  180. cmGeneratorTarget.cxx
  181. cmGeneratorTarget.h
  182. cmGlobalGenerator.cxx
  183. cmGlobalGenerator.h
  184. cmGlobalUnixMakefileGenerator3.cxx
  185. cmGlobalUnixMakefileGenerator3.h
  186. cmGraphAdjacencyList.h
  187. cmGraphVizWriter.cxx
  188. cmGraphVizWriter.h
  189. cmInstallGenerator.h
  190. cmInstallGenerator.cxx
  191. cmInstallExportGenerator.cxx
  192. cmInstallFilesGenerator.h
  193. cmInstallFilesGenerator.cxx
  194. cmInstallScriptGenerator.h
  195. cmInstallScriptGenerator.cxx
  196. cmInstallTargetGenerator.h
  197. cmInstallTargetGenerator.cxx
  198. cmInstallDirectoryGenerator.h
  199. cmInstallDirectoryGenerator.cxx
  200. cmListFileCache.cxx
  201. cmListFileCache.h
  202. cmListFileLexer.c
  203. cmLocalGenerator.cxx
  204. cmLocalGenerator.h
  205. cmLocalUnixMakefileGenerator3.cxx
  206. cmMakeDepend.cxx
  207. cmMakeDepend.h
  208. cmMakefile.cxx
  209. cmMakefile.h
  210. cmMakefileTargetGenerator.cxx
  211. cmMakefileExecutableTargetGenerator.cxx
  212. cmMakefileLibraryTargetGenerator.cxx
  213. cmMakefileUtilityTargetGenerator.cxx
  214. cmNewLineStyle.h
  215. cmNewLineStyle.cxx
  216. cmOrderDirectories.cxx
  217. cmOrderDirectories.h
  218. cmPolicies.h
  219. cmPolicies.cxx
  220. cmProcessTools.cxx
  221. cmProcessTools.h
  222. cmProperty.cxx
  223. cmProperty.h
  224. cmPropertyDefinition.cxx
  225. cmPropertyDefinition.h
  226. cmPropertyDefinitionMap.cxx
  227. cmPropertyDefinitionMap.h
  228. cmPropertyMap.cxx
  229. cmPropertyMap.h
  230. cmQtAutomoc.cxx
  231. cmQtAutomoc.h
  232. cmScriptGenerator.h
  233. cmScriptGenerator.cxx
  234. cmSourceFile.cxx
  235. cmSourceFile.h
  236. cmSourceFileLocation.cxx
  237. cmSourceFileLocation.h
  238. cmSourceGroup.cxx
  239. cmSourceGroup.h
  240. cmSystemTools.cxx
  241. cmSystemTools.h
  242. cmTarget.cxx
  243. cmTarget.h
  244. cmTest.cxx
  245. cmTest.h
  246. cmTestGenerator.cxx
  247. cmTestGenerator.h
  248. cmVariableWatch.cxx
  249. cmVariableWatch.h
  250. cmVersion.cxx
  251. cmVersion.h
  252. cmXMLParser.cxx
  253. cmXMLParser.h
  254. cmXMLSafe.cxx
  255. cmXMLSafe.h
  256. cmake.cxx
  257. cmake.h
  258. cmakewizard.cxx
  259. cmakewizard.h
  260. cm_sha2.h
  261. cm_sha2.c
  262. cm_utf8.h
  263. cm_utf8.c
  264. )
  265. # Kdevelop only works on UNIX and not windows
  266. IF(UNIX)
  267. SET(SRCS ${SRCS} cmGlobalKdevelopGenerator.cxx)
  268. ENDIF(UNIX)
  269. # Xcode only works on Apple
  270. IF(APPLE)
  271. SET(SRCS ${SRCS}
  272. cmXCodeObject.cxx
  273. cmXCode21Object.cxx
  274. cmGlobalXCodeGenerator.cxx
  275. cmGlobalXCodeGenerator.h
  276. cmLocalXCodeGenerator.cxx
  277. cmLocalXCodeGenerator.h)
  278. ENDIF(APPLE)
  279. IF (WIN32)
  280. SET(SRCS ${SRCS}
  281. cmCallVisualStudioMacro.cxx
  282. cmCallVisualStudioMacro.h
  283. )
  284. IF(NOT UNIX)
  285. SET(SRCS ${SRCS}
  286. cmGlobalBorlandMakefileGenerator.cxx
  287. cmGlobalBorlandMakefileGenerator.h
  288. cmGlobalMSYSMakefileGenerator.cxx
  289. cmGlobalMinGWMakefileGenerator.cxx
  290. cmGlobalNMakeMakefileGenerator.cxx
  291. cmGlobalNMakeMakefileGenerator.h
  292. cmGlobalJOMMakefileGenerator.cxx
  293. cmGlobalJOMMakefileGenerator.h
  294. cmGlobalVisualStudio6Generator.cxx
  295. cmGlobalVisualStudio6Generator.h
  296. cmGlobalVisualStudio71Generator.cxx
  297. cmGlobalVisualStudio71Generator.h
  298. cmGlobalVisualStudio7Generator.cxx
  299. cmGlobalVisualStudio7Generator.h
  300. cmGlobalVisualStudio8Generator.cxx
  301. cmGlobalVisualStudio8Generator.h
  302. cmGlobalVisualStudio9Generator.cxx
  303. cmGlobalVisualStudio9Generator.h
  304. cmGlobalVisualStudio8Win64Generator.cxx
  305. cmGlobalVisualStudio8Win64Generator.h
  306. cmGlobalVisualStudio9Win64Generator.cxx
  307. cmGlobalVisualStudio9Win64Generator.h
  308. cmGlobalVisualStudio9IA64Generator.cxx
  309. cmGlobalVisualStudio9IA64Generator.h
  310. cmVisualStudioGeneratorOptions.h
  311. cmVisualStudioGeneratorOptions.cxx
  312. cmVisualStudio10TargetGenerator.h
  313. cmVisualStudio10TargetGenerator.cxx
  314. cmLocalVisualStudio10Generator.cxx
  315. cmLocalVisualStudio10Generator.h
  316. cmGlobalVisualStudio10Generator.h
  317. cmGlobalVisualStudio10Generator.cxx
  318. cmGlobalVisualStudio10Win64Generator.h
  319. cmGlobalVisualStudio10Win64Generator.cxx
  320. cmGlobalVisualStudio10IA64Generator.h
  321. cmGlobalVisualStudio10IA64Generator.cxx
  322. cmGlobalVisualStudio11Generator.h
  323. cmGlobalVisualStudio11Generator.cxx
  324. cmGlobalVisualStudio11Win64Generator.h
  325. cmGlobalVisualStudio11Win64Generator.cxx
  326. cmGlobalVisualStudio11ARMGenerator.h
  327. cmGlobalVisualStudio11ARMGenerator.cxx
  328. cmGlobalVisualStudioGenerator.cxx
  329. cmGlobalVisualStudioGenerator.h
  330. cmGlobalWatcomWMakeGenerator.cxx
  331. cmIDEFlagTable.h
  332. cmIDEOptions.cxx
  333. cmIDEOptions.h
  334. cmLocalVisualStudio6Generator.cxx
  335. cmLocalVisualStudio6Generator.h
  336. cmLocalVisualStudio7Generator.cxx
  337. cmLocalVisualStudio7Generator.h
  338. cmLocalVisualStudioGenerator.cxx
  339. cmLocalVisualStudioGenerator.h
  340. cmWin32ProcessExecution.cxx
  341. cmWin32ProcessExecution.h
  342. )
  343. ENDIF(NOT UNIX)
  344. ENDIF (WIN32)
  345. # Turn on Ninja by default, but disable it
  346. # on platforms where it does not pass all tests.
  347. # Enforce Ninja support by setting CMAKE_USE_NINJA
  348. set(_CMAKE_DEFAULT_NINJA_VALUE TRUE)
  349. if(WIN32 OR APPLE)
  350. SET(_CMAKE_DEFAULT_NINJA_VALUE FALSE)
  351. endif()
  352. SET(CMAKE_ENABLE_NINJA ${_CMAKE_DEFAULT_NINJA_VALUE} CACHE BOOL
  353. "Enable the ninja generator for CMake. On Windows and OSX broken")
  354. MARK_AS_ADVANCED(CMAKE_ENABLE_NINJA)
  355. IF(CMAKE_ENABLE_NINJA)
  356. MESSAGE(STATUS "Ninja generator enabled.")
  357. SET(SRCS ${SRCS}
  358. cmGlobalNinjaGenerator.cxx
  359. cmGlobalNinjaGenerator.h
  360. cmNinjaTypes.h
  361. cmLocalNinjaGenerator.cxx
  362. cmLocalNinjaGenerator.h
  363. cmNinjaTargetGenerator.cxx
  364. cmNinjaTargetGenerator.h
  365. cmNinjaNormalTargetGenerator.cxx
  366. cmNinjaNormalTargetGenerator.h
  367. cmNinjaUtilityTargetGenerator.cxx
  368. cmNinjaUtilityTargetGenerator.h
  369. )
  370. ADD_DEFINITIONS(-DCMAKE_USE_NINJA)
  371. ELSE()
  372. MESSAGE(STATUS "Ninja generator disabled, enforce with -DCMAKE_ENABLE_NINJA=ON")
  373. ENDIF()
  374. # create a library used by the command line and the GUI
  375. ADD_LIBRARY(CMakeLib ${SRCS})
  376. TARGET_LINK_LIBRARIES(CMakeLib cmsys
  377. ${CMAKE_EXPAT_LIBRARIES} ${CMAKE_ZLIB_LIBRARIES}
  378. ${CMAKE_TAR_LIBRARIES} ${CMAKE_COMPRESS_LIBRARIES}
  379. ${CMAKE_CURL_LIBRARIES} )
  380. # On Apple we need CoreFoundation
  381. IF(APPLE)
  382. TARGET_LINK_LIBRARIES(CMakeLib "-framework CoreFoundation")
  383. ENDIF(APPLE)
  384. # On some platforms we need the rpcrt4 library for the VS 7 generators.
  385. IF(CMAKE_BUILD_ON_VISUAL_STUDIO OR MINGW)
  386. TARGET_LINK_LIBRARIES(CMakeLib rpcrt4)
  387. ENDIF(CMAKE_BUILD_ON_VISUAL_STUDIO OR MINGW)
  388. #
  389. # CTestLib
  390. #
  391. INCLUDE_DIRECTORIES(
  392. "${CMake_SOURCE_DIR}/Source/CTest"
  393. ${CMAKE_XMLRPC_INCLUDES}
  394. ${CMAKE_CURL_INCLUDES}
  395. )
  396. #
  397. # Sources for CTestLib
  398. #
  399. SET(CTEST_SRCS cmCTest.cxx
  400. CTest/cmProcess.cxx
  401. CTest/cmCTestBatchTestHandler.cxx
  402. CTest/cmCTestBuildAndTestHandler.cxx
  403. CTest/cmCTestBuildCommand.cxx
  404. CTest/cmCTestBuildHandler.cxx
  405. CTest/cmCTestConfigureCommand.cxx
  406. CTest/cmCTestConfigureHandler.cxx
  407. CTest/cmCTestCoverageCommand.cxx
  408. CTest/cmCTestCoverageHandler.cxx
  409. CTest/cmParseMumpsCoverage.cxx
  410. CTest/cmParseCacheCoverage.cxx
  411. CTest/cmParseGTMCoverage.cxx
  412. CTest/cmParsePHPCoverage.cxx
  413. CTest/cmCTestEmptyBinaryDirectoryCommand.cxx
  414. CTest/cmCTestGenericHandler.cxx
  415. CTest/cmCTestHandlerCommand.cxx
  416. CTest/cmCTestLaunch.cxx
  417. CTest/cmCTestMemCheckCommand.cxx
  418. CTest/cmCTestMemCheckHandler.cxx
  419. CTest/cmCTestMultiProcessHandler.cxx
  420. CTest/cmCTestReadCustomFilesCommand.cxx
  421. CTest/cmCTestRunScriptCommand.cxx
  422. CTest/cmCTestRunTest.cxx
  423. CTest/cmCTestScriptHandler.cxx
  424. CTest/cmCTestSleepCommand.cxx
  425. CTest/cmCTestStartCommand.cxx
  426. CTest/cmCTestSubmitCommand.cxx
  427. CTest/cmCTestSubmitHandler.cxx
  428. CTest/cmCTestTestCommand.cxx
  429. CTest/cmCTestTestHandler.cxx
  430. CTest/cmCTestUpdateCommand.cxx
  431. CTest/cmCTestUpdateHandler.cxx
  432. CTest/cmCTestUploadCommand.cxx
  433. CTest/cmCTestUploadHandler.cxx
  434. CTest/cmCTestVC.cxx
  435. CTest/cmCTestVC.h
  436. CTest/cmCTestGlobalVC.cxx
  437. CTest/cmCTestGlobalVC.h
  438. CTest/cmCTestCVS.cxx
  439. CTest/cmCTestCVS.h
  440. CTest/cmCTestSVN.cxx
  441. CTest/cmCTestSVN.h
  442. CTest/cmCTestBZR.cxx
  443. CTest/cmCTestBZR.h
  444. CTest/cmCTestGIT.cxx
  445. CTest/cmCTestGIT.h
  446. CTest/cmCTestHG.cxx
  447. CTest/cmCTestHG.h
  448. )
  449. # Build CTestLib
  450. ADD_LIBRARY(CTestLib ${CTEST_SRCS})
  451. TARGET_LINK_LIBRARIES(CTestLib CMakeLib ${CMAKE_CURL_LIBRARIES} ${CMAKE_XMLRPC_LIBRARIES})
  452. #
  453. # Sources for CPack
  454. #
  455. SET(CPACK_SRCS
  456. CPack/cmCPackArchiveGenerator.cxx
  457. CPack/cmCPackComponentGroup.cxx
  458. CPack/cmCPackGeneratorFactory.cxx
  459. CPack/cmCPackGenerator.cxx
  460. CPack/cmCPackLog.cxx
  461. CPack/cmCPackNSISGenerator.cxx
  462. CPack/cmCPackSTGZGenerator.cxx
  463. CPack/cmCPackTGZGenerator.cxx
  464. CPack/cmCPackTarBZip2Generator.cxx
  465. CPack/cmCPackTarCompressGenerator.cxx
  466. CPack/cmCPackZIPGenerator.cxx
  467. CPack/cmCPackDocumentVariables.cxx
  468. CPack/cmCPackDocumentMacros.cxx
  469. )
  470. IF(CYGWIN)
  471. SET(CPACK_SRCS ${CPACK_SRCS}
  472. CPack/cmCPackCygwinBinaryGenerator.cxx
  473. CPack/cmCPackCygwinSourceGenerator.cxx
  474. )
  475. ENDIF(CYGWIN)
  476. IF(UNIX)
  477. SET(CPACK_SRCS ${CPACK_SRCS}
  478. CPack/cmCPackDebGenerator.cxx
  479. CPack/cmCPackRPMGenerator.cxx
  480. )
  481. ENDIF(UNIX)
  482. IF(APPLE)
  483. SET(CPACK_SRCS ${CPACK_SRCS}
  484. CPack/cmCPackBundleGenerator.cxx
  485. CPack/cmCPackDragNDropGenerator.cxx
  486. CPack/cmCPackOSXX11Generator.cxx
  487. CPack/cmCPackPackageMakerGenerator.cxx
  488. )
  489. ENDIF(APPLE)
  490. # Build CPackLib
  491. ADD_LIBRARY(CPackLib ${CPACK_SRCS})
  492. TARGET_LINK_LIBRARIES(CPackLib CMakeLib)
  493. IF(APPLE)
  494. ADD_EXECUTABLE(cmakexbuild cmakexbuild.cxx)
  495. TARGET_LINK_LIBRARIES(cmakexbuild CMakeLib)
  496. ADD_EXECUTABLE(OSXScriptLauncher
  497. CPack/OSXScriptLauncher.cxx)
  498. TARGET_LINK_LIBRARIES(OSXScriptLauncher cmsys)
  499. TARGET_LINK_LIBRARIES(OSXScriptLauncher "-framework CoreFoundation")
  500. ENDIF(APPLE)
  501. # Build CMake executable
  502. ADD_EXECUTABLE(cmake cmakemain.cxx)
  503. TARGET_LINK_LIBRARIES(cmake CMakeLib)
  504. # Build special executable for running programs on Windows 98
  505. IF(WIN32)
  506. IF(NOT UNIX)
  507. ADD_EXECUTABLE(cmw9xcom cmw9xcom.cxx)
  508. TARGET_LINK_LIBRARIES(cmw9xcom CMakeLib)
  509. INSTALL_TARGETS(/bin cmw9xcom)
  510. ENDIF(NOT UNIX)
  511. ENDIF(WIN32)
  512. # Build CTest executable
  513. ADD_EXECUTABLE(ctest ctest.cxx)
  514. TARGET_LINK_LIBRARIES(ctest CTestLib)
  515. # Build CPack executable
  516. ADD_EXECUTABLE(cpack CPack/cpack.cxx)
  517. TARGET_LINK_LIBRARIES(cpack CPackLib)
  518. # Curses GUI
  519. IF(BUILD_CursesDialog)
  520. INCLUDE(${CMake_SOURCE_DIR}/Source/CursesDialog/CMakeLists.txt)
  521. ENDIF(BUILD_CursesDialog)
  522. # Qt GUI
  523. OPTION(BUILD_QtDialog "Build Qt dialog for CMake" FALSE)
  524. IF(BUILD_QtDialog)
  525. SUBDIRS(QtDialog)
  526. ENDIF(BUILD_QtDialog)
  527. INCLUDE (${CMake_BINARY_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
  528. INCLUDE (${CMake_SOURCE_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
  529. INSTALL_TARGETS(/bin cmake)
  530. INSTALL_TARGETS(/bin ctest)
  531. INSTALL_TARGETS(/bin cpack)
  532. IF(APPLE)
  533. INSTALL_TARGETS(/bin cmakexbuild)
  534. ENDIF(APPLE)
  535. INSTALL_FILES(${CMAKE_DATA_DIR}/include cmCPluginAPI.h)