diff --git a/CMakeLists.txt b/CMakeLists.txt index 519ce635..0b0ce5a4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -497,8 +497,18 @@ else() endif() # Since gcc 4.9 the LTO format is non-standard (slim), so we need the gcc-specific ar and ranlib binaries if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9.0) AND NOT OPENBSD) - set(CMAKE_AR "gcc-ar") - set(CMAKE_RANLIB "gcc-ranlib") + # When invoking cmake on distributions on which gcc's binaries are prefix + # with an arch-specific triplet, the user has to either specify + # -DCHOST=... or -DCMAKE_AR=... and -DCMAKE_RANLIB=... + if (DEFINED CHOST) + set(CHOST_PREFIX "${CHOST}-") + endif() + if (NOT DEFINED CMAKE_AR) + set(CMAKE_AR "${CHOST_PREFIX}gcc-ar") + endif() + if (NOT DEFINED CMAKE_RANLIB) + set(CMAKE_RANLIB "${CHOST_PREFIX}gcc-ranlib") + endif() endif() endif()