CMakeLists.txt 37 KB

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