CMakeFindBinUtils: Find linker in PATH

Fixes: #17693
This commit is contained in:
xoviat
2018-01-30 13:41:16 -06:00
committed by Brad King
parent 58c637643d
commit e936b6bb5a

View File

@@ -19,6 +19,25 @@
# on UNIX, cygwin and mingw
if(CMAKE_LINKER)
# we only get here if CMAKE_LINKER was specified using -D or a pre-made CMakeCache.txt
# (e.g. via ctest) or set in CMAKE_TOOLCHAIN_FILE
# find the linker in the PATH if necessary
get_filename_component(_CMAKE_USER_LINKER_PATH "${CMAKE_LINKER}" PATH)
if(NOT _CMAKE_USER_LINKER_PATH)
find_program(CMAKE_LINKER_WITH_PATH NAMES ${CMAKE_LINKER} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
if(CMAKE_LINKER_WITH_PATH)
set(CMAKE_LINKER ${CMAKE_LINKER_WITH_PATH})
get_property(_CMAKE_LINKER_CACHED CACHE CMAKE_LINKER PROPERTY TYPE)
if(_CMAKE_LINKER_CACHED)
set(CMAKE_LINKER "${CMAKE_LINKER}" CACHE STRING "Default Linker" FORCE)
endif()
unset(_CMAKE_LINKER_CACHED)
endif()
unset(CMAKE_LINKER_WITH_PATH CACHE)
endif()
endif()
# if it's the MS C/CXX compiler, search for link
if("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_SIMULATE_ID}" STREQUAL "xMSVC"
OR "x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL "xMSVC"