[cmake-commits] alex committed CMakeCCompilerId.c 1.10 1.11 CMakeCInformation.cmake 1.12 1.13 CMakeCXXInformation.cmake 1.15 1.16 CMakeDetermineSystem.cmake 1.23 1.24 CMakeSystemWithToolchainFile.cmake.in 1.3 1.4

cmake-commits at cmake.org cmake-commits at cmake.org
Tue Jun 5 10:28:45 EDT 2007


Update of /cvsroot/CMake/CMake/Modules
In directory public:/mounts/ram/cvs-serv7540/Modules

Modified Files:
	CMakeCCompilerId.c CMakeCInformation.cmake 
	CMakeCXXInformation.cmake CMakeDetermineSystem.cmake 
	CMakeSystemWithToolchainFile.cmake.in 
Log Message:

ENH: also load a processor-specific file if exists
-also try the basename file if the compiler id file doesn't exist
-don't rely so much on the CMAKE_TOOLCHAIN_FILE

Alex


Index: CMakeCXXInformation.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/CMakeCXXInformation.cmake,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- CMakeCXXInformation.cmake	17 May 2007 17:20:43 -0000	1.15
+++ CMakeCXXInformation.cmake	5 Jun 2007 14:28:43 -0000	1.16
@@ -2,23 +2,40 @@
 # This file sets the basic flags for the C++ language in CMake.
 # It also loads the available platform file for the system-compiler
 # if it exists.
+# It also loads a system - compiler - processor (or target hardware)
+# specific file, which is mainly useful for crosscompiling and embedded systems.
 
-IF(NOT CMAKE_SYSTEM_AND_CXX_COMPILER_INFO_FILE)
-  GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_CXX_COMPILER} NAME_WE)
-  # since the gnu compiler has several names force g++
-  IF(CMAKE_COMPILER_IS_GNUCXX)
-    SET(CMAKE_BASE_NAME g++)
-  ENDIF(CMAKE_COMPILER_IS_GNUCXX)
+GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_CXX_COMPILER} NAME_WE)
+# since the gnu compiler has several names force g++
+IF(CMAKE_COMPILER_IS_GNUCXX)
+  SET(CMAKE_BASE_NAME g++)
+ENDIF(CMAKE_COMPILER_IS_GNUCXX)
+
+IF(CMAKE_SYSTEM_AND_CXX_COMPILER_INFO_FILE)
+  INCLUDE(${CMAKE_SYSTEM_AND_CXX_COMPILER_INFO_FILE} OPTIONAL)
+ELSE(CMAKE_SYSTEM_AND_CXX_COMPILER_INFO_FILE)
   IF(CMAKE_CXX_COMPILER_ID)
-    IF(EXISTS ${CMAKE_ROOT}/Modules/Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_CXX_COMPILER_ID}-CXX.cmake)
-      SET(CMAKE_BASE_NAME ${CMAKE_CXX_COMPILER_ID}-CXX)
-    ENDIF(EXISTS ${CMAKE_ROOT}/Modules/Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_CXX_COMPILER_ID}-CXX.cmake)
+    INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_CXX_COMPILER_ID}-CXX OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
   ENDIF(CMAKE_CXX_COMPILER_ID)
-  SET(CMAKE_SYSTEM_AND_CXX_COMPILER_INFO_FILE
-    ${CMAKE_ROOT}/Modules/Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}.cmake)
-ENDIF(NOT CMAKE_SYSTEM_AND_CXX_COMPILER_INFO_FILE)
+  IF (NOT _INCLUDED_FILE)
+    INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL)
+  ENDIF (NOT _INCLUDED_FILE)
+ENDIF(CMAKE_SYSTEM_AND_CXX_COMPILER_INFO_FILE)
+
+
+IF(CMAKE_SYSTEM_AND_CXX_COMPILER_AND_PROCESSOR_INFO_FILE)
+  INCLUDE(${CMAKE_SYSTEM_AND_CXX_COMPILER_AND_PROCESSOR_INFO_FILE} OPTIONAL)
+ELSE(CMAKE_SYSTEM_AND_CXX_COMPILER_AND_PROCESSOR_INFO_FILE)
+  IF(CMAKE_SYSTEM_PROCESSOR)
+    IF(CMAKE_CXX_COMPILER_ID)
+      INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_CXX_COMPILER_ID}-CXX-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
+    ENDIF(CMAKE_CXX_COMPILER_ID)
+    IF (NOT _INCLUDED_FILE)
+      INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL)
+    ENDIF (NOT _INCLUDED_FILE)
+  ENDIF(CMAKE_SYSTEM_PROCESSOR)
+ENDIF(CMAKE_SYSTEM_AND_CXX_COMPILER_AND_PROCESSOR_INFO_FILE)
 
