1if(NOT DEFINED _CMAKE_PROCESSING_LANGUAGE OR _CMAKE_PROCESSING_LANGUAGE STREQUAL "") 2 message(FATAL_ERROR "Internal error: _CMAKE_PROCESSING_LANGUAGE is not set") 3endif() 4 5# Ubuntu: 6# * /usr/bin/llvm-ar-9 7# * /usr/bin/llvm-ranlib-9 8string(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 14string(REGEX MATCH "^([0-9]+\\.[0-9]+)" __version_x_y 15 "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION}") 16 17# Try to find tools in the same directory as Clang itself 18get_filename_component(__clang_hint_1 "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER}" REALPATH) 19get_filename_component(__clang_hint_1 "${__clang_hint_1}" DIRECTORY) 20 21get_filename_component(__clang_hint_2 "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER}" DIRECTORY) 22 23set(__clang_hints ${__clang_hint_1} ${__clang_hint_2}) 24 25# http://manpages.ubuntu.com/manpages/precise/en/man1/llvm-ar.1.html 26find_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 ${__clang_hints} 31 NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH 32 DOC "LLVM archiver" 33) 34mark_as_advanced(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_AR) 35 36# http://manpages.ubuntu.com/manpages/precise/en/man1/llvm-ranlib.1.html 37find_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 ${__clang_hints} 42 NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH 43 DOC "Generate index for LLVM archive" 44) 45mark_as_advanced(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_RANLIB) 46