Imported Upstream version 3.25.0
[platform/upstream/cmake.git] / Modules / Compiler / IntelLLVM-FindBinUtils.cmake
1 if(NOT DEFINED _CMAKE_PROCESSING_LANGUAGE OR _CMAKE_PROCESSING_LANGUAGE STREQUAL "")
2   message(FATAL_ERROR "Internal error: _CMAKE_PROCESSING_LANGUAGE is not set")
3 endif()
4
5 # Ubuntu:
6 # * /usr/bin/llvm-ar-9
7 # * /usr/bin/llvm-ranlib-9
8 string(REGEX MATCH "^([0-9]+)" __version_x
9     "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION}")
10
11 # Debian:
12 # * /usr/bin/llvm-ar-4.0
13 # * /usr/bin/llvm-ranlib-4.0
14 string(REGEX MATCH "^([0-9]+\\.[0-9]+)" __version_x_y
15     "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION}")
16
17 # Try to find tools in the IntelLLVM Clang tools directory
18 get_filename_component(__intel_llvm_hint_1 "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER}" DIRECTORY)
19 get_filename_component(__intel_llvm_hint_1 "${__intel_llvm_hint_1}/../bin-llvm" REALPATH)
20
21 get_filename_component(__intel_llvm_hint_2 "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER}" DIRECTORY)
22
23 set(__intel_llvm_hints ${__intel_llvm_hint_1} ${__intel_llvm_hint_2})
24
25 # http://manpages.ubuntu.com/manpages/precise/en/man1/llvm-ar.1.html
26 find_program(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_AR NAMES
27     "${_CMAKE_TOOLCHAIN_PREFIX}llvm-ar-${__version_x_y}"
28     "${_CMAKE_TOOLCHAIN_PREFIX}llvm-ar-${__version_x}"
29     "${_CMAKE_TOOLCHAIN_PREFIX}llvm-ar"
30     HINTS ${__intel_llvm_hints}
31     NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH
32     DOC "LLVM archiver"
33 )
34 mark_as_advanced(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_AR)
35
36 # http://manpages.ubuntu.com/manpages/precise/en/man1/llvm-ranlib.1.html
37 find_program(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_RANLIB NAMES
38     "${_CMAKE_TOOLCHAIN_PREFIX}llvm-ranlib-${__version_x_y}"
39     "${_CMAKE_TOOLCHAIN_PREFIX}llvm-ranlib-${__version_x}"
40     "${_CMAKE_TOOLCHAIN_PREFIX}llvm-ranlib"
41     HINTS ${__intel_llvm_hints}
42     NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH
43     DOC "Generate index for LLVM archive"
44 )
45 mark_as_advanced(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_RANLIB)