-INCLUDE(${CMAKE_SYSTEM_AND_CXX_COMPILER_INFO_FILE} OPTIONAL)
 
 # This should be included before the _INIT variables are
 # used to initialize the cache.  Since the rule variables 

Index: CMakeDetermineSystem.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/CMakeDetermineSystem.cmake,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- CMakeDetermineSystem.cmake	29 May 2007 15:36:07 -0000	1.23
+++ CMakeDetermineSystem.cmake	5 Jun 2007 14:28:43 -0000	1.24
@@ -77,19 +77,25 @@
   ELSE(_INCLUDED_TOOLCHAIN_FILE)
     MESSAGE(FATAL_ERROR "Could not find toolchain file: ${CMAKE_TOOLCHAIN_FILE}") 
   ENDIF(_INCLUDED_TOOLCHAIN_FILE)
+ENDIF(CMAKE_TOOLCHAIN_FILE)
+
 
+# if CMAKE_SYSTEM_NAME is here already set, either it comes from a toolchain file
+# or it was set via -DCMAKE_SYSTEM_NAME=...
+# if that's the case, assume we are crosscompiling
+IF(CMAKE_SYSTEM_NAME)
   IF(NOT DEFINED CMAKE_CROSSCOMPILING)
     SET(CMAKE_CROSSCOMPILING TRUE)
   ENDIF(NOT DEFINED CMAKE_CROSSCOMPILING)
-
-ELSE(CMAKE_TOOLCHAIN_FILE)
-
+  SET(PRESET_CMAKE_SYSTEM_NAME TRUE)
+ELSE(CMAKE_SYSTEM_NAME)
   SET(CMAKE_SYSTEM_NAME      "${CMAKE_HOST_SYSTEM_NAME}")
   SET(CMAKE_SYSTEM_VERSION   "${CMAKE_HOST_SYSTEM_VERSION}")
   SET(CMAKE_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}")
   SET(CMAKE_CROSSCOMPILING FALSE)
+  SET(PRESET_CMAKE_SYSTEM_NAME FALSE)
+ENDIF(CMAKE_SYSTEM_NAME)
 
-ENDIF(CMAKE_TOOLCHAIN_FILE)
 
 MACRO(ADJUST_CMAKE_SYSTEM_VARIABLES _PREFIX)
   IF(NOT ${_PREFIX}_NAME)
@@ -118,14 +124,22 @@
 ADJUST_CMAKE_SYSTEM_VARIABLES(CMAKE_SYSTEM)
 ADJUST_CMAKE_SYSTEM_VARIABLES(CMAKE_HOST_SYSTEM)
 
+# write entry to the log file
+IF(PRESET_CMAKE_SYSTEM_NAME)
+  FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log 
+              "The target system is: ${CMAKE_SYSTEM_NAME} - ${CMAKE_SYSTEM_VERSION} - ${CMAKE_SYSTEM_PROCESSOR}\n")
+  FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log 
+              "The host system is: ${CMAKE_HOST_SYSTEM_NAME} - ${CMAKE_HOST_SYSTEM_VERSION} - ${CMAKE_HOST_SYSTEM_PROCESSOR}\n")
+ELSE(PRESET_CMAKE_SYSTEM_NAME)
+  FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log 
+              "The system is: ${CMAKE_SYSTEM_NAME} - ${CMAKE_SYSTEM_VERSION} - ${CMAKE_SYSTEM_PROCESSOR}\n")
+ENDIF(PRESET_CMAKE_SYSTEM_NAME)
+
+
 # if a toolchain file is used use configure_file() to copy it into the 
 # build tree, because this way e.g. ${CMAKE_SOURCE_DIR} will be replaced
 # with its full path, and so it will also work when used in try_compile()
 IF (CMAKE_TOOLCHAIN_FILE)
