[cmake-commits] alex committed CMakeDetermineSystem.cmake 1.18
1.18.4.1
cmake-commits at cmake.org
cmake-commits at cmake.org
Tue May 1 13:11:04 EDT 2007
Update of /cvsroot/CMake/CMake/Modules
In directory public:/mounts/ram/cvs-serv2270
Modified Files:
Tag: CMake-CrossCompileBasic
CMakeDetermineSystem.cmake
Log Message:
ENH: new variable CMAKE_TOOLCHAIN_FILE which can be used to specify a cmake
file which will be loaded even before cmake tries to detect the system, so
people can set e.g. CMAKE_SYSTEM to the value for their target platform.
Only detect CMAKE_SYSTEM if it isn't set yet.
Alex
Index: CMakeDetermineSystem.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/CMakeDetermineSystem.cmake,v
retrieving revision 1.18
retrieving revision 1.18.4.1
diff -u -d -r1.18 -r1.18.4.1
--- CMakeDetermineSystem.cmake 21 Feb 2007 15:29:36 -0000 1.18
+++ CMakeDetermineSystem.cmake 1 May 2007 17:11:01 -0000 1.18.4.1
@@ -25,37 +25,48 @@
# Ultrix ULTRIX
# cygwin CYGWIN_NT-5.1
# MacOSX Darwin
-IF(UNIX)
- FIND_PROGRAM(CMAKE_UNAME uname /bin /usr/bin /usr/local/bin )
- IF(CMAKE_UNAME)
- EXEC_PROGRAM(uname ARGS -s OUTPUT_VARIABLE CMAKE_SYSTEM_NAME)
- EXEC_PROGRAM(uname ARGS -r OUTPUT_VARIABLE CMAKE_SYSTEM_VERSION)
- IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
- EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE CMAKE_SYSTEM_PROCESSOR
- RETURN_VALUE val)
- ELSE(CMAKE_SYSTEM_NAME MATCHES "Linux")
- EXEC_PROGRAM(uname ARGS -p OUTPUT_VARIABLE CMAKE_SYSTEM_PROCESSOR
- RETURN_VALUE val)
- IF("${val}" GREATER 0)
+
+IF(CMAKE_TOOLCHAIN_FILE)
+ GET_FILENAME_COMPONENT(_ABS_CMAKE_TOOLCHAIN_FILE ${CMAKE_TOOLCHAIN_FILE} ABSOLUTE)
+ INCLUDE(${_ABS_CMAKE_TOOLCHAIN_FILE})
+ENDIF(CMAKE_TOOLCHAIN_FILE)
+
+IF(NOT CMAKE_SYSTEM_NAME)
+ IF(UNIX)
+ FIND_PROGRAM(CMAKE_UNAME_XXX uname)
+ message(STATUS "uname: ${CMAKE_UNAME_XXX}")
+ FIND_PROGRAM(CMAKE_UNAME uname /bin /usr/bin /usr/local/bin )
+ IF(CMAKE_UNAME)
+ EXEC_PROGRAM(uname ARGS -s OUTPUT_VARIABLE CMAKE_SYSTEM_NAME)
+ EXEC_PROGRAM(uname ARGS -r OUTPUT_VARIABLE CMAKE_SYSTEM_VERSION)
+ IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE CMAKE_SYSTEM_PROCESSOR
RETURN_VALUE val)
+ ELSE(CMAKE_SYSTEM_NAME MATCHES "Linux")
+ EXEC_PROGRAM(uname ARGS -p OUTPUT_VARIABLE CMAKE_SYSTEM_PROCESSOR
+ RETURN_VALUE val)
+ IF("${val}" GREATER 0)
+ EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE CMAKE_SYSTEM_PROCESSOR
+ RETURN_VALUE val)
+ ENDIF("${val}" GREATER 0)
+ ENDIF(CMAKE_SYSTEM_NAME MATCHES "Linux")
+ # check the return of the last uname -m or -p
+ IF("${val}" GREATER 0)
+ SET(CMAKE_SYSTEM_PROCESSOR "unknown")
ENDIF("${val}" GREATER 0)
- ENDIF(CMAKE_SYSTEM_NAME MATCHES "Linux")
- # check the return of the last uname -m or -p
- IF("${val}" GREATER 0)
- SET(CMAKE_SYSTEM_PROCESSOR "unknown")
- ENDIF("${val}" GREATER 0)
- SET(CMAKE_UNAME ${CMAKE_UNAME} CACHE INTERNAL "uname command")
- # processor may have double quote in the name, and that needs to be removed
- STRING(REGEX REPLACE "\"" "" CMAKE_SYSTEM_PROCESSOR "${CMAKE_SYSTEM_PROCESSOR}")
- STRING(REGEX REPLACE "/" "_" CMAKE_SYSTEM_PROCESSOR "${CMAKE_SYSTEM_PROCESSOR}")
- ENDIF(CMAKE_UNAME)
-ELSE(UNIX)
- IF(WIN32)
- SET (CMAKE_SYSTEM_NAME "Windows")
- SET (CMAKE_SYSTEM_PROCESSOR "$ENV{PROCESSOR_ARCHITECTURE}")
- ENDIF(WIN32)
-ENDIF(UNIX)
+ SET(CMAKE_UNAME ${CMAKE_UNAME} CACHE INTERNAL "uname command")
+ # processor may have double quote in the name, and that needs to be removed
+ STRING(REGEX REPLACE "\"" "" CMAKE_SYSTEM_PROCESSOR "${CMAKE_SYSTEM_PROCESSOR}")
+ STRING(REGEX REPLACE "/" "_" CMAKE_SYSTEM_PROCESSOR "${CMAKE_SYSTEM_PROCESSOR}")
+ ENDIF(CMAKE_UNAME)
+ ELSE(UNIX)
+ IF(WIN32)
+ SET (CMAKE_SYSTEM_NAME "Windows")
+ SET (CMAKE_SYSTEM_PROCESSOR "$ENV{PROCESSOR_ARCHITECTURE}")
+ ENDIF(WIN32)
+ ENDIF(UNIX)
+ENDIF(NOT CMAKE_SYSTEM_NAME)
+
IF(NOT CMAKE_SYSTEM_NAME)
SET(CMAKE_SYSTEM_NAME "UnknownOS")
More information about the Cmake-commits
mailing list