[8cc501] | 1 | # -*- mode: cmake; -*- |
---|
| 2 | # |
---|
| 3 | # Figure out the version of the used compiler |
---|
| 4 | # Variables set by this module |
---|
| 5 | # CMAKE_CXX_COMPILER_MAJOR major version of compiler |
---|
| 6 | # CMAKE_CXX_COMPILER_MINR minor version of compiler |
---|
| 7 | # CMAKE_CXX_COMPILER_PATCH patch level (e.g. gcc 4.1.0) |
---|
| 8 | # |
---|
| 9 | |
---|
| 10 | #execute_process(COMMAND <cmd1> [args1...]] |
---|
| 11 | # [COMMAND <cmd2> [args2...] [...]] |
---|
| 12 | # [WORKING_DIRECTORY <directory>] |
---|
| 13 | # [TIMEOUT <seconds>] |
---|
| 14 | # [RESULT_VARIABLE <variable>] |
---|
| 15 | # [OUTPUT_VARIABLE <variable>] |
---|
| 16 | # [ERROR_VARIABLE <variable>] |
---|
| 17 | # [INPUT_FILE <file>] |
---|
| 18 | # [OUTPUT_FILE <file>] |
---|
| 19 | # [ERROR_FILE <file>] |
---|
| 20 | # [OUTPUT_QUIET] |
---|
| 21 | # [ERROR_QUIET] |
---|
| 22 | # [OUTPUT_STRIP_TRAILING_WHITESPACE] |
---|
| 23 | # [ERROR_STRIP_TRAILING_WHITESPACE]) |
---|
| 24 | |
---|
| 25 | # check the version of the compiler |
---|
| 26 | set(CMAKE_CXX_COMPILER_MAJOR "CMAKE_CXX_COMPILER_MAJOR-NOTFOUND") |
---|
| 27 | set(CMAKE_CXX_COMPILER_MINOR "CMAKE_CXX_COMPILER_MINOR-NOTFOUND") |
---|
| 28 | set(CMAKE_CXX_COMPILER_PATCH "CMAKE_CXX_COMPILER_PATCH-NOTFOUND") |
---|
| 29 | |
---|
| 30 | # extract the version of the compiler |
---|
| 31 | if( ${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel") |
---|
| 32 | execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion |
---|
| 33 | OUTPUT_VARIABLE CMAKE_CXX_COMPILER_VERSION) |
---|
| 34 | |
---|
| 35 | string(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*$" "\\1" |
---|
| 36 | CMAKE_CXX_COMPILER_MAJOR ${CMAKE_CXX_COMPILER_VERSION}) |
---|
| 37 | string(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*" "\\2" |
---|
| 38 | CMAKE_CXX_COMPILER_MINOR ${CMAKE_CXX_COMPILER_VERSION}) |
---|
| 39 | set(CMAKE_CXX_COMPILER_PATCH "") |
---|
| 40 | endif( ${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel") |
---|
| 41 | |
---|
| 42 | if( ${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") |
---|
| 43 | execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion |
---|
| 44 | OUTPUT_VARIABLE CMAKE_CXX_COMPILER_VERSION) |
---|
| 45 | |
---|
| 46 | string(STRIP ${CMAKE_CXX_COMPILER_VERSION} CMAKE_CXX_COMPILER_VERSION) |
---|
| 47 | string(REGEX REPLACE "^([0-9]+).*$" "\\1" |
---|
| 48 | CMAKE_CXX_COMPILER_MAJOR ${CMAKE_CXX_COMPILER_VERSION}) |
---|
| 49 | string(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*$" "\\2" |
---|
| 50 | CMAKE_CXX_COMPILER_MINOR ${CMAKE_CXX_COMPILER_VERSION}) |
---|
| 51 | string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$" "\\3" |
---|
| 52 | CMAKE_CXX_COMPILER_PATCH ${CMAKE_CXX_COMPILER_VERSION}) |
---|
| 53 | endif( ${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") |
---|
| 54 | |
---|
| 55 | |
---|
| 56 | # just print the results if requested |
---|
| 57 | function(info_compiler) |
---|
| 58 | message(STATUS "CMAKE_FORCE_CXX_COMPILER = '${CMAKE_FORCE_CXX_COMPILER}'") |
---|
| 59 | message(STATUS "CMAKE_CXX_COMPILER = '${CMAKE_CXX_COMPILER}'") |
---|
| 60 | message(STATUS "CMAKE_CXX_COMPILER_ID = '${CMAKE_CXX_COMPILER_ID}'") |
---|
| 61 | message(STATUS "CMAKE_CXX_COMPILER_INIT = '${CMAKE_CXX_COMPILER_INIT}'") |
---|
| 62 | message(STATUS "CMAKE_GENERATOR_CXX = '${CMAKE_GENERATOR_CXX}'") |
---|
| 63 | message(STATUS "CMAKE_GNULD_IMAGE_VERSION = '${CMAKE_GNULD_IMAGE_VERSION}'") |
---|
| 64 | message(STATUS "CMAKE_CXX_COMPILER_VERSION= '${CMAKE_CXX_COMPILER_VERSION}'") |
---|
| 65 | message(STATUS "CMAKE_CXX_COMPILER_MAJOR = '${CMAKE_CXX_COMPILER_MAJOR}'") |
---|
| 66 | message(STATUS "CMAKE_CXX_COMPILER_MINOR = '${CMAKE_CXX_COMPILER_MINOR}'") |
---|
| 67 | message(STATUS "CMAKE_CXX_COMPILER_PATCH = '${CMAKE_CXX_COMPILER_PATCH}'") |
---|
| 68 | endfunction(info_compiler) |
---|