diff options
Diffstat (limited to 'Source/CMakeLists.txt')
-rw-r--r-- | Source/CMakeLists.txt | 515 |
1 files changed, 515 insertions, 0 deletions
diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt new file mode 100644 index 0000000..ca063d5 --- /dev/null +++ b/Source/CMakeLists.txt @@ -0,0 +1,515 @@ +#============================================================================= +# CMake - Cross Platform Makefile Generator +# Copyright 2000-2009 Kitware, Inc., Insight Software Consortium +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +INCLUDE(CheckIncludeFile) +# Check if we can build support for ELF parsing. +CHECK_INCLUDE_FILE("elf.h" HAVE_ELF_H) +IF(HAVE_ELF_H) + SET(CMAKE_USE_ELF_PARSER 1) +ELSE(HAVE_ELF_H) + SET(CMAKE_USE_ELF_PARSER) +ENDIF(HAVE_ELF_H) + +SET(EXECUTABLE_OUTPUT_PATH ${CMake_BIN_DIR}) + +# 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" + ) + +# add the include path to find the .h +INCLUDE_DIRECTORIES( + "${CMake_BINARY_DIR}/Source" + "${CMake_SOURCE_DIR}/Source" + ${CMAKE_ZLIB_INCLUDES} + ${CMAKE_EXPAT_INCLUDES} + ${CMAKE_TAR_INCLUDES} + ${CMAKE_COMPRESS_INCLUDES} + ) + +# let cmake know it is supposed to use it +ADD_DEFINITIONS(-DCMAKE_BUILD_WITH_CMAKE) + +OPTION(CMAKE_REGENERATE_YACCLEX + "Regenerate YACC and LEXX files" OFF) +MARK_AS_ADVANCED(CMAKE_REGENERATE_YACCLEX) +IF(CMAKE_REGENERATE_YACCLEX) + SET(parsersLexers cmDependsFortran cmCommandArgument cmExpr) + FIND_PROGRAM(YACC_EXECUTABLE + NAMES yacc bison + PATHS /usr/bin + DOC "Yacc or Bison executable") + FIND_PROGRAM(FLEX_EXECUTABLE + NAMES flex + PATHS /usr/bin + DOC "Flex executable") + MARK_AS_ADVANCED(YACC_EXECUTABLE FLEX_EXECUTABLE) + IF(YACC_EXECUTABLE) + SET(BISON_FLAGS) + IF(YACC_EXECUTABLE MATCHES "bison") + SET(BISON_FLAGS "--yacc") + ENDIF(YACC_EXECUTABLE MATCHES "bison") + SET(yacc_files) + FOREACH(name ${parsersLexers}) + SET(src "${CMAKE_CURRENT_SOURCE_DIR}/${name}Parser.y") + SET(dst "${CMAKE_CURRENT_BINARY_DIR}/${name}Parser.cxx") + SET(hdr "${CMAKE_CURRENT_BINARY_DIR}/${name}ParserTokens.h") + ADD_CUSTOM_COMMAND( + OUTPUT "${dst}" + DEPENDS "${src}" + COMMAND + ${YACC_EXECUTABLE} + --name-prefix=${name}_yy --defines=${hdr} -o${dst} ${src} + ) + SET(yacc_files ${yacc_files} "${dst}") + ENDFOREACH(name) + ADD_CUSTOM_TARGET(RerunYacc DEPENDS ${yacc_files}) + ENDIF(YACC_EXECUTABLE) + IF(FLEX_EXECUTABLE) + SET(lex_files) + FOREACH(name ${parsersLexers}) + SET(src "${CMAKE_CURRENT_SOURCE_DIR}/${name}Lexer.in.l") + SET(dst "${CMAKE_CURRENT_BINARY_DIR}/${name}Lexer.cxx") + SET(hdr "${CMAKE_CURRENT_BINARY_DIR}/${name}Lexer.h") + ADD_CUSTOM_COMMAND( + OUTPUT "${dst}" + DEPENDS "${src}" + COMMAND + ${FLEX_EXECUTABLE} + --prefix=${name}_yy --header-file=${hdr} -o${dst} ${src} + ) + SET(lex_files ${lex_files} "${dst}") + ENDFOREACH(name) + ADD_CUSTOM_TARGET(RerunLex DEPENDS ${lex_files}) + ENDIF(FLEX_EXECUTABLE) + +ENDIF(CMAKE_REGENERATE_YACCLEX) + +# Check if we can build the ELF parser. +IF(CMAKE_USE_ELF_PARSER) + SET(ELF_SRCS cmELF.h cmELF.cxx) +ENDIF(CMAKE_USE_ELF_PARSER) + +# +# Sources for CMakeLib +# +SET(SRCS + cmStandardIncludes.cxx + cmArchiveWrite.cxx + cmBootstrapCommands.cxx + cmCacheManager.cxx + cmCacheManager.h + cmCommands.cxx + cmCommands.h + cmCommandArgumentLexer.cxx + cmCommandArgumentParser.cxx + cmCommandArgumentParserHelper.cxx + cmComputeComponentGraph.cxx + cmComputeComponentGraph.h + cmComputeLinkDepends.cxx + cmComputeLinkDepends.h + cmComputeLinkInformation.cxx + cmComputeLinkInformation.h + cmComputeTargetDepends.h + cmComputeTargetDepends.cxx + cmCustomCommand.cxx + cmCustomCommand.h + cmCustomCommandGenerator.cxx + cmCustomCommandGenerator.h + cmDefinitions.cxx + cmDefinitions.h + cmDepends.cxx + cmDepends.h + cmDependsC.cxx + cmDependsC.h + cmDependsFortran.cxx + cmDependsFortran.h + cmDependsFortranLexer.cxx + cmDependsFortranParser.cxx + cmDependsFortranParser.h + cmDependsJava.cxx + cmDependsJava.h + cmDependsJavaLexer.cxx + cmDependsJavaParser.cxx + cmDependsJavaParserHelper.cxx + cmDependsJavaParserHelper.h + cmDocumentation.cxx + cmDocumentationFormatter.cxx + cmDocumentationFormatterHTML.cxx + cmDocumentationFormatterDocbook.cxx + cmDocumentationFormatterMan.cxx + cmDocumentationFormatterText.cxx + cmDocumentationFormatterUsage.cxx + cmDocumentationSection.cxx + cmDocumentCompileDefinitions.h + cmDocumentGeneratorExpressions.h + cmDocumentVariables.cxx + cmDynamicLoader.cxx + cmDynamicLoader.h + ${ELF_SRCS} + cmExprLexer.cxx + cmExprParser.cxx + cmExprParserHelper.cxx + cmExportBuildFileGenerator.h + cmExportBuildFileGenerator.cxx + cmExportFileGenerator.h + cmExportFileGenerator.cxx + cmExportInstallFileGenerator.h + cmExportInstallFileGenerator.cxx + cmExtraCodeBlocksGenerator.cxx + cmExtraCodeBlocksGenerator.h + cmExtraEclipseCDT4Generator.cxx + cmExtraEclipseCDT4Generator.h + cmFileTimeComparison.cxx + cmFileTimeComparison.h + cmGeneratedFileStream.cxx + cmGeneratorExpression.cxx + cmGeneratorExpression.h + cmGlobalGenerator.cxx + cmGlobalGenerator.h + cmGlobalUnixMakefileGenerator3.cxx + cmGlobalUnixMakefileGenerator3.h + cmGraphAdjacencyList.h + cmGraphVizWriter.cxx + cmGraphVizWriter.h + cmInstallGenerator.h + cmInstallGenerator.cxx + cmInstallExportGenerator.cxx + cmInstallFilesGenerator.h + cmInstallFilesGenerator.cxx + cmInstallScriptGenerator.h + cmInstallScriptGenerator.cxx + cmInstallTargetGenerator.h + cmInstallTargetGenerator.cxx + cmInstallDirectoryGenerator.h + cmInstallDirectoryGenerator.cxx + cmListFileCache.cxx + cmListFileCache.h + cmListFileLexer.c + cmLocalGenerator.cxx + cmLocalGenerator.h + cmLocalUnixMakefileGenerator3.cxx + cmMakeDepend.cxx + cmMakeDepend.h + cmMakefile.cxx + cmMakefile.h + cmMakefileTargetGenerator.cxx + cmMakefileExecutableTargetGenerator.cxx + cmMakefileLibraryTargetGenerator.cxx + cmMakefileUtilityTargetGenerator.cxx + cmOrderDirectories.cxx + cmOrderDirectories.h + cmPolicies.h + cmPolicies.cxx + cmProcessTools.cxx + cmProcessTools.h + cmProperty.cxx + cmProperty.h + cmPropertyDefinition.cxx + cmPropertyDefinition.h + cmPropertyDefinitionMap.cxx + cmPropertyDefinitionMap.h + cmPropertyMap.cxx + cmPropertyMap.h + cmScriptGenerator.h + cmScriptGenerator.cxx + cmSourceFile.cxx + cmSourceFile.h + cmSourceFileLocation.cxx + cmSourceFileLocation.h + cmSourceGroup.cxx + cmSourceGroup.h + cmSystemTools.cxx + cmSystemTools.h + cmTarget.cxx + cmTarget.h + cmTest.cxx + cmTest.h + cmTestGenerator.cxx + cmTestGenerator.h + cmVariableWatch.cxx + cmVariableWatch.h + cmVersion.cxx + cmVersion.h + cmXMLParser.cxx + cmXMLParser.h + cmXMLSafe.cxx + cmXMLSafe.h + cmake.cxx + cmake.h + cmakewizard.cxx + cmakewizard.h + + cm_utf8.h + cm_utf8.c + ) + +# Kdevelop only works on UNIX and not windows +IF(UNIX) + SET(SRCS ${SRCS} cmGlobalKdevelopGenerator.cxx) +ENDIF(UNIX) + +# Xcode only works on Apple +IF(APPLE) + SET(SRCS ${SRCS} + cmXCodeObject.cxx + cmXCode21Object.cxx + cmGlobalXCodeGenerator.cxx + cmGlobalXCodeGenerator.h + cmLocalXCodeGenerator.cxx + cmLocalXCodeGenerator.h) +ENDIF(APPLE) + + +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 + cmGlobalVisualStudio6Generator.cxx + cmGlobalVisualStudio6Generator.h + cmGlobalVisualStudio71Generator.cxx + cmGlobalVisualStudio71Generator.h + cmGlobalVisualStudio7Generator.cxx + cmGlobalVisualStudio7Generator.h + cmGlobalVisualStudio8Generator.cxx + cmGlobalVisualStudio8Generator.h + cmGlobalVisualStudio9Generator.cxx + cmGlobalVisualStudio9Generator.h + cmGlobalVisualStudio8Win64Generator.cxx + cmGlobalVisualStudio8Win64Generator.h + cmGlobalVisualStudio9Win64Generator.cxx + cmGlobalVisualStudio9Win64Generator.h + cmVisualStudioGeneratorOptions.h + cmVisualStudioGeneratorOptions.cxx + cmVisualStudio10TargetGenerator.h + cmVisualStudio10TargetGenerator.cxx + cmLocalVisualStudio10Generator.cxx + cmLocalVisualStudio10Generator.h + cmGlobalVisualStudio10Generator.h + cmGlobalVisualStudio10Generator.cxx + cmGlobalVisualStudio10Win64Generator.h + cmGlobalVisualStudio10Win64Generator.cxx + cmGlobalVisualStudioGenerator.cxx + cmGlobalVisualStudioGenerator.h + cmGlobalWatcomWMakeGenerator.cxx + cmIDEFlagTable.h + cmIDEOptions.cxx + cmIDEOptions.h + cmLocalVisualStudio6Generator.cxx + cmLocalVisualStudio6Generator.h + cmLocalVisualStudio7Generator.cxx + cmLocalVisualStudio7Generator.h + cmLocalVisualStudioGenerator.cxx + cmLocalVisualStudioGenerator.h + cmWin32ProcessExecution.cxx + cmWin32ProcessExecution.h + ) + ENDIF(NOT UNIX) +ENDIF (WIN32) + +# create a library used by the command line and the GUI +ADD_LIBRARY(CMakeLib ${SRCS}) +TARGET_LINK_LIBRARIES(CMakeLib cmsys + ${CMAKE_EXPAT_LIBRARIES} ${CMAKE_ZLIB_LIBRARIES} + ${CMAKE_TAR_LIBRARIES} ${CMAKE_COMPRESS_LIBRARIES} + ${CMAKE_CURL_LIBRARIES} ) + +# On Apple we need CoreFoundation +IF(APPLE) + TARGET_LINK_LIBRARIES(CMakeLib "-framework CoreFoundation") +ENDIF(APPLE) + +# On some platforms we need the rpcrt4 library for the VS 7 generators. +IF(CMAKE_BUILD_ON_VISUAL_STUDIO OR MINGW) + TARGET_LINK_LIBRARIES(CMakeLib rpcrt4) +ENDIF(CMAKE_BUILD_ON_VISUAL_STUDIO OR MINGW) + +# +# CTestLib +# +INCLUDE_DIRECTORIES( + "${CMake_SOURCE_DIR}/Source/CTest" + ${CMAKE_XMLRPC_INCLUDES} + ${CMAKE_CURL_INCLUDES} + ) +# +# Sources for CTestLib +# +SET(CTEST_SRCS cmCTest.cxx + CTest/cmProcess.cxx + CTest/cmCTestBatchTestHandler.cxx + CTest/cmCTestBuildAndTestHandler.cxx + CTest/cmCTestBuildCommand.cxx + CTest/cmCTestBuildHandler.cxx + CTest/cmCTestConfigureCommand.cxx + CTest/cmCTestConfigureHandler.cxx + CTest/cmCTestCoverageCommand.cxx + CTest/cmCTestCoverageHandler.cxx + CTest/cmParsePHPCoverage.cxx + CTest/cmCTestEmptyBinaryDirectoryCommand.cxx + CTest/cmCTestGenericHandler.cxx + CTest/cmCTestHandlerCommand.cxx + CTest/cmCTestLaunch.cxx + CTest/cmCTestMemCheckCommand.cxx + CTest/cmCTestMemCheckHandler.cxx + CTest/cmCTestMultiProcessHandler.cxx + CTest/cmCTestReadCustomFilesCommand.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 + ) + +# Build CTestLib +ADD_LIBRARY(CTestLib ${CTEST_SRCS}) +TARGET_LINK_LIBRARIES(CTestLib CMakeLib ${CMAKE_CURL_LIBRARIES} ${CMAKE_XMLRPC_LIBRARIES}) + +# +# Sources for CPack +# +SET(CPACK_SRCS + CPack/cmCPackArchiveGenerator.cxx + CPack/cmCPackComponentGroup.cxx + CPack/cmCPackGeneratorFactory.cxx + CPack/cmCPackGenerator.cxx + CPack/cmCPackLog.cxx + CPack/cmCPackNSISGenerator.cxx + CPack/cmCPackSTGZGenerator.cxx + CPack/cmCPackTGZGenerator.cxx + CPack/cmCPackTarBZip2Generator.cxx + CPack/cmCPackTarCompressGenerator.cxx + CPack/cmCPackZIPGenerator.cxx + ) + +IF(CYGWIN) + SET(CPACK_SRCS ${CPACK_SRCS} + CPack/cmCPackCygwinBinaryGenerator.cxx + CPack/cmCPackCygwinSourceGenerator.cxx + ) +ENDIF(CYGWIN) + +IF(UNIX) + SET(CPACK_SRCS ${CPACK_SRCS} + CPack/cmCPackDebGenerator.cxx + CPack/cmCPackRPMGenerator.cxx + ) +ENDIF(UNIX) + +IF(APPLE) + SET(CPACK_SRCS ${CPACK_SRCS} + CPack/cmCPackBundleGenerator.cxx + CPack/cmCPackDragNDropGenerator.cxx + CPack/cmCPackOSXX11Generator.cxx + CPack/cmCPackPackageMakerGenerator.cxx + ) +ENDIF(APPLE) + +# Build CPackLib +ADD_LIBRARY(CPackLib ${CPACK_SRCS}) +TARGET_LINK_LIBRARIES(CPackLib CMakeLib) + +IF(APPLE) + ADD_EXECUTABLE(cmakexbuild cmakexbuild.cxx) + TARGET_LINK_LIBRARIES(cmakexbuild CMakeLib) + ADD_EXECUTABLE(OSXScriptLauncher + CPack/OSXScriptLauncher.cxx) + TARGET_LINK_LIBRARIES(OSXScriptLauncher cmsys) + TARGET_LINK_LIBRARIES(OSXScriptLauncher "-framework CoreFoundation") +ENDIF(APPLE) + +# Build CMake executable +ADD_EXECUTABLE(cmake cmakemain.cxx) +TARGET_LINK_LIBRARIES(cmake CMakeLib) + +# Build special executable for running programs on Windows 98 +IF(WIN32) + IF(NOT UNIX) + ADD_EXECUTABLE(cmw9xcom cmw9xcom.cxx) + TARGET_LINK_LIBRARIES(cmw9xcom CMakeLib) + INSTALL_TARGETS(/bin cmw9xcom) + ENDIF(NOT UNIX) +ENDIF(WIN32) + +# Build CTest executable +ADD_EXECUTABLE(ctest ctest.cxx) +TARGET_LINK_LIBRARIES(ctest CTestLib) + +# Build CPack executable +ADD_EXECUTABLE(cpack CPack/cpack.cxx) +TARGET_LINK_LIBRARIES(cpack CPackLib) + +# Curses GUI +IF(BUILD_CursesDialog) + INCLUDE(${CMake_SOURCE_DIR}/Source/CursesDialog/CMakeLists.txt) +ENDIF(BUILD_CursesDialog) + +# Qt GUI +OPTION(BUILD_QtDialog "Build Qt dialog for CMake" FALSE) +IF(BUILD_QtDialog) + SUBDIRS(QtDialog) +ENDIF(BUILD_QtDialog) + +INCLUDE (${CMake_BINARY_DIR}/Source/LocalUserOptions.cmake OPTIONAL) +INCLUDE (${CMake_SOURCE_DIR}/Source/LocalUserOptions.cmake OPTIONAL) + +INSTALL_TARGETS(/bin cmake) +INSTALL_TARGETS(/bin ctest) +INSTALL_TARGETS(/bin cpack) +IF(APPLE) + INSTALL_TARGETS(/bin cmakexbuild) +ENDIF(APPLE) + +INSTALL_FILES(${CMAKE_DATA_DIR}/include cmCPluginAPI.h) |