CMakeLists.txt 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236
  1. # Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. # file Copyright.txt or https://cmake.org/licensing for details.
  3. # To ensure maximum portability across various compilers and platforms
  4. # deactivate any compiler extensions. Skip this for QNX, where additional
  5. # work is needed to build without compiler extensions.
  6. if (NOT CMAKE_SYSTEM_NAME STREQUAL "QNX")
  7. set(CMAKE_C_EXTENSIONS FALSE)
  8. set(CMAKE_CXX_EXTENSIONS FALSE)
  9. endif()
  10. include(CheckIncludeFile)
  11. # Check if we can build support for ELF parsing.
  12. if(WIN32)
  13. set(HAVE_ELF_H 0)
  14. elseif(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. if(NOT CMake_DEFAULT_RECURSION_LIMIT)
  40. if(DEFINED ENV{DASHBOARD_TEST_FROM_CTEST})
  41. set(CMake_DEFAULT_RECURSION_LIMIT 100)
  42. elseif(MINGW)
  43. set(CMake_DEFAULT_RECURSION_LIMIT 400)
  44. elseif(WIN32 AND CMAKE_C_COMPILER_ID STREQUAL "IntelLLVM")
  45. set(CMake_DEFAULT_RECURSION_LIMIT 600)
  46. else()
  47. set(CMake_DEFAULT_RECURSION_LIMIT 1000)
  48. endif()
  49. endif()
  50. if(APPLE)
  51. set(CMAKE_USE_MACH_PARSER 1)
  52. endif()
  53. set(EXECUTABLE_OUTPUT_PATH ${CMake_BIN_DIR})
  54. if(WIN32)
  55. # ensure Unicode friendly APIs are used on Windows
  56. add_definitions(-DUNICODE -D_UNICODE)
  57. # minimize windows.h content
  58. add_definitions(-DWIN32_LEAN_AND_MEAN)
  59. endif()
  60. # configure the .dox.in file
  61. if(CMake_BUILD_DEVELOPER_REFERENCE)
  62. configure_file(
  63. "${CMake_SOURCE_DIR}/Source/dir.dox.in"
  64. "${CMake_BINARY_DIR}/Source/dir.dox"
  65. @ONLY
  66. )
  67. endif()
  68. # configure the .h file
  69. configure_file(
  70. "${CMake_SOURCE_DIR}/Source/cmConfigure.cmake.h.in"
  71. "${CMake_BINARY_DIR}/Source/cmConfigure.h"
  72. )
  73. configure_file(
  74. "${CMake_SOURCE_DIR}/Source/cmVersionConfig.h.in"
  75. "${CMake_BINARY_DIR}/Source/cmVersionConfig.h"
  76. )
  77. configure_file(
  78. "${CMake_SOURCE_DIR}/Source/CPack/cmCPackConfigure.h.in"
  79. "${CMake_BINARY_DIR}/Source/CPack/cmCPackConfigure.h"
  80. )
  81. # Tell CMake executable in the build tree where to find the source tree.
  82. configure_file(
  83. "${CMake_SOURCE_DIR}/Source/CMakeSourceDir.txt.in"
  84. "${CMake_BINARY_DIR}/CMakeFiles/CMakeSourceDir.txt" @ONLY
  85. )
  86. # add the include path to find the .h
  87. include_directories(
  88. "${CMake_BINARY_DIR}/Source"
  89. "${CMake_SOURCE_DIR}/Source"
  90. "${CMake_SOURCE_DIR}/Source/LexerParser"
  91. ${CMAKE_ZLIB_INCLUDES}
  92. ${CMAKE_EXPAT_INCLUDES}
  93. ${CMAKE_TAR_INCLUDES}
  94. ${CMake_HAIKU_INCLUDE_DIRS}
  95. )
  96. # Check if we can build the ELF parser.
  97. if(CMAKE_USE_ELF_PARSER)
  98. set(ELF_SRCS cmELF.h cmELF.cxx)
  99. endif()
  100. # Check if we can build the Mach-O parser.
  101. if(CMAKE_USE_MACH_PARSER)
  102. set(MACH_SRCS cmMachO.h cmMachO.cxx)
  103. endif()
  104. #
  105. # Sources for CMakeLib
  106. #
  107. set(SRCS
  108. # Lexers/Parsers
  109. LexerParser/cmCommandArgumentLexer.cxx
  110. LexerParser/cmCommandArgumentLexer.h
  111. LexerParser/cmCommandArgumentLexer.in.l
  112. LexerParser/cmCommandArgumentParser.cxx
  113. LexerParser/cmCommandArgumentParserTokens.h
  114. LexerParser/cmCommandArgumentParser.y
  115. LexerParser/cmDependsJavaLexer.cxx
  116. LexerParser/cmDependsJavaLexer.h
  117. LexerParser/cmDependsJavaLexer.in.l
  118. LexerParser/cmDependsJavaParser.cxx
  119. LexerParser/cmDependsJavaParserTokens.h
  120. LexerParser/cmDependsJavaParser.y
  121. LexerParser/cmExprLexer.cxx
  122. LexerParser/cmExprLexer.h
  123. LexerParser/cmExprLexer.in.l
  124. LexerParser/cmExprParser.cxx
  125. LexerParser/cmExprParserTokens.h
  126. LexerParser/cmExprParser.y
  127. LexerParser/cmFortranLexer.cxx
  128. LexerParser/cmFortranLexer.h
  129. LexerParser/cmFortranLexer.in.l
  130. LexerParser/cmFortranParser.cxx
  131. LexerParser/cmFortranParserTokens.h
  132. LexerParser/cmFortranParser.y
  133. LexerParser/cmGccDepfileLexer.cxx
  134. LexerParser/cmGccDepfileLexer.h
  135. LexerParser/cmGccDepfileLexer.in.l
  136. LexerParser/cmListFileLexer.c
  137. LexerParser/cmListFileLexer.in.l
  138. cmAffinity.cxx
  139. cmAffinity.h
  140. cmAlgorithms.h
  141. cmArchiveWrite.cxx
  142. cmArgumentParser.cxx
  143. cmArgumentParser.h
  144. cmBase32.cxx
  145. cmBinUtilsLinker.cxx
  146. cmBinUtilsLinker.h
  147. cmBinUtilsLinuxELFGetRuntimeDependenciesTool.cxx
  148. cmBinUtilsLinuxELFGetRuntimeDependenciesTool.h
  149. cmBinUtilsLinuxELFLinker.cxx
  150. cmBinUtilsLinuxELFLinker.h
  151. cmBinUtilsLinuxELFObjdumpGetRuntimeDependenciesTool.cxx
  152. cmBinUtilsLinuxELFObjdumpGetRuntimeDependenciesTool.h
  153. cmBinUtilsMacOSMachOGetRuntimeDependenciesTool.cxx
  154. cmBinUtilsMacOSMachOGetRuntimeDependenciesTool.h
  155. cmBinUtilsMacOSMachOLinker.cxx
  156. cmBinUtilsMacOSMachOLinker.h
  157. cmBinUtilsMacOSMachOOToolGetRuntimeDependenciesTool.cxx
  158. cmBinUtilsMacOSMachOOToolGetRuntimeDependenciesTool.h
  159. cmBinUtilsWindowsPEDumpbinGetRuntimeDependenciesTool.cxx
  160. cmBinUtilsWindowsPEDumpbinGetRuntimeDependenciesTool.h
  161. cmBinUtilsWindowsPEGetRuntimeDependenciesTool.cxx
  162. cmBinUtilsWindowsPEGetRuntimeDependenciesTool.h
  163. cmBinUtilsWindowsPELinker.cxx
  164. cmBinUtilsWindowsPELinker.h
  165. cmBinUtilsWindowsPEObjdumpGetRuntimeDependenciesTool.cxx
  166. cmBinUtilsWindowsPEObjdumpGetRuntimeDependenciesTool.h
  167. cmCacheManager.cxx
  168. cmCacheManager.h
  169. cmCLocaleEnvironmentScope.h
  170. cmCLocaleEnvironmentScope.cxx
  171. cmCMakePath.h
  172. cmCMakePath.cxx
  173. cmCMakePresetsFile.cxx
  174. cmCMakePresetsFile.h
  175. cmCommandArgumentParserHelper.cxx
  176. cmCommonTargetGenerator.cxx
  177. cmCommonTargetGenerator.h
  178. cmComputeComponentGraph.cxx
  179. cmComputeComponentGraph.h
  180. cmComputeLinkDepends.cxx
  181. cmComputeLinkDepends.h
  182. cmComputeLinkInformation.cxx
  183. cmComputeLinkInformation.h
  184. cmComputeTargetDepends.h
  185. cmComputeTargetDepends.cxx
  186. cmConsoleBuf.h
  187. cmConsoleBuf.cxx
  188. cmCPackPropertiesGenerator.h
  189. cmCPackPropertiesGenerator.cxx
  190. cmCryptoHash.cxx
  191. cmCryptoHash.h
  192. cmCurl.cxx
  193. cmCurl.h
  194. cmCustomCommand.cxx
  195. cmCustomCommand.h
  196. cmCustomCommandGenerator.cxx
  197. cmCustomCommandGenerator.h
  198. cmCustomCommandLines.cxx
  199. cmCustomCommandLines.h
  200. cmCustomCommandTypes.h
  201. cmDefinitions.cxx
  202. cmDefinitions.h
  203. cmDepends.cxx
  204. cmDepends.h
  205. cmDependsC.cxx
  206. cmDependsC.h
  207. cmDependsFortran.cxx
  208. cmDependsFortran.h
  209. cmDependsJava.cxx
  210. cmDependsJava.h
  211. cmDependsJavaParserHelper.cxx
  212. cmDependsJavaParserHelper.h
  213. cmDependsCompiler.cxx
  214. cmDependsCompiler.h
  215. cmDocumentation.cxx
  216. cmDocumentationFormatter.cxx
  217. cmDocumentationSection.cxx
  218. cmDynamicLoader.cxx
  219. cmDynamicLoader.h
  220. ${ELF_SRCS}
  221. cmExprParserHelper.cxx
  222. cmExportBuildAndroidMKGenerator.h
  223. cmExportBuildAndroidMKGenerator.cxx
  224. cmExportBuildFileGenerator.h
  225. cmExportBuildFileGenerator.cxx
  226. cmExportFileGenerator.h
  227. cmExportFileGenerator.cxx
  228. cmExportInstallAndroidMKGenerator.h
  229. cmExportInstallAndroidMKGenerator.cxx
  230. cmExportInstallFileGenerator.h
  231. cmExportInstallFileGenerator.cxx
  232. cmExportTryCompileFileGenerator.h
  233. cmExportTryCompileFileGenerator.cxx
  234. cmExportSet.h
  235. cmExportSet.cxx
  236. cmExternalMakefileProjectGenerator.cxx
  237. cmExternalMakefileProjectGenerator.h
  238. cmExtraCodeBlocksGenerator.cxx
  239. cmExtraCodeBlocksGenerator.h
  240. cmExtraCodeLiteGenerator.cxx
  241. cmExtraCodeLiteGenerator.h
  242. cmExtraEclipseCDT4Generator.cxx
  243. cmExtraEclipseCDT4Generator.h
  244. cmExtraKateGenerator.cxx
  245. cmExtraKateGenerator.h
  246. cmExtraSublimeTextGenerator.cxx
  247. cmExtraSublimeTextGenerator.h
  248. cmFileAPI.cxx
  249. cmFileAPI.h
  250. cmFileAPICache.cxx
  251. cmFileAPICache.h
  252. cmFileAPICodemodel.cxx
  253. cmFileAPICodemodel.h
  254. cmFileAPICMakeFiles.cxx
  255. cmFileAPICMakeFiles.h
  256. cmFileAPIToolchains.cxx
  257. cmFileAPIToolchains.h
  258. cmFileCopier.cxx
  259. cmFileCopier.h
  260. cmFileInstaller.cxx
  261. cmFileInstaller.h
  262. cmFileLock.cxx
  263. cmFileLock.h
  264. cmFileLockPool.cxx
  265. cmFileLockPool.h
  266. cmFileLockResult.cxx
  267. cmFileLockResult.h
  268. cmFilePathChecksum.cxx
  269. cmFilePathChecksum.h
  270. cmFileTime.cxx
  271. cmFileTime.h
  272. cmFileTimeCache.cxx
  273. cmFileTimeCache.h
  274. cmFileTimes.cxx
  275. cmFileTimes.h
  276. cmFortranParserImpl.cxx
  277. cmFSPermissions.cxx
  278. cmFSPermissions.h
  279. cmGccDepfileLexerHelper.cxx
  280. cmGccDepfileLexerHelper.h
  281. cmGccDepfileReader.cxx
  282. cmGccDepfileReader.h
  283. cmGeneratedFileStream.cxx
  284. cmGeneratorExpressionContext.cxx
  285. cmGeneratorExpressionContext.h
  286. cmGeneratorExpressionDAGChecker.cxx
  287. cmGeneratorExpressionDAGChecker.h
  288. cmGeneratorExpressionEvaluationFile.cxx
  289. cmGeneratorExpressionEvaluationFile.h
  290. cmGeneratorExpressionEvaluator.cxx
  291. cmGeneratorExpressionEvaluator.h
  292. cmGeneratorExpressionLexer.cxx
  293. cmGeneratorExpressionLexer.h
  294. cmGeneratorExpressionNode.cxx
  295. cmGeneratorExpressionNode.h
  296. cmGeneratorExpressionParser.cxx
  297. cmGeneratorExpressionParser.h
  298. cmGeneratorExpression.cxx
  299. cmGeneratorExpression.h
  300. cmGeneratorTarget.cxx
  301. cmGeneratorTarget.h
  302. cmLinkItemGraphVisitor.cxx
  303. cmLinkItemGraphVisitor.h
  304. cmGetPipes.cxx
  305. cmGetPipes.h
  306. cmGlobalCommonGenerator.cxx
  307. cmGlobalCommonGenerator.h
  308. cmGlobalGenerator.cxx
  309. cmGlobalGenerator.h
  310. cmGlobalGeneratorFactory.h
  311. cmGlobalUnixMakefileGenerator3.cxx
  312. cmGlobalUnixMakefileGenerator3.h
  313. cmGlobVerificationManager.cxx
  314. cmGlobVerificationManager.h
  315. cmGraphAdjacencyList.h
  316. cmGraphVizWriter.cxx
  317. cmGraphVizWriter.h
  318. cmInstallGenerator.h
  319. cmInstallGenerator.cxx
  320. cmInstallExportGenerator.cxx
  321. cmInstalledFile.h
  322. cmInstalledFile.cxx
  323. cmInstallFilesGenerator.h
  324. cmInstallFilesGenerator.cxx
  325. cmInstallScriptGenerator.h
  326. cmInstallScriptGenerator.cxx
  327. cmInstallSubdirectoryGenerator.h
  328. cmInstallSubdirectoryGenerator.cxx
  329. cmInstallTargetGenerator.h
  330. cmInstallTargetGenerator.cxx
  331. cmInstallDirectoryGenerator.h
  332. cmInstallDirectoryGenerator.cxx
  333. cmJSONHelpers.h
  334. cmLDConfigLDConfigTool.cxx
  335. cmLDConfigLDConfigTool.h
  336. cmLDConfigTool.cxx
  337. cmLDConfigTool.h
  338. cmLinkedTree.h
  339. cmLinkItem.cxx
  340. cmLinkItem.h
  341. cmLinkLineComputer.cxx
  342. cmLinkLineComputer.h
  343. cmLinkLineDeviceComputer.cxx
  344. cmLinkLineDeviceComputer.h
  345. cmListFileCache.cxx
  346. cmListFileCache.h
  347. cmLocalCommonGenerator.cxx
  348. cmLocalCommonGenerator.h
  349. cmLocalGenerator.cxx
  350. cmLocalGenerator.h
  351. cmRulePlaceholderExpander.cxx
  352. cmRulePlaceholderExpander.h
  353. cmLocalUnixMakefileGenerator3.cxx
  354. cmLocale.h
  355. ${MACH_SRCS}
  356. cmMakefile.cxx
  357. cmMakefile.h
  358. cmMakefileTargetGenerator.cxx
  359. cmMakefileExecutableTargetGenerator.cxx
  360. cmMakefileLibraryTargetGenerator.cxx
  361. cmMakefileProfilingData.cxx
  362. cmMakefileUtilityTargetGenerator.cxx
  363. cmMessageType.h
  364. cmMessenger.cxx
  365. cmMessenger.h
  366. cmMSVC60LinkLineComputer.cxx
  367. cmMSVC60LinkLineComputer.h
  368. cmOSXBundleGenerator.cxx
  369. cmOSXBundleGenerator.h
  370. cmOutputConverter.cxx
  371. cmOutputConverter.h
  372. cmNewLineStyle.h
  373. cmNewLineStyle.cxx
  374. cmOrderDirectories.cxx
  375. cmOrderDirectories.h
  376. cmPolicies.h
  377. cmPolicies.cxx
  378. cmProcessOutput.cxx
  379. cmProcessOutput.h
  380. cmProcessTools.cxx
  381. cmProcessTools.h
  382. cmProperty.h
  383. cmPropertyDefinition.cxx
  384. cmPropertyDefinition.h
  385. cmPropertyMap.cxx
  386. cmPropertyMap.h
  387. cmQtAutoGen.cxx
  388. cmQtAutoGen.h
  389. cmQtAutoGenerator.cxx
  390. cmQtAutoGenerator.h
  391. cmQtAutoGenGlobalInitializer.cxx
  392. cmQtAutoGenGlobalInitializer.h
  393. cmQtAutoGenInitializer.cxx
  394. cmQtAutoGenInitializer.h
  395. cmQtAutoMocUic.cxx
  396. cmQtAutoMocUic.h
  397. cmQtAutoRcc.cxx
  398. cmQtAutoRcc.h
  399. cmRST.cxx
  400. cmRST.h
  401. cmRuntimeDependencyArchive.cxx
  402. cmRuntimeDependencyArchive.h
  403. cmScriptGenerator.h
  404. cmScriptGenerator.cxx
  405. cmSourceFile.cxx
  406. cmSourceFile.h
  407. cmSourceFileLocation.cxx
  408. cmSourceFileLocation.h
  409. cmSourceFileLocationKind.h
  410. cmSourceGroup.cxx
  411. cmSourceGroup.h
  412. cmStandardLevelResolver.cxx
  413. cmStandardLevelResolver.h
  414. cmState.cxx
  415. cmState.h
  416. cmStateDirectory.cxx
  417. cmStateDirectory.h
  418. cmStateSnapshot.cxx
  419. cmStateSnapshot.h
  420. cmStateTypes.h
  421. cmStringAlgorithms.cxx
  422. cmStringAlgorithms.h
  423. cmSystemTools.cxx
  424. cmSystemTools.h
  425. cmTarget.cxx
  426. cmTarget.h
  427. cmTargetPropertyComputer.cxx
  428. cmTargetPropertyComputer.h
  429. cmTargetExport.h
  430. cmTest.cxx
  431. cmTest.h
  432. cmTestGenerator.cxx
  433. cmTestGenerator.h
  434. cmTransformDepfile.cxx
  435. cmTransformDepfile.h
  436. cmUuid.cxx
  437. cmUVHandlePtr.cxx
  438. cmUVHandlePtr.h
  439. cmUVProcessChain.cxx
  440. cmUVProcessChain.h
  441. cmUVStreambuf.h
  442. cmUVSignalHackRAII.h
  443. cmVariableWatch.cxx
  444. cmVariableWatch.h
  445. cmVersion.cxx
  446. cmVersion.h
  447. cmWorkerPool.cxx
  448. cmWorkerPool.h
  449. cmWorkingDirectory.cxx
  450. cmWorkingDirectory.h
  451. cmXMLParser.cxx
  452. cmXMLParser.h
  453. cmXMLSafe.cxx
  454. cmXMLSafe.h
  455. cmXMLWriter.cxx
  456. cmXMLWriter.h
  457. cmake.cxx
  458. cmake.h
  459. cmCommand.cxx
  460. cmCommand.h
  461. cmCommands.cxx
  462. cmCommands.h
  463. cmAddCompileDefinitionsCommand.cxx
  464. cmAddCompileDefinitionsCommand.h
  465. cmAddCompileOptionsCommand.cxx
  466. cmAddCompileOptionsCommand.h
  467. cmAddLinkOptionsCommand.cxx
  468. cmAddLinkOptionsCommand.h
  469. cmAddCustomCommandCommand.cxx
  470. cmAddCustomCommandCommand.h
  471. cmAddCustomTargetCommand.cxx
  472. cmAddCustomTargetCommand.h
  473. cmAddDefinitionsCommand.cxx
  474. cmAddDefinitionsCommand.h
  475. cmAddDependenciesCommand.cxx
  476. cmAddDependenciesCommand.h
  477. cmAddExecutableCommand.cxx
  478. cmAddExecutableCommand.h
  479. cmAddLibraryCommand.cxx
  480. cmAddLibraryCommand.h
  481. cmAddSubDirectoryCommand.cxx
  482. cmAddSubDirectoryCommand.h
  483. cmAddTestCommand.cxx
  484. cmAddTestCommand.h
  485. cmAuxSourceDirectoryCommand.cxx
  486. cmAuxSourceDirectoryCommand.h
  487. cmBreakCommand.cxx
  488. cmBreakCommand.h
  489. cmBuildCommand.cxx
  490. cmBuildCommand.h
  491. cmBuildNameCommand.cxx
  492. cmBuildNameCommand.h
  493. cmCMakeHostSystemInformationCommand.cxx
  494. cmCMakeHostSystemInformationCommand.h
  495. cmCMakeLanguageCommand.cxx
  496. cmCMakeLanguageCommand.h
  497. cmCMakeMinimumRequired.cxx
  498. cmCMakeMinimumRequired.h
  499. cmCMakePathCommand.h
  500. cmCMakePathCommand.cxx
  501. cmCMakePolicyCommand.cxx
  502. cmCMakePolicyCommand.h
  503. cmConditionEvaluator.cxx
  504. cmConditionEvaluator.h
  505. cmConfigureFileCommand.cxx
  506. cmConfigureFileCommand.h
  507. cmContinueCommand.cxx
  508. cmContinueCommand.h
  509. cmCoreTryCompile.cxx
  510. cmCoreTryCompile.h
  511. cmCreateTestSourceList.cxx
  512. cmCreateTestSourceList.h
  513. cmDefinePropertyCommand.cxx
  514. cmDefinePropertyCommand.h
  515. cmEnableLanguageCommand.cxx
  516. cmEnableLanguageCommand.h
  517. cmEnableTestingCommand.cxx
  518. cmEnableTestingCommand.h
  519. cmExecProgramCommand.cxx
  520. cmExecProgramCommand.h
  521. cmExecuteProcessCommand.cxx
  522. cmExecuteProcessCommand.h
  523. cmExpandedCommandArgument.cxx
  524. cmExpandedCommandArgument.h
  525. cmExportCommand.cxx
  526. cmExportCommand.h
  527. cmExportLibraryDependenciesCommand.cxx
  528. cmExportLibraryDependenciesCommand.h
  529. cmFLTKWrapUICommand.cxx
  530. cmFLTKWrapUICommand.h
  531. cmFileCommand.cxx
  532. cmFileCommand.h
  533. cmFindBase.cxx
  534. cmFindBase.h
  535. cmFindCommon.cxx
  536. cmFindCommon.h
  537. cmFindFileCommand.cxx
  538. cmFindFileCommand.h
  539. cmFindLibraryCommand.cxx
  540. cmFindLibraryCommand.h
  541. cmFindPackageCommand.cxx
  542. cmFindPackageCommand.h
  543. cmFindPathCommand.cxx
  544. cmFindPathCommand.h
  545. cmFindProgramCommand.cxx
  546. cmFindProgramCommand.h
  547. cmForEachCommand.cxx
  548. cmForEachCommand.h
  549. cmFunctionBlocker.cxx
  550. cmFunctionBlocker.h
  551. cmFunctionCommand.cxx
  552. cmFunctionCommand.h
  553. cmGetCMakePropertyCommand.cxx
  554. cmGetCMakePropertyCommand.h
  555. cmGetDirectoryPropertyCommand.cxx
  556. cmGetDirectoryPropertyCommand.h
  557. cmGetFilenameComponentCommand.cxx
  558. cmGetFilenameComponentCommand.h
  559. cmGetPropertyCommand.cxx
  560. cmGetPropertyCommand.h
  561. cmGetSourceFilePropertyCommand.cxx
  562. cmGetSourceFilePropertyCommand.h
  563. cmGetTargetPropertyCommand.cxx
  564. cmGetTargetPropertyCommand.h
  565. cmGetTestPropertyCommand.cxx
  566. cmGetTestPropertyCommand.h
  567. cmHexFileConverter.cxx
  568. cmHexFileConverter.h
  569. cmIfCommand.cxx
  570. cmIfCommand.h
  571. cmIncludeCommand.cxx
  572. cmIncludeCommand.h
  573. cmIncludeDirectoryCommand.cxx
  574. cmIncludeDirectoryCommand.h
  575. cmIncludeExternalMSProjectCommand.cxx
  576. cmIncludeExternalMSProjectCommand.h
  577. cmIncludeGuardCommand.cxx
  578. cmIncludeGuardCommand.h
  579. cmIncludeRegularExpressionCommand.cxx
  580. cmIncludeRegularExpressionCommand.h
  581. cmInstallCommand.cxx
  582. cmInstallCommand.h
  583. cmInstallCommandArguments.cxx
  584. cmInstallCommandArguments.h
  585. cmInstallFilesCommand.cxx
  586. cmInstallFilesCommand.h
  587. cmInstallProgramsCommand.cxx
  588. cmInstallProgramsCommand.h
  589. cmInstallTargetsCommand.cxx
  590. cmInstallTargetsCommand.h
  591. cmLinkDirectoriesCommand.cxx
  592. cmLinkDirectoriesCommand.h
  593. cmLinkLibrariesCommand.cxx
  594. cmLinkLibrariesCommand.h
  595. cmListCommand.cxx
  596. cmListCommand.h
  597. cmLoadCacheCommand.cxx
  598. cmLoadCacheCommand.h
  599. cmLoadCommandCommand.cxx
  600. cmLoadCommandCommand.h
  601. cmMacroCommand.cxx
  602. cmMacroCommand.h
  603. cmMakeDirectoryCommand.cxx
  604. cmMakeDirectoryCommand.h
  605. cmMarkAsAdvancedCommand.cxx
  606. cmMarkAsAdvancedCommand.h
  607. cmMathCommand.cxx
  608. cmMathCommand.h
  609. cmMessageCommand.cxx
  610. cmMessageCommand.h
  611. cmOptionCommand.cxx
  612. cmOptionCommand.h
  613. cmOutputRequiredFilesCommand.cxx
  614. cmOutputRequiredFilesCommand.h
  615. cmParseArgumentsCommand.cxx
  616. cmParseArgumentsCommand.h
  617. cmPathLabel.cxx
  618. cmPathLabel.h
  619. cmProjectCommand.cxx
  620. cmProjectCommand.h
  621. cmQTWrapCPPCommand.cxx
  622. cmQTWrapCPPCommand.h
  623. cmQTWrapUICommand.cxx
  624. cmQTWrapUICommand.h
  625. cmRemoveCommand.cxx
  626. cmRemoveCommand.h
  627. cmRemoveDefinitionsCommand.cxx
  628. cmRemoveDefinitionsCommand.h
  629. cmReturnCommand.cxx
  630. cmReturnCommand.h
  631. cmSearchPath.cxx
  632. cmSearchPath.h
  633. cmSeparateArgumentsCommand.cxx
  634. cmSeparateArgumentsCommand.h
  635. cmSetCommand.cxx
  636. cmSetCommand.h
  637. cmSetDirectoryPropertiesCommand.cxx
  638. cmSetDirectoryPropertiesCommand.h
  639. cmSetPropertyCommand.cxx
  640. cmSetPropertyCommand.h
  641. cmSetSourceFilesPropertiesCommand.cxx
  642. cmSetSourceFilesPropertiesCommand.h
  643. cmSetTargetPropertiesCommand.cxx
  644. cmSetTargetPropertiesCommand.h
  645. cmSetTestsPropertiesCommand.cxx
  646. cmSetTestsPropertiesCommand.h
  647. cmSiteNameCommand.cxx
  648. cmSiteNameCommand.h
  649. cmSourceGroupCommand.cxx
  650. cmSourceGroupCommand.h
  651. cmString.cxx
  652. cmString.hxx
  653. cmStringReplaceHelper.cxx
  654. cmStringCommand.cxx
  655. cmStringCommand.h
  656. cmSubcommandTable.cxx
  657. cmSubcommandTable.h
  658. cmSubdirCommand.cxx
  659. cmSubdirCommand.h
  660. cmSubdirDependsCommand.cxx
  661. cmSubdirDependsCommand.h
  662. cmTargetCompileDefinitionsCommand.cxx
  663. cmTargetCompileDefinitionsCommand.h
  664. cmTargetCompileFeaturesCommand.cxx
  665. cmTargetCompileFeaturesCommand.h
  666. cmTargetCompileOptionsCommand.cxx
  667. cmTargetCompileOptionsCommand.h
  668. cmTargetIncludeDirectoriesCommand.cxx
  669. cmTargetIncludeDirectoriesCommand.h
  670. cmTargetLinkOptionsCommand.cxx
  671. cmTargetLinkOptionsCommand.h
  672. cmTargetLinkDirectoriesCommand.cxx
  673. cmTargetLinkDirectoriesCommand.h
  674. cmTargetLinkLibrariesCommand.cxx
  675. cmTargetLinkLibrariesCommand.h
  676. cmTargetPrecompileHeadersCommand.cxx
  677. cmTargetPrecompileHeadersCommand.h
  678. cmTargetPropCommandBase.cxx
  679. cmTargetPropCommandBase.h
  680. cmTargetSourcesCommand.cxx
  681. cmTargetSourcesCommand.h
  682. cmTimestamp.cxx
  683. cmTimestamp.h
  684. cmTryCompileCommand.cxx
  685. cmTryCompileCommand.h
  686. cmTryRunCommand.cxx
  687. cmTryRunCommand.h
  688. cmUnsetCommand.cxx
  689. cmUnsetCommand.h
  690. cmUseMangledMesaCommand.cxx
  691. cmUseMangledMesaCommand.h
  692. cmUtilitySourceCommand.cxx
  693. cmUtilitySourceCommand.h
  694. cmVariableRequiresCommand.cxx
  695. cmVariableRequiresCommand.h
  696. cmVariableWatchCommand.cxx
  697. cmVariableWatchCommand.h
  698. cmWhileCommand.cxx
  699. cmWhileCommand.h
  700. cmWriteFileCommand.cxx
  701. cmWriteFileCommand.h
  702. cm_get_date.h
  703. cm_get_date.c
  704. cm_utf8.h
  705. cm_utf8.c
  706. cm_codecvt.hxx
  707. cm_codecvt.cxx
  708. cmDuration.h
  709. cmDuration.cxx
  710. bindexplib.cxx
  711. )
  712. SET_PROPERTY(SOURCE cmProcessOutput.cxx APPEND PROPERTY COMPILE_DEFINITIONS
  713. KWSYS_ENCODING_DEFAULT_CODEPAGE=${KWSYS_ENCODING_DEFAULT_CODEPAGE})
  714. # Xcode only works on Apple
  715. if(APPLE)
  716. set(SRCS ${SRCS}
  717. cmXCodeObject.cxx
  718. cmXCode21Object.cxx
  719. cmXCodeScheme.cxx
  720. cmGlobalXCodeGenerator.cxx
  721. cmGlobalXCodeGenerator.h
  722. cmLocalXCodeGenerator.cxx
  723. cmLocalXCodeGenerator.h)
  724. endif()
  725. if (WIN32)
  726. set(SRCS ${SRCS}
  727. cmCallVisualStudioMacro.cxx
  728. cmCallVisualStudioMacro.h
  729. )
  730. if(NOT UNIX)
  731. set(SRCS ${SRCS}
  732. cmGlobalBorlandMakefileGenerator.cxx
  733. cmGlobalBorlandMakefileGenerator.h
  734. cmGlobalMSYSMakefileGenerator.cxx
  735. cmGlobalMinGWMakefileGenerator.cxx
  736. cmGlobalNMakeMakefileGenerator.cxx
  737. cmGlobalNMakeMakefileGenerator.h
  738. cmGlobalJOMMakefileGenerator.cxx
  739. cmGlobalJOMMakefileGenerator.h
  740. cmGlobalVisualStudio71Generator.cxx
  741. cmGlobalVisualStudio71Generator.h
  742. cmGlobalVisualStudio7Generator.cxx
  743. cmGlobalVisualStudio7Generator.h
  744. cmGlobalVisualStudio8Generator.cxx
  745. cmGlobalVisualStudio8Generator.h
  746. cmGlobalVisualStudio9Generator.cxx
  747. cmGlobalVisualStudio9Generator.h
  748. cmVisualStudioGeneratorOptions.h
  749. cmVisualStudioGeneratorOptions.cxx
  750. cmVisualStudio10TargetGenerator.h
  751. cmVisualStudio10TargetGenerator.cxx
  752. cmVisualStudio10ToolsetOptions.h
  753. cmVisualStudio10ToolsetOptions.cxx
  754. cmLocalVisualStudio10Generator.cxx
  755. cmLocalVisualStudio10Generator.h
  756. cmGlobalVisualStudio10Generator.h
  757. cmGlobalVisualStudio10Generator.cxx
  758. cmGlobalVisualStudio11Generator.h
  759. cmGlobalVisualStudio11Generator.cxx
  760. cmGlobalVisualStudio12Generator.h
  761. cmGlobalVisualStudio12Generator.cxx
  762. cmGlobalVisualStudio14Generator.h
  763. cmGlobalVisualStudio14Generator.cxx
  764. cmGlobalVisualStudioGenerator.cxx
  765. cmGlobalVisualStudioGenerator.h
  766. cmGlobalVisualStudioVersionedGenerator.h
  767. cmGlobalVisualStudioVersionedGenerator.cxx
  768. cmIDEFlagTable.h
  769. cmIDEOptions.cxx
  770. cmIDEOptions.h
  771. cmLocalVisualStudio7Generator.cxx
  772. cmLocalVisualStudio7Generator.h
  773. cmLocalVisualStudioGenerator.cxx
  774. cmLocalVisualStudioGenerator.h
  775. cmVisualStudioSlnData.h
  776. cmVisualStudioSlnData.cxx
  777. cmVisualStudioSlnParser.h
  778. cmVisualStudioSlnParser.cxx
  779. cmVisualStudioWCEPlatformParser.h
  780. cmVisualStudioWCEPlatformParser.cxx
  781. cmVSSetupHelper.cxx
  782. cmVSSetupHelper.h
  783. )
  784. # Add a manifest file to executables on Windows to allow for
  785. # GetVersion to work properly on Windows 8 and above.
  786. set(MANIFEST_FILE ${CMAKE_CURRENT_SOURCE_DIR}/cmake.version.manifest)
  787. endif()
  788. endif ()
  789. # Watcom support
  790. if(WIN32 OR CMAKE_SYSTEM_NAME STREQUAL "Linux")
  791. set_property(SOURCE cmake.cxx APPEND PROPERTY COMPILE_DEFINITIONS CMAKE_USE_WMAKE)
  792. list(APPEND SRCS
  793. cmGlobalWatcomWMakeGenerator.cxx
  794. cmGlobalWatcomWMakeGenerator.h
  795. )
  796. endif()
  797. # GHS support
  798. # Works only for windows and linux
  799. if(WIN32 OR CMAKE_SYSTEM_NAME STREQUAL "Linux")
  800. set(SRCS ${SRCS}
  801. cmGlobalGhsMultiGenerator.cxx
  802. cmGlobalGhsMultiGenerator.h
  803. cmLocalGhsMultiGenerator.cxx
  804. cmLocalGhsMultiGenerator.h
  805. cmGhsMultiTargetGenerator.cxx
  806. cmGhsMultiTargetGenerator.h
  807. cmGhsMultiGpj.cxx
  808. cmGhsMultiGpj.h
  809. )
  810. endif()
  811. # Ninja support
  812. set(SRCS ${SRCS}
  813. cmScanDepFormat.cxx
  814. cmGlobalNinjaGenerator.cxx
  815. cmGlobalNinjaGenerator.h
  816. cmNinjaTypes.h
  817. cmLocalNinjaGenerator.cxx
  818. cmLocalNinjaGenerator.h
  819. cmNinjaTargetGenerator.cxx
  820. cmNinjaTargetGenerator.h
  821. cmNinjaNormalTargetGenerator.cxx
  822. cmNinjaNormalTargetGenerator.h
  823. cmNinjaUtilityTargetGenerator.cxx
  824. cmNinjaUtilityTargetGenerator.h
  825. cmNinjaLinkLineComputer.cxx
  826. cmNinjaLinkLineComputer.h
  827. cmNinjaLinkLineDeviceComputer.cxx
  828. cmNinjaLinkLineDeviceComputer.h
  829. )
  830. # Temporary variable for tools targets
  831. set(_tools)
  832. if(WIN32 AND NOT CYGWIN)
  833. set_source_files_properties(cmcldeps.cxx PROPERTIES COMPILE_DEFINITIONS _WIN32_WINNT=0x0501)
  834. add_executable(cmcldeps cmcldeps.cxx ${MANIFEST_FILE})
  835. list(APPEND _tools cmcldeps)
  836. target_link_libraries(cmcldeps CMakeLib)
  837. endif()
  838. foreach(v CURL_CA_BUNDLE CURL_CA_PATH)
  839. if(${v})
  840. set_property(SOURCE cmCurl.cxx APPEND PROPERTY COMPILE_DEFINITIONS ${v}="${${v}}")
  841. endif()
  842. endforeach()
  843. foreach(check
  844. STAT_HAS_ST_MTIM
  845. STAT_HAS_ST_MTIMESPEC
  846. )
  847. if(KWSYS_CXX_${check}_COMPILED) # abuse KWSys check cache entry
  848. set(CMake_${check} 1)
  849. else()
  850. set(CMake_${check} 0)
  851. endif()
  852. set_property(SOURCE cmFileTime.cxx APPEND PROPERTY
  853. COMPILE_DEFINITIONS CMake_${check}=${CMake_${check}})
  854. endforeach()
  855. # create a library used by the command line and the GUI
  856. add_library(CMakeLib ${SRCS})
  857. target_link_libraries(CMakeLib cmsys
  858. ${CMAKE_STD_LIBRARY}
  859. ${CMAKE_EXPAT_LIBRARIES} ${CMAKE_ZLIB_LIBRARIES}
  860. ${CMAKE_TAR_LIBRARIES}
  861. ${CMAKE_CURL_LIBRARIES}
  862. ${CMAKE_JSONCPP_LIBRARIES}
  863. ${CMAKE_LIBUV_LIBRARIES}
  864. ${CMAKE_LIBRHASH_LIBRARIES}
  865. ${CMake_KWIML_LIBRARIES}
  866. ${CMAKE_THREAD_LIBS_INIT}
  867. )
  868. if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR MATCHES "sparc")
  869. # the atomic instructions are implemented using libatomic on some platforms,
  870. # so linking to that may be required
  871. check_library_exists(atomic __atomic_fetch_add_4 "" LIBATOMIC_NEEDED)
  872. if(LIBATOMIC_NEEDED)
  873. target_link_libraries(CMakeLib atomic)
  874. endif()
  875. endif()
  876. # On Apple we need CoreFoundation and CoreServices
  877. if(APPLE)
  878. target_link_libraries(CMakeLib "-framework CoreFoundation")
  879. target_link_libraries(CMakeLib "-framework CoreServices")
  880. endif()
  881. if(WIN32 AND NOT UNIX)
  882. # We need the rpcrt4 library on Windows.
  883. # We need the crypt32 library on Windows for crypto/cert APIs.
  884. target_link_libraries(CMakeLib rpcrt4 crypt32)
  885. endif()
  886. target_compile_definitions(CMakeLib PUBLIC ${CLANG_TIDY_DEFINITIONS})
  887. #
  888. # CTestLib
  889. #
  890. include_directories(
  891. "${CMake_SOURCE_DIR}/Source/CTest"
  892. ${CMAKE_CURL_INCLUDES}
  893. )
  894. #
  895. # Sources for CTestLib
  896. #
  897. set(CTEST_SRCS cmCTest.cxx
  898. CTest/cmProcess.cxx
  899. CTest/cmCTestBinPacker.cxx
  900. CTest/cmCTestBuildAndTestHandler.cxx
  901. CTest/cmCTestBuildCommand.cxx
  902. CTest/cmCTestBuildHandler.cxx
  903. CTest/cmCTestConfigureCommand.cxx
  904. CTest/cmCTestConfigureHandler.cxx
  905. CTest/cmCTestCoverageCommand.cxx
  906. CTest/cmCTestCoverageHandler.cxx
  907. CTest/cmCTestCurl.cxx
  908. CTest/cmParseMumpsCoverage.cxx
  909. CTest/cmParseCacheCoverage.cxx
  910. CTest/cmParseGTMCoverage.cxx
  911. CTest/cmParseJacocoCoverage.cxx
  912. CTest/cmParseBlanketJSCoverage.cxx
  913. CTest/cmParsePHPCoverage.cxx
  914. CTest/cmParseCoberturaCoverage.cxx
  915. CTest/cmParseDelphiCoverage.cxx
  916. CTest/cmCTestEmptyBinaryDirectoryCommand.cxx
  917. CTest/cmCTestGenericHandler.cxx
  918. CTest/cmCTestHandlerCommand.cxx
  919. CTest/cmCTestResourceAllocator.cxx
  920. CTest/cmCTestResourceSpec.cxx
  921. CTest/cmCTestLaunch.cxx
  922. CTest/cmCTestLaunchReporter.cxx
  923. CTest/cmCTestMemCheckCommand.cxx
  924. CTest/cmCTestMemCheckHandler.cxx
  925. CTest/cmCTestMultiProcessHandler.cxx
  926. CTest/cmCTestReadCustomFilesCommand.cxx
  927. CTest/cmCTestResourceGroupsLexerHelper.cxx
  928. CTest/cmCTestRunScriptCommand.cxx
  929. CTest/cmCTestRunTest.cxx
  930. CTest/cmCTestScriptHandler.cxx
  931. CTest/cmCTestSleepCommand.cxx
  932. CTest/cmCTestStartCommand.cxx
  933. CTest/cmCTestSubmitCommand.cxx
  934. CTest/cmCTestSubmitHandler.cxx
  935. CTest/cmCTestTestCommand.cxx
  936. CTest/cmCTestTestHandler.cxx
  937. CTest/cmCTestUpdateCommand.cxx
  938. CTest/cmCTestUpdateHandler.cxx
  939. CTest/cmCTestUploadCommand.cxx
  940. CTest/cmCTestUploadHandler.cxx
  941. CTest/cmCTestVC.cxx
  942. CTest/cmCTestVC.h
  943. CTest/cmCTestGlobalVC.cxx
  944. CTest/cmCTestGlobalVC.h
  945. CTest/cmCTestCVS.cxx
  946. CTest/cmCTestCVS.h
  947. CTest/cmCTestSVN.cxx
  948. CTest/cmCTestSVN.h
  949. CTest/cmCTestBZR.cxx
  950. CTest/cmCTestBZR.h
  951. CTest/cmCTestGIT.cxx
  952. CTest/cmCTestGIT.h
  953. CTest/cmCTestHG.cxx
  954. CTest/cmCTestHG.h
  955. CTest/cmCTestP4.cxx
  956. CTest/cmCTestP4.h
  957. LexerParser/cmCTestResourceGroupsLexer.cxx
  958. LexerParser/cmCTestResourceGroupsLexer.h
  959. LexerParser/cmCTestResourceGroupsLexer.in.l
  960. )
  961. # Build CTestLib
  962. add_library(CTestLib ${CTEST_SRCS})
  963. target_link_libraries(CTestLib CMakeLib ${CMAKE_CURL_LIBRARIES})
  964. #
  965. # CPack
  966. #
  967. include_directories(
  968. "${CMake_SOURCE_DIR}/Source/CPack"
  969. )
  970. #
  971. # Sources for CPack
  972. #
  973. set(CPACK_SRCS
  974. CPack/cmCPackArchiveGenerator.cxx
  975. CPack/cmCPackComponentGroup.cxx
  976. CPack/cmCPackDebGenerator.cxx
  977. CPack/cmCPackExternalGenerator.cxx
  978. CPack/cmCPackGeneratorFactory.cxx
  979. CPack/cmCPackGenerator.cxx
  980. CPack/cmCPackLog.cxx
  981. CPack/cmCPackNSISGenerator.cxx
  982. CPack/cmCPackNuGetGenerator.cxx
  983. CPack/cmCPackSTGZGenerator.cxx
  984. )
  985. # CPack IFW generator
  986. set(CPACK_SRCS ${CPACK_SRCS}
  987. CPack/IFW/cmCPackIFWCommon.cxx
  988. CPack/IFW/cmCPackIFWCommon.h
  989. CPack/IFW/cmCPackIFWGenerator.cxx
  990. CPack/IFW/cmCPackIFWGenerator.h
  991. CPack/IFW/cmCPackIFWInstaller.cxx
  992. CPack/IFW/cmCPackIFWInstaller.h
  993. CPack/IFW/cmCPackIFWPackage.cxx
  994. CPack/IFW/cmCPackIFWPackage.h
  995. CPack/IFW/cmCPackIFWRepository.cxx
  996. CPack/IFW/cmCPackIFWRepository.h
  997. )
  998. if(CYGWIN)
  999. set(CPACK_SRCS ${CPACK_SRCS}
  1000. CPack/cmCPackCygwinBinaryGenerator.cxx
  1001. CPack/cmCPackCygwinSourceGenerator.cxx
  1002. )
  1003. endif()
  1004. option(CPACK_ENABLE_FREEBSD_PKG "Add FreeBSD pkg(8) generator to CPack." OFF)
  1005. if(UNIX)
  1006. set(CPACK_SRCS ${CPACK_SRCS}
  1007. CPack/cmCPackRPMGenerator.cxx
  1008. )
  1009. # Optionally, try to use pkg(8)
  1010. if(CPACK_ENABLE_FREEBSD_PKG)
  1011. # On UNIX, you may find FreeBSD's pkg(8) and attendant
  1012. # library -- it can be used on FreeBSD, Dragonfly, NetBSD,
  1013. # OpenBSD and also Linux and OSX. Look for the header and
  1014. # the library; it's a warning on FreeBSD if they're not
  1015. # found, and informational on other platforms.
  1016. find_path(FREEBSD_PKG_INCLUDE_DIRS "pkg.h")
  1017. if(FREEBSD_PKG_INCLUDE_DIRS)
  1018. find_library(FREEBSD_PKG_LIBRARIES
  1019. pkg
  1020. DOC "FreeBSD pkg(8) library")
  1021. if(FREEBSD_PKG_LIBRARIES)
  1022. set(CPACK_SRCS ${CPACK_SRCS}
  1023. CPack/cmCPackFreeBSDGenerator.cxx
  1024. )
  1025. endif()
  1026. endif()
  1027. if (NOT FREEBSD_PKG_INCLUDE_DIRS OR NOT FREEBSD_PKG_LIBRARIES)
  1028. message(FATAL_ERROR "CPack needs libpkg(3) to produce FreeBSD packages natively.")
  1029. endif()
  1030. else()
  1031. set(FREEBSD_PKG_INCLUDE_DIRS NOTFOUND)
  1032. set(FREEBSD_PKG_LIBRARIES NOTFOUND)
  1033. endif()
  1034. endif()
  1035. if(CYGWIN)
  1036. find_package(LibUUID)
  1037. endif()
  1038. if(WIN32 OR (CYGWIN AND LibUUID_FOUND))
  1039. set(CPACK_SRCS ${CPACK_SRCS}
  1040. CPack/WiX/cmCMakeToWixPath.cxx
  1041. CPack/WiX/cmCMakeToWixPath.h
  1042. CPack/WiX/cmCPackWIXGenerator.cxx
  1043. CPack/WiX/cmCPackWIXGenerator.h
  1044. CPack/WiX/cmWIXAccessControlList.cxx
  1045. CPack/WiX/cmWIXAccessControlList.h
  1046. CPack/WiX/cmWIXDirectoriesSourceWriter.cxx
  1047. CPack/WiX/cmWIXDirectoriesSourceWriter.h
  1048. CPack/WiX/cmWIXFeaturesSourceWriter.cxx
  1049. CPack/WiX/cmWIXFeaturesSourceWriter.h
  1050. CPack/WiX/cmWIXFilesSourceWriter.cxx
  1051. CPack/WiX/cmWIXFilesSourceWriter.h
  1052. CPack/WiX/cmWIXPatch.cxx
  1053. CPack/WiX/cmWIXPatch.h
  1054. CPack/WiX/cmWIXPatchParser.cxx
  1055. CPack/WiX/cmWIXPatchParser.h
  1056. CPack/WiX/cmWIXRichTextFormatWriter.cxx
  1057. CPack/WiX/cmWIXRichTextFormatWriter.h
  1058. CPack/WiX/cmWIXShortcut.cxx
  1059. CPack/WiX/cmWIXShortcut.h
  1060. CPack/WiX/cmWIXSourceWriter.cxx
  1061. CPack/WiX/cmWIXSourceWriter.h
  1062. )
  1063. endif()
  1064. if(APPLE)
  1065. set(CPACK_SRCS ${CPACK_SRCS}
  1066. CPack/cmCPackBundleGenerator.cxx
  1067. CPack/cmCPackDragNDropGenerator.cxx
  1068. CPack/cmCPackOSXX11Generator.cxx
  1069. CPack/cmCPackPKGGenerator.cxx
  1070. CPack/cmCPackPackageMakerGenerator.cxx
  1071. CPack/cmCPackProductBuildGenerator.cxx
  1072. )
  1073. endif()
  1074. # Build CPackLib
  1075. add_library(CPackLib ${CPACK_SRCS})
  1076. target_link_libraries(CPackLib CMakeLib)
  1077. if(APPLE)
  1078. # Some compilers produce errors in the CoreServices framework headers.
  1079. # Ideally such errors should be fixed by either the compiler vendor
  1080. # or the framework source, but we try to workaround it and build anyway.
  1081. # If it does not work, build with reduced functionality and warn.
  1082. check_include_file("CoreServices/CoreServices.h" HAVE_CoreServices)
  1083. if(HAVE_CoreServices)
  1084. set_property(SOURCE CPack/cmCPackDragNDropGenerator.cxx PROPERTY COMPILE_DEFINITIONS HAVE_CoreServices)
  1085. target_link_libraries(CPackLib "-framework CoreServices")
  1086. else()
  1087. message(WARNING "This compiler does not appear to support\n"
  1088. " #include <CoreServices/CoreServices.h>\n"
  1089. "Some CPack functionality may be limited.\n"
  1090. "See CMakeFiles/CMakeError.log for details of the failure.")
  1091. endif()
  1092. endif()
  1093. if(CYGWIN AND LibUUID_FOUND)
  1094. target_link_libraries(CPackLib ${LibUUID_LIBRARIES})
  1095. include_directories(CPackLib ${LibUUID_INCLUDE_DIRS})
  1096. set_property(SOURCE CPack/cmCPackGeneratorFactory.cxx PROPERTY COMPILE_DEFINITIONS HAVE_LIBUUID)
  1097. endif()
  1098. if(CPACK_ENABLE_FREEBSD_PKG AND FREEBSD_PKG_INCLUDE_DIRS AND FREEBSD_PKG_LIBRARIES)
  1099. target_link_libraries(CPackLib ${FREEBSD_PKG_LIBRARIES})
  1100. include_directories(${FREEBSD_PKG_INCLUDE_DIRS})
  1101. add_definitions(-DHAVE_FREEBSD_PKG)
  1102. endif()
  1103. if(APPLE)
  1104. add_executable(OSXScriptLauncher
  1105. CPack/OSXScriptLauncher.cxx)
  1106. target_link_libraries(OSXScriptLauncher cmsys)
  1107. target_link_libraries(OSXScriptLauncher "-framework CoreFoundation")
  1108. endif()
  1109. # Build CMake executable
  1110. add_executable(cmake cmakemain.cxx cmcmd.cxx cmcmd.h ${MANIFEST_FILE})
  1111. list(APPEND _tools cmake)
  1112. target_link_libraries(cmake CMakeLib)
  1113. # Build CTest executable
  1114. add_executable(ctest ctest.cxx ${MANIFEST_FILE})
  1115. list(APPEND _tools ctest)
  1116. target_link_libraries(ctest CTestLib)
  1117. # Build CPack executable
  1118. add_executable(cpack CPack/cpack.cxx ${MANIFEST_FILE})
  1119. list(APPEND _tools cpack)
  1120. target_link_libraries(cpack CPackLib)
  1121. # Curses GUI
  1122. if(BUILD_CursesDialog)
  1123. add_subdirectory(CursesDialog)
  1124. endif()
  1125. # Qt GUI
  1126. option(BUILD_QtDialog "Build Qt dialog for CMake" FALSE)
  1127. if(BUILD_QtDialog)
  1128. add_subdirectory(QtDialog)
  1129. endif()
  1130. include (${CMake_BINARY_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
  1131. include (${CMake_SOURCE_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
  1132. if(WIN32)
  1133. # Compute the binary version that appears in the RC file. Version
  1134. # components in the RC file are 16-bit integers so we may have to
  1135. # split the patch component.
  1136. if(CMake_VERSION_PATCH MATCHES "^([0-9]+)([0-9][0-9][0-9][0-9])$")
  1137. set(CMake_RCVERSION_YEAR "${CMAKE_MATCH_1}")
  1138. set(CMake_RCVERSION_MONTH_DAY "${CMAKE_MATCH_2}")
  1139. string(REGEX REPLACE "^0+" "" CMake_RCVERSION_MONTH_DAY "${CMake_RCVERSION_MONTH_DAY}")
  1140. set(CMake_RCVERSION ${CMake_VERSION_MAJOR},${CMake_VERSION_MINOR},${CMake_RCVERSION_YEAR},${CMake_RCVERSION_MONTH_DAY})
  1141. unset(CMake_RCVERSION_MONTH_DAY)
  1142. unset(CMake_RCVERSION_YEAR)
  1143. else()
  1144. set(CMake_RCVERSION ${CMake_VERSION_MAJOR},${CMake_VERSION_MINOR},${CMake_VERSION_PATCH},0)
  1145. endif()
  1146. set(CMake_RCVERSION_STR ${CMake_VERSION})
  1147. # Add Windows executable version information.
  1148. configure_file("CMakeVersion.rc.in" "CMakeVersion.rc" @ONLY)
  1149. # We use a separate object library for this to work around a limitation of
  1150. # MinGW's windres tool with spaces in the path to the include directories.
  1151. add_library(CMakeVersion OBJECT "${CMAKE_CURRENT_BINARY_DIR}/CMakeVersion.rc")
  1152. set_property(TARGET CMakeVersion PROPERTY INCLUDE_DIRECTORIES "")
  1153. foreach(_tool ${_tools})
  1154. target_sources(${_tool} PRIVATE $<TARGET_OBJECTS:CMakeVersion>)
  1155. endforeach()
  1156. endif()
  1157. if(CMake_JOB_POOL_LINK_BIN)
  1158. set_property(TARGET ${_tools} PROPERTY JOB_POOL_LINK "link-bin")
  1159. set_property(GLOBAL APPEND PROPERTY JOB_POOLS "link-bin=${CMake_JOB_POOL_LINK_BIN}")
  1160. endif()
  1161. # Install tools
  1162. foreach(_tool ${_tools})
  1163. CMake_OPTIONAL_COMPONENT(${_tool})
  1164. install(TARGETS ${_tool} DESTINATION ${CMAKE_BIN_DIR} ${COMPONENT})
  1165. endforeach()
  1166. install(FILES cmCPluginAPI.h DESTINATION ${CMAKE_DATA_DIR}/include)
  1167. # Unset temporary variables
  1168. unset(_tools)