Create Config, ConfigVersion and Use CMake files

Signed-off-by: Axel Isouard <axel@isouard.fr>
This commit is contained in:
Axel Isouard 2017-02-05 06:00:08 -08:00
parent aa4bca5f44
commit a179540e7e
No known key found for this signature in database
GPG key ID: D30914735883C824
3 changed files with 135 additions and 0 deletions

View file

@ -0,0 +1,63 @@
# - Config file for 'LibWebRTC' package
# It defines the following variables
#
# LIBWEBRTC_INCLUDE_DIRS - include directories
# LIBWEBRTC_LIBRARY_DIRS - library directories
# LIBWEBRTC_LIBRARIES - libraries to link against
# LIBWEBRTC_CMAKE_DIR - path to the CMake modules
# LIBWEBRTC_USE_FILE - path to the CMake use file
#
# - Version variables:
# LIBWEBRTC_MAJOR_VERSION - major version
# LIBWEBRTC_MINOR_VERSION - minor version
# LIBWEBRTC_PATCH_VERSION - patch version
# LIBWEBRTC_BUILD_VERSION - version suffix, release candidate etc
# LIBWEBRTC_WEBRTC_REVISION - WebRTC's Git revision used for that release
# LIBWEBRTC_API_VERSION - full version without build prefix
# LIBWEBRTC_VERSION - full version with build prefix
#
# - Library type and targets variables:
# LIBWEBRTC_LIBRARY_TYPE - STATIC or SHARED
# LIBWEBRTC_TARGET_OS - android, chromeos, ios, linux, nacl, mac or win
# LIBWEBRTC_TARGET_CPU - x86, x64, arm, arm64 or mipsel
# LibWebRTC version number
set(LIBWEBRTC_MAJOR_VERSION "@LIBWEBRTC_MAJOR_VERSION@")
set(LIBWEBRTC_MINOR_VERSION "@LIBWEBRTC_MINOR_VERSION@")
set(LIBWEBRTC_PATCH_VERSION "@LIBWEBRTC_PATCH_VERSION@")
set(LIBWEBRTC_BUILD_VERSION "@LIBWEBRTC_BUILD_VERSION@")
set(LIBWEBRTC_WEBRTC_REVISION "@LIBWEBRTC_WEBRTC_REVISION@")
set(LIBWEBRTC_API_VERSION "@LIBWEBRTC_API_VERSION@")
set(LIBWEBRTC_VERSION "@LIBWEBRTC_VERSION@")
# LibWebRTC library type, target OS and target CPU
set(LIBWEBRTC_LIBRARY_TYPE "@LIBRARY_TYPE@")
set(LIBWEBRTC_TARGET_OS "@TARGET_OS@")
set(LIBWEBRTC_TARGET_CPU "@TARGET_CPU@")
# Include directory
set(LIBWEBRTC_INCLUDE_DIRS "@INSTALL_INCLUDE_DIR@")
# Libraries directory
set(LIBWEBRTC_LIBRARY_DIRS "@INSTALL_LIB_DIR@")
# Set the expected libraries variable
set(LIBWEBRTC_LIBRARIES @LIBWEBRTC_LIBRARIES@)
# The C and C++ flags added by LibWebRTC to the cmake-configured flags.
set(LIBWEBRTC_REQUIRED_C_FLAGS "@LIBWEBRTC_REQUIRED_C_FLAGS@")
set(LIBWEBRTC_REQUIRED_CXX_FLAGS "@LIBWEBRTC_REQUIRED_CXX_FLAGS@")
set(LIBWEBRTC_REQUIRED_C_FLAGS_DEBUG "@LIBWEBRTC_REQUIRED_C_FLAGS_DEBUG@")
set(LIBWEBRTC_REQUIRED_C_FLAGS_RELEASE "@LIBWEBRTC_REQUIRED_C_FLAGS_RELEASE@")
set(LIBWEBRTC_REQUIRED_CXX_FLAGS_DEBUG "@LIBWEBRTC_REQUIRED_CXX_FLAGS_DEBUG@")
set(LIBWEBRTC_REQUIRED_CXX_FLAGS_RELEASE "@LIBWEBRTC_REQUIRED_CXX_FLAGS_RELEASE@")
set(LIBWEBRTC_REQUIRED_SHARED_LINKER_FLAGS "@LIBWEBRTC_REQUIRED_SHARED_LINKER_FLAGS@")
set(LIBWEBRTC_REQUIRED_STATIC_LINKER_FLAGS "@LIBWEBRTC_REQUIRED_STATIC_LINKER_FLAGS@")
set(LIBWEBRTC_DEFINITIONS "@LIBWEBRTC_DEFINITIONS@")
# The location of the UseLibWebRTC.cmake file.
set(LIBWEBRTC_CMAKE_DIR "@INSTALL_CMAKE_DIR@")
set(LIBWEBRTC_USE_FILE "${LIBWEBRTC_CMAKE_DIR}/UseLibWebRTC.cmake")
# Import LibWebRTC targets.
include("${LIBWEBRTC_CMAKE_DIR}/LibWebRTCTargets.cmake")

