diff options
Diffstat (limited to 'Modules/CMakeDetermineSystem.cmake')
-rw-r--r-- | Modules/CMakeDetermineSystem.cmake | 172 |
1 files changed, 86 insertions, 86 deletions
diff --git a/Modules/CMakeDetermineSystem.cmake b/Modules/CMakeDetermineSystem.cmake index c89ccd1..a72bd5f 100644 --- a/Modules/CMakeDetermineSystem.cmake +++ b/Modules/CMakeDetermineSystem.cmake @@ -42,135 +42,135 @@ # find out on which system cmake runs -IF(CMAKE_HOST_UNIX) - FIND_PROGRAM(CMAKE_UNAME uname /bin /usr/bin /usr/local/bin ) - IF(CMAKE_UNAME) - EXEC_PROGRAM(uname ARGS -s OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_NAME) - EXEC_PROGRAM(uname ARGS -r OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_VERSION) - IF(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux|CYGWIN.*") - EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR +if(CMAKE_HOST_UNIX) + find_program(CMAKE_UNAME uname /bin /usr/bin /usr/local/bin ) + if(CMAKE_UNAME) + exec_program(uname ARGS -s OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_NAME) + exec_program(uname ARGS -r OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_VERSION) + if(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux|CYGWIN.*") + exec_program(uname ARGS -m OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR RETURN_VALUE val) - ELSEIF(CMAKE_HOST_SYSTEM_NAME MATCHES "OpenBSD") - EXEC_PROGRAM(arch ARGS -s OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR + elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "OpenBSD") + exec_program(arch ARGS -s OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR RETURN_VALUE val) - ELSE() - EXEC_PROGRAM(uname ARGS -p OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR + else() + exec_program(uname ARGS -p OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR RETURN_VALUE val) - IF("${val}" GREATER 0) - EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR + if("${val}" GREATER 0) + exec_program(uname ARGS -m OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR RETURN_VALUE val) - ENDIF("${val}" GREATER 0) - ENDIF() + endif("${val}" GREATER 0) + endif() # check the return of the last uname -m or -p - IF("${val}" GREATER 0) - SET(CMAKE_HOST_SYSTEM_PROCESSOR "unknown") - ENDIF("${val}" GREATER 0) - SET(CMAKE_UNAME ${CMAKE_UNAME} CACHE INTERNAL "uname command") + if("${val}" GREATER 0) + set(CMAKE_HOST_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_HOST_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}") - STRING(REGEX REPLACE "/" "_" CMAKE_HOST_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}") - ENDIF(CMAKE_UNAME) -ELSE(CMAKE_HOST_UNIX) - IF(CMAKE_HOST_WIN32) - SET (CMAKE_HOST_SYSTEM_NAME "Windows") - SET (CMAKE_HOST_SYSTEM_PROCESSOR "$ENV{PROCESSOR_ARCHITECTURE}") - ENDIF(CMAKE_HOST_WIN32) -ENDIF(CMAKE_HOST_UNIX) + string(REGEX REPLACE "\"" "" CMAKE_HOST_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}") + string(REGEX REPLACE "/" "_" CMAKE_HOST_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}") + endif(CMAKE_UNAME) +else(CMAKE_HOST_UNIX) + if(CMAKE_HOST_WIN32) + set (CMAKE_HOST_SYSTEM_NAME "Windows") + set (CMAKE_HOST_SYSTEM_PROCESSOR "$ENV{PROCESSOR_ARCHITECTURE}") + endif(CMAKE_HOST_WIN32) +endif(CMAKE_HOST_UNIX) # if a toolchain file is used, the user wants to cross compile. # in this case read the toolchain file and keep the CMAKE_HOST_SYSTEM_* # variables around so they can be used in CMakeLists.txt. # In all other cases, the host and target platform are the same. -IF(CMAKE_TOOLCHAIN_FILE) +if(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 RESULT_VARIABLE _INCLUDED_TOOLCHAIN_FILE) - IF(NOT _INCLUDED_TOOLCHAIN_FILE) + include("${CMAKE_BINARY_DIR}/${CMAKE_TOOLCHAIN_FILE}" OPTIONAL RESULT_VARIABLE _INCLUDED_TOOLCHAIN_FILE) + if(NOT _INCLUDED_TOOLCHAIN_FILE) # if the file isn't found there, check the default locations - INCLUDE("${CMAKE_TOOLCHAIN_FILE}" OPTIONAL RESULT_VARIABLE _INCLUDED_TOOLCHAIN_FILE) - ENDIF(NOT _INCLUDED_TOOLCHAIN_FILE) + include("${CMAKE_TOOLCHAIN_FILE}" OPTIONAL RESULT_VARIABLE _INCLUDED_TOOLCHAIN_FILE) + endif(NOT _INCLUDED_TOOLCHAIN_FILE) - IF(_INCLUDED_TOOLCHAIN_FILE) - SET(CMAKE_TOOLCHAIN_FILE "${_INCLUDED_TOOLCHAIN_FILE}" CACHE FILEPATH "The CMake toolchain file" FORCE) - ELSE(_INCLUDED_TOOLCHAIN_FILE) - MESSAGE(FATAL_ERROR "Could not find toolchain file: ${CMAKE_TOOLCHAIN_FILE}") - SET(CMAKE_TOOLCHAIN_FILE "NOTFOUND" CACHE FILEPATH "The CMake toolchain file" FORCE) - ENDIF(_INCLUDED_TOOLCHAIN_FILE) -ENDIF(CMAKE_TOOLCHAIN_FILE) + if(_INCLUDED_TOOLCHAIN_FILE) + set(CMAKE_TOOLCHAIN_FILE "${_INCLUDED_TOOLCHAIN_FILE}" CACHE FILEPATH "The CMake toolchain file" FORCE) + else(_INCLUDED_TOOLCHAIN_FILE) + message(FATAL_ERROR "Could not find toolchain file: ${CMAKE_TOOLCHAIN_FILE}") + set(CMAKE_TOOLCHAIN_FILE "NOTFOUND" CACHE FILEPATH "The CMake toolchain file" FORCE) + 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) - 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) - - -MACRO(ADJUST_CMAKE_SYSTEM_VARIABLES _PREFIX) - IF(NOT ${_PREFIX}_NAME) - SET(${_PREFIX}_NAME "UnknownOS") - ENDIF(NOT ${_PREFIX}_NAME) +if(CMAKE_SYSTEM_NAME) + if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING TRUE) + endif(NOT DEFINED CMAKE_CROSSCOMPILING) + 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) + + +macro(ADJUST_CMAKE_SYSTEM_VARIABLES _PREFIX) + if(NOT ${_PREFIX}_NAME) + set(${_PREFIX}_NAME "UnknownOS") + endif(NOT ${_PREFIX}_NAME) # fix for BSD/OS , remove the / - IF(${_PREFIX}_NAME MATCHES BSD.OS) - SET(${_PREFIX}_NAME BSDOS) - ENDIF(${_PREFIX}_NAME MATCHES BSD.OS) + if(${_PREFIX}_NAME MATCHES BSD.OS) + set(${_PREFIX}_NAME BSDOS) + endif(${_PREFIX}_NAME MATCHES BSD.OS) # fix for GNU/kFreeBSD, remove the GNU/ - IF(${_PREFIX}_NAME MATCHES kFreeBSD) - SET(${_PREFIX}_NAME kFreeBSD) - ENDIF(${_PREFIX}_NAME MATCHES kFreeBSD) + if(${_PREFIX}_NAME MATCHES kFreeBSD) + set(${_PREFIX}_NAME kFreeBSD) + endif(${_PREFIX}_NAME MATCHES kFreeBSD) # fix for CYGWIN which has windows version in it - IF(${_PREFIX}_NAME MATCHES CYGWIN) - SET(${_PREFIX}_NAME CYGWIN) - ENDIF(${_PREFIX}_NAME MATCHES CYGWIN) + if(${_PREFIX}_NAME MATCHES CYGWIN) + set(${_PREFIX}_NAME CYGWIN) + endif(${_PREFIX}_NAME MATCHES CYGWIN) # set CMAKE_SYSTEM to the CMAKE_SYSTEM_NAME - SET(${_PREFIX} ${${_PREFIX}_NAME}) + set(${_PREFIX} ${${_PREFIX}_NAME}) # if there is a CMAKE_SYSTEM_VERSION then add a -${CMAKE_SYSTEM_VERSION} - IF(${_PREFIX}_VERSION) - SET(${_PREFIX} ${${_PREFIX}}-${${_PREFIX}_VERSION}) - ENDIF(${_PREFIX}_VERSION) + if(${_PREFIX}_VERSION) + set(${_PREFIX} ${${_PREFIX}}-${${_PREFIX}_VERSION}) + endif(${_PREFIX}_VERSION) -ENDMACRO(ADJUST_CMAKE_SYSTEM_VARIABLES _PREFIX) +endmacro(ADJUST_CMAKE_SYSTEM_VARIABLES _PREFIX) ADJUST_CMAKE_SYSTEM_VARIABLES(CMAKE_SYSTEM) ADJUST_CMAKE_SYSTEM_VARIABLES(CMAKE_HOST_SYSTEM) # this file is also executed from cpack, then we don't need to generate these files # in this case there is no CMAKE_BINARY_DIR -IF(CMAKE_BINARY_DIR) +if(CMAKE_BINARY_DIR) # write entry to the log file - IF(PRESET_CMAKE_SYSTEM_NAME) - FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + 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 + 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 + 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) + endif(PRESET_CMAKE_SYSTEM_NAME) # if a toolchain file is used, it needs to be included in the configured file, - # so settings done there are also available if they don't go in the cache and in TRY_COMPILE() - SET(INCLUDE_CMAKE_TOOLCHAIN_FILE_IF_REQUIRED) - IF(DEFINED CMAKE_TOOLCHAIN_FILE) - SET(INCLUDE_CMAKE_TOOLCHAIN_FILE_IF_REQUIRED "INCLUDE(\"${CMAKE_TOOLCHAIN_FILE}\")") - ENDIF(DEFINED CMAKE_TOOLCHAIN_FILE) + # so settings done there are also available if they don't go in the cache and in try_compile() + set(INCLUDE_CMAKE_TOOLCHAIN_FILE_IF_REQUIRED) + if(DEFINED CMAKE_TOOLCHAIN_FILE) + set(INCLUDE_CMAKE_TOOLCHAIN_FILE_IF_REQUIRED "include(\"${CMAKE_TOOLCHAIN_FILE}\")") + endif(DEFINED CMAKE_TOOLCHAIN_FILE) # 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 + configure_file(${CMAKE_ROOT}/Modules/CMakeSystem.cmake.in ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeSystem.cmake IMMEDIATE @ONLY) -ENDIF(CMAKE_BINARY_DIR) +endif(CMAKE_BINARY_DIR) |