-  FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log 
-    "The target system is: ${CMAKE_SYSTEM_NAME} - ${CMAKE_SYSTEM_VERSION} - ${CMAKE_SYSTEM_PROCESSOR}\n")
-  FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log 
-    "The host system is: ${CMAKE_HOST_SYSTEM_NAME} - ${CMAKE_HOST_SYSTEM_VERSION} - ${CMAKE_HOST_SYSTEM_PROCESSOR}\n")
 
   SET(_OWN_DIR ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY})
   CONFIGURE_FILE(${CMAKE_TOOLCHAIN_FILE}
@@ -134,10 +148,7 @@
   CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CMakeSystemWithToolchainFile.cmake.in
                ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeSystem.cmake 
                IMMEDIATE @ONLY)
-
 ELSE (CMAKE_TOOLCHAIN_FILE)
-  FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log 
-    "The system is: ${CMAKE_SYSTEM_NAME} - ${CMAKE_SYSTEM_VERSION} - ${CMAKE_SYSTEM_PROCESSOR}\n")
 
   # configure variables set in this file for fast reload, the template file is defined at the top of this file
   CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CMakeSystem.cmake.in

Index: CMakeCCompilerId.c
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/CMakeCCompilerId.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- CMakeCCompilerId.c	25 May 2007 19:22:22 -0000	1.10
+++ CMakeCCompilerId.c	5 Jun 2007 14:28:43 -0000	1.11
@@ -35,15 +35,15 @@
 
 /* IAR Systems compiler for embedded systems.
    http://www.iar.com
-   Beside this id not supported yet by CMake */
+   Not supported yet by CMake
 #elif defined(__IAR_SYSTEMS_ICC__)
-# define COMPILER_ID "IAR"
+# define COMPILER_ID "IAR" */
 
 /* sdcc, the small devices C compiler for embedded systems, 
    http://sdcc.sourceforge.net 
-   Beside this id not supported yet by CMake. */
+   Not supported yet by CMake.
 #elif defined(SDCC)
-# define COMPILER_ID "SDCC"
+# define COMPILER_ID "SDCC" */
 
 #elif defined(_COMPILER_VERSION)
 # define COMPILER_ID "MIPSpro"

Index: CMakeSystemWithToolchainFile.cmake.in
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/CMakeSystemWithToolchainFile.cmake.in,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- CMakeSystemWithToolchainFile.cmake.in	29 May 2007 15:36:07 -0000	1.3
+++ CMakeSystemWithToolchainFile.cmake.in	5 Jun 2007 14:28:43 -0000	1.4
@@ -1,12 +1,10 @@
 # the following file has been configured from @CMAKE_TOOLCHAIN_FILE@ 
 INCLUDE(@_OWN_DIR@/CMakeToolchainFile.cmake)
 
-# set CMAKE_SYSTEM to the CMAKE_SYSTEM_NAME
-SET(CMAKE_SYSTEM  ${CMAKE_SYSTEM_NAME})
-# if there is a CMAKE_SYSTEM_VERSION then add a -${CMAKE_SYSTEM_VERSION}
-IF(CMAKE_SYSTEM_VERSION)
-  SET(CMAKE_SYSTEM ${CMAKE_SYSTEM}-${CMAKE_SYSTEM_VERSION})
-ENDIF(CMAKE_SYSTEM_VERSION)
+SET(CMAKE_SYSTEM "@CMAKE_SYSTEM@")
+SET(CMAKE_SYSTEM_NAME "@CMAKE_SYSTEM_NAME@")
+SET(CMAKE_SYSTEM_VERSION "@CMAKE_SYSTEM_VERSION@")
+SET(CMAKE_SYSTEM_PROCESSOR "@CMAKE_SYSTEM_PROCESSOR@")
 
 SET(CMAKE_HOST_SYSTEM "@CMAKE_HOST_SYSTEM@")
 SET(CMAKE_HOST_SYSTEM_NAME "@CMAKE_HOST_SYSTEM_NAME@")

