CMakeLists.txt 16 KB

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