mirror of
https://github.com/UltraCoderRU/libwebrtc.git
synced 2026-01-28 03:15:11 +00:00
Create Config, ConfigVersion and Use CMake files
Signed-off-by: Axel Isouard <axel@isouard.fr>
This commit is contained in:
parent
aa4bca5f44
commit
a179540e7e
3 changed files with 135 additions and 0 deletions
63
CMakeModules/LibWebRTCConfig.cmake.in
Normal file
63
CMakeModules/LibWebRTCConfig.cmake.in
Normal 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")
|
||||||
14
CMakeModules/LibWebRTCConfigVersion.cmake.in
Normal file
14
CMakeModules/LibWebRTCConfigVersion.cmake.in
Normal 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 ()
|
||||||
58
CMakeModules/UseLibWebRTC.cmake
Normal file
58
CMakeModules/UseLibWebRTC.cmake
Normal 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})
|
||||||
Loading…
Add table
Reference in a new issue