View file

@ -0,0 +1,14 @@
# The full LibWebRTC version number.
set(PACKAGE_VERSION "@LIBWEBRTC_API_VERSION@")
# This version is compatible only with matching major.minor versions.
if ("@LIBWEBRTC_MAJOR_VERSION@.@LIBWEBRTC_MINOR_VERSION@" VERSION_EQUAL
"${PACKAGE_FIND_VERSION_MAJOR}.${PACKAGE_FIND_VERSION_MINOR}")
# This version is compatible with equal or lesser patch versions.
if (NOT "@LIBWEBRTC_PATCH_VERSION@" VERSION_LESS "${PACKAGE_FIND_VERSION_PATCH}")
set(PACKAGE_VERSION_COMPATIBLE 1)
if ("@LIBWEBRTC_PATCH_VERSION@" VERSION_EQUAL "${PACKAGE_FIND_VERSION_PATCH}")
set(PACKAGE_VERSION_EXACT 1)
endif ()
endif ()
endif ()

View file

@ -0,0 +1,58 @@
#
# This module is provided as LIBWEBRTC_USE_FILE by LibWebRTCConfig.cmake.
# It can be INCLUDEd in a project to load the needed compiler and linker
# settings to use LibWebRTC.
#
if (LIBWEBRTC_USE_FILE_INCLUDED)
return()
endif ()
set(LIBWEBRTC_USE_FILE_INCLUDED 1)
# Update CMAKE_MODULE_PATH so includes work.
list(APPEND CMAKE_MODULE_PATH ${LIBWEBRTC_CMAKE_DIR})
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
list(APPEND LIBWEBRTC_LIBRARIES Threads::Threads)
if (UNIX AND NOT APPLE)
find_package(X11 REQUIRED)
list(APPEND LIBWEBRTC_LIBRARIES ${X11_LIBRARIES} ${CMAKE_DL_LIBS})
endif (UNIX AND NOT APPLE)
if (APPLE)
find_library(AUDIOTOOLBOX_LIBRARY AudioToolbox)
find_library(COREAUDIO_LIBRARY CoreAudio)
find_library(COREFOUNDATION_LIBRARY CoreFoundation)
find_library(COREGRAPHICS_LIBRARY CoreGraphics)
find_library(FOUNDATION_LIBRARY Foundation)
list(APPEND LIBWEBRTC_LIBRARIES ${AUDIOTOOLBOX_LIBRARY} ${COREAUDIO_LIBRARY}
${COREFOUNDATION_LIBRARY} ${COREGRAPHICS_LIBRARY} ${FOUNDATION_LIBRARY})
endif (APPLE)
if (WIN32)
list(APPEND LIBWEBRTC_LIBRARIES msdmo.lib wmcodecdspuuid.lib dmoguids.lib
ole32.lib secur32.lib winmm.lib ws2_32.lib)
endif (WIN32)
# Add compiler flags needed to use LibWebRTC.
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LIBWEBRTC_REQUIRED_C_FLAGS}")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${LIBWEBRTC_REQUIRED_C_FLAGS_DEBUG}")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${LIBWEBRTC_REQUIRED_C_FLAGS_RELEASE}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LIBWEBRTC_REQUIRED_CXX_FLAGS}")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${LIBWEBRTC_REQUIRED_CXX_FLAGS_DEBUG}")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${LIBWEBRTC_REQUIRED_CXX_FLAGS_RELEASE}")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${LIBWEBRTC_REQUIRED_SHARED_LINKER_FLAGS}")
set(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} ${LIBWEBRTC_REQUIRED_STATIC_LINKER_FLAGS}")
# Add preprocessor definitions needed to use LibWebRTC.
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS ${LIBWEBRTC_DEFINITIONS})
# Add include directories needed to use LibWebRTC.
include_directories(${LIBWEBRTC_INCLUDE_DIRS})
# Add link directories needed to use LibWebRTC.
link_directories(${LIBWEBRTC_LIBRARY_DIRS})