[cmake-commits] alex committed CMakeDetermineCCompiler.cmake 1.39.2.4
1.39.2.5 CMakeDetermineCXXCompiler.cmake 1.34.2.3 1.34.2.4
CMakeDetermineSystem.cmake 1.18.4.3 1.18.4.4
cmake-commits at cmake.org
cmake-commits at cmake.org
Fri May 11 16:25:11 EDT 2007
Update of /cvsroot/CMake/CMake/Modules
In directory public:/mounts/ram/cvs-serv2606/Modules
Modified Files:
Tag: CMake-CrossCompileBasic
CMakeDetermineCCompiler.cmake CMakeDetermineCXXCompiler.cmake
CMakeDetermineSystem.cmake
Log Message:
ENH:
-search CMAKE_TOOLCHAIN_FILE at first relative to the CMAKE_BINARY_DIR
-if in CMAKE_C_COMPILER only the basename of the compiler without path was given then find the path
-CMAKE_FIND_PREFIX can now be a list of directories
-via CMAKE_PROGRAM_FIND_PREFIX_MODE, CMAKE_LIBRARY_FIND_PREFIX_MODE and CMAKE_INCLUDE_FIND_PREFIX_MODE
the default behaviour for these 3 types can be adjusted:
*at first the directories with the prefixes, then without prefixes (default, unset)
*only the prefixes (useful for libs and headers, "ONLY")
*only without the prefixes (useful for programs, "NEVER")
Alex
Index: CMakeDetermineSystem.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/CMakeDetermineSystem.cmake,v
retrieving revision 1.18.4.3
retrieving revision 1.18.4.4
diff -u -d -r1.18.4.3 -r1.18.4.4
--- CMakeDetermineSystem.cmake 11 May 2007 14:34:48 -0000 1.18.4.3
+++ CMakeDetermineSystem.cmake 11 May 2007 20:25:09 -0000 1.18.4.4
@@ -27,7 +27,19 @@
# MacOSX Darwin
IF(CMAKE_TOOLCHAIN_FILE)
- INCLUDE(${CMAKE_TOOLCHAIN_FILE})
+ # at first try to load it as path relative to the directory from which cmake has been run
+ INCLUDE("${CMAKE_BINARY_DIR}/${CMAKE_TOOLCHAIN_FILE}" OPTIONAL _INCLUDED_TOOLCHAIN_FILE)
+ IF(NOT _INCLUDED_TOOLCHAIN_FILE)
+ # if the file isn't found there, check the default locations
+ INCLUDE("${CMAKE_TOOLCHAIN_FILE}" OPTIONAL _INCLUDED_TOOLCHAIN_FILE)
+ ENDIF(NOT _INCLUDED_TOOLCHAIN_FILE)
+
+ IF(_INCLUDED_TOOLCHAIN_FILE)
+ SET(CMAKE_TOOLCHAIN_FILE "${_INCLUDED_TOOLCHAIN_FILE}")
+ ELSE(_INCLUDED_TOOLCHAIN_FILE)
+ MESSAGE(FATAL_ERROR "Could not find toolchain file: ${CMAKE_TOOLCHAIN_FILE}")
+ ENDIF(_INCLUDED_TOOLCHAIN_FILE)
+
IF(NOT DEFINED CMAKE_ALIEN_EXECUTABLES)
SET(CMAKE_ALIEN_EXECUTABLES TRUE)
ENDIF(NOT DEFINED CMAKE_ALIEN_EXECUTABLES)
Index: CMakeDetermineCXXCompiler.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/CMakeDetermineCXXCompiler.cmake,v
retrieving revision 1.34.2.3
retrieving revision 1.34.2.4
diff -u -d -r1.34.2.3 -r1.34.2.4
--- CMakeDetermineCXXCompiler.cmake 11 May 2007 17:06:55 -0000 1.34.2.3
+++ CMakeDetermineCXXCompiler.cmake 11 May 2007 20:25:09 -0000 1.34.2.4
@@ -59,6 +59,16 @@
IF(CMAKE_CXX_COMPILER_INIT AND NOT CMAKE_CXX_COMPILER)
SET(CMAKE_CXX_COMPILER "${CMAKE_CXX_COMPILER_INIT}" CACHE FILEPATH "C++ compiler" FORCE)
ENDIF(CMAKE_CXX_COMPILER_INIT AND NOT CMAKE_CXX_COMPILER)
+ELSE(NOT CMAKE_CXX_COMPILER)
+
+# if a compiler was specified by the user but without path,
+# now try to find it with the full path and force it into the cache
+ GET_FILENAME_COMPONENT(CMAKE_CXX_COMPILER_PATH "${CMAKE_CXX_COMPILER}" PATH)
+ IF(NOT CMAKE_CXX_COMPILER_PATH)
+ FIND_PROGRAM(CMAKE_CXX_COMPILER_WITH_PATH NAMES ${CMAKE_CXX_COMPILER})
+ MARK_AS_ADVANCED(CMAKE_CXX_COMPILER_WITH_PATH)
+ SET(CMAKE_CXX_COMPILER ${CMAKE_CXX_COMPILER_WITH_PATH} CACHE FILEPATH "CXX compiler" FORCE)
+ ENDIF(NOT CMAKE_CXX_COMPILER_PATH)
ENDIF(NOT CMAKE_CXX_COMPILER)
MARK_AS_ADVANCED(CMAKE_CXX_COMPILER)
Index: CMakeDetermineCCompiler.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/CMakeDetermineCCompiler.cmake,v
retrieving revision 1.39.2.4
retrieving revision 1.39.2.5
diff -u -d -r1.39.2.4 -r1.39.2.5
--- CMakeDetermineCCompiler.cmake 11 May 2007 17:06:55 -0000 1.39.2.4
+++ CMakeDetermineCCompiler.cmake 11 May 2007 20:25:09 -0000 1.39.2.5
@@ -59,9 +59,19 @@
IF(CMAKE_C_COMPILER_INIT AND NOT CMAKE_C_COMPILER)
SET(CMAKE_C_COMPILER "${CMAKE_C_COMPILER_INIT}" CACHE FILEPATH "C compiler" FORCE)
ENDIF(CMAKE_C_COMPILER_INIT AND NOT CMAKE_C_COMPILER)
+ELSE(NOT CMAKE_C_COMPILER)
+
+ # if a compiler was specified by the user but without path,
+ # now try to find it with the full path and force it into the cache
+ GET_FILENAME_COMPONENT(CMAKE_C_COMPILER_PATH "${CMAKE_C_COMPILER}" PATH)
+ IF(NOT CMAKE_C_COMPILER_PATH)
+ FIND_PROGRAM(CMAKE_C_COMPILER_WITH_PATH NAMES ${CMAKE_C_COMPILER})
+ MARK_AS_ADVANCED(CMAKE_C_COMPILER_WITH_PATH)
+ SET(CMAKE_C_COMPILER ${CMAKE_C_COMPILER_WITH_PATH} CACHE FILEPATH "C compiler" FORCE)
+ ENDIF(NOT CMAKE_C_COMPILER_PATH)
ENDIF(NOT CMAKE_C_COMPILER)
MARK_AS_ADVANCED(CMAKE_C_COMPILER)
-
+
IF (NOT CMAKE_TOOLCHAIN_LOCATION)
GET_FILENAME_COMPONENT(CMAKE_TOOLCHAIN_LOCATION "${CMAKE_C_COMPILER}" PATH)
ENDIF (NOT CMAKE_TOOLCHAIN_LOCATION)
More information about the Cmake-commits
mailing list