|
@@ -107,16 +107,14 @@ macro(_cmake_find_compiler_path lang)
|
|
|
if(CMAKE_${lang}_COMPILER)
|
|
if(CMAKE_${lang}_COMPILER)
|
|
|
# we only get here if CMAKE_${lang}_COMPILER was specified using -D or a pre-made CMakeCache.txt
|
|
# we only get here if CMAKE_${lang}_COMPILER was specified using -D or a pre-made CMakeCache.txt
|
|
|
# (e.g. via ctest) or set in CMAKE_TOOLCHAIN_FILE
|
|
# (e.g. via ctest) or set in CMAKE_TOOLCHAIN_FILE
|
|
|
- # if CMAKE_${lang}_COMPILER is a list of length 2, use the first item as
|
|
|
|
|
- # CMAKE_${lang}_COMPILER and the 2nd one as CMAKE_${lang}_COMPILER_ARG1
|
|
|
|
|
- list(LENGTH CMAKE_${lang}_COMPILER _CMAKE_${lang}_COMPILER_LIST_LENGTH)
|
|
|
|
|
- if("${_CMAKE_${lang}_COMPILER_LIST_LENGTH}" EQUAL 2)
|
|
|
|
|
- list(GET CMAKE_${lang}_COMPILER 1 CMAKE_${lang}_COMPILER_ARG1)
|
|
|
|
|
- list(GET CMAKE_${lang}_COMPILER 0 CMAKE_${lang}_COMPILER)
|
|
|
|
|
- endif()
|
|
|
|
|
- unset(_CMAKE_${lang}_COMPILER_LIST_LENGTH)
|
|
|
|
|
|
|
+ # if CMAKE_${lang}_COMPILER is a list, use the first item as
|
|
|
|
|
+ # CMAKE_${lang}_COMPILER and the rest as CMAKE_${lang}_COMPILER_ARG1
|
|
|
|
|
+ set(CMAKE_${lang}_COMPILER_ARG1 "${CMAKE_${lang}_COMPILER}")
|
|
|
|
|
+ list(POP_FRONT CMAKE_${lang}_COMPILER_ARG1 CMAKE_${lang}_COMPILER)
|
|
|
|
|
+ list(JOIN CMAKE_${lang}_COMPILER_ARG1 " " CMAKE_${lang}_COMPILER_ARG1)
|
|
|
|
|
|
|
|
# find the compiler in the PATH if necessary
|
|
# find the compiler in the PATH if necessary
|
|
|
|
|
+ # if compiler (and arguments) comes from cache then synchronize cache with updated CMAKE_<LANG>_COMPILER
|
|
|
get_filename_component(_CMAKE_USER_${lang}_COMPILER_PATH "${CMAKE_${lang}_COMPILER}" PATH)
|
|
get_filename_component(_CMAKE_USER_${lang}_COMPILER_PATH "${CMAKE_${lang}_COMPILER}" PATH)
|
|
|
if(NOT _CMAKE_USER_${lang}_COMPILER_PATH)
|
|
if(NOT _CMAKE_USER_${lang}_COMPILER_PATH)
|
|
|
find_program(CMAKE_${lang}_COMPILER_WITH_PATH NAMES ${CMAKE_${lang}_COMPILER})
|
|
find_program(CMAKE_${lang}_COMPILER_WITH_PATH NAMES ${CMAKE_${lang}_COMPILER})
|
|
@@ -129,6 +127,12 @@ macro(_cmake_find_compiler_path lang)
|
|
|
unset(_CMAKE_${lang}_COMPILER_CACHED)
|
|
unset(_CMAKE_${lang}_COMPILER_CACHED)
|
|
|
endif()
|
|
endif()
|
|
|
unset(CMAKE_${lang}_COMPILER_WITH_PATH CACHE)
|
|
unset(CMAKE_${lang}_COMPILER_WITH_PATH CACHE)
|
|
|
|
|
+ elseif (EXISTS ${CMAKE_${lang}_COMPILER})
|
|
|
|
|
+ get_property(_CMAKE_${lang}_COMPILER_CACHED CACHE CMAKE_${lang}_COMPILER PROPERTY TYPE)
|
|
|
|
|
+ if(_CMAKE_${lang}_COMPILER_CACHED)
|
|
|
|
|
+ set(CMAKE_${lang}_COMPILER "${CMAKE_${lang}_COMPILER}" CACHE STRING "${lang} compiler" FORCE)
|
|
|
|
|
+ endif()
|
|
|
|
|
+ unset(_CMAKE_${lang}_COMPILER_CACHED)
|
|
|
endif()
|
|
endif()
|
|
|
endif()
|
|
endif()
|
|
|
endmacro()
|
|
endmacro()
|