[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