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 16.04:
6# * /usr/bin/gcc-ar-5
7# * /usr/bin/gcc-ranlib-5
8string(REGEX MATCH "^([0-9]+)" __version_x
9    "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION}")
10
11string(REGEX MATCH "^([0-9]+\\.[0-9]+)" __version_x_y
12    "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION}")
13
14# Try to find tools in the same directory as GCC itself
15get_filename_component(__gcc_hints "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER}" DIRECTORY)
16
17# http://manpages.ubuntu.com/manpages/wily/en/man1/gcc-ar.1.html
18find_program(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_AR NAMES
19    "${_CMAKE_TOOLCHAIN_PREFIX}gcc-ar-${__version_x_y}"
20    "${_CMAKE_TOOLCHAIN_PREFIX}gcc-ar-${__version_x}"
21    "${_CMAKE_TOOLCHAIN_PREFIX}gcc-ar${_CMAKE_COMPILER_SUFFIX}"
22    HINTS ${__gcc_hints}
23    NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH
24    DOC "A wrapper around 'ar' adding the appropriate '--plugin' option for the GCC compiler"
25)
26mark_as_advanced(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_AR)
27
28# http://manpages.ubuntu.com/manpages/wily/en/man1/gcc-ranlib.1.html
29find_program(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_RANLIB NAMES
30    "${_CMAKE_TOOLCHAIN_PREFIX}gcc-ranlib-${__version_x_y}"
31    "${_CMAKE_TOOLCHAIN_PREFIX}gcc-ranlib-${__version_x}"
32    "${_CMAKE_TOOLCHAIN_PREFIX}gcc-ranlib${_CMAKE_COMPILER_SUFFIX}"
33    HINTS ${__gcc_hints}
34    NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH
35    DOC "A wrapper around 'ranlib' adding the appropriate '--plugin' option for the GCC compiler"
36)
37mark_as_advanced(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_RANLIB)
38