Skip to content
Snippets Groups Projects
FindLibraries.cmake 1.01 KiB
Newer Older
Graziano Scalamera's avatar
Graziano Scalamera committed
include(CMakeParseArguments)

function(find_libraries)

    # Parse the parameters
    set(MULTIVALUEARGS LIBRARIES SEARCH_PATHS)
    cmake_parse_arguments(FIND_LIBRARIES "" "" "${MULTIVALUEARGS}" ${ARGN})

    # Clear the found libraries
    unset(FOUND_LIBRARIES PARENT_SCOPE)

    foreach(LIB ${FIND_LIBRARIES_LIBRARIES})

        # try the user provided paths first
        find_library(FOUND_LIB_${LIB} ${LIB} PATHS ${FIND_LIBRARIES_SEARCH_PATHS} NO_DEFAULT_PATH)

        # if we could not find it, drop to the system paths
        if(NOT FOUND_LIB_${LIB})
            find_library(FOUND_LIB_${LIB} ${LIB})
        endif(NOT FOUND_LIB_${LIB})

        if(FOUND_LIB_${LIB})
            message(STATUS "Found " ${LIB} " at: " ${FOUND_LIB_${LIB}})
            list(APPEND FOUND_LIBRARIES ${FOUND_LIB_${LIB}})
        else()
            message(FATAL "Could not find " ${LIB})
        endif(FOUND_LIB_${LIB})
        
    endforeach(LIB ${LIBRARIES})

    set(FOUND_LIBRARIES ${FOUND_LIBRARIES} PARENT_SCOPE)
endfunction(find_libraries)