| IF(CMAKE_SYSTEM_NAME STREQUAL "Linux") |
| SET(OS_LINUX true CACHE INTERNAL "Linux operating system") |
| ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "Darwin") |
| SET(OS_MACOSX true CACHE INTERNAL "Mac Darwin operating system") |
| ELSE(CMAKE_SYSTEM_NAME STREQUAL "Linux") |
| MESSAGE(FATAL_ERROR "Unsupported OS: \"${CMAKE_SYSTEM_NAME}\"") |
| ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux") |
| |
| IF(CMAKE_COMPILER_IS_GNUCXX) |
| EXECUTE_PROCESS(COMMAND ${CMAKE_CXX_COMPILER} --version OUTPUT_VARIABLE COMPILER_OUTPUT) |
| |
| STRING(REGEX MATCH "[0-9]\\.[0-9]\\.[0-9]" GCC_COMPILER_VERSION ${COMPILER_OUTPUT}) |
| STRING(REGEX MATCHALL "[0-9]" GCC_COMPILER_VERSION ${GCC_COMPILER_VERSION}) |
| |
| LIST(LENGTH GCC_COMPILER_VERSION GCC_COMPILER_VERSION_LEN) |
| IF (NOT 3 EQUAL ${GCC_COMPILER_VERSION_LEN}) |
| MESSAGE(FATAL_ERROR "Cannot get gcc version from \"${COMPILER_OUTPUT}\"") |
| ENDIF(NOT 3 EQUAL ${GCC_COMPILER_VERSION_LEN}) |
| |
| LIST(GET GCC_COMPILER_VERSION 0 GCC_COMPILER_VERSION_MAJOR) |
| LIST(GET GCC_COMPILER_VERSION 1 GCC_COMPILER_VERSION_MINOR) |
| LIST(GET GCC_COMPILER_VERSION 2 GCC_COMPILER_VERSION_PATCH) |
| |
| SET(GCC_COMPILER_VERSION_MAJOR ${GCC_COMPILER_VERSION_MAJOR} CACHE INTERNAL "gcc major version") |
| SET(GCC_COMPILER_VERSION_MINOR ${GCC_COMPILER_VERSION_MINOR} CACHE INTERNAL "gcc minor version") |
| SET(GCC_COMPILER_VERSION_PATCH ${GCC_COMPILER_VERSION_PATCH} CACHE INTERNAL "gcc patch version") |
| |
| MESSAGE(STATUS "checking compiler: GCC (${GCC_COMPILER_VERSION_MAJOR}.${GCC_COMPILER_VERSION_MINOR}.${GCC_COMPILER_VERSION_PATCH})") |
| ELSE(CMAKE_COMPILER_IS_GNUCXX) |
| EXECUTE_PROCESS(COMMAND ${CMAKE_CXX_COMPILER} --version OUTPUT_VARIABLE COMPILER_OUTPUT) |
| IF(COMPILER_OUTPUT MATCHES "clang") |
| SET(CMAKE_COMPILER_IS_CLANG true CACHE INTERNAL "using clang as compiler") |
| MESSAGE(STATUS "checking compiler: CLANG") |
| ELSE(COMPILER_OUTPUT MATCHES "clang") |
| MESSAGE(FATAL_ERROR "Unsupported compiler: \"${CMAKE_CXX_COMPILER}\"") |
| ENDIF(COMPILER_OUTPUT MATCHES "clang") |
| ENDIF(CMAKE_COMPILER_IS_GNUCXX) |
| |
| INCLUDE (TestBigEndian) |
| TEST_BIG_ENDIAN(IS_BIG_ENDIAN) |
| if(IS_BIG_ENDIAN) |
| message(STATUS "BIG_ENDIAN") |
| ADD_DEFINITIONS(-DIS_BIG_ENDIAN) |
| else() |
| message(STATUS "LITTLE_ENDIAN") |
| ADD_DEFINITIONS(-DIS_LITTLE_ENDIAN) |
| endif() |