CMakeLists.txt 37 KB

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