mirror of
https://github.com/reactos/CMake.git
synced 2024-12-11 21:34:32 +00:00
5ff1d7bd90
Implement `__create_def` using `llvm-nm` (when given as `CMAKE_NM`).
1215 lines
33 KiB
CMake
1215 lines
33 KiB
CMake
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
# file Copyright.txt or https://cmake.org/licensing for details.
|
|
|
|
include(CheckIncludeFile)
|
|
# Check if we can build support for ELF parsing.
|
|
if(CMAKE_CXX_PLATFORM_ID MATCHES "OpenBSD")
|
|
CHECK_INCLUDE_FILES("stdint.h;elf_abi.h" HAVE_ELF_H)
|
|
else()
|
|
CHECK_INCLUDE_FILE("elf.h" HAVE_ELF_H)
|
|
endif()
|
|
if(HAVE_ELF_H)
|
|
set(CMAKE_USE_ELF_PARSER 1)
|
|
elseif(HAIKU)
|
|
# On Haiku, we need to include elf32.h from the private headers
|
|
set(CMake_HAIKU_INCLUDE_DIRS
|
|
/boot/system/develop/headers/private/system
|
|
/boot/system/develop/headers/private/system/arch/x86
|
|
)
|
|
|
|
set(CMAKE_REQUIRED_INCLUDES ${CMake_HAIKU_INCLUDE_DIRS})
|
|
CHECK_INCLUDE_FILE("elf32.h" HAVE_ELF32_H)
|
|
unset(CMAKE_REQUIRED_INCLUDES)
|
|
|
|
if(HAVE_ELF32_H)
|
|
set(CMAKE_USE_ELF_PARSER 1)
|
|
else()
|
|
unset(CMake_HAIKU_INCLUDE_DIRS)
|
|
set(CMAKE_USE_ELF_PARSER)
|
|
endif()
|
|
else()
|
|
set(CMAKE_USE_ELF_PARSER)
|
|
endif()
|
|
|
|
if(NOT CMake_DEFAULT_RECURSION_LIMIT)
|
|
if(DEFINED ENV{DASHBOARD_TEST_FROM_CTEST})
|
|
set(CMake_DEFAULT_RECURSION_LIMIT 100)
|
|
elseif(MINGW)
|
|
set(CMake_DEFAULT_RECURSION_LIMIT 400)
|
|
else()
|
|
set(CMake_DEFAULT_RECURSION_LIMIT 1000)
|
|
endif()
|
|
endif()
|
|
|
|
if(APPLE)
|
|
set(CMAKE_USE_MACH_PARSER 1)
|
|
endif()
|
|
|
|
set(EXECUTABLE_OUTPUT_PATH ${CMake_BIN_DIR})
|
|
|
|
if(WIN32)
|
|
# ensure Unicode friendly APIs are used on Windows
|
|
add_definitions(-DUNICODE -D_UNICODE)
|
|
|
|
# minimize windows.h content
|
|
add_definitions(-DWIN32_LEAN_AND_MEAN)
|
|
endif()
|
|
|
|
# configure the .dox.in file
|
|
if(CMake_BUILD_DEVELOPER_REFERENCE)
|
|
configure_file(
|
|
"${CMake_SOURCE_DIR}/Source/dir.dox.in"
|
|
"${CMake_BINARY_DIR}/Source/dir.dox"
|
|
@ONLY
|
|
)
|
|
endif()
|
|
|
|
# configure the .h file
|
|
configure_file(
|
|
"${CMake_SOURCE_DIR}/Source/cmConfigure.cmake.h.in"
|
|
"${CMake_BINARY_DIR}/Source/cmConfigure.h"
|
|
)
|
|
configure_file(
|
|
"${CMake_SOURCE_DIR}/Source/cmVersionConfig.h.in"
|
|
"${CMake_BINARY_DIR}/Source/cmVersionConfig.h"
|
|
)
|
|
configure_file(
|
|
"${CMake_SOURCE_DIR}/Source/CPack/cmCPackConfigure.h.in"
|
|
"${CMake_BINARY_DIR}/Source/CPack/cmCPackConfigure.h"
|
|
)
|
|
|
|
# Tell CMake executable in the build tree where to find the source tree.
|
|
configure_file(
|
|
"${CMake_SOURCE_DIR}/Source/CMakeSourceDir.txt.in"
|
|
"${CMake_BINARY_DIR}/CMakeFiles/CMakeSourceDir.txt" @ONLY
|
|
)
|
|
|
|
# add the include path to find the .h
|
|
include_directories(
|
|
"${CMake_BINARY_DIR}/Source"
|
|
"${CMake_SOURCE_DIR}/Source"
|
|
"${CMake_SOURCE_DIR}/Source/LexerParser"
|
|
${CMAKE_ZLIB_INCLUDES}
|
|
${CMAKE_EXPAT_INCLUDES}
|
|
${CMAKE_TAR_INCLUDES}
|
|
${CMake_HAIKU_INCLUDE_DIRS}
|
|
)
|
|
|
|
# Check if we can build the ELF parser.
|
|
if(CMAKE_USE_ELF_PARSER)
|
|
set(ELF_SRCS cmELF.h cmELF.cxx)
|
|
endif()
|
|
|
|
# Check if we can build the Mach-O parser.
|
|
if(CMAKE_USE_MACH_PARSER)
|
|
set(MACH_SRCS cmMachO.h cmMachO.cxx)
|
|
endif()
|
|
|
|
#
|
|
# Sources for CMakeLib
|
|
#
|
|
set(SRCS
|
|
# Lexers/Parsers
|
|
LexerParser/cmCommandArgumentLexer.cxx
|
|
LexerParser/cmCommandArgumentLexer.h
|
|
LexerParser/cmCommandArgumentLexer.in.l
|
|
LexerParser/cmCommandArgumentParser.cxx
|
|
LexerParser/cmCommandArgumentParserTokens.h
|
|
LexerParser/cmCommandArgumentParser.y
|
|
LexerParser/cmDependsJavaLexer.cxx
|
|
LexerParser/cmDependsJavaLexer.h
|
|
LexerParser/cmDependsJavaLexer.in.l
|
|
LexerParser/cmDependsJavaParser.cxx
|
|
LexerParser/cmDependsJavaParserTokens.h
|
|
LexerParser/cmDependsJavaParser.y
|
|
LexerParser/cmExprLexer.cxx
|
|
LexerParser/cmExprLexer.h
|
|
LexerParser/cmExprLexer.in.l
|
|
LexerParser/cmExprParser.cxx
|
|
LexerParser/cmExprParserTokens.h
|
|
LexerParser/cmExprParser.y
|
|
LexerParser/cmFortranLexer.cxx
|
|
LexerParser/cmFortranLexer.h
|
|
LexerParser/cmFortranLexer.in.l
|
|
LexerParser/cmFortranParser.cxx
|
|
LexerParser/cmFortranParserTokens.h
|
|
LexerParser/cmFortranParser.y
|
|
LexerParser/cmListFileLexer.c
|
|
LexerParser/cmListFileLexer.in.l
|
|
|
|
cmAffinity.cxx
|
|
cmAffinity.h
|
|
cmAlgorithms.h
|
|
cmArchiveWrite.cxx
|
|
cmArgumentParser.cxx
|
|
cmArgumentParser.h
|
|
cmBase32.cxx
|
|
cmBinUtilsLinker.cxx
|
|
cmBinUtilsLinker.h
|
|
cmBinUtilsLinuxELFGetRuntimeDependenciesTool.cxx
|
|
cmBinUtilsLinuxELFGetRuntimeDependenciesTool.h
|
|
cmBinUtilsLinuxELFLinker.cxx
|
|
cmBinUtilsLinuxELFLinker.h
|
|
cmBinUtilsLinuxELFObjdumpGetRuntimeDependenciesTool.cxx
|
|
cmBinUtilsLinuxELFObjdumpGetRuntimeDependenciesTool.h
|
|
cmBinUtilsMacOSMachOGetRuntimeDependenciesTool.cxx
|
|
cmBinUtilsMacOSMachOGetRuntimeDependenciesTool.h
|
|
cmBinUtilsMacOSMachOLinker.cxx
|
|
cmBinUtilsMacOSMachOLinker.h
|
|
cmBinUtilsMacOSMachOOToolGetRuntimeDependenciesTool.cxx
|
|
cmBinUtilsMacOSMachOOToolGetRuntimeDependenciesTool.h
|
|
cmBinUtilsWindowsPEDumpbinGetRuntimeDependenciesTool.cxx
|
|
cmBinUtilsWindowsPEDumpbinGetRuntimeDependenciesTool.h
|
|
cmBinUtilsWindowsPEGetRuntimeDependenciesTool.cxx
|
|
cmBinUtilsWindowsPEGetRuntimeDependenciesTool.h
|
|
cmBinUtilsWindowsPELinker.cxx
|
|
cmBinUtilsWindowsPELinker.h
|
|
cmBinUtilsWindowsPEObjdumpGetRuntimeDependenciesTool.cxx
|
|
cmBinUtilsWindowsPEObjdumpGetRuntimeDependenciesTool.h
|
|
cmCacheManager.cxx
|
|
cmCacheManager.h
|
|
cmCheckCustomOutputs.h
|
|
cmCheckCustomOutputs.cxx
|
|
cmCLocaleEnvironmentScope.h
|
|
cmCLocaleEnvironmentScope.cxx
|
|
cmCommandArgumentParserHelper.cxx
|
|
cmCommonTargetGenerator.cxx
|
|
cmCommonTargetGenerator.h
|
|
cmComputeComponentGraph.cxx
|
|
cmComputeComponentGraph.h
|
|
cmComputeLinkDepends.cxx
|
|
cmComputeLinkDepends.h
|
|
cmComputeLinkInformation.cxx
|
|
cmComputeLinkInformation.h
|
|
cmComputeTargetDepends.h
|
|
cmComputeTargetDepends.cxx
|
|
cmCPackPropertiesGenerator.h
|
|
cmCPackPropertiesGenerator.cxx
|
|
cmCryptoHash.cxx
|
|
cmCryptoHash.h
|
|
cmCurl.cxx
|
|
cmCurl.h
|
|
cmCustomCommand.cxx
|
|
cmCustomCommand.h
|
|
cmCustomCommandGenerator.cxx
|
|
cmCustomCommandGenerator.h
|
|
cmCustomCommandLines.cxx
|
|
cmCustomCommandLines.h
|
|
cmCustomCommandTypes.h
|
|
cmDefinitions.cxx
|
|
cmDefinitions.h
|
|
cmDepends.cxx
|
|
cmDepends.h
|
|
cmDependsC.cxx
|
|
cmDependsC.h
|
|
cmDependsFortran.cxx
|
|
cmDependsFortran.h
|
|
cmDependsJava.cxx
|
|
cmDependsJava.h
|
|
cmDependsJavaParserHelper.cxx
|
|
cmDependsJavaParserHelper.h
|
|
cmDocumentation.cxx
|
|
cmDocumentationFormatter.cxx
|
|
cmDocumentationSection.cxx
|
|
cmDynamicLoader.cxx
|
|
cmDynamicLoader.h
|
|
${ELF_SRCS}
|
|
cmExprParserHelper.cxx
|
|
cmExportBuildAndroidMKGenerator.h
|
|
cmExportBuildAndroidMKGenerator.cxx
|
|
cmExportBuildFileGenerator.h
|
|
cmExportBuildFileGenerator.cxx
|
|
cmExportFileGenerator.h
|
|
cmExportFileGenerator.cxx
|
|
cmExportInstallAndroidMKGenerator.h
|
|
cmExportInstallAndroidMKGenerator.cxx
|
|
cmExportInstallFileGenerator.h
|
|
cmExportInstallFileGenerator.cxx
|
|
cmExportTryCompileFileGenerator.h
|
|
cmExportTryCompileFileGenerator.cxx
|
|
cmExportSet.h
|
|
cmExportSet.cxx
|
|
cmExternalMakefileProjectGenerator.cxx
|
|
cmExternalMakefileProjectGenerator.h
|
|
cmExtraCodeBlocksGenerator.cxx
|
|
cmExtraCodeBlocksGenerator.h
|
|
cmExtraCodeLiteGenerator.cxx
|
|
cmExtraCodeLiteGenerator.h
|
|
cmExtraEclipseCDT4Generator.cxx
|
|
cmExtraEclipseCDT4Generator.h
|
|
cmExtraKateGenerator.cxx
|
|
cmExtraKateGenerator.h
|
|
cmExtraSublimeTextGenerator.cxx
|
|
cmExtraSublimeTextGenerator.h
|
|
cmFileAPI.cxx
|
|
cmFileAPI.h
|
|
cmFileAPICache.cxx
|
|
cmFileAPICache.h
|
|
cmFileAPICodemodel.cxx
|
|
cmFileAPICodemodel.h
|
|
cmFileAPICMakeFiles.cxx
|
|
cmFileAPICMakeFiles.h
|
|
cmFileCopier.cxx
|
|
cmFileCopier.h
|
|
cmFileInstaller.cxx
|
|
cmFileInstaller.h
|
|
cmFileLock.cxx
|
|
cmFileLock.h
|
|
cmFileLockPool.cxx
|
|
cmFileLockPool.h
|
|
cmFileLockResult.cxx
|
|
cmFileLockResult.h
|
|
cmFilePathChecksum.cxx
|
|
cmFilePathChecksum.h
|
|
cmFileTime.cxx
|
|
cmFileTime.h
|
|
cmFileTimeCache.cxx
|
|
cmFileTimeCache.h
|
|
cmFileTimes.cxx
|
|
cmFileTimes.h
|
|
cmFortranParserImpl.cxx
|
|
cmFSPermissions.cxx
|
|
cmFSPermissions.h
|
|
cmGeneratedFileStream.cxx
|
|
cmGeneratorExpressionContext.cxx
|
|
cmGeneratorExpressionContext.h
|
|
cmGeneratorExpressionDAGChecker.cxx
|
|
cmGeneratorExpressionDAGChecker.h
|
|
cmGeneratorExpressionEvaluationFile.cxx
|
|
cmGeneratorExpressionEvaluationFile.h
|
|
cmGeneratorExpressionEvaluator.cxx
|
|
cmGeneratorExpressionEvaluator.h
|
|
cmGeneratorExpressionLexer.cxx
|
|
cmGeneratorExpressionLexer.h
|
|
cmGeneratorExpressionNode.cxx
|
|
cmGeneratorExpressionNode.h
|
|
cmGeneratorExpressionParser.cxx
|
|
cmGeneratorExpressionParser.h
|
|
cmGeneratorExpression.cxx
|
|
cmGeneratorExpression.h
|
|
cmGeneratorTarget.cxx
|
|
cmGeneratorTarget.h
|
|
cmLinkItemGraphVisitor.cxx
|
|
cmLinkItemGraphVisitor.h
|
|
cmGetPipes.cxx
|
|
cmGetPipes.h
|
|
cmGlobalCommonGenerator.cxx
|
|
cmGlobalCommonGenerator.h
|
|
cmGlobalGenerator.cxx
|
|
cmGlobalGenerator.h
|
|
cmGlobalGeneratorFactory.h
|
|
cmGlobalUnixMakefileGenerator3.cxx
|
|
cmGlobalUnixMakefileGenerator3.h
|
|
cmGlobVerificationManager.cxx
|
|
cmGlobVerificationManager.h
|
|
cmGraphAdjacencyList.h
|
|
cmGraphVizWriter.cxx
|
|
cmGraphVizWriter.h
|
|
cmInstallGenerator.h
|
|
cmInstallGenerator.cxx
|
|
cmInstallExportGenerator.cxx
|
|
cmInstalledFile.h
|
|
cmInstalledFile.cxx
|
|
cmInstallFilesGenerator.h
|
|
cmInstallFilesGenerator.cxx
|
|
cmInstallScriptGenerator.h
|
|
cmInstallScriptGenerator.cxx
|
|
cmInstallSubdirectoryGenerator.h
|
|
cmInstallSubdirectoryGenerator.cxx
|
|
cmInstallTargetGenerator.h
|
|
cmInstallTargetGenerator.cxx
|
|
cmInstallDirectoryGenerator.h
|
|
cmInstallDirectoryGenerator.cxx
|
|
cmLDConfigLDConfigTool.cxx
|
|
cmLDConfigLDConfigTool.h
|
|
cmLDConfigTool.cxx
|
|
cmLDConfigTool.h
|
|
cmLinkedTree.h
|
|
cmLinkItem.cxx
|
|
cmLinkItem.h
|
|
cmLinkLineComputer.cxx
|
|
cmLinkLineComputer.h
|
|
cmLinkLineDeviceComputer.cxx
|
|
cmLinkLineDeviceComputer.h
|
|
cmListFileCache.cxx
|
|
cmListFileCache.h
|
|
cmLocalCommonGenerator.cxx
|
|
cmLocalCommonGenerator.h
|
|
cmLocalGenerator.cxx
|
|
cmLocalGenerator.h
|
|
cmRulePlaceholderExpander.cxx
|
|
cmRulePlaceholderExpander.h
|
|
cmLocalUnixMakefileGenerator3.cxx
|
|
cmLocale.h
|
|
${MACH_SRCS}
|
|
cmMakefile.cxx
|
|
cmMakefile.h
|
|
cmMakefileTargetGenerator.cxx
|
|
cmMakefileExecutableTargetGenerator.cxx
|
|
cmMakefileLibraryTargetGenerator.cxx
|
|
cmMakefileUtilityTargetGenerator.cxx
|
|
cmMessageType.h
|
|
cmMessenger.cxx
|
|
cmMessenger.h
|
|
cmMSVC60LinkLineComputer.cxx
|
|
cmMSVC60LinkLineComputer.h
|
|
cmOSXBundleGenerator.cxx
|
|
cmOSXBundleGenerator.h
|
|
cmOutputConverter.cxx
|
|
cmOutputConverter.h
|
|
cmNewLineStyle.h
|
|
cmNewLineStyle.cxx
|
|
cmOrderDirectories.cxx
|
|
cmOrderDirectories.h
|
|
cmPolicies.h
|
|
cmPolicies.cxx
|
|
cmProcessOutput.cxx
|
|
cmProcessOutput.h
|
|
cmProcessTools.cxx
|
|
cmProcessTools.h
|
|
cmProperty.h
|
|
cmPropertyDefinition.cxx
|
|
cmPropertyDefinition.h
|
|
cmPropertyDefinitionMap.cxx
|
|
cmPropertyDefinitionMap.h
|
|
cmPropertyMap.cxx
|
|
cmPropertyMap.h
|
|
cmQtAutoGen.cxx
|
|
cmQtAutoGen.h
|
|
cmQtAutoGenerator.cxx
|
|
cmQtAutoGenerator.h
|
|
cmQtAutoGenGlobalInitializer.cxx
|
|
cmQtAutoGenGlobalInitializer.h
|
|
cmQtAutoGenInitializer.cxx
|
|
cmQtAutoGenInitializer.h
|
|
cmQtAutoMocUic.cxx
|
|
cmQtAutoMocUic.h
|
|
cmQtAutoRcc.cxx
|
|
cmQtAutoRcc.h
|
|
cmRST.cxx
|
|
cmRST.h
|
|
cmRuntimeDependencyArchive.cxx
|
|
cmRuntimeDependencyArchive.h
|
|
cmScriptGenerator.h
|
|
cmScriptGenerator.cxx
|
|
cmSourceFile.cxx
|
|
cmSourceFile.h
|
|
cmSourceFileLocation.cxx
|
|
cmSourceFileLocation.h
|
|
cmSourceFileLocationKind.h
|
|
cmSourceGroup.cxx
|
|
cmSourceGroup.h
|
|
cmState.cxx
|
|
cmState.h
|
|
cmStateDirectory.cxx
|
|
cmStateDirectory.h
|
|
cmStateSnapshot.cxx
|
|
cmStateSnapshot.h
|
|
cmStateTypes.h
|
|
cmStringAlgorithms.cxx
|
|
cmStringAlgorithms.h
|
|
cmSystemTools.cxx
|
|
cmSystemTools.h
|
|
cmTarget.cxx
|
|
cmTarget.h
|
|
cmTargetPropertyComputer.cxx
|
|
cmTargetPropertyComputer.h
|
|
cmTargetExport.h
|
|
cmTest.cxx
|
|
cmTest.h
|
|
cmTestGenerator.cxx
|
|
cmTestGenerator.h
|
|
cmUuid.cxx
|
|
cmUVHandlePtr.cxx
|
|
cmUVHandlePtr.h
|
|
cmUVProcessChain.cxx
|
|
cmUVProcessChain.h
|
|
cmUVStreambuf.h
|
|
cmUVSignalHackRAII.h
|
|
cmVariableWatch.cxx
|
|
cmVariableWatch.h
|
|
cmVersion.cxx
|
|
cmVersion.h
|
|
cmWorkerPool.cxx
|
|
cmWorkerPool.h
|
|
cmWorkingDirectory.cxx
|
|
cmWorkingDirectory.h
|
|
cmXMLParser.cxx
|
|
cmXMLParser.h
|
|
cmXMLSafe.cxx
|
|
cmXMLSafe.h
|
|
cmXMLWriter.cxx
|
|
cmXMLWriter.h
|
|
cmake.cxx
|
|
cmake.h
|
|
|
|
cmCommand.cxx
|
|
cmCommand.h
|
|
cmCommands.cxx
|
|
cmCommands.h
|
|
cmAddCompileDefinitionsCommand.cxx
|
|
cmAddCompileDefinitionsCommand.h
|
|
cmAddCompileOptionsCommand.cxx
|
|
cmAddCompileOptionsCommand.h
|
|
cmAddLinkOptionsCommand.cxx
|
|
cmAddLinkOptionsCommand.h
|
|
cmAddCustomCommandCommand.cxx
|
|
cmAddCustomCommandCommand.h
|
|
cmAddCustomTargetCommand.cxx
|
|
cmAddCustomTargetCommand.h
|
|
cmAddDefinitionsCommand.cxx
|
|
cmAddDefinitionsCommand.h
|
|
cmAddDependenciesCommand.cxx
|
|
cmAddDependenciesCommand.h
|
|
cmAddExecutableCommand.cxx
|
|
cmAddExecutableCommand.h
|
|
cmAddLibraryCommand.cxx
|
|
cmAddLibraryCommand.h
|
|
cmAddSubDirectoryCommand.cxx
|
|
cmAddSubDirectoryCommand.h
|
|
cmAddTestCommand.cxx
|
|
cmAddTestCommand.h
|
|
cmAuxSourceDirectoryCommand.cxx
|
|
cmAuxSourceDirectoryCommand.h
|
|
cmBreakCommand.cxx
|
|
cmBreakCommand.h
|
|
cmBuildCommand.cxx
|
|
cmBuildCommand.h
|
|
cmBuildNameCommand.cxx
|
|
cmBuildNameCommand.h
|
|
cmCMakeHostSystemInformationCommand.cxx
|
|
cmCMakeHostSystemInformationCommand.h
|
|
cmCMakeMinimumRequired.cxx
|
|
cmCMakeMinimumRequired.h
|
|
cmCMakePolicyCommand.cxx
|
|
cmCMakePolicyCommand.h
|
|
cmConditionEvaluator.cxx
|
|
cmConditionEvaluator.h
|
|
cmConfigureFileCommand.cxx
|
|
cmConfigureFileCommand.h
|
|
cmContinueCommand.cxx
|
|
cmContinueCommand.h
|
|
cmCoreTryCompile.cxx
|
|
cmCoreTryCompile.h
|
|
cmCreateTestSourceList.cxx
|
|
cmCreateTestSourceList.h
|
|
cmDefinePropertyCommand.cxx
|
|
cmDefinePropertyCommand.h
|
|
cmEnableLanguageCommand.cxx
|
|
cmEnableLanguageCommand.h
|
|
cmEnableTestingCommand.cxx
|
|
cmEnableTestingCommand.h
|
|
cmExecProgramCommand.cxx
|
|
cmExecProgramCommand.h
|
|
cmExecuteProcessCommand.cxx
|
|
cmExecuteProcessCommand.h
|
|
cmExpandedCommandArgument.cxx
|
|
cmExpandedCommandArgument.h
|
|
cmExportCommand.cxx
|
|
cmExportCommand.h
|
|
cmExportLibraryDependenciesCommand.cxx
|
|
cmExportLibraryDependenciesCommand.h
|
|
cmFLTKWrapUICommand.cxx
|
|
cmFLTKWrapUICommand.h
|
|
cmFileCommand.cxx
|
|
cmFileCommand.h
|
|
cmFindBase.cxx
|
|
cmFindBase.h
|
|
cmFindCommon.cxx
|
|
cmFindCommon.h
|
|
cmFindFileCommand.cxx
|
|
cmFindFileCommand.h
|
|
cmFindLibraryCommand.cxx
|
|
cmFindLibraryCommand.h
|
|
cmFindPackageCommand.cxx
|
|
cmFindPackageCommand.h
|
|
cmFindPathCommand.cxx
|
|
cmFindPathCommand.h
|
|
cmFindProgramCommand.cxx
|
|
cmFindProgramCommand.h
|
|
cmForEachCommand.cxx
|
|
cmForEachCommand.h
|
|
cmFunctionBlocker.cxx
|
|
cmFunctionBlocker.h
|
|
cmFunctionCommand.cxx
|
|
cmFunctionCommand.h
|
|
cmGetCMakePropertyCommand.cxx
|
|
cmGetCMakePropertyCommand.h
|
|
cmGetDirectoryPropertyCommand.cxx
|
|
cmGetDirectoryPropertyCommand.h
|
|
cmGetFilenameComponentCommand.cxx
|
|
cmGetFilenameComponentCommand.h
|
|
cmGetPropertyCommand.cxx
|
|
cmGetPropertyCommand.h
|
|
cmGetSourceFilePropertyCommand.cxx
|
|
cmGetSourceFilePropertyCommand.h
|
|
cmGetTargetPropertyCommand.cxx
|
|
cmGetTargetPropertyCommand.h
|
|
cmGetTestPropertyCommand.cxx
|
|
cmGetTestPropertyCommand.h
|
|
cmHexFileConverter.cxx
|
|
cmHexFileConverter.h
|
|
cmIfCommand.cxx
|
|
cmIfCommand.h
|
|
cmIncludeCommand.cxx
|
|
cmIncludeCommand.h
|
|
cmIncludeDirectoryCommand.cxx
|
|
cmIncludeDirectoryCommand.h
|
|
cmIncludeExternalMSProjectCommand.cxx
|
|
cmIncludeExternalMSProjectCommand.h
|
|
cmIncludeGuardCommand.cxx
|
|
cmIncludeGuardCommand.h
|
|
cmIncludeRegularExpressionCommand.cxx
|
|
cmIncludeRegularExpressionCommand.h
|
|
cmInstallCommand.cxx
|
|
cmInstallCommand.h
|
|
cmInstallCommandArguments.cxx
|
|
cmInstallCommandArguments.h
|
|
cmInstallFilesCommand.cxx
|
|
cmInstallFilesCommand.h
|
|
cmInstallProgramsCommand.cxx
|
|
cmInstallProgramsCommand.h
|
|
cmInstallTargetsCommand.cxx
|
|
cmInstallTargetsCommand.h
|
|
cmLinkDirectoriesCommand.cxx
|
|
cmLinkDirectoriesCommand.h
|
|
cmLinkLibrariesCommand.cxx
|
|
cmLinkLibrariesCommand.h
|
|
cmListCommand.cxx
|
|
cmListCommand.h
|
|
cmLoadCacheCommand.cxx
|
|
cmLoadCacheCommand.h
|
|
cmLoadCommandCommand.cxx
|
|
cmLoadCommandCommand.h
|
|
cmMacroCommand.cxx
|
|
cmMacroCommand.h
|
|
cmMakeDirectoryCommand.cxx
|
|
cmMakeDirectoryCommand.h
|
|
cmMarkAsAdvancedCommand.cxx
|
|
cmMarkAsAdvancedCommand.h
|
|
cmMathCommand.cxx
|
|
cmMathCommand.h
|
|
cmMessageCommand.cxx
|
|
cmMessageCommand.h
|
|
cmOptionCommand.cxx
|
|
cmOptionCommand.h
|
|
cmOutputRequiredFilesCommand.cxx
|
|
cmOutputRequiredFilesCommand.h
|
|
cmParseArgumentsCommand.cxx
|
|
cmParseArgumentsCommand.h
|
|
cmPathLabel.cxx
|
|
cmPathLabel.h
|
|
cmProjectCommand.cxx
|
|
cmProjectCommand.h
|
|
cmQTWrapCPPCommand.cxx
|
|
cmQTWrapCPPCommand.h
|
|
cmQTWrapUICommand.cxx
|
|
cmQTWrapUICommand.h
|
|
cmRemoveCommand.cxx
|
|
cmRemoveCommand.h
|
|
cmRemoveDefinitionsCommand.cxx
|
|
cmRemoveDefinitionsCommand.h
|
|
cmReturnCommand.cxx
|
|
cmReturnCommand.h
|
|
cmSearchPath.cxx
|
|
cmSearchPath.h
|
|
cmSeparateArgumentsCommand.cxx
|
|
cmSeparateArgumentsCommand.h
|
|
cmSetCommand.cxx
|
|
cmSetCommand.h
|
|
cmSetDirectoryPropertiesCommand.cxx
|
|
cmSetDirectoryPropertiesCommand.h
|
|
cmSetPropertyCommand.cxx
|
|
cmSetPropertyCommand.h
|
|
cmSetSourceFilesPropertiesCommand.cxx
|
|
cmSetSourceFilesPropertiesCommand.h
|
|
cmSetTargetPropertiesCommand.cxx
|
|
cmSetTargetPropertiesCommand.h
|
|
cmSetTestsPropertiesCommand.cxx
|
|
cmSetTestsPropertiesCommand.h
|
|
cmSiteNameCommand.cxx
|
|
cmSiteNameCommand.h
|
|
cmSourceGroupCommand.cxx
|
|
cmSourceGroupCommand.h
|
|
cmString.cxx
|
|
cmString.hxx
|
|
cmStringReplaceHelper.cxx
|
|
cmStringCommand.cxx
|
|
cmStringCommand.h
|
|
cmSubcommandTable.cxx
|
|
cmSubcommandTable.h
|
|
cmSubdirCommand.cxx
|
|
cmSubdirCommand.h
|
|
cmSubdirDependsCommand.cxx
|
|
cmSubdirDependsCommand.h
|
|
cmTargetCompileDefinitionsCommand.cxx
|
|
cmTargetCompileDefinitionsCommand.h
|
|
cmTargetCompileFeaturesCommand.cxx
|
|
cmTargetCompileFeaturesCommand.h
|
|
cmTargetCompileOptionsCommand.cxx
|
|
cmTargetCompileOptionsCommand.h
|
|
cmTargetIncludeDirectoriesCommand.cxx
|
|
cmTargetIncludeDirectoriesCommand.h
|
|
cmTargetLinkOptionsCommand.cxx
|
|
cmTargetLinkOptionsCommand.h
|
|
cmTargetLinkDirectoriesCommand.cxx
|
|
cmTargetLinkDirectoriesCommand.h
|
|
cmTargetLinkLibrariesCommand.cxx
|
|
cmTargetLinkLibrariesCommand.h
|
|
cmTargetPrecompileHeadersCommand.cxx
|
|
cmTargetPrecompileHeadersCommand.h
|
|
cmTargetPropCommandBase.cxx
|
|
cmTargetPropCommandBase.h
|
|
cmTargetSourcesCommand.cxx
|
|
cmTargetSourcesCommand.h
|
|
cmTimestamp.cxx
|
|
cmTimestamp.h
|
|
cmTryCompileCommand.cxx
|
|
cmTryCompileCommand.h
|
|
cmTryRunCommand.cxx
|
|
cmTryRunCommand.h
|
|
cmUnsetCommand.cxx
|
|
cmUnsetCommand.h
|
|
cmUseMangledMesaCommand.cxx
|
|
cmUseMangledMesaCommand.h
|
|
cmUtilitySourceCommand.cxx
|
|
cmUtilitySourceCommand.h
|
|
cmVariableRequiresCommand.cxx
|
|
cmVariableRequiresCommand.h
|
|
cmVariableWatchCommand.cxx
|
|
cmVariableWatchCommand.h
|
|
cmWhileCommand.cxx
|
|
cmWhileCommand.h
|
|
cmWriteFileCommand.cxx
|
|
cmWriteFileCommand.h
|
|
|
|
cm_static_string_view.hxx
|
|
cm_get_date.h
|
|
cm_get_date.c
|
|
cm_utf8.h
|
|
cm_utf8.c
|
|
cm_codecvt.hxx
|
|
cm_codecvt.cxx
|
|
|
|
cmDuration.h
|
|
cmDuration.cxx
|
|
|
|
bindexplib.cxx
|
|
)
|
|
|
|
SET_PROPERTY(SOURCE cmProcessOutput.cxx APPEND PROPERTY COMPILE_DEFINITIONS
|
|
KWSYS_ENCODING_DEFAULT_CODEPAGE=${KWSYS_ENCODING_DEFAULT_CODEPAGE})
|
|
|
|
# Xcode only works on Apple
|
|
if(APPLE)
|
|
set(SRCS ${SRCS}
|
|
cmXCodeObject.cxx
|
|
cmXCode21Object.cxx
|
|
cmXCodeScheme.cxx
|
|
cmGlobalXCodeGenerator.cxx
|
|
cmGlobalXCodeGenerator.h
|
|
cmLocalXCodeGenerator.cxx
|
|
cmLocalXCodeGenerator.h)
|
|
endif()
|
|
|
|
|
|
if (WIN32)
|
|
set(SRCS ${SRCS}
|
|
cmCallVisualStudioMacro.cxx
|
|
cmCallVisualStudioMacro.h
|
|
)
|
|
|
|
if(NOT UNIX)
|
|
set(SRCS ${SRCS}
|
|
cmGlobalBorlandMakefileGenerator.cxx
|
|
cmGlobalBorlandMakefileGenerator.h
|
|
cmGlobalMSYSMakefileGenerator.cxx
|
|
cmGlobalMinGWMakefileGenerator.cxx
|
|
cmGlobalNMakeMakefileGenerator.cxx
|
|
cmGlobalNMakeMakefileGenerator.h
|
|
cmGlobalJOMMakefileGenerator.cxx
|
|
cmGlobalJOMMakefileGenerator.h
|
|
cmGlobalVisualStudio71Generator.cxx
|
|
cmGlobalVisualStudio71Generator.h
|
|
cmGlobalVisualStudio7Generator.cxx
|
|
cmGlobalVisualStudio7Generator.h
|
|
cmGlobalVisualStudio8Generator.cxx
|
|
cmGlobalVisualStudio8Generator.h
|
|
cmGlobalVisualStudio9Generator.cxx
|
|
cmGlobalVisualStudio9Generator.h
|
|
cmVisualStudioGeneratorOptions.h
|
|
cmVisualStudioGeneratorOptions.cxx
|
|
cmVisualStudio10TargetGenerator.h
|
|
cmVisualStudio10TargetGenerator.cxx
|
|
cmVisualStudio10ToolsetOptions.h
|
|
cmVisualStudio10ToolsetOptions.cxx
|
|
cmLocalVisualStudio10Generator.cxx
|
|
cmLocalVisualStudio10Generator.h
|
|
cmGlobalVisualStudio10Generator.h
|
|
cmGlobalVisualStudio10Generator.cxx
|
|
cmGlobalVisualStudio11Generator.h
|
|
cmGlobalVisualStudio11Generator.cxx
|
|
cmGlobalVisualStudio12Generator.h
|
|
cmGlobalVisualStudio12Generator.cxx
|
|
cmGlobalVisualStudio14Generator.h
|
|
cmGlobalVisualStudio14Generator.cxx
|
|
cmGlobalVisualStudioGenerator.cxx
|
|
cmGlobalVisualStudioGenerator.h
|
|
cmGlobalVisualStudioVersionedGenerator.h
|
|
cmGlobalVisualStudioVersionedGenerator.cxx
|
|
cmIDEFlagTable.h
|
|
cmIDEOptions.cxx
|
|
cmIDEOptions.h
|
|
cmLocalVisualStudio7Generator.cxx
|
|
cmLocalVisualStudio7Generator.h
|
|
cmLocalVisualStudioGenerator.cxx
|
|
cmLocalVisualStudioGenerator.h
|
|
cmVisualStudioSlnData.h
|
|
cmVisualStudioSlnData.cxx
|
|
cmVisualStudioSlnParser.h
|
|
cmVisualStudioSlnParser.cxx
|
|
cmVisualStudioWCEPlatformParser.h
|
|
cmVisualStudioWCEPlatformParser.cxx
|
|
cmVSSetupHelper.cxx
|
|
cmVSSetupHelper.h
|
|
)
|
|
|
|
# Add a manifest file to executables on Windows to allow for
|
|
# GetVersion to work properly on Windows 8 and above.
|
|
set(MANIFEST_FILE ${CMAKE_CURRENT_SOURCE_DIR}/cmake.version.manifest)
|
|
endif()
|
|
endif ()
|
|
|
|
# Watcom support
|
|
if(WIN32 OR CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|
set_property(SOURCE cmake.cxx APPEND PROPERTY COMPILE_DEFINITIONS CMAKE_USE_WMAKE)
|
|
list(APPEND SRCS
|
|
cmGlobalWatcomWMakeGenerator.cxx
|
|
cmGlobalWatcomWMakeGenerator.h
|
|
)
|
|
endif()
|
|
|
|
# GHS support
|
|
# Works only for windows and linux
|
|
if(WIN32 OR CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|
set(SRCS ${SRCS}
|
|
cmGlobalGhsMultiGenerator.cxx
|
|
cmGlobalGhsMultiGenerator.h
|
|
cmLocalGhsMultiGenerator.cxx
|
|
cmLocalGhsMultiGenerator.h
|
|
cmGhsMultiTargetGenerator.cxx
|
|
cmGhsMultiTargetGenerator.h
|
|
cmGhsMultiGpj.cxx
|
|
cmGhsMultiGpj.h
|
|
)
|
|
endif()
|
|
|
|
|
|
# Ninja support
|
|
set(SRCS ${SRCS}
|
|
cmGlobalNinjaGenerator.cxx
|
|
cmGlobalNinjaGenerator.h
|
|
cmNinjaTypes.h
|
|
cmLocalNinjaGenerator.cxx
|
|
cmLocalNinjaGenerator.h
|
|
cmNinjaTargetGenerator.cxx
|
|
cmNinjaTargetGenerator.h
|
|
cmNinjaNormalTargetGenerator.cxx
|
|
cmNinjaNormalTargetGenerator.h
|
|
cmNinjaUtilityTargetGenerator.cxx
|
|
cmNinjaUtilityTargetGenerator.h
|
|
cmNinjaLinkLineComputer.cxx
|
|
cmNinjaLinkLineComputer.h
|
|
cmNinjaLinkLineDeviceComputer.cxx
|
|
cmNinjaLinkLineDeviceComputer.h
|
|
)
|
|
|
|
# Temporary variable for tools targets
|
|
set(_tools)
|
|
|
|
if(WIN32 AND NOT CYGWIN)
|
|
set_source_files_properties(cmcldeps.cxx PROPERTIES COMPILE_DEFINITIONS _WIN32_WINNT=0x0501)
|
|
add_executable(cmcldeps cmcldeps.cxx ${MANIFEST_FILE})
|
|
list(APPEND _tools cmcldeps)
|
|
target_link_libraries(cmcldeps CMakeLib)
|
|
endif()
|
|
|
|
foreach(v CURL_CA_BUNDLE CURL_CA_PATH)
|
|
if(${v})
|
|
set_property(SOURCE cmCurl.cxx APPEND PROPERTY COMPILE_DEFINITIONS ${v}="${${v}}")
|
|
endif()
|
|
endforeach()
|
|
|
|
foreach(check
|
|
STAT_HAS_ST_MTIM
|
|
STAT_HAS_ST_MTIMESPEC
|
|
)
|
|
if(KWSYS_CXX_${check}_COMPILED) # abuse KWSys check cache entry
|
|
set(CMake_${check} 1)
|
|
else()
|
|
set(CMake_${check} 0)
|
|
endif()
|
|
set_property(SOURCE cmFileTime.cxx APPEND PROPERTY
|
|
COMPILE_DEFINITIONS CMake_${check}=${CMake_${check}})
|
|
endforeach()
|
|
|
|
# create a library used by the command line and the GUI
|
|
add_library(CMakeLib ${SRCS})
|
|
target_link_libraries(CMakeLib cmsys
|
|
${CMAKE_STD_LIBRARY}
|
|
${CMAKE_EXPAT_LIBRARIES} ${CMAKE_ZLIB_LIBRARIES}
|
|
${CMAKE_TAR_LIBRARIES}
|
|
${CMAKE_CURL_LIBRARIES}
|
|
${CMAKE_JSONCPP_LIBRARIES}
|
|
${CMAKE_LIBUV_LIBRARIES}
|
|
${CMAKE_LIBRHASH_LIBRARIES}
|
|
${CMake_KWIML_LIBRARIES}
|
|
${CMAKE_THREAD_LIBS_INIT}
|
|
)
|
|
|
|
if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR MATCHES "sparc")
|
|
# the atomic instructions are implemented using libatomic on some platforms,
|
|
# so linking to that may be required
|
|
check_library_exists(atomic __atomic_fetch_add_4 "" LIBATOMIC_NEEDED)
|
|
if(LIBATOMIC_NEEDED)
|
|
target_link_libraries(CMakeLib atomic)
|
|
endif()
|
|
endif()
|
|
|
|
# On Apple we need CoreFoundation and CoreServices
|
|
if(APPLE)
|
|
target_link_libraries(CMakeLib "-framework CoreFoundation")
|
|
target_link_libraries(CMakeLib "-framework CoreServices")
|
|
endif()
|
|
|
|
if(WIN32 AND NOT UNIX)
|
|
# We need the rpcrt4 library on Windows.
|
|
# We need the crypt32 library on Windows for crypto/cert APIs.
|
|
target_link_libraries(CMakeLib rpcrt4 crypt32)
|
|
endif()
|
|
|
|
target_compile_definitions(CMakeLib PUBLIC ${CLANG_TIDY_DEFINITIONS})
|
|
|
|
#
|
|
# CTestLib
|
|
#
|
|
include_directories(
|
|
"${CMake_SOURCE_DIR}/Source/CTest"
|
|
${CMAKE_CURL_INCLUDES}
|
|
)
|
|
#
|
|
# Sources for CTestLib
|
|
#
|
|
set(CTEST_SRCS cmCTest.cxx
|
|
CTest/cmProcess.cxx
|
|
CTest/cmCTestBinPacker.cxx
|
|
CTest/cmCTestBuildAndTestHandler.cxx
|
|
CTest/cmCTestBuildCommand.cxx
|
|
CTest/cmCTestBuildHandler.cxx
|
|
CTest/cmCTestConfigureCommand.cxx
|
|
CTest/cmCTestConfigureHandler.cxx
|
|
CTest/cmCTestCoverageCommand.cxx
|
|
CTest/cmCTestCoverageHandler.cxx
|
|
CTest/cmCTestCurl.cxx
|
|
CTest/cmParseMumpsCoverage.cxx
|
|
CTest/cmParseCacheCoverage.cxx
|
|
CTest/cmParseGTMCoverage.cxx
|
|
CTest/cmParseJacocoCoverage.cxx
|
|
CTest/cmParseBlanketJSCoverage.cxx
|
|
CTest/cmParsePHPCoverage.cxx
|
|
CTest/cmParseCoberturaCoverage.cxx
|
|
CTest/cmParseDelphiCoverage.cxx
|
|
CTest/cmCTestEmptyBinaryDirectoryCommand.cxx
|
|
CTest/cmCTestGenericHandler.cxx
|
|
CTest/cmCTestHandlerCommand.cxx
|
|
CTest/cmCTestResourceAllocator.cxx
|
|
CTest/cmCTestResourceSpec.cxx
|
|
CTest/cmCTestLaunch.cxx
|
|
CTest/cmCTestMemCheckCommand.cxx
|
|
CTest/cmCTestMemCheckHandler.cxx
|
|
CTest/cmCTestMultiProcessHandler.cxx
|
|
CTest/cmCTestReadCustomFilesCommand.cxx
|
|
CTest/cmCTestResourceGroupsLexerHelper.cxx
|
|
CTest/cmCTestRunScriptCommand.cxx
|
|
CTest/cmCTestRunTest.cxx
|
|
CTest/cmCTestScriptHandler.cxx
|
|
CTest/cmCTestSleepCommand.cxx
|
|
CTest/cmCTestStartCommand.cxx
|
|
CTest/cmCTestSubmitCommand.cxx
|
|
CTest/cmCTestSubmitHandler.cxx
|
|
CTest/cmCTestTestCommand.cxx
|
|
CTest/cmCTestTestHandler.cxx
|
|
CTest/cmCTestUpdateCommand.cxx
|
|
CTest/cmCTestUpdateHandler.cxx
|
|
CTest/cmCTestUploadCommand.cxx
|
|
CTest/cmCTestUploadHandler.cxx
|
|
|
|
CTest/cmCTestVC.cxx
|
|
CTest/cmCTestVC.h
|
|
CTest/cmCTestGlobalVC.cxx
|
|
CTest/cmCTestGlobalVC.h
|
|
CTest/cmCTestCVS.cxx
|
|
CTest/cmCTestCVS.h
|
|
CTest/cmCTestSVN.cxx
|
|
CTest/cmCTestSVN.h
|
|
CTest/cmCTestBZR.cxx
|
|
CTest/cmCTestBZR.h
|
|
CTest/cmCTestGIT.cxx
|
|
CTest/cmCTestGIT.h
|
|
CTest/cmCTestHG.cxx
|
|
CTest/cmCTestHG.h
|
|
CTest/cmCTestP4.cxx
|
|
CTest/cmCTestP4.h
|
|
|
|
LexerParser/cmCTestResourceGroupsLexer.cxx
|
|
LexerParser/cmCTestResourceGroupsLexer.h
|
|
LexerParser/cmCTestResourceGroupsLexer.in.l
|
|
)
|
|
|
|
# Build CTestLib
|
|
add_library(CTestLib ${CTEST_SRCS})
|
|
target_link_libraries(CTestLib CMakeLib ${CMAKE_CURL_LIBRARIES})
|
|
|
|
#
|
|
# CPack
|
|
#
|
|
include_directories(
|
|
"${CMake_SOURCE_DIR}/Source/CPack"
|
|
)
|
|
#
|
|
# Sources for CPack
|
|
#
|
|
set(CPACK_SRCS
|
|
CPack/cmCPackArchiveGenerator.cxx
|
|
CPack/cmCPackComponentGroup.cxx
|
|
CPack/cmCPackDebGenerator.cxx
|
|
CPack/cmCPackExternalGenerator.cxx
|
|
CPack/cmCPackGeneratorFactory.cxx
|
|
CPack/cmCPackGenerator.cxx
|
|
CPack/cmCPackLog.cxx
|
|
CPack/cmCPackNSISGenerator.cxx
|
|
CPack/cmCPackNuGetGenerator.cxx
|
|
CPack/cmCPackSTGZGenerator.cxx
|
|
)
|
|
# CPack IFW generator
|
|
set(CPACK_SRCS ${CPACK_SRCS}
|
|
CPack/IFW/cmCPackIFWCommon.cxx
|
|
CPack/IFW/cmCPackIFWCommon.h
|
|
CPack/IFW/cmCPackIFWGenerator.cxx
|
|
CPack/IFW/cmCPackIFWGenerator.h
|
|
CPack/IFW/cmCPackIFWInstaller.cxx
|
|
CPack/IFW/cmCPackIFWInstaller.h
|
|
CPack/IFW/cmCPackIFWPackage.cxx
|
|
CPack/IFW/cmCPackIFWPackage.h
|
|
CPack/IFW/cmCPackIFWRepository.cxx
|
|
CPack/IFW/cmCPackIFWRepository.h
|
|
)
|
|
|
|
if(CYGWIN)
|
|
set(CPACK_SRCS ${CPACK_SRCS}
|
|
CPack/cmCPackCygwinBinaryGenerator.cxx
|
|
CPack/cmCPackCygwinSourceGenerator.cxx
|
|
)
|
|
endif()
|
|
|
|
option(CPACK_ENABLE_FREEBSD_PKG "Add FreeBSD pkg(8) generator to CPack." OFF)
|
|
|
|
if(UNIX)
|
|
set(CPACK_SRCS ${CPACK_SRCS}
|
|
CPack/cmCPackRPMGenerator.cxx
|
|
)
|
|
|
|
# Optionally, try to use pkg(8)
|
|
if(CPACK_ENABLE_FREEBSD_PKG)
|
|
# On UNIX, you may find FreeBSD's pkg(8) and attendant
|
|
# library -- it can be used on FreeBSD, Dragonfly, NetBSD,
|
|
# OpenBSD and also Linux and OSX. Look for the header and
|
|
# the library; it's a warning on FreeBSD if they're not
|
|
# found, and informational on other platforms.
|
|
find_path(FREEBSD_PKG_INCLUDE_DIRS "pkg.h")
|
|
if(FREEBSD_PKG_INCLUDE_DIRS)
|
|
find_library(FREEBSD_PKG_LIBRARIES
|
|
pkg
|
|
DOC "FreeBSD pkg(8) library")
|
|
if(FREEBSD_PKG_LIBRARIES)
|
|
set(CPACK_SRCS ${CPACK_SRCS}
|
|
CPack/cmCPackFreeBSDGenerator.cxx
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
if (NOT FREEBSD_PKG_INCLUDE_DIRS OR NOT FREEBSD_PKG_LIBRARIES)
|
|
message(FATAL_ERROR "CPack needs libpkg(3) to produce FreeBSD packages natively.")
|
|
endif()
|
|
else()
|
|
set(FREEBSD_PKG_INCLUDE_DIRS NOTFOUND)
|
|
set(FREEBSD_PKG_LIBRARIES NOTFOUND)
|
|
endif()
|
|
endif()
|
|
|
|
if(CYGWIN)
|
|
find_package(LibUUID)
|
|
endif()
|
|
if(WIN32 OR (CYGWIN AND LibUUID_FOUND))
|
|
set(CPACK_SRCS ${CPACK_SRCS}
|
|
CPack/WiX/cmCMakeToWixPath.cxx
|
|
CPack/WiX/cmCMakeToWixPath.h
|
|
CPack/WiX/cmCPackWIXGenerator.cxx
|
|
CPack/WiX/cmCPackWIXGenerator.h
|
|
CPack/WiX/cmWIXAccessControlList.cxx
|
|
CPack/WiX/cmWIXAccessControlList.h
|
|
CPack/WiX/cmWIXDirectoriesSourceWriter.cxx
|
|
CPack/WiX/cmWIXDirectoriesSourceWriter.h
|
|
CPack/WiX/cmWIXFeaturesSourceWriter.cxx
|
|
CPack/WiX/cmWIXFeaturesSourceWriter.h
|
|
CPack/WiX/cmWIXFilesSourceWriter.cxx
|
|
CPack/WiX/cmWIXFilesSourceWriter.h
|
|
CPack/WiX/cmWIXPatch.cxx
|
|
CPack/WiX/cmWIXPatch.h
|
|
CPack/WiX/cmWIXPatchParser.cxx
|
|
CPack/WiX/cmWIXPatchParser.h
|
|
CPack/WiX/cmWIXRichTextFormatWriter.cxx
|
|
CPack/WiX/cmWIXRichTextFormatWriter.h
|
|
CPack/WiX/cmWIXShortcut.cxx
|
|
CPack/WiX/cmWIXShortcut.h
|
|
CPack/WiX/cmWIXSourceWriter.cxx
|
|
CPack/WiX/cmWIXSourceWriter.h
|
|
)
|
|
endif()
|
|
|
|
if(APPLE)
|
|
set(CPACK_SRCS ${CPACK_SRCS}
|
|
CPack/cmCPackBundleGenerator.cxx
|
|
CPack/cmCPackDragNDropGenerator.cxx
|
|
CPack/cmCPackOSXX11Generator.cxx
|
|
CPack/cmCPackPKGGenerator.cxx
|
|
CPack/cmCPackPackageMakerGenerator.cxx
|
|
CPack/cmCPackProductBuildGenerator.cxx
|
|
)
|
|
endif()
|
|
|
|
# Build CPackLib
|
|
add_library(CPackLib ${CPACK_SRCS})
|
|
target_link_libraries(CPackLib CMakeLib)
|
|
if(APPLE)
|
|
# Some compilers produce errors in the CoreServices framework headers.
|
|
# Ideally such errors should be fixed by either the compiler vendor
|
|
# or the framework source, but we try to workaround it and build anyway.
|
|
# If it does not work, build with reduced functionality and warn.
|
|
check_include_file("CoreServices/CoreServices.h" HAVE_CoreServices)
|
|
if(HAVE_CoreServices)
|
|
set_property(SOURCE CPack/cmCPackDragNDropGenerator.cxx PROPERTY COMPILE_DEFINITIONS HAVE_CoreServices)
|
|
target_link_libraries(CPackLib "-framework CoreServices")
|
|
else()
|
|
message(WARNING "This compiler does not appear to support\n"
|
|
" #include <CoreServices/CoreServices.h>\n"
|
|
"Some CPack functionality may be limited.\n"
|
|
"See CMakeFiles/CMakeError.log for details of the failure.")
|
|
endif()
|
|
endif()
|
|
if(CYGWIN AND LibUUID_FOUND)
|
|
target_link_libraries(CPackLib ${LibUUID_LIBRARIES})
|
|
include_directories(CPackLib ${LibUUID_INCLUDE_DIRS})
|
|
set_property(SOURCE CPack/cmCPackGeneratorFactory.cxx PROPERTY COMPILE_DEFINITIONS HAVE_LIBUUID)
|
|
endif()
|
|
if(CPACK_ENABLE_FREEBSD_PKG AND FREEBSD_PKG_INCLUDE_DIRS AND FREEBSD_PKG_LIBRARIES)
|
|
target_link_libraries(CPackLib ${FREEBSD_PKG_LIBRARIES})
|
|
include_directories(${FREEBSD_PKG_INCLUDE_DIRS})
|
|
add_definitions(-DHAVE_FREEBSD_PKG)
|
|
endif()
|
|
|
|
if(APPLE)
|
|
add_executable(OSXScriptLauncher
|
|
CPack/OSXScriptLauncher.cxx)
|
|
target_link_libraries(OSXScriptLauncher cmsys)
|
|
target_link_libraries(OSXScriptLauncher "-framework CoreFoundation")
|
|
endif()
|
|
|
|
# Build CMake executable
|
|
add_executable(cmake cmakemain.cxx cmcmd.cxx cmcmd.h ${MANIFEST_FILE})
|
|
list(APPEND _tools cmake)
|
|
target_link_libraries(cmake CMakeLib)
|
|
|
|
add_library(CMakeServerLib
|
|
cmConnection.h cmConnection.cxx
|
|
cmFileMonitor.cxx cmFileMonitor.h
|
|
cmJsonObjectDictionary.h
|
|
cmJsonObjects.h
|
|
cmJsonObjects.cxx
|
|
cmPipeConnection.cxx cmPipeConnection.h
|
|
cmServer.cxx cmServer.h
|
|
cmServerConnection.cxx cmServerConnection.h
|
|
cmServerProtocol.cxx cmServerProtocol.h
|
|
)
|
|
target_link_libraries(CMakeServerLib CMakeLib)
|
|
target_link_libraries(cmake CMakeServerLib)
|
|
|
|
# Build CTest executable
|
|
add_executable(ctest ctest.cxx ${MANIFEST_FILE})
|
|
list(APPEND _tools ctest)
|
|
target_link_libraries(ctest CTestLib)
|
|
|
|
# Build CPack executable
|
|
add_executable(cpack CPack/cpack.cxx ${MANIFEST_FILE})
|
|
list(APPEND _tools cpack)
|
|
target_link_libraries(cpack CPackLib)
|
|
|
|
# Curses GUI
|
|
if(BUILD_CursesDialog)
|
|
add_subdirectory(CursesDialog)
|
|
endif()
|
|
|
|
# Qt GUI
|
|
option(BUILD_QtDialog "Build Qt dialog for CMake" FALSE)
|
|
if(BUILD_QtDialog)
|
|
add_subdirectory(QtDialog)
|
|
endif()
|
|
|
|
include (${CMake_BINARY_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
|
|
include (${CMake_SOURCE_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
|
|
|
|
if(WIN32)
|
|
# Compute the binary version that appears in the RC file. Version
|
|
# components in the RC file are 16-bit integers so we may have to
|
|
# split the patch component.
|
|
if(CMake_VERSION_PATCH MATCHES "^([0-9]+)([0-9][0-9][0-9][0-9])$")
|
|
set(CMake_RCVERSION_YEAR "${CMAKE_MATCH_1}")
|
|
set(CMake_RCVERSION_MONTH_DAY "${CMAKE_MATCH_2}")
|
|
string(REGEX REPLACE "^0+" "" CMake_RCVERSION_MONTH_DAY "${CMake_RCVERSION_MONTH_DAY}")
|
|
set(CMake_RCVERSION ${CMake_VERSION_MAJOR},${CMake_VERSION_MINOR},${CMake_RCVERSION_YEAR},${CMake_RCVERSION_MONTH_DAY})
|
|
unset(CMake_RCVERSION_MONTH_DAY)
|
|
unset(CMake_RCVERSION_YEAR)
|
|
else()
|
|
set(CMake_RCVERSION ${CMake_VERSION_MAJOR},${CMake_VERSION_MINOR},${CMake_VERSION_PATCH},0)
|
|
endif()
|
|
set(CMake_RCVERSION_STR ${CMake_VERSION})
|
|
|
|
# Add Windows executable version information.
|
|
configure_file("CMakeVersion.rc.in" "CMakeVersion.rc" @ONLY)
|
|
|
|
# We use a separate object library for this to work around a limitation of
|
|
# MinGW's windres tool with spaces in the path to the include directories.
|
|
add_library(CMakeVersion OBJECT "${CMAKE_CURRENT_BINARY_DIR}/CMakeVersion.rc")
|
|
set_property(TARGET CMakeVersion PROPERTY INCLUDE_DIRECTORIES "")
|
|
foreach(_tool ${_tools})
|
|
target_sources(${_tool} PRIVATE $<TARGET_OBJECTS:CMakeVersion>)
|
|
endforeach()
|
|
endif()
|
|
|
|
if(CMake_JOB_POOL_LINK_BIN)
|
|
set_property(TARGET ${_tools} PROPERTY JOB_POOL_LINK "link-bin")
|
|
set_property(GLOBAL APPEND PROPERTY JOB_POOLS "link-bin=${CMake_JOB_POOL_LINK_BIN}")
|
|
endif()
|
|
|
|
# Install tools
|
|
|
|
foreach(_tool ${_tools})
|
|
CMake_OPTIONAL_COMPONENT(${_tool})
|
|
install(TARGETS ${_tool} DESTINATION ${CMAKE_BIN_DIR} ${COMPONENT})
|
|
endforeach()
|
|
|
|
install(FILES cmCPluginAPI.h DESTINATION ${CMAKE_DATA_DIR}/include)
|
|
|
|
# Unset temporary variables
|
|
unset(_tools)
|