CMakeLists.txt 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640
  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. if(CMAKE_CXX_PLATFORM_ID MATCHES "OpenBSD")
  15. CHECK_INCLUDE_FILES("stdint.h;elf_abi.h" HAVE_ELF_H)
  16. else()
  17. CHECK_INCLUDE_FILE("elf.h" HAVE_ELF_H)
  18. endif()
  19. if(HAVE_ELF_H)
  20. set(CMAKE_USE_ELF_PARSER 1)
  21. else()
  22. set(CMAKE_USE_ELF_PARSER)
  23. endif()
  24. set(EXECUTABLE_OUTPUT_PATH ${CMake_BIN_DIR})
  25. # ensure Unicode friendly APIs are used on Windows
  26. if(WIN32)
  27. add_definitions(-DUNICODE -D_UNICODE)
  28. endif()
  29. # configure the .h file
  30. configure_file(
  31. "${CMake_SOURCE_DIR}/Source/cmConfigure.cmake.h.in"
  32. "${CMake_BINARY_DIR}/Source/cmConfigure.h"
  33. )
  34. configure_file(
  35. "${CMake_SOURCE_DIR}/Source/cmVersionConfig.h.in"
  36. "${CMake_BINARY_DIR}/Source/cmVersionConfig.h"
  37. )
  38. configure_file(
  39. "${CMake_SOURCE_DIR}/Source/CPack/cmCPackConfigure.h.in"
  40. "${CMake_BINARY_DIR}/Source/CPack/cmCPackConfigure.h"
  41. )
  42. # Tell CMake executable in the build tree where to find the source tree.
  43. configure_file(
  44. "${CMake_SOURCE_DIR}/Source/CMakeSourceDir.txt.in"
  45. "${CMake_BINARY_DIR}/CMakeFiles/CMakeSourceDir.txt" @ONLY
  46. )
  47. # add the include path to find the .h
  48. include_directories(
  49. "${CMake_BINARY_DIR}/Source"
  50. "${CMake_SOURCE_DIR}/Source"
  51. ${CMAKE_ZLIB_INCLUDES}
  52. ${CMAKE_EXPAT_INCLUDES}
  53. ${CMAKE_TAR_INCLUDES}
  54. ${CMAKE_COMPRESS_INCLUDES}
  55. )
  56. # let cmake know it is supposed to use it
  57. add_definitions(-DCMAKE_BUILD_WITH_CMAKE)
  58. option(CMAKE_REGENERATE_YACCLEX
  59. "Regenerate YACC and LEXX files" OFF)
  60. mark_as_advanced(CMAKE_REGENERATE_YACCLEX)
  61. if(CMAKE_REGENERATE_YACCLEX)
  62. set(parsersLexers cmDependsFortran cmCommandArgument cmExpr)
  63. find_program(YACC_EXECUTABLE
  64. NAMES yacc bison
  65. PATHS /usr/bin
  66. DOC "Yacc or Bison executable")
  67. find_program(FLEX_EXECUTABLE
  68. NAMES flex
  69. PATHS /usr/bin
  70. DOC "Flex executable")
  71. mark_as_advanced(YACC_EXECUTABLE FLEX_EXECUTABLE)
  72. if(YACC_EXECUTABLE)
  73. set(BISON_FLAGS)
  74. if(YACC_EXECUTABLE MATCHES "bison")
  75. set(BISON_FLAGS "--yacc")
  76. endif()
  77. set(yacc_files)
  78. foreach(name ${parsersLexers})
  79. set(src "${CMAKE_CURRENT_SOURCE_DIR}/${name}Parser.y")
  80. set(dst "${CMAKE_CURRENT_BINARY_DIR}/${name}Parser.cxx")
  81. set(hdr "${CMAKE_CURRENT_BINARY_DIR}/${name}ParserTokens.h")
  82. add_custom_command(
  83. OUTPUT "${dst}"
  84. DEPENDS "${src}"
  85. COMMAND
  86. ${YACC_EXECUTABLE}
  87. --name-prefix=${name}_yy --defines=${hdr} -o${dst} ${src}
  88. )
  89. set(yacc_files ${yacc_files} "${dst}")
  90. endforeach()
  91. add_custom_target(RerunYacc DEPENDS ${yacc_files})
  92. endif()
  93. if(FLEX_EXECUTABLE)
  94. set(lex_files)
  95. foreach(name ${parsersLexers})
  96. set(src "${CMAKE_CURRENT_SOURCE_DIR}/${name}Lexer.in.l")
  97. set(dst "${CMAKE_CURRENT_BINARY_DIR}/${name}Lexer.cxx")
  98. set(hdr "${CMAKE_CURRENT_BINARY_DIR}/${name}Lexer.h")
  99. add_custom_command(
  100. OUTPUT "${dst}"
  101. DEPENDS "${src}"
  102. COMMAND
  103. ${FLEX_EXECUTABLE}
  104. --prefix=${name}_yy --header-file=${hdr} -o${dst} ${src}
  105. )
  106. set(lex_files ${lex_files} "${dst}")
  107. endforeach()
  108. add_custom_target(RerunLex DEPENDS ${lex_files})
  109. endif()
  110. endif()
  111. # Check if we can build the ELF parser.
  112. if(CMAKE_USE_ELF_PARSER)
  113. set(ELF_SRCS cmELF.h cmELF.cxx)
  114. endif()
  115. #
  116. # Sources for CMakeLib
  117. #
  118. set(SRCS
  119. cmStandardIncludes.cxx
  120. cmArchiveWrite.cxx
  121. cmBootstrapCommands1.cxx
  122. cmBootstrapCommands2.cxx
  123. cmCacheManager.cxx
  124. cmCacheManager.h
  125. "${CMAKE_CURRENT_BINARY_DIR}/cmCommands.cxx"
  126. cmCommands.h
  127. cmCommandArgumentLexer.cxx
  128. cmCommandArgumentParser.cxx
  129. cmCommandArgumentParserHelper.cxx
  130. cmComputeComponentGraph.cxx
  131. cmComputeComponentGraph.h
  132. cmComputeLinkDepends.cxx
  133. cmComputeLinkDepends.h
  134. cmComputeLinkInformation.cxx
  135. cmComputeLinkInformation.h
  136. cmComputeTargetDepends.h
  137. cmComputeTargetDepends.cxx
  138. cmCryptoHash.cxx
  139. cmCryptoHash.h
  140. cmCustomCommand.cxx
  141. cmCustomCommand.h
  142. cmCustomCommandGenerator.cxx
  143. cmCustomCommandGenerator.h
  144. cmDefinitions.cxx
  145. cmDefinitions.h
  146. cmDepends.cxx
  147. cmDepends.h
  148. cmDependsC.cxx
  149. cmDependsC.h
  150. cmDependsFortran.cxx
  151. cmDependsFortran.h
  152. cmDependsFortranLexer.cxx
  153. cmDependsFortranParser.cxx
  154. cmDependsFortranParser.h
  155. cmDependsJava.cxx
  156. cmDependsJava.h
  157. cmDependsJavaLexer.cxx
  158. cmDependsJavaParser.cxx
  159. cmDependsJavaParserHelper.cxx
  160. cmDependsJavaParserHelper.h
  161. cmDocumentation.cxx
  162. cmDocumentationFormatter.cxx
  163. cmDocumentationSection.cxx
  164. cmDynamicLoader.cxx
  165. cmDynamicLoader.h
  166. ${ELF_SRCS}
  167. cmExprLexer.cxx
  168. cmExprParser.cxx
  169. cmExprParserHelper.cxx
  170. cmExportBuildFileGenerator.h
  171. cmExportBuildFileGenerator.cxx
  172. cmExportFileGenerator.h
  173. cmExportFileGenerator.cxx
  174. cmExportInstallFileGenerator.h
  175. cmExportInstallFileGenerator.cxx
  176. cmExportTryCompileFileGenerator.h
  177. cmExportTryCompileFileGenerator.cxx
  178. cmExportSet.h
  179. cmExportSet.cxx
  180. cmExportSetMap.h
  181. cmExportSetMap.cxx
  182. cmExtraCodeBlocksGenerator.cxx
  183. cmExtraCodeBlocksGenerator.h
  184. cmExtraCodeLiteGenerator.cxx
  185. cmExtraCodeLiteGenerator.h
  186. cmExtraEclipseCDT4Generator.cxx
  187. cmExtraEclipseCDT4Generator.h
  188. cmExtraKateGenerator.cxx
  189. cmExtraKateGenerator.h
  190. cmExtraSublimeTextGenerator.cxx
  191. cmExtraSublimeTextGenerator.h
  192. cmFileTimeComparison.cxx
  193. cmFileTimeComparison.h
  194. cmGeneratedFileStream.cxx
  195. cmGeneratorExpressionDAGChecker.cxx
  196. cmGeneratorExpressionDAGChecker.h
  197. cmGeneratorExpressionEvaluator.cxx
  198. cmGeneratorExpressionEvaluator.h
  199. cmGeneratorExpressionLexer.cxx
  200. cmGeneratorExpressionLexer.h
  201. cmGeneratorExpressionParser.cxx
  202. cmGeneratorExpressionParser.h
  203. cmGeneratorExpression.cxx
  204. cmGeneratorExpression.h
  205. cmGeneratorTarget.cxx
  206. cmGeneratorTarget.h
  207. cmGlobalGenerator.cxx
  208. cmGlobalGenerator.h
  209. cmGlobalGeneratorFactory.h
  210. cmGlobalUnixMakefileGenerator3.cxx
  211. cmGlobalUnixMakefileGenerator3.h
  212. cmGraphAdjacencyList.h
  213. cmGraphVizWriter.cxx
  214. cmGraphVizWriter.h
  215. cmInstallGenerator.h
  216. cmInstallGenerator.cxx
  217. cmInstallExportGenerator.cxx
  218. cmInstallFilesGenerator.h
  219. cmInstallFilesGenerator.cxx
  220. cmInstallScriptGenerator.h
  221. cmInstallScriptGenerator.cxx
  222. cmInstallTargetGenerator.h
  223. cmInstallTargetGenerator.cxx
  224. cmInstallDirectoryGenerator.h
  225. cmInstallDirectoryGenerator.cxx
  226. cmListFileCache.cxx
  227. cmListFileCache.h
  228. cmListFileLexer.c
  229. cmLocalGenerator.cxx
  230. cmLocalGenerator.h
  231. cmLocalUnixMakefileGenerator3.cxx
  232. cmMakeDepend.cxx
  233. cmMakeDepend.h
  234. cmMakefile.cxx
  235. cmMakefile.h
  236. cmMakefileTargetGenerator.cxx
  237. cmMakefileExecutableTargetGenerator.cxx
  238. cmMakefileLibraryTargetGenerator.cxx
  239. cmMakefileUtilityTargetGenerator.cxx
  240. cmOSXBundleGenerator.cxx
  241. cmOSXBundleGenerator.h
  242. cmNewLineStyle.h
  243. cmNewLineStyle.cxx
  244. cmOrderDirectories.cxx
  245. cmOrderDirectories.h
  246. cmPolicies.h
  247. cmPolicies.cxx
  248. cmProcessTools.cxx
  249. cmProcessTools.h
  250. cmProperty.cxx
  251. cmProperty.h
  252. cmPropertyDefinition.cxx
  253. cmPropertyDefinition.h
  254. cmPropertyDefinitionMap.cxx
  255. cmPropertyDefinitionMap.h
  256. cmPropertyMap.cxx
  257. cmPropertyMap.h
  258. cmQtAutoGenerators.cxx
  259. cmQtAutoGenerators.h
  260. cmRST.cxx
  261. cmRST.h
  262. cmScriptGenerator.h
  263. cmScriptGenerator.cxx
  264. cmSourceFile.cxx
  265. cmSourceFile.h
  266. cmSourceFileLocation.cxx
  267. cmSourceFileLocation.h
  268. cmSourceGroup.cxx
  269. cmSourceGroup.h
  270. cmSystemTools.cxx
  271. cmSystemTools.h
  272. cmTarget.cxx
  273. cmTarget.h
  274. cmTargetExport.h
  275. cmTest.cxx
  276. cmTest.h
  277. cmTestGenerator.cxx
  278. cmTestGenerator.h
  279. cmVariableWatch.cxx
  280. cmVariableWatch.h
  281. cmVersion.cxx
  282. cmVersion.h
  283. cmXMLParser.cxx
  284. cmXMLParser.h
  285. cmXMLSafe.cxx
  286. cmXMLSafe.h
  287. cmake.cxx
  288. cmake.h
  289. cm_sha2.h
  290. cm_sha2.c
  291. cm_utf8.h
  292. cm_utf8.c
  293. )
  294. set(COMMAND_INCLUDES "#include \"cmTargetPropCommandBase.cxx\"\n")
  295. list(APPEND SRCS cmTargetPropCommandBase.cxx)
  296. set_property(SOURCE cmTargetPropCommandBase.cxx PROPERTY HEADER_FILE_ONLY ON)
  297. set(NEW_COMMANDS "")
  298. foreach(command_file
  299. cmAddCompileOptionsCommand
  300. cmAuxSourceDirectoryCommand
  301. cmBuildNameCommand
  302. cmCMakeHostSystemInformationCommand
  303. cmElseIfCommand
  304. cmExportCommand
  305. cmExportLibraryDependenciesCommand
  306. cmFLTKWrapUICommand
  307. cmIncludeExternalMSProjectCommand
  308. cmInstallProgramsCommand
  309. cmLinkLibrariesCommand
  310. cmLoadCacheCommand
  311. cmOutputRequiredFilesCommand
  312. cmQTWrapCPPCommand
  313. cmQTWrapUICommand
  314. cmRemoveCommand
  315. cmRemoveDefinitionsCommand
  316. cmSourceGroupCommand
  317. cmSubdirDependsCommand
  318. cmTargetCompileDefinitionsCommand
  319. cmTargetCompileOptionsCommand
  320. cmTargetIncludeDirectoriesCommand
  321. cmUseMangledMesaCommand
  322. cmUtilitySourceCommand
  323. cmVariableRequiresCommand
  324. cmVariableWatchCommand
  325. cmWriteFileCommand
  326. # This one must be last because it includes windows.h and
  327. # windows.h #defines GetCurrentDirectory which is a member
  328. # of cmMakefile
  329. cmLoadCommandCommand
  330. )
  331. set(COMMAND_INCLUDES "${COMMAND_INCLUDES}#include \"${command_file}.cxx\"\n")
  332. set(NEW_COMMANDS "${NEW_COMMANDS}commands.push_back(new ${command_file});\n")
  333. list(APPEND SRCS ${command_file}.cxx)
  334. set_property(SOURCE ${command_file}.cxx PROPERTY HEADER_FILE_ONLY ON)
  335. endforeach()
  336. configure_file(cmCommands.cxx.in ${CMAKE_CURRENT_BINARY_DIR}/cmCommands.cxx @ONLY)
  337. # Kdevelop only works on UNIX and not windows
  338. if(UNIX)
  339. set(SRCS ${SRCS} cmGlobalKdevelopGenerator.cxx)
  340. endif()
  341. # Xcode only works on Apple
  342. if(APPLE)
  343. set(SRCS ${SRCS}
  344. cmXCodeObject.cxx
  345. cmXCode21Object.cxx
  346. cmGlobalXCodeGenerator.cxx
  347. cmGlobalXCodeGenerator.h
  348. cmLocalXCodeGenerator.cxx
  349. cmLocalXCodeGenerator.h)
  350. endif()
  351. if (WIN32)
  352. set(SRCS ${SRCS}
  353. cmCallVisualStudioMacro.cxx
  354. cmCallVisualStudioMacro.h
  355. )
  356. if(NOT UNIX)
  357. set(SRCS ${SRCS}
  358. cmGlobalBorlandMakefileGenerator.cxx
  359. cmGlobalBorlandMakefileGenerator.h
  360. cmGlobalMSYSMakefileGenerator.cxx
  361. cmGlobalMinGWMakefileGenerator.cxx
  362. cmGlobalNMakeMakefileGenerator.cxx
  363. cmGlobalNMakeMakefileGenerator.h
  364. cmGlobalJOMMakefileGenerator.cxx
  365. cmGlobalJOMMakefileGenerator.h
  366. cmGlobalVisualStudio6Generator.cxx
  367. cmGlobalVisualStudio6Generator.h
  368. cmGlobalVisualStudio71Generator.cxx
  369. cmGlobalVisualStudio71Generator.h
  370. cmGlobalVisualStudio7Generator.cxx
  371. cmGlobalVisualStudio7Generator.h
  372. cmGlobalVisualStudio8Generator.cxx
  373. cmGlobalVisualStudio8Generator.h
  374. cmGlobalVisualStudio9Generator.cxx
  375. cmGlobalVisualStudio9Generator.h
  376. cmVisualStudioGeneratorOptions.h
  377. cmVisualStudioGeneratorOptions.cxx
  378. cmVisualStudio10TargetGenerator.h
  379. cmVisualStudio10TargetGenerator.cxx
  380. cmLocalVisualStudio10Generator.cxx
  381. cmLocalVisualStudio10Generator.h
  382. cmGlobalVisualStudio10Generator.h
  383. cmGlobalVisualStudio10Generator.cxx
  384. cmGlobalVisualStudio11Generator.h
  385. cmGlobalVisualStudio11Generator.cxx
  386. cmGlobalVisualStudio12Generator.h
  387. cmGlobalVisualStudio12Generator.cxx
  388. cmGlobalVisualStudioGenerator.cxx
  389. cmGlobalVisualStudioGenerator.h
  390. cmIDEFlagTable.h
  391. cmIDEOptions.cxx
  392. cmIDEOptions.h
  393. cmLocalVisualStudio6Generator.cxx
  394. cmLocalVisualStudio6Generator.h
  395. cmLocalVisualStudio7Generator.cxx
  396. cmLocalVisualStudio7Generator.h
  397. cmLocalVisualStudioGenerator.cxx
  398. cmLocalVisualStudioGenerator.h
  399. cmVisualStudioSlnData.h
  400. cmVisualStudioSlnData.cxx
  401. cmVisualStudioSlnParser.h
  402. cmVisualStudioSlnParser.cxx
  403. cmVisualStudioWCEPlatformParser.h
  404. cmVisualStudioWCEPlatformParser.cxx
  405. )
  406. endif()
  407. endif ()
  408. # Watcom support
  409. if(WIN32 OR "${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
  410. set_property(SOURCE cmake.cxx APPEND PROPERTY COMPILE_DEFINITIONS CMAKE_USE_WMAKE)
  411. list(APPEND SRCS
  412. cmGlobalWatcomWMakeGenerator.cxx
  413. cmGlobalWatcomWMakeGenerator.h
  414. )
  415. endif()
  416. # Ninja support
  417. set(SRCS ${SRCS}
  418. cmGlobalNinjaGenerator.cxx
  419. cmGlobalNinjaGenerator.h
  420. cmNinjaTypes.h
  421. cmLocalNinjaGenerator.cxx
  422. cmLocalNinjaGenerator.h
  423. cmNinjaTargetGenerator.cxx
  424. cmNinjaTargetGenerator.h
  425. cmNinjaNormalTargetGenerator.cxx
  426. cmNinjaNormalTargetGenerator.h
  427. cmNinjaUtilityTargetGenerator.cxx
  428. cmNinjaUtilityTargetGenerator.h
  429. )
  430. if(WIN32 AND NOT CYGWIN AND NOT BORLAND)
  431. set_source_files_properties(cmcldeps.cxx PROPERTIES COMPILE_DEFINITIONS _WIN32_WINNT=0x0501)
  432. add_executable(cmcldeps cmcldeps.cxx)
  433. target_link_libraries(cmcldeps CMakeLib)
  434. install(TARGETS cmcldeps DESTINATION bin)
  435. endif()
  436. # create a library used by the command line and the GUI
  437. add_library(CMakeLib ${SRCS})
  438. target_link_libraries(CMakeLib cmsys
  439. ${CMAKE_EXPAT_LIBRARIES} ${CMAKE_ZLIB_LIBRARIES}
  440. ${CMAKE_TAR_LIBRARIES} ${CMAKE_COMPRESS_LIBRARIES}
  441. ${CMAKE_CURL_LIBRARIES} )
  442. # On Apple we need CoreFoundation
  443. if(APPLE)
  444. target_link_libraries(CMakeLib "-framework CoreFoundation")
  445. endif()
  446. # On some platforms we need the rpcrt4 library for the VS 7 generators.
  447. if(CMAKE_BUILD_ON_VISUAL_STUDIO OR MINGW)
  448. target_link_libraries(CMakeLib rpcrt4)
  449. endif()
  450. #
  451. # CTestLib
  452. #
  453. include_directories(
  454. "${CMake_SOURCE_DIR}/Source/CTest"
  455. ${CMAKE_XMLRPC_INCLUDES}
  456. ${CMAKE_CURL_INCLUDES}
  457. )
  458. #
  459. # Sources for CTestLib
  460. #
  461. set(CTEST_SRCS cmCTest.cxx
  462. CTest/cmProcess.cxx
  463. CTest/cmCTestBatchTestHandler.cxx
  464. CTest/cmCTestBuildAndTestHandler.cxx
  465. CTest/cmCTestBuildCommand.cxx
  466. CTest/cmCTestBuildHandler.cxx
  467. CTest/cmCTestConfigureCommand.cxx
  468. CTest/cmCTestConfigureHandler.cxx
  469. CTest/cmCTestCoverageCommand.cxx
  470. CTest/cmCTestCoverageHandler.cxx
  471. CTest/cmParseMumpsCoverage.cxx
  472. CTest/cmParseCacheCoverage.cxx
  473. CTest/cmParseGTMCoverage.cxx
  474. CTest/cmParsePHPCoverage.cxx
  475. CTest/cmParsePythonCoverage.cxx
  476. CTest/cmCTestEmptyBinaryDirectoryCommand.cxx
  477. CTest/cmCTestGenericHandler.cxx
  478. CTest/cmCTestHandlerCommand.cxx
  479. CTest/cmCTestLaunch.cxx
  480. CTest/cmCTestMemCheckCommand.cxx
  481. CTest/cmCTestMemCheckHandler.cxx
  482. CTest/cmCTestMultiProcessHandler.cxx
  483. CTest/cmCTestReadCustomFilesCommand.cxx
  484. CTest/cmCTestRunScriptCommand.cxx
  485. CTest/cmCTestRunTest.cxx
  486. CTest/cmCTestScriptHandler.cxx
  487. CTest/cmCTestSleepCommand.cxx
  488. CTest/cmCTestStartCommand.cxx
  489. CTest/cmCTestSubmitCommand.cxx
  490. CTest/cmCTestSubmitHandler.cxx
  491. CTest/cmCTestTestCommand.cxx
  492. CTest/cmCTestTestHandler.cxx
  493. CTest/cmCTestUpdateCommand.cxx
  494. CTest/cmCTestUpdateHandler.cxx
  495. CTest/cmCTestUploadCommand.cxx
  496. CTest/cmCTestUploadHandler.cxx
  497. CTest/cmCTestVC.cxx
  498. CTest/cmCTestVC.h
  499. CTest/cmCTestGlobalVC.cxx
  500. CTest/cmCTestGlobalVC.h
  501. CTest/cmCTestCVS.cxx
  502. CTest/cmCTestCVS.h
  503. CTest/cmCTestSVN.cxx
  504. CTest/cmCTestSVN.h
  505. CTest/cmCTestBZR.cxx
  506. CTest/cmCTestBZR.h
  507. CTest/cmCTestGIT.cxx
  508. CTest/cmCTestGIT.h
  509. CTest/cmCTestHG.cxx
  510. CTest/cmCTestHG.h
  511. CTest/cmCTestP4.cxx
  512. CTest/cmCTestP4.h
  513. )
  514. # Build CTestLib
  515. add_library(CTestLib ${CTEST_SRCS})
  516. target_link_libraries(CTestLib CMakeLib ${CMAKE_CURL_LIBRARIES} ${CMAKE_XMLRPC_LIBRARIES})
  517. #
  518. # Sources for CPack
  519. #
  520. set(CPACK_SRCS
  521. CPack/cmCPackArchiveGenerator.cxx
  522. CPack/cmCPackComponentGroup.cxx
  523. CPack/cmCPackGeneratorFactory.cxx
  524. CPack/cmCPackGenerator.cxx
  525. CPack/cmCPackLog.cxx
  526. CPack/cmCPackNSISGenerator.cxx
  527. CPack/cmCPackSTGZGenerator.cxx
  528. CPack/cmCPackTGZGenerator.cxx
  529. CPack/cmCPackTarBZip2Generator.cxx
  530. CPack/cmCPackTarCompressGenerator.cxx
  531. CPack/cmCPackZIPGenerator.cxx
  532. )
  533. if(CYGWIN)
  534. set(CPACK_SRCS ${CPACK_SRCS}
  535. CPack/cmCPackCygwinBinaryGenerator.cxx
  536. CPack/cmCPackCygwinSourceGenerator.cxx
  537. )
  538. endif()
  539. if(UNIX)
  540. set(CPACK_SRCS ${CPACK_SRCS}
  541. CPack/cmCPackDebGenerator.cxx
  542. CPack/cmCPackRPMGenerator.cxx
  543. )
  544. endif()
  545. if(WIN32)
  546. set(CPACK_SRCS ${CPACK_SRCS}
  547. CPack/WiX/cmCPackWIXGenerator.cxx
  548. CPack/WiX/cmWIXSourceWriter.cxx
  549. CPack/WiX/cmWIXDirectoriesSourceWriter.cxx
  550. CPack/WiX/cmWIXFeaturesSourceWriter.cxx
  551. CPack/WiX/cmWIXFilesSourceWriter.cxx
  552. CPack/WiX/cmWIXRichTextFormatWriter.cxx
  553. CPack/WiX/cmWIXPatch.cxx
  554. CPack/WiX/cmWIXPatchParser.cxx
  555. )
  556. endif()
  557. if(APPLE)
  558. set(CPACK_SRCS ${CPACK_SRCS}
  559. CPack/cmCPackBundleGenerator.cxx
  560. CPack/cmCPackDragNDropGenerator.cxx
  561. CPack/cmCPackOSXX11Generator.cxx
  562. CPack/cmCPackPackageMakerGenerator.cxx
  563. )
  564. endif()
  565. # Build CPackLib
  566. add_library(CPackLib ${CPACK_SRCS})
  567. target_link_libraries(CPackLib CMakeLib)
  568. if(APPLE)
  569. add_executable(cmakexbuild cmakexbuild.cxx)
  570. target_link_libraries(cmakexbuild CMakeLib)
  571. add_executable(OSXScriptLauncher
  572. CPack/OSXScriptLauncher.cxx)
  573. target_link_libraries(OSXScriptLauncher cmsys)
  574. target_link_libraries(OSXScriptLauncher "-framework CoreFoundation")
  575. endif()
  576. # Build CMake executable
  577. add_executable(cmake cmakemain.cxx cmcmd.cxx cmcmd.h)
  578. target_link_libraries(cmake CMakeLib)
  579. # Build CTest executable
  580. add_executable(ctest ctest.cxx)
  581. target_link_libraries(ctest CTestLib)
  582. # Build CPack executable
  583. add_executable(cpack CPack/cpack.cxx)
  584. target_link_libraries(cpack CPackLib)
  585. # Curses GUI
  586. if(BUILD_CursesDialog)
  587. include(${CMake_SOURCE_DIR}/Source/CursesDialog/CMakeLists.txt)
  588. endif()
  589. # Qt GUI
  590. option(BUILD_QtDialog "Build Qt dialog for CMake" FALSE)
  591. if(BUILD_QtDialog)
  592. add_subdirectory(QtDialog)
  593. endif()
  594. include (${CMake_BINARY_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
  595. include (${CMake_SOURCE_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
  596. install(TARGETS cmake ctest cpack DESTINATION bin)
  597. if(APPLE)
  598. install(TARGETS cmakexbuild DESTINATION bin)
  599. endif()
  600. install(FILES cmCPluginAPI.h DESTINATION ${CMAKE_DATA_DIR}/include)