Merge topic 'improve-generateexportheader'
c28e276
GenerateExportHeader: improve compiler identification4412fc0
GenerateExportHeader: remove unneeded code
This commit is contained in:
commit
ccd502ad44
|
@ -149,47 +149,21 @@ include(CheckCXXCompilerFlag)
|
|||
macro(_check_cxx_compiler_attribute _ATTRIBUTE _RESULT)
|
||||
check_cxx_source_compiles("${_ATTRIBUTE} int somefunc() { return 0; }
|
||||
int main() { return somefunc();}" ${_RESULT}
|
||||
# Some compilers do not fail with a bad flag
|
||||
FAIL_REGEX "unrecognized .*option" # GNU
|
||||
FAIL_REGEX "ignoring unknown option" # MSVC
|
||||
FAIL_REGEX "warning D9002" # MSVC, any lang
|
||||
FAIL_REGEX "[Uu]nknown option" # HP
|
||||
FAIL_REGEX "[Ww]arning: [Oo]ption" # SunPro
|
||||
FAIL_REGEX "command option .* is not recognized" # XL
|
||||
)
|
||||
endmacro()
|
||||
|
||||
macro(_test_compiler_hidden_visibility)
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||
exec_program(${CMAKE_C_COMPILER} ARGS --version
|
||||
OUTPUT_VARIABLE _gcc_version_info)
|
||||
string(REGEX MATCH "[345]\\.[0-9]\\.[0-9]"
|
||||
_gcc_version "${_gcc_version_info}")
|
||||
# gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the
|
||||
# patch level, handle this here:
|
||||
if(NOT _gcc_version)
|
||||
string(REGEX REPLACE ".*\\(GCC\\).* ([34]\\.[0-9]) .*" "\\1.0"
|
||||
_gcc_version "${_gcc_version_info}")
|
||||
endif()
|
||||
|
||||
if("${_gcc_version}" VERSION_LESS "4.2")
|
||||
if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.2")
|
||||
set(GCC_TOO_OLD TRUE)
|
||||
message(WARNING "GCC version older than 4.2")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES Intel)
|
||||
exec_program(${CMAKE_CXX_COMPILER} ARGS -V
|
||||
OUTPUT_VARIABLE _intel_version_info)
|
||||
string(REGEX REPLACE ".*Version ([0-9]+(\\.[0-9]+)+).*" "\\1"
|
||||
_intel_version "${_intel_version_info}")
|
||||
|
||||
if(${_intel_version} VERSION_LESS "12.0")
|
||||
elseif(CMAKE_COMPILER_IS_GNUC AND CMAKE_C_COMPILER_VERSION VERSION_LESS "4.2")
|
||||
set(GCC_TOO_OLD TRUE)
|
||||
message(WARNING "GCC version older than 4.2")
|
||||
elseif(CMAKE_CXX_COMPILER_ID MATCHES Intel AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "12.0")
|
||||
set(_INTEL_TOO_OLD TRUE)
|
||||
message(WARNING "Intel compiler older than 12.0")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
# Exclude XL here because it misinterprets -fvisibility=hidden even though
|
||||
|
|
Loading…
Reference in New Issue