cmake/search_libs.cmake

48 lines
1.7 KiB
CMake
Raw Normal View History

2017-01-17 19:20:12 +11:00
macro(search_libs _variable _symbol)
if (NOT DEFINED __search_libs_${_symbol})
message (STATUS "searching for ${_symbol}")
2017-01-17 19:20:12 +11:00
if (NOT DEFINED __search_libs_${_symbol}_lib)
try_compile(
__search_libs_${_symbol}
"${CMAKE_BINARY_DIR}/CMakeTmp"
SOURCES
"${CMAKE_SOURCE_DIR}/cmake/search_libs.cpp"
COMPILE_DEFINITIONS
"-DSYMBOL=${_symbol}")
2017-01-17 19:20:12 +11:00
if (__search_libs_${_symbol})
set (__search_libs_${_symbol}_lib)
else ()
foreach (lib ${ARGN})
if (NOT __search_libs_${_symbol})
message (STATUS "searching for ${_symbol} in ${lib}")
try_compile(
__search_libs_${_symbol}
"${CMAKE_BINARY_DIR}/CMakeTmp"
SOURCES
"${CMAKE_SOURCE_DIR}/cmake/search_libs.cpp"
LINK_LIBRARIES
"${lib}"
COMPILE_DEFINITIONS
"-DSYMBOL=${_symbol}")
if (__search_libs_${_symbol})
set (__search_libs_${_symbol}_lib ${lib} CACHE INTERNAL "library exposing ${_symbol}")
endif ()
endif ()
endforeach()
2017-01-17 19:20:12 +11:00
endif ()
endif ()
2017-01-17 19:20:12 +11:00
if (__search_libs_${_symbol})
2017-01-17 19:20:12 +11:00
message (STATUS "searching for ${_symbol} - found")
else ()
message (STATUS "searching for ${_symbol} - not found")
endif()
2017-01-17 19:20:12 +11:00
endif ()
set (${_variable} ${__search_libs_${_symbol}_lib})
2017-01-17 19:20:12 +11:00
endmacro()