1 #=============================================================================
2 # CMake - Cross Platform Makefile Generator
3 # Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
5 # Distributed under the OSI-approved BSD License (the "License");
6 # see accompanying file Copyright.txt for details.
8 # This software is distributed WITHOUT ANY WARRANTY; without even the
9 # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10 # See the License for more information.
11 #=============================================================================
12 INCLUDE(CheckIncludeFile)
13 # Check if we can build support for ELF parsing.
14 CHECK_INCLUDE_FILE("elf.h" HAVE_ELF_H)
16 SET(CMAKE_USE_ELF_PARSER 1)
18 SET(CMAKE_USE_ELF_PARSER)
21 SET(EXECUTABLE_OUTPUT_PATH ${CMake_BIN_DIR})
23 # configure the .h file
25 "${CMake_SOURCE_DIR}/Source/cmConfigure.cmake.h.in"
26 "${CMake_BINARY_DIR}/Source/cmConfigure.h"
29 "${CMake_SOURCE_DIR}/Source/cmVersionConfig.h.in"
30 "${CMake_BINARY_DIR}/Source/cmVersionConfig.h"
33 "${CMake_SOURCE_DIR}/Source/CPack/cmCPackConfigure.h.in"
34 "${CMake_BINARY_DIR}/Source/CPack/cmCPackConfigure.h"
37 # add the include path to find the .h
39 "${CMake_BINARY_DIR}/Source"
40 "${CMake_SOURCE_DIR}/Source"
41 ${CMAKE_ZLIB_INCLUDES}
42 ${CMAKE_EXPAT_INCLUDES}
44 ${CMAKE_COMPRESS_INCLUDES}
47 # let cmake know it is supposed to use it
48 ADD_DEFINITIONS(-DCMAKE_BUILD_WITH_CMAKE)
50 OPTION(CMAKE_REGENERATE_YACCLEX
51 "Regenerate YACC and LEXX files" OFF)
52 MARK_AS_ADVANCED(CMAKE_REGENERATE_YACCLEX)
53 IF(CMAKE_REGENERATE_YACCLEX)
54 SET(parsersLexers cmDependsFortran cmCommandArgument cmExpr)
55 FIND_PROGRAM(YACC_EXECUTABLE
58 DOC "Yacc or Bison executable")
59 FIND_PROGRAM(FLEX_EXECUTABLE
62 DOC "Flex executable")
63 MARK_AS_ADVANCED(YACC_EXECUTABLE FLEX_EXECUTABLE)
66 IF(YACC_EXECUTABLE MATCHES "bison")
67 SET(BISON_FLAGS "--yacc")
68 ENDIF(YACC_EXECUTABLE MATCHES "bison")
70 FOREACH(name ${parsersLexers})
71 SET(src "${CMAKE_CURRENT_SOURCE_DIR}/${name}Parser.y")
72 SET(dst "${CMAKE_CURRENT_BINARY_DIR}/${name}Parser.cxx")
73 SET(hdr "${CMAKE_CURRENT_BINARY_DIR}/${name}ParserTokens.h")
79 --name-prefix=${name}_yy --defines=${hdr} -o${dst} ${src}
81 SET(yacc_files ${yacc_files} "${dst}")
83 ADD_CUSTOM_TARGET(RerunYacc DEPENDS ${yacc_files})
84 ENDIF(YACC_EXECUTABLE)
87 FOREACH(name ${parsersLexers})
88 SET(src "${CMAKE_CURRENT_SOURCE_DIR}/${name}Lexer.in.l")
89 SET(dst "${CMAKE_CURRENT_BINARY_DIR}/${name}Lexer.cxx")
90 SET(hdr "${CMAKE_CURRENT_BINARY_DIR}/${name}Lexer.h")
96 --prefix=${name}_yy --header-file=${hdr} -o${dst} ${src}
98 SET(lex_files ${lex_files} "${dst}")
100 ADD_CUSTOM_TARGET(RerunLex DEPENDS ${lex_files})
101 ENDIF(FLEX_EXECUTABLE)
103 ENDIF(CMAKE_REGENERATE_YACCLEX)
105 # Check if we can build the ELF parser.
106 IF(CMAKE_USE_ELF_PARSER)
107 SET(ELF_SRCS cmELF.h cmELF.cxx)
108 ENDIF(CMAKE_USE_ELF_PARSER)
111 # Sources for CMakeLib
114 cmStandardIncludes.cxx
116 cmBootstrapCommands.cxx
121 cmCommandArgumentLexer.cxx
122 cmCommandArgumentParser.cxx
123 cmCommandArgumentParserHelper.cxx
124 cmComputeComponentGraph.cxx
125 cmComputeComponentGraph.h
126 cmComputeLinkDepends.cxx
127 cmComputeLinkDepends.h
128 cmComputeLinkInformation.cxx
129 cmComputeLinkInformation.h
130 cmComputeTargetDepends.h
131 cmComputeTargetDepends.cxx
136 cmCustomCommandGenerator.cxx
137 cmCustomCommandGenerator.h
146 cmDependsFortranLexer.cxx
147 cmDependsFortranParser.cxx
148 cmDependsFortranParser.h
151 cmDependsJavaLexer.cxx
152 cmDependsJavaParser.cxx
153 cmDependsJavaParserHelper.cxx
154 cmDependsJavaParserHelper.h
156 cmDocumentationFormatter.cxx
157 cmDocumentationFormatterHTML.cxx
158 cmDocumentationFormatterDocbook.cxx
159 cmDocumentationFormatterMan.cxx
160 cmDocumentationFormatterText.cxx
161 cmDocumentationFormatterUsage.cxx
162 cmDocumentationSection.cxx
163 cmDocumentCompileDefinitions.h
164 cmDocumentGeneratorExpressions.h
165 cmDocumentLocationUndefined.h
166 cmDocumentVariables.cxx
172 cmExprParserHelper.cxx
173 cmExportBuildFileGenerator.h
174 cmExportBuildFileGenerator.cxx
175 cmExportFileGenerator.h
176 cmExportFileGenerator.cxx
177 cmExportInstallFileGenerator.h
178 cmExportInstallFileGenerator.cxx
179 cmExtraCodeBlocksGenerator.cxx
180 cmExtraCodeBlocksGenerator.h
181 cmExtraEclipseCDT4Generator.cxx
182 cmExtraEclipseCDT4Generator.h
183 cmFileTimeComparison.cxx
184 cmFileTimeComparison.h
185 cmGeneratedFileStream.cxx
186 cmGeneratorExpression.cxx
187 cmGeneratorExpression.h
188 cmGeneratorTarget.cxx
190 cmGlobalGenerator.cxx
192 cmGlobalUnixMakefileGenerator3.cxx
193 cmGlobalUnixMakefileGenerator3.h
194 cmGraphAdjacencyList.h
198 cmInstallGenerator.cxx
199 cmInstallExportGenerator.cxx
200 cmInstallFilesGenerator.h
201 cmInstallFilesGenerator.cxx
202 cmInstallScriptGenerator.h
203 cmInstallScriptGenerator.cxx
204 cmInstallTargetGenerator.h
205 cmInstallTargetGenerator.cxx
206 cmInstallDirectoryGenerator.h
207 cmInstallDirectoryGenerator.cxx
213 cmLocalUnixMakefileGenerator3.cxx
218 cmMakefileTargetGenerator.cxx
219 cmMakefileExecutableTargetGenerator.cxx
220 cmMakefileLibraryTargetGenerator.cxx
221 cmMakefileUtilityTargetGenerator.cxx
222 cmOSXBundleGenerator.cxx
223 cmOSXBundleGenerator.h
226 cmOrderDirectories.cxx
234 cmPropertyDefinition.cxx
235 cmPropertyDefinition.h
236 cmPropertyDefinitionMap.cxx
237 cmPropertyDefinitionMap.h
243 cmScriptGenerator.cxx
246 cmSourceFileLocation.cxx
247 cmSourceFileLocation.h
277 # Kdevelop only works on UNIX and not windows
279 SET(SRCS ${SRCS} cmGlobalKdevelopGenerator.cxx)
282 # Xcode only works on Apple
287 cmGlobalXCodeGenerator.cxx
288 cmGlobalXCodeGenerator.h
289 cmLocalXCodeGenerator.cxx
290 cmLocalXCodeGenerator.h)
296 cmCallVisualStudioMacro.cxx
297 cmCallVisualStudioMacro.h
302 cmGlobalBorlandMakefileGenerator.cxx
303 cmGlobalBorlandMakefileGenerator.h
304 cmGlobalMSYSMakefileGenerator.cxx
305 cmGlobalMinGWMakefileGenerator.cxx
306 cmGlobalNMakeMakefileGenerator.cxx
307 cmGlobalNMakeMakefileGenerator.h
308 cmGlobalJOMMakefileGenerator.cxx
309 cmGlobalJOMMakefileGenerator.h
310 cmGlobalVisualStudio6Generator.cxx
311 cmGlobalVisualStudio6Generator.h
312 cmGlobalVisualStudio71Generator.cxx
313 cmGlobalVisualStudio71Generator.h
314 cmGlobalVisualStudio7Generator.cxx
315 cmGlobalVisualStudio7Generator.h
316 cmGlobalVisualStudio8Generator.cxx
317 cmGlobalVisualStudio8Generator.h
318 cmGlobalVisualStudio9Generator.cxx
319 cmGlobalVisualStudio9Generator.h
320 cmGlobalVisualStudio8Win64Generator.cxx
321 cmGlobalVisualStudio8Win64Generator.h
322 cmGlobalVisualStudio9Win64Generator.cxx
323 cmGlobalVisualStudio9Win64Generator.h
324 cmGlobalVisualStudio9IA64Generator.cxx
325 cmGlobalVisualStudio9IA64Generator.h
326 cmVisualStudioGeneratorOptions.h
327 cmVisualStudioGeneratorOptions.cxx
328 cmVisualStudio10TargetGenerator.h
329 cmVisualStudio10TargetGenerator.cxx
330 cmLocalVisualStudio10Generator.cxx
331 cmLocalVisualStudio10Generator.h
332 cmGlobalVisualStudio10Generator.h
333 cmGlobalVisualStudio10Generator.cxx
334 cmGlobalVisualStudio10Win64Generator.h
335 cmGlobalVisualStudio10Win64Generator.cxx
336 cmGlobalVisualStudio10IA64Generator.h
337 cmGlobalVisualStudio10IA64Generator.cxx
338 cmGlobalVisualStudio11Generator.h
339 cmGlobalVisualStudio11Generator.cxx
340 cmGlobalVisualStudio11Win64Generator.h
341 cmGlobalVisualStudio11Win64Generator.cxx
342 cmGlobalVisualStudio11ARMGenerator.h
343 cmGlobalVisualStudio11ARMGenerator.cxx
344 cmGlobalVisualStudioGenerator.cxx
345 cmGlobalVisualStudioGenerator.h
346 cmGlobalWatcomWMakeGenerator.cxx
350 cmLocalVisualStudio6Generator.cxx
351 cmLocalVisualStudio6Generator.h
352 cmLocalVisualStudio7Generator.cxx
353 cmLocalVisualStudio7Generator.h
354 cmLocalVisualStudioGenerator.cxx
355 cmLocalVisualStudioGenerator.h
356 cmWin32ProcessExecution.cxx
357 cmWin32ProcessExecution.h
364 cmGlobalNinjaGenerator.cxx
365 cmGlobalNinjaGenerator.h
367 cmLocalNinjaGenerator.cxx
368 cmLocalNinjaGenerator.h
369 cmNinjaTargetGenerator.cxx
370 cmNinjaTargetGenerator.h
371 cmNinjaNormalTargetGenerator.cxx
372 cmNinjaNormalTargetGenerator.h
373 cmNinjaUtilityTargetGenerator.cxx
374 cmNinjaUtilityTargetGenerator.h
376 IF(WIN32 AND NOT CYGWIN AND NOT BORLAND)
377 SET_SOURCE_FILES_PROPERTIES(cmcldeps.cxx PROPERTIES COMPILE_DEFINITIONS _WIN32_WINNT=0x0501)
378 ADD_EXECUTABLE(cmcldeps cmcldeps.cxx)
379 TARGET_LINK_LIBRARIES(cmcldeps CMakeLib)
380 INSTALL_TARGETS(/bin cmcldeps)
383 # create a library used by the command line and the GUI
384 ADD_LIBRARY(CMakeLib ${SRCS})
385 TARGET_LINK_LIBRARIES(CMakeLib cmsys
386 ${CMAKE_EXPAT_LIBRARIES} ${CMAKE_ZLIB_LIBRARIES}
387 ${CMAKE_TAR_LIBRARIES} ${CMAKE_COMPRESS_LIBRARIES}
388 ${CMAKE_CURL_LIBRARIES} )
390 # On Apple we need CoreFoundation
392 TARGET_LINK_LIBRARIES(CMakeLib "-framework CoreFoundation")
395 # On some platforms we need the rpcrt4 library for the VS 7 generators.
396 IF(CMAKE_BUILD_ON_VISUAL_STUDIO OR MINGW)
397 TARGET_LINK_LIBRARIES(CMakeLib rpcrt4)
398 ENDIF(CMAKE_BUILD_ON_VISUAL_STUDIO OR MINGW)
404 "${CMake_SOURCE_DIR}/Source/CTest"
405 ${CMAKE_XMLRPC_INCLUDES}
406 ${CMAKE_CURL_INCLUDES}
409 # Sources for CTestLib
411 SET(CTEST_SRCS cmCTest.cxx
413 CTest/cmCTestBatchTestHandler.cxx
414 CTest/cmCTestBuildAndTestHandler.cxx
415 CTest/cmCTestBuildCommand.cxx
416 CTest/cmCTestBuildHandler.cxx
417 CTest/cmCTestConfigureCommand.cxx
418 CTest/cmCTestConfigureHandler.cxx
419 CTest/cmCTestCoverageCommand.cxx
420 CTest/cmCTestCoverageHandler.cxx
421 CTest/cmParseMumpsCoverage.cxx
422 CTest/cmParseCacheCoverage.cxx
423 CTest/cmParseGTMCoverage.cxx
424 CTest/cmParsePHPCoverage.cxx
425 CTest/cmCTestEmptyBinaryDirectoryCommand.cxx
426 CTest/cmCTestGenericHandler.cxx
427 CTest/cmCTestHandlerCommand.cxx
428 CTest/cmCTestLaunch.cxx
429 CTest/cmCTestMemCheckCommand.cxx
430 CTest/cmCTestMemCheckHandler.cxx
431 CTest/cmCTestMultiProcessHandler.cxx
432 CTest/cmCTestReadCustomFilesCommand.cxx
433 CTest/cmCTestRunScriptCommand.cxx
434 CTest/cmCTestRunTest.cxx
435 CTest/cmCTestScriptHandler.cxx
436 CTest/cmCTestSleepCommand.cxx
437 CTest/cmCTestStartCommand.cxx
438 CTest/cmCTestSubmitCommand.cxx
439 CTest/cmCTestSubmitHandler.cxx
440 CTest/cmCTestTestCommand.cxx
441 CTest/cmCTestTestHandler.cxx
442 CTest/cmCTestUpdateCommand.cxx
443 CTest/cmCTestUpdateHandler.cxx
444 CTest/cmCTestUploadCommand.cxx
445 CTest/cmCTestUploadHandler.cxx
449 CTest/cmCTestGlobalVC.cxx
450 CTest/cmCTestGlobalVC.h
464 ADD_LIBRARY(CTestLib ${CTEST_SRCS})
465 TARGET_LINK_LIBRARIES(CTestLib CMakeLib ${CMAKE_CURL_LIBRARIES} ${CMAKE_XMLRPC_LIBRARIES})
471 CPack/cmCPackArchiveGenerator.cxx
472 CPack/cmCPackComponentGroup.cxx
473 CPack/cmCPackGeneratorFactory.cxx
474 CPack/cmCPackGenerator.cxx
476 CPack/cmCPackNSISGenerator.cxx
477 CPack/cmCPackSTGZGenerator.cxx
478 CPack/cmCPackTGZGenerator.cxx
479 CPack/cmCPackTarBZip2Generator.cxx
480 CPack/cmCPackTarCompressGenerator.cxx
481 CPack/cmCPackZIPGenerator.cxx
482 CPack/cmCPackDocumentVariables.cxx
483 CPack/cmCPackDocumentMacros.cxx
487 SET(CPACK_SRCS ${CPACK_SRCS}
488 CPack/cmCPackCygwinBinaryGenerator.cxx
489 CPack/cmCPackCygwinSourceGenerator.cxx
494 SET(CPACK_SRCS ${CPACK_SRCS}
495 CPack/cmCPackDebGenerator.cxx
496 CPack/cmCPackRPMGenerator.cxx
501 SET(CPACK_SRCS ${CPACK_SRCS}
502 CPack/cmCPackBundleGenerator.cxx
503 CPack/cmCPackDragNDropGenerator.cxx
504 CPack/cmCPackOSXX11Generator.cxx
505 CPack/cmCPackPackageMakerGenerator.cxx
510 ADD_LIBRARY(CPackLib ${CPACK_SRCS})
511 TARGET_LINK_LIBRARIES(CPackLib CMakeLib)
514 ADD_EXECUTABLE(cmakexbuild cmakexbuild.cxx)
515 TARGET_LINK_LIBRARIES(cmakexbuild CMakeLib)
516 ADD_EXECUTABLE(OSXScriptLauncher
517 CPack/OSXScriptLauncher.cxx)
518 TARGET_LINK_LIBRARIES(OSXScriptLauncher cmsys)
519 TARGET_LINK_LIBRARIES(OSXScriptLauncher "-framework CoreFoundation")
522 # Build CMake executable
523 ADD_EXECUTABLE(cmake cmakemain.cxx)
524 TARGET_LINK_LIBRARIES(cmake CMakeLib)
526 # Build special executable for running programs on Windows 98
529 ADD_EXECUTABLE(cmw9xcom cmw9xcom.cxx)
530 TARGET_LINK_LIBRARIES(cmw9xcom CMakeLib)
531 INSTALL_TARGETS(/bin cmw9xcom)
535 # Build CTest executable
536 ADD_EXECUTABLE(ctest ctest.cxx)
537 TARGET_LINK_LIBRARIES(ctest CTestLib)
539 # Build CPack executable
540 ADD_EXECUTABLE(cpack CPack/cpack.cxx)
541 TARGET_LINK_LIBRARIES(cpack CPackLib)
544 IF(BUILD_CursesDialog)
545 INCLUDE(${CMake_SOURCE_DIR}/Source/CursesDialog/CMakeLists.txt)
546 ENDIF(BUILD_CursesDialog)
549 OPTION(BUILD_QtDialog "Build Qt dialog for CMake" FALSE)
552 ENDIF(BUILD_QtDialog)
554 INCLUDE (${CMake_BINARY_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
555 INCLUDE (${CMake_SOURCE_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
557 INSTALL_TARGETS(/bin cmake)
558 INSTALL_TARGETS(/bin ctest)
559 INSTALL_TARGETS(/bin cpack)
561 INSTALL_TARGETS(/bin cmakexbuild)
564 INSTALL_FILES(${CMAKE_DATA_DIR}/include cmCPluginAPI.h)