CMakeLists.txt 18 KB

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