mirror of
https://gitlab.kitware.com/cmake/cmake.git
synced 2026-09-25 04:09:36 +03:00
Previously a versioned name in a later search path was preferred over an unversioned name adjacent to the compiler. Consider all names in each directory before moving to the next directory.
55 lines
2.1 KiB
CMake
55 lines
2.1 KiB
CMake
if(NOT DEFINED _CMAKE_PROCESSING_LANGUAGE OR _CMAKE_PROCESSING_LANGUAGE STREQUAL "")
|
|
message(FATAL_ERROR "Internal error: _CMAKE_PROCESSING_LANGUAGE is not set")
|
|
endif()
|
|
|
|
# Ubuntu:
|
|
# * /usr/bin/llvm-ar-9
|
|
# * /usr/bin/llvm-ranlib-9
|
|
string(REGEX MATCH "^([0-9]+)" __version_x
|
|
"${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION}")
|
|
|
|
# Debian:
|
|
# * /usr/bin/llvm-ar-4.0
|
|
# * /usr/bin/llvm-ranlib-4.0
|
|
string(REGEX MATCH "^([0-9]+\\.[0-9]+)" __version_x_y
|
|
"${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION}")
|
|
|
|
# Try to find tools in the IntelLLVM Clang tools directory
|
|
get_filename_component(__intel_llvm_hint_1 "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER}" DIRECTORY)
|
|
get_filename_component(__intel_llvm_hint_1 "${__intel_llvm_hint_1}/../bin-llvm" REALPATH)
|
|
|
|
get_filename_component(__intel_llvm_hint_2 "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER}" DIRECTORY)
|
|
get_filename_component(__intel_llvm_hint_2 "${__intel_llvm_hint_2}/compiler" REALPATH)
|
|
|
|
get_filename_component(__intel_llvm_hint_3 "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER}" DIRECTORY)
|
|
|
|
set(__intel_llvm_hints ${__intel_llvm_hint_1} ${__intel_llvm_hint_2} ${__intel_llvm_hint_3})
|
|
|
|
# http://manpages.ubuntu.com/manpages/precise/en/man1/llvm-ar.1.html
|
|
find_program(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_AR
|
|
NAMES
|
|
"${_CMAKE_TOOLCHAIN_PREFIX}llvm-ar-${__version_x_y}"
|
|
"${_CMAKE_TOOLCHAIN_PREFIX}llvm-ar-${__version_x}"
|
|
"${_CMAKE_TOOLCHAIN_PREFIX}llvm-ar"
|
|
HINTS ${__intel_llvm_hints}
|
|
NAMES_PER_DIR
|
|
NO_CMAKE_PATH
|
|
NO_CMAKE_ENVIRONMENT_PATH
|
|
DOC "LLVM archiver"
|
|
)
|
|
mark_as_advanced(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_AR)
|
|
|
|
# http://manpages.ubuntu.com/manpages/precise/en/man1/llvm-ranlib.1.html
|
|
find_program(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_RANLIB
|
|
NAMES
|
|
"${_CMAKE_TOOLCHAIN_PREFIX}llvm-ranlib-${__version_x_y}"
|
|
"${_CMAKE_TOOLCHAIN_PREFIX}llvm-ranlib-${__version_x}"
|
|
"${_CMAKE_TOOLCHAIN_PREFIX}llvm-ranlib"
|
|
HINTS ${__intel_llvm_hints}
|
|
NAMES_PER_DIR
|
|
NO_CMAKE_PATH
|
|
NO_CMAKE_ENVIRONMENT_PATH
|
|
DOC "Generate index for LLVM archive"
|
|
)
|
|
mark_as_advanced(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_RANLIB)
|