mirror of https://github.com/openSUSE/libsolv.git
96 lines
3.1 KiB
CMake
96 lines
3.1 KiB
CMake
# FindLibSolv - Find libsolv headers and libraries.
|
|
#
|
|
# Sample:
|
|
#
|
|
# SET( LibSolv_USE_STATIC_LIBS OFF )
|
|
# FIND_PACKAGE( LibSolv REQUIRED ext )
|
|
# IF( LibSolv_FOUND )
|
|
# INCLUDE_DIRECTORIES( ${LibSolv_INCLUDE_DIRS} )
|
|
# TARGET_LINK_LIBRARIES( ... ${LibSolv_LIBRARIES} )
|
|
# ENDIF()
|
|
#
|
|
# Variables used by this module need to be set before calling find_package
|
|
# (not that they are cmale cased like the modiulemane itself):
|
|
#
|
|
# LibSolv_USE_STATIC_LIBS Can be set to ON to force the use of the static
|
|
# libsolv libraries. Defaults to OFF.
|
|
#
|
|
# Supported components:
|
|
#
|
|
# ext Also include libsolvext
|
|
#
|
|
# Variables provided by this module:
|
|
#
|
|
# LibSolv_FOUND Include dir, libsolv and all extra libraries
|
|
# specified in the COMPONENTS list were found.
|
|
#
|
|
# LibSolv_LIBRARIES Link to these to use all the libraries you specified.
|
|
#
|
|
# LibSolv_INCLUDE_DIRS Include directories.
|
|
#
|
|
# For each component you specify in find_package(), the following (UPPER-CASE)
|
|
# variables are set to pick and choose components instead of just using LibSolv_LIBRARIES:
|
|
#
|
|
# LIBSOLV_FOUND TRUE if libsolv was found
|
|
# LIBSOLV_LIBRARY libsolv libraries
|
|
#
|
|
# LIBSOLV_${COMPONENT}_FOUND TRUE if the library component was found
|
|
# LIBSOLV_${COMPONENT}_LIBRARY The libraries for the specified component
|
|
#
|
|
|
|
# Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES
|
|
IF(LibSolv_USE_STATIC_LIBS)
|
|
SET( _ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
|
SET(CMAKE_FIND_LIBRARY_SUFFIXES .a )
|
|
ENDIF()
|
|
|
|
# Look for the header files
|
|
UNSET(LibSolv_INCLUDE_DIRS CACHE)
|
|
FIND_PATH(LibSolv_INCLUDE_DIRS NAMES solv/solvable.h)
|
|
|
|
# Look for the core library
|
|
UNSET(LIBSOLV_LIBRARY CACHE)
|
|
FIND_LIBRARY(LIBSOLV_LIBRARY NAMES solv)
|
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibSolv DEFAULT_MSG LIBSOLV_LIBRARY LibSolv_INCLUDE_DIRS)
|
|
MARK_AS_ADVANCED(
|
|
LIBSOLV_FOUND
|
|
LIBSOLV_LIBRARY
|
|
)
|
|
|
|
# Prepare return values and collectiong more components
|
|
SET(LibSolv_FOUND ${LIBSOLV_FOUND})
|
|
SET(LibSolv_LIBRARIES ${LIBSOLV_LIBRARY})
|
|
MARK_AS_ADVANCED(
|
|
LibSolv_FOUND
|
|
LibSolv_LIBRARIES
|
|
LibSolv_INCLUDE_DIRS
|
|
)
|
|
|
|
# Look for components
|
|
FOREACH(COMPONENT ${LibSolv_FIND_COMPONENTS})
|
|
STRING(TOUPPER ${COMPONENT} _UPPERCOMPONENT)
|
|
UNSET(LIBSOLV_${_UPPERCOMPONENT}_LIBRARY CACHE)
|
|
FIND_LIBRARY(LIBSOLV_${_UPPERCOMPONENT}_LIBRARY NAMES solv${COMPONENT})
|
|
SET(LibSolv_${COMPONENT}_FIND_REQUIRED ${LibSolv_FIND_REQUIRED})
|
|
SET(LibSolv_${COMPONENT}_FIND_QUIETLY ${LibSolv_FIND_QUIETLY})
|
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibSolv_${COMPONENT} DEFAULT_MSG LIBSOLV_${_UPPERCOMPONENT}_LIBRARY)
|
|
MARK_AS_ADVANCED(
|
|
LIBSOLV_${_UPPERCOMPONENT}_FOUND
|
|
LIBSOLV_${_UPPERCOMPONENT}_LIBRARY
|
|
)
|
|
IF(LIBSOLV_${_UPPERCOMPONENT}_FOUND)
|
|
SET(LibSolv_LIBRARIES ${LibSolv_LIBRARIES} ${LIBSOLV_${_UPPERCOMPONENT}_LIBRARY})
|
|
ELSE()
|
|
SET(LibSolv_FOUND FALSE)
|
|
ENDIF()
|
|
ENDFOREACH()
|
|
|
|
# restore CMAKE_FIND_LIBRARY_SUFFIXES
|
|
IF(Solv_USE_STATIC_LIBS)
|
|
SET(CMAKE_FIND_LIBRARY_SUFFIXES ${_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES} )
|
|
ENDIF()
|
|
|
|
IF(LibSolv_FOUND AND NOT LibSolv_FIND_QUIETLY)
|
|
MESSAGE(STATUS "Found LibSolv: ${LibSolv_INCLUDE_DIRS} ${LibSolv_LIBRARIES}")
|
|
ENDIF()
|