libwebrtc/Targets/libwebrtc/CMakeLists.txt
2017-02-03 12:18:21 +01:00

70 lines
No EOL
2.5 KiB
CMake

cmake_minimum_required(VERSION 3.5)
project(libwebrtc)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
${CMAKE_SOURCE_DIR}/CMakeModules)
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
if (WIN32)
set(LIBWEBRTC_OBJ_EXT obj)
elseif (UNIX AND NOT APPLE)
set(LIBWEBRTC_OBJ_EXT o)
elseif (APPLE)
set(LIBWEBRTC_OBJ_EXT o)
endif ()
file(GLOB_RECURSE LIBWEBRTC_OBJ_FILES
${LIBWEBRTC_OUTPUT_DIR}/obj/*.${LIBWEBRTC_OBJ_EXT})
# capture the assembly compile outputs of libvpx_yasm.lib and other third_party libs
if (WIN32)
file(GLOB_RECURSE LIBWEBRTC_O_FILES
${LIBWEBRTC_OUTPUT_DIR}/obj/*.o)
list(APPEND LIBWEBRTC_OBJ_FILES ${LIBWEBRTC_O_FILES})
endif()
list(FILTER LIBWEBRTC_OBJ_FILES EXCLUDE REGEX test)
list(FILTER LIBWEBRTC_OBJ_FILES EXCLUDE REGEX unittests)
list(FILTER LIBWEBRTC_OBJ_FILES EXCLUDE REGEX third_party/yasm/gen)
list(FILTER LIBWEBRTC_OBJ_FILES EXCLUDE REGEX third_party/yasm/re2c)
list(FILTER LIBWEBRTC_OBJ_FILES EXCLUDE REGEX third_party/yasm/re2c)
list(FILTER LIBWEBRTC_OBJ_FILES EXCLUDE REGEX third_party/protobuf/protoc)
list(FILTER LIBWEBRTC_OBJ_FILES EXCLUDE REGEX third_party/protobuf/protobuf_full)
list(FILTER LIBWEBRTC_OBJ_FILES EXCLUDE REGEX webrtc/examples)
list(FILTER LIBWEBRTC_OBJ_FILES EXCLUDE REGEX webrtc/tools)
list(FILTER LIBWEBRTC_OBJ_FILES EXCLUDE REGEX webrtc/modules/video_capture/video_capture/video_capture_external)
list(FILTER LIBWEBRTC_OBJ_FILES EXCLUDE REGEX webrtc/modules/video_capture/video_capture/device_info_external)
list(FILTER LIBWEBRTC_OBJ_FILES EXCLUDE REGEX webrtc/modules/video_capture/video_capture/device_info_external)
#add fakeaudio device
file(GLOB_RECURSE LIBWEBRTC_TEST_COMMON_FILES
"${LIBWEBRTC_OUTPUT_DIR}/obj/webrtc/test/test_common/*.${LIBWEBRTC_OBJ_EXT}"
"${LIBWEBRTC_OUTPUT_DIR}/obj/testing/gtest/gtest*.${LIBWEBRTC_OBJ_EXT}")
list(APPEND LIBWEBRTC_OBJ_FILES ${LIBWEBRTC_TEST_COMMON_FILES})
add_library(webrtc STATIC ${LIBWEBRTC_OBJ_FILES})
set_source_files_properties(${LIBWEBRTC_OBJ_FILES} PROPERTIES
EXTERNAL_OBJECT true
GENERATED true)
set_target_properties(webrtc PROPERTIES
LINKER_LANGUAGE C
LIBRARY_OUTPUT_DIRECTORY ${LIBWEBRTC_OUTPUT_DIR}
PREFIX lib)
#
# Install headers
#
install(DIRECTORY ${LIBWEBRTC_INCLUDE_DIR}
DESTINATION "include"
FILES_MATCHING PATTERN "*.h")
#
# Install library
#
install(TARGETS webrtc
DESTINATION "lib"
COMPONENT Libraries)