Index: CMakeCInformation.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/CMakeCInformation.cmake,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- CMakeCInformation.cmake	17 May 2007 17:20:43 -0000	1.12
+++ CMakeCInformation.cmake	5 Jun 2007 14:28:43 -0000	1.13
@@ -2,22 +2,39 @@
 # This file sets the basic flags for the C language in CMake.
 # It also loads the available platform file for the system-compiler
 # if it exists.
+# It also loads a system - compiler - processor (or target hardware)
+# specific file, which is mainly useful for crosscompiling and embedded systems.
 
-IF(NOT CMAKE_SYSTEM_AND_C_COMPILER_INFO_FILE)
-  GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_C_COMPILER} NAME_WE)
-  IF(CMAKE_COMPILER_IS_GNUCC)
-    SET(CMAKE_BASE_NAME gcc)
-  ENDIF(CMAKE_COMPILER_IS_GNUCC)
+GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_C_COMPILER} NAME_WE)
+IF(CMAKE_COMPILER_IS_GNUCC)
+  SET(CMAKE_BASE_NAME gcc)
+ENDIF(CMAKE_COMPILER_IS_GNUCC)
+
+IF(CMAKE_SYSTEM_AND_C_COMPILER_INFO_FILE)
+  INCLUDE(${CMAKE_SYSTEM_AND_C_COMPILER_INFO_FILE} OPTIONAL)
+ELSE(CMAKE_SYSTEM_AND_C_COMPILER_INFO_FILE)
   IF(CMAKE_C_COMPILER_ID)
-    IF(EXISTS ${CMAKE_ROOT}/Modules/Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_C_COMPILER_ID}-C.cmake)
-      SET(CMAKE_BASE_NAME ${CMAKE_C_COMPILER_ID}-C)
-    ENDIF(EXISTS ${CMAKE_ROOT}/Modules/Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_C_COMPILER_ID}-C.cmake)
+    INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_C_COMPILER_ID}-C OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
   ENDIF(CMAKE_C_COMPILER_ID)
-  SET(CMAKE_SYSTEM_AND_C_COMPILER_INFO_FILE 
-    ${CMAKE_ROOT}/Modules/Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}.cmake)
-ENDIF(NOT CMAKE_SYSTEM_AND_C_COMPILER_INFO_FILE)
+  IF (NOT _INCLUDED_FILE)
+    INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL)
+  ENDIF (NOT _INCLUDED_FILE)
+ENDIF(CMAKE_SYSTEM_AND_C_COMPILER_INFO_FILE)
+
+
+IF(CMAKE_SYSTEM_AND_C_COMPILER_AND_PROCESSOR_INFO_FILE)
+  INCLUDE(${CMAKE_SYSTEM_AND_C_COMPILER_AND_PROCESSOR_INFO_FILE} OPTIONAL)
+ELSE(CMAKE_SYSTEM_AND_C_COMPILER_AND_PROCESSOR_INFO_FILE)
+  IF(CMAKE_SYSTEM_PROCESSOR)
+    IF(CMAKE_C_COMPILER_ID)
+      INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_C_COMPILER_ID}-C-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
+    ENDIF(CMAKE_C_COMPILER_ID)
+    IF (NOT _INCLUDED_FILE)
+      INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL)
+    ENDIF (NOT _INCLUDED_FILE)
+  ENDIF(CMAKE_SYSTEM_PROCESSOR)
+ENDIF(CMAKE_SYSTEM_AND_C_COMPILER_AND_PROCESSOR_INFO_FILE)
 
-INCLUDE(${CMAKE_SYSTEM_AND_C_COMPILER_INFO_FILE} OPTIONAL)
 
 # This should be included before the _INIT variables are
 # used to initialize the cache.  Since the rule variables 



More information about the Cmake-commits mailing list