| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507 |
- #=============================================================================
- # 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
- 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
- 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
- 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
- cmExtraEclipseCDT4Generator.cxx
- cmExtraEclipseCDT4Generator.h
- cmFileTimeComparison.cxx
- cmFileTimeComparison.h
- cmGeneratedFileStream.cxx
- cmGeneratorExpression.cxx
- cmGeneratorExpression.h
- cmGlobalGenerator.cxx
- cmGlobalGenerator.h
- cmGlobalUnixMakefileGenerator3.cxx
- cmGlobalUnixMakefileGenerator3.h
- cmGraphAdjacencyList.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)
- IF(NOT CYGWIN)
- SET(SRCS ${SRCS} cmExtraCodeBlocksGenerator.cxx)
- ENDIF(NOT CYGWIN)
- # 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 Carbon
- 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/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/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(WIN32 AND UNIX)
- SET(CPACK_SRCS ${CPACK_SRCS}
- CPack/cmCPackCygwinBinaryGenerator.cxx
- CPack/cmCPackCygwinSourceGenerator.cxx
- )
- ENDIF(WIN32 AND UNIX)
-
- 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 Carbon")
- 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)
|