CMakeLists.txt 39 KB

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