[Cmake-commits] [cmake-commits] alex committed CMakeSystemSpecificInformation.cmake 1.42 1.43 CMakeKDevelop3.cmake NONE 1.1 CMakeCodeBlocks.cmake NONE 1.1 CMakeEclipseCDT4.cmake NONE 1.1
cmake-commits at cmake.org
cmake-commits at cmake.org
Sun May 10 06:00:29 EDT 2009
Update of /cvsroot/CMake/CMake/Modules
In directory public:/mounts/ram/cvs-serv10291
Modified Files:
CMakeSystemSpecificInformation.cmake
Added Files:
CMakeKDevelop3.cmake CMakeCodeBlocks.cmake
CMakeEclipseCDT4.cmake
Log Message:
ENH: move the code which queries gcc for the system include dirs from
CMakeSystemSpecificInformation.cmake into a separate file,
CMakeEclipseCDT4.cmake
-if CMAKE_EXTRA_GENERATOR is set, i.e. either CodeBlocks or KDevelop3 or
EclipseCDT4, load a matching cmake script file, which can do things specific
for this generator
- added such files for Eclipse, KDevelop and CodeBlocks, one thing they all
do is they try to find the respective IDE and store it in the
CMAKE_(KDEVELOP3|CODEBLOCKS|ECLIPSE)_EXECUTABLE variable.
This could be used by cmake-gui to open the project it just generated with
the gui (not sure this is possible with eclipse).
Alex
--- NEW FILE: CMakeEclipseCDT4.cmake ---
# This file is included in CMakeSystemSpecificInformation.cmake if
# the Eclipse CDT4 extra generator has been selected.
FIND_PROGRAM(CMAKE_ECLIPSE_EXECUTABLE NAMES eclipse DOC "The Eclipse executable")
# The Eclipse generator needs to know the standard include path
# so that Eclipse ca find the headers at runtime and parsing etc. works better
# This is done here by actually running gcc with the options so it prints its
# system include directories, which are parsed then and stored in the cache.
MACRO(_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS _lang _result)
SET(${_result})
SET(_gccOutput)
FILE(WRITE "${CMAKE_BINARY_DIR}/CMakeFiles/dummy" "\n" )
EXECUTE_PROCESS(COMMAND ${CMAKE_C_COMPILER} -v -E -x ${_lang} dummy
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/CMakeFiles
ERROR_VARIABLE _gccOutput
OUTPUT_QUIET )
FILE(REMOVE "${CMAKE_BINARY_DIR}/CMakeFiles/dummy")
IF( "${_gccOutput}" MATCHES "> search starts here[^\n]+\n *(.+) *\n *End of (search) list" )
SET(${_result} ${CMAKE_MATCH_1})
STRING(REPLACE "\n" " " ${_result} "${${_result}}")
SEPARATE_ARGUMENTS(${_result})
ENDIF( "${_gccOutput}" MATCHES "> search starts here[^\n]+\n *(.+) *\n *End of (search) list" )
ENDMACRO(_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS _lang)
# Now check for C
IF ("${CMAKE_C_COMPILER_ID}" MATCHES GNU AND NOT CMAKE_ECLIPSE_C_SYSTEM_INCLUDE_DIRS)
_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS(c _dirs)
SET(CMAKE_ECLIPSE_C_SYSTEM_INCLUDE_DIRS "${_dirs}" CACHE INTERNAL "C compiler system include directories")
ENDIF ("${CMAKE_C_COMPILER_ID}" MATCHES GNU AND NOT CMAKE_ECLIPSE_C_SYSTEM_INCLUDE_DIRS)
# And now the same for C++
IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES GNU AND NOT CMAKE_ECLIPSE_CXX_SYSTEM_INCLUDE_DIRS)
_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS(c++ _dirs)
SET(CMAKE_ECLIPSE_CXX_SYSTEM_INCLUDE_DIRS "${_dirs}" CACHE INTERNAL "CXX compiler system include directories")
ENDIF ("${CMAKE_CXX_COMPILER_ID}" MATCHES GNU AND NOT CMAKE_ECLIPSE_CXX_SYSTEM_INCLUDE_DIRS)
--- NEW FILE: CMakeCodeBlocks.cmake ---
# This file is included in CMakeSystemSpecificInformation.cmake if
# the CodeBlocks extra generator has been selected.
FIND_PROGRAM(CMAKE_CODEBLOCKS_EXECUTABLE NAMES codeblocks DOC "The CodeBlocks executable")
Index: CMakeSystemSpecificInformation.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/CMakeSystemSpecificInformation.cmake,v
retrieving revision 1.42
retrieving revision 1.43
diff -C 2 -d -r1.42 -r1.43
*** CMakeSystemSpecificInformation.cmake 13 Mar 2009 20:52:58 -0000 1.42
--- CMakeSystemSpecificInformation.cmake 10 May 2009 10:00:27 -0000 1.43
***************
*** 36,75 ****
! # The Eclipse generator needs to know the standard include path
! # so that Eclipse ca find the headers at runtime and parsing etc. works better
! # This is done here by actually running gcc with the options so it prints its
! # system include directories, which are parsed then and stored in the cache.
! IF("${CMAKE_EXTRA_GENERATOR}" MATCHES "Eclipse")
!
! MACRO(_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS _lang _result)
! SET(${_result})
! SET(_gccOutput)
! FILE(WRITE "${CMAKE_BINARY_DIR}/CMakeFiles/dummy" "\n" )
! EXECUTE_PROCESS(COMMAND ${CMAKE_C_COMPILER} -v -E -x ${_lang} dummy
! WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/CMakeFiles
! ERROR_VARIABLE _gccOutput
! OUTPUT_QUIET )
! FILE(REMOVE "${CMAKE_BINARY_DIR}/CMakeFiles/dummy")
!
! IF( "${_gccOutput}" MATCHES "> search starts here[^\n]+\n *(.+) *\n *End of (search) list" )
! SET(${_result} ${CMAKE_MATCH_1})
! STRING(REPLACE "\n" " " ${_result} "${${_result}}")
! SEPARATE_ARGUMENTS(${_result})
! ENDIF( "${_gccOutput}" MATCHES "> search starts here[^\n]+\n *(.+) *\n *End of (search) list" )
! ENDMACRO(_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS _lang)
!
! # Now check for C
! IF ("${CMAKE_C_COMPILER_ID}" MATCHES GNU AND NOT CMAKE_ECLIPSE_C_SYSTEM_INCLUDE_DIRS)
! _DETERMINE_GCC_SYSTEM_INCLUDE_DIRS(c _dirs)
! SET(CMAKE_ECLIPSE_C_SYSTEM_INCLUDE_DIRS "${_dirs}" CACHE INTERNAL "C compiler system include directories")
! ENDIF ("${CMAKE_C_COMPILER_ID}" MATCHES GNU AND NOT CMAKE_ECLIPSE_C_SYSTEM_INCLUDE_DIRS)
!
! # And now the same for C++
! IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES GNU AND NOT CMAKE_ECLIPSE_CXX_SYSTEM_INCLUDE_DIRS)
! _DETERMINE_GCC_SYSTEM_INCLUDE_DIRS(c++ _dirs)
! SET(CMAKE_ECLIPSE_CXX_SYSTEM_INCLUDE_DIRS "${_dirs}" CACHE INTERNAL "CXX compiler system include directories")
! ENDIF ("${CMAKE_CXX_COMPILER_ID}" MATCHES GNU AND NOT CMAKE_ECLIPSE_CXX_SYSTEM_INCLUDE_DIRS)
!
! ENDIF("${CMAKE_EXTRA_GENERATOR}" MATCHES "Eclipse")
--- 36,45 ----
! # optionally include a file which can do extra-generator specific things, e.g.
! # CMakeEclipseCDT4.cmake asks gcc for the system include dirs for the Eclipse CDT4 generator
! IF(CMAKE_EXTRA_GENERATOR)
! STRING(REPLACE " " "" _CMAKE_EXTRA_GENERATOR_NO_SPACES ${CMAKE_EXTRA_GENERATOR} )
! INCLUDE("CMake${_CMAKE_EXTRA_GENERATOR_NO_SPACES}" OPTIONAL)
! ENDIF(CMAKE_EXTRA_GENERATOR)
--- NEW FILE: CMakeKDevelop3.cmake ---
# This file is included in CMakeSystemSpecificInformation.cmake if
# the KDevelop3 extra generator has been selected.
FIND_PROGRAM(CMAKE_KDEVELOP3_EXECUTABLE NAMES kdevelop DOC "The KDevelop3 executable")
More information about the Cmake-commits
mailing list