diff options
author | Stephen Kelly <steveire@gmail.com> | 2014-04-23 08:33:16 (GMT) |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2014-05-07 12:00:00 (GMT) |
commit | 9a083bce83cfa31192ad34ba504454f8087c4fce (patch) | |
tree | d00a469b13a772989f9b2e35d77bc27657a0c6f4 /Modules/CMakeDetermineCompilerId.cmake | |
parent | 9d285600d484c8e539801310f2c4bbe2bb4daef8 (diff) | |
download | CMake-9a083bce83cfa31192ad34ba504454f8087c4fce.zip CMake-9a083bce83cfa31192ad34ba504454f8087c4fce.tar.gz CMake-9a083bce83cfa31192ad34ba504454f8087c4fce.tar.bz2 |
Project: Split the compiler id detection into a separate function.
This can be extended with parameters to control the output and re-used
in other contexts.
Diffstat (limited to 'Modules/CMakeDetermineCompilerId.cmake')
-rw-r--r-- | Modules/CMakeDetermineCompilerId.cmake | 76 |
1 files changed, 2 insertions, 74 deletions
diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake index ddaa8ef..94c2e50 100644 --- a/Modules/CMakeDetermineCompilerId.cmake +++ b/Modules/CMakeDetermineCompilerId.cmake @@ -97,13 +97,7 @@ function(CMAKE_DETERMINE_COMPILER_ID lang flagvar src) set(CMAKE_${lang}_SIMULATE_VERSION "${CMAKE_${lang}_SIMULATE_VERSION}" PARENT_SCOPE) endfunction() -function(_readFile file) - include(${file}) - get_filename_component(name ${file} NAME_WE) - string(REGEX REPLACE "-.*" "" CompilerId ${name}) - set(_compiler_id_version_compute_${CompilerId} ${_compiler_id_version_compute} PARENT_SCOPE) - set(_compiler_id_pp_test_${CompilerId} ${_compiler_id_pp_test} PARENT_SCOPE) -endfunction() +include(CMakeCompilerIdDetection) #----------------------------------------------------------------------------- # Function to write the compiler id source file. @@ -111,73 +105,7 @@ function(CMAKE_DETERMINE_COMPILER_ID_WRITE lang src) find_file(src_in ${src}.in PATHS ${CMAKE_ROOT}/Modules ${CMAKE_MODULE_PATH} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH) file(READ ${src_in} ID_CONTENT_IN) - file(GLOB lang_files - "${CMAKE_ROOT}/Modules/Compiler/*-${lang}-DetermineCompiler.cmake") - - if (NOT lang STREQUAL Fortran) - file(GLOB non_lang_files - "${CMAKE_ROOT}/Modules/Compiler/*-${lang}-DetermineCompiler.cmake") - endif() - - set(files ${lang_files} ${non_lang_files}) - if (files) - foreach(file ${files}) - _readFile(${file}) - endforeach() - set(pp_if "#if") - set(CMAKE_CXX_COMPILER_ID_CONTENT "/* Version number components: V=Version, R=Revision, P=Patch - Version date components: YYYY=Year, MM=Month, DD=Day */\n") - - foreach(Id - Comeau - Intel - PathScale - AppleClang - Clang - Embarcadero - Borland - Watcom - OpenWatcom - SunPro - HP - Compaq - zOS - XL - VisualAge - PGI - Cray - TI - SCO - GNU - MSVC - ADSP - IAR - MIPSpro) - if (NOT _compiler_id_pp_test_${Id}) - message(FATAL_ERROR "No test for \"${Id}\"") - endif() - set(id_content "${pp_if} ${_compiler_id_pp_test_${Id}}\n# define COMPILER_ID \"${Id}\"${_compiler_id_version_compute_${Id}}\n") - set(CMAKE_CXX_COMPILER_ID_CONTENT "${CMAKE_CXX_COMPILER_ID_CONTENT}\n${id_content}") - set(pp_if "#elif") - endforeach() - - set(platform_compiler_detection " -/* These compilers are either not known or too old to define an - identification macro. Try to identify the platform and guess that - it is the native compiler. */ -#elif defined(__sgi) -# define COMPILER_ID \"MIPSpro\" - -#elif defined(__hpux) || defined(__hpua) -# define COMPILER_ID \"HP\" - -#else /* unknown compiler */ -# define COMPILER_ID \"\" - -#endif") - - set(CMAKE_CXX_COMPILER_ID_CONTENT "${CMAKE_CXX_COMPILER_ID_CONTENT}\n${platform_compiler_detection}") - endif() + compiler_id_detection(CMAKE_${lang}_COMPILER_ID_CONTENT ${lang}) unset(src_in CACHE) string(CONFIGURE "${ID_CONTENT_IN}" ID_CONTENT_OUT @ONLY) |