I have a vendor supplied library which we need to link against.

gcc-5 is not ABI compatible with gcc-4 and below, so I have two versions of the vendor library, one for gcc-5 builds, and one for gcc-4 builds.

I need to check which compiler I'm building with, and select the correct variant.

In CMake, I can check CMAKE_CXX_COMPILER_VERSION and set a variable:

if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
    if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5)
        set(API_LOC "gcc-4")
    else()
        set(API_LOC "gcc-5")
    endif()
endif()

add_library          (foo_api STATIC IMPORTED GLOBAL)
set_target_properties(foo_api PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_LIST_DIR}/${API_LOC}/foo.a")

Now, other components just need to add foo_api as a dependency, and they'll automatically get the correct version.

I know how to create a similar library in boost.build

lib foo_api : : <name>foo <file>foo.a ;

I don't, however, know how to conditionally specify the <file> argument dependent on compiler version.

How can I check the compiler version and select the correct library?