mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-07-14 23:34:08 +00:00
106 lines
2.9 KiB
CMake
106 lines
2.9 KiB
CMake
#[=======================================================================[.rst
|
|
FindLibpci
|
|
----------
|
|
|
|
FindModule for Libpci and associated libraries
|
|
|
|
.. versionchanged:: 3.0
|
|
Updated FindModule to CMake standards
|
|
|
|
Imported Targets
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
.. versionadded:: 2.0
|
|
|
|
This module defines the :prop_tgt:`IMPORTED` target ``Libpci::pci``.
|
|
|
|
Result Variables
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
This module sets the following variables:
|
|
|
|
``Libpci_FOUND``
|
|
True, if all required components and the core library were found.
|
|
``Libpci_VERSION``
|
|
Detected version of found Libpci libraries.
|
|
|
|
Cache variables
|
|
^^^^^^^^^^^^^^^
|
|
|
|
The following cache variables may also be set:
|
|
|
|
``Libpci_LIBRARY``
|
|
Path to the library component of Libpci.
|
|
``Libpci_INCLUDE_DIR``
|
|
Directory containing ``Libpci.h``.
|
|
|
|
#]=======================================================================]
|
|
|
|
# cmake-format: off
|
|
# cmake-lint: disable=C0103
|
|
# cmake-format: on
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
|
|
find_package(PkgConfig QUIET)
|
|
if(PKG_CONFIG_FOUND)
|
|
pkg_search_module(PC_Libpci QUIET libpci)
|
|
endif()
|
|
|
|
find_path(
|
|
Libpci_INCLUDE_DIR
|
|
NAMES pci.h
|
|
HINTS ${PC_Libpci_INCLUDE_DIRS}
|
|
PATHS /usr/include/ /usr/local/include
|
|
PATH_SUFFIXES pci
|
|
DOC "Libpci include directory")
|
|
|
|
find_library(
|
|
Libpci_LIBRARY
|
|
NAMES libpci pci
|
|
HINTS ${PC_Libpci_LIBRARY_DIRS}
|
|
PATHS /usr/lib /usr/local/lib
|
|
DOC "Libpci location")
|
|
|
|
if(PC_Libpci_VERSION VERSION_GREATER 0)
|
|
set(Libpci_VERSION ${PC_Libpci_VERSION})
|
|
elseif(EXISTS "${Libpci_INCLUDE_DIR}/config.h")
|
|
file(STRINGS "${Libpci_INCLUDE_DIR}/config.h" _VERSION_STRING REGEX "^.*PCILIB_VERSION[ \t]+\"[0-9\\.]+\"[ \t]*$")
|
|
string(REGEX REPLACE ".*PCILIB_VERSION[ \t]+\"([0-9\\.]+)\".*" "\\1" Libpci_VERSION "${_VERSION_STRING}")
|
|
else()
|
|
if(NOT Libpci_FIND_QUIETLY)
|
|
message(AUTHOR_WARNING "Failed to find Libpci version.")
|
|
endif()
|
|
set(Libpci_VERSION 0.0.0)
|
|
endif()
|
|
|
|
find_package_handle_standard_args(
|
|
Libpci
|
|
REQUIRED_VARS Libpci_LIBRARY Libpci_INCLUDE_DIR
|
|
VERSION_VAR Libpci_VERSION REASON_FAILURE_MESSAGE "Ensure that libpci is installed on the system.")
|
|
mark_as_advanced(Libpci_INCLUDE_DIR Libpci_LIBRARY)
|
|
|
|
if(Libpci_FOUND)
|
|
if(NOT TARGET Libpci::pci)
|
|
if(IS_ABSOLUTE "${Libpci_LIBRARY}")
|
|
add_library(Libpci::pci UNKNOWN IMPORTED)
|
|
set_property(TARGET Libpci::pci PROPERTY IMPORTED_LOCATION "${Libpci_LIBRARY}")
|
|
else()
|
|
add_library(Libpci::pci INTERFACE IMPORTED)
|
|
set_property(TARGET Libpci::pci PROPERTY IMPORTED_LIBNAME "${Libpci_LIBRARY}")
|
|
endif()
|
|
|
|
set_target_properties(
|
|
Libpci::pci
|
|
PROPERTIES INTERFACE_COMPILE_OPTIONS "${PC_Libpci_CFLAFGS_OTHER}"
|
|
INTERFACE_INCLUDE_DIRECTORIES "${Libpci_INCLUDE_DIR}"
|
|
VERSION ${Libpci_VERSION})
|
|
endif()
|
|
endif()
|
|
|
|
include(FeatureSummary)
|
|
set_package_properties(
|
|
Libpci PROPERTIES
|
|
URL "https://mj.ucw.cz/sw/pciutils"
|
|
DESCRIPTION "Offers access to the PCI configuration space on a variety of operating systems.")
|