73 lines
2.5 KiB
CMake
73 lines
2.5 KiB
CMake
|
|
# This module defines macros that are useful for using libraries in a build. The
|
||
|
|
# macros in this module are typically used along with the FindDependencyMacros.
|
||
|
|
|
||
|
|
# ADD_LIBRARY_TO_LIST Macro
|
||
|
|
# Adds a library to a list of libraries if it is found. Otherwise, reports an
|
||
|
|
# error.
|
||
|
|
#
|
||
|
|
# Usage:
|
||
|
|
# ADD_LIBRARY_TO_LIST( libraries found lib lib_name )
|
||
|
|
#
|
||
|
|
# Parameters:
|
||
|
|
# libraries The list of libraries to add the library to.
|
||
|
|
# found Whether or not the library to add was found.
|
||
|
|
# lib The library to add to the list.
|
||
|
|
# lib_name The name of the library to add to the list.
|
||
|
|
MACRO( ADD_LIBRARY_TO_LIST libraries found lib lib_name )
|
||
|
|
|
||
|
|
# Setting found to itself is necessary for the conditional to work.
|
||
|
|
SET( found ${found} )
|
||
|
|
|
||
|
|
# IF found, then add the library to the list, else report an error.
|
||
|
|
IF( found )
|
||
|
|
LIST( REMOVE_ITEM ${libraries} ${lib} )
|
||
|
|
SET( ${libraries} ${${libraries}} ${lib} )
|
||
|
|
ENDIF( found )
|
||
|
|
IF( NOT found )
|
||
|
|
MESSAGE( "Using ${lib_name} failed." )
|
||
|
|
ENDIF( NOT found )
|
||
|
|
|
||
|
|
ENDMACRO( ADD_LIBRARY_TO_LIST )
|
||
|
|
|
||
|
|
|
||
|
|
# USE_LIBRARY_GLOBALS Macro
|
||
|
|
# If ${prefix}_USE_${LIB} is true, then ${prefix}_${LIB}_LIBRARY will be added
|
||
|
|
# to ${prefix}_LIBRARIES (assuming the library was correctly found). All of the
|
||
|
|
# dependencies will also be added to ${prefix}_LIBRARIES.
|
||
|
|
#
|
||
|
|
# Usage:
|
||
|
|
# USE_LIBRARY_GLOBALS( prefix lib
|
||
|
|
# DEPS dependency1 [dependency2...] )
|
||
|
|
#
|
||
|
|
# Parameters:
|
||
|
|
# prefix The prefix for the global variables.
|
||
|
|
# lib The library to try to use.
|
||
|
|
# DEPS Follow with the list of dependencies that should be added with
|
||
|
|
# the given library.
|
||
|
|
MACRO( USE_LIBRARY_GLOBALS prefix lib )
|
||
|
|
|
||
|
|
STRING( TOUPPER ${lib} upper )
|
||
|
|
|
||
|
|
# If the library should be used...
|
||
|
|
IF( ${prefix}_USE_${upper} )
|
||
|
|
|
||
|
|
# Parse the arguments into variables.
|
||
|
|
ARGUMENT_PARSER( "" "DEPS" "" ${ARGN} )
|
||
|
|
|
||
|
|
# Add the library to the list.
|
||
|
|
ADD_LIBRARY_TO_LIST( ${prefix}_LIBRARIES "${${prefix}_${upper}_FOUND}"
|
||
|
|
"${${prefix}_${upper}_LIBRARY}" ${lib} )
|
||
|
|
|
||
|
|
# For each of the library's dependencies.
|
||
|
|
FOREACH( dep_itr ${deps} )
|
||
|
|
STRING( TOUPPER ${dep_itr} upper )
|
||
|
|
|
||
|
|
# Add the dependency to the list.
|
||
|
|
ADD_LIBRARY_TO_LIST( ${prefix}_LIBRARIES
|
||
|
|
"${${prefix}_${upper}_FOUND}"
|
||
|
|
"${${prefix}_${upper}_LIBRARY}" ${dep_itr} )
|
||
|
|
ENDFOREACH( dep_itr )
|
||
|
|
ENDIF( ${prefix}_USE_${upper} )
|
||
|
|
|
||
|
|
ENDMACRO( USE_LIBRARY_GLOBALS )
|