Changed unmodified names
parent
258d746fa8
commit
a94d5b68f5
116
CMakeLists.txt
116
CMakeLists.txt
|
@ -1,18 +1,18 @@
|
|||
# ============================================================================
|
||||
#
|
||||
# CMake file for PeerConnect
|
||||
# CMake file for PeerApi
|
||||
#
|
||||
# ============================================================================
|
||||
|
||||
cmake_minimum_required(VERSION 3.2)
|
||||
project(peerconnect)
|
||||
project(peerapi)
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# The version number.
|
||||
# ============================================================================
|
||||
|
||||
set(PACKAGE "peerconnect")
|
||||
set(PACKAGE "peerapi")
|
||||
set(CPACK_PACKAGE_NAME "${PACKAGE}")
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR "0")
|
||||
set(CPACK_PACKAGE_VERSION_MINOR "0")
|
||||
|
@ -21,12 +21,12 @@ set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSIO
|
|||
#set(CPACK_PACKAGE_VENDOR "")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PACKAGE} ${PACKAGE_VERSION}")
|
||||
|
||||
option(PC_WITH_STATIC "Build the static version of the library" ON)
|
||||
option(PC_WITH_SHARED "Build the shared version of the library" ON)
|
||||
option(PC_BUILD_EXAMPLE "Build the example application" ON)
|
||||
option(PC_BUILD_TEST "Build test application" ON)
|
||||
option(PEERAPI_WITH_STATIC "Build the static version of the library" ON)
|
||||
option(PEERAPI_WITH_SHARED "Build the shared version of the library" ON)
|
||||
option(PEERAPI_BUILD_EXAMPLE "Build the example application" ON)
|
||||
option(PEERAPI_BUILD_TEST "Build test application" ON)
|
||||
|
||||
if (NOT (PC_WITH_STATIC OR PC_WITH_SHARED))
|
||||
if (NOT (PEERAPI_WITH_STATIC OR PEERAPI_WITH_SHARED))
|
||||
message(FATAL_ERROR "Makes no sense to compile with neither static nor shared libraries.")
|
||||
endif()
|
||||
|
||||
|
@ -99,12 +99,12 @@ set(SOURCES
|
|||
# Target settings
|
||||
# ============================================================================
|
||||
|
||||
set(_PC_INTERNAL_DEFINES
|
||||
set(_PEERAPI_INTERNAL_DEFINES
|
||||
${WEBRTC_DEFINES}
|
||||
${WEBSOCKETPP_DEFINES}
|
||||
)
|
||||
|
||||
set(_PC_INTERNAL_INCLUDE_DIR
|
||||
set(_PEERAPI_INTERNAL_INCLUDE_DIR
|
||||
"${WEBRTC_INCLUDE_DIR}"
|
||||
"${ASIO_INCLUDE_DIR}"
|
||||
"${WEBSOCKETPP_INCLUDE_DIIR}"
|
||||
|
@ -112,24 +112,24 @@ set(_PC_INTERNAL_INCLUDE_DIR
|
|||
"${PROJECT_SOURCE_DIR}/src"
|
||||
)
|
||||
|
||||
set(_PC_INTERNAL_LIBRARIES
|
||||
set(_PEERAPI_INTERNAL_LIBRARIES
|
||||
"${WEBRTC_LIBRARIES_INTERNAL}"
|
||||
"${WEBRTC_LIBRARIES_EXTERNAL}"
|
||||
)
|
||||
|
||||
set(PC_INCLUDE_DIRECTORY
|
||||
set(PEERAPI_INCLUDE_DIRECTORY
|
||||
"${PROJECT_BINARY_DIR}"
|
||||
"${PROJECT_SOURCE_DIR}/src"
|
||||
)
|
||||
|
||||
if (PC_WITH_STATIC)
|
||||
add_library(peerconnect STATIC ${HEADERS} ${SOURCES})
|
||||
if (PEERAPI_WITH_STATIC)
|
||||
add_library(peerapi STATIC ${HEADERS} ${SOURCES})
|
||||
|
||||
target_compile_definitions(peerconnect PRIVATE ${_PC_INTERNAL_DEFINES})
|
||||
target_include_directories(peerconnect PRIVATE ${_PC_INTERNAL_INCLUDE_DIR} )
|
||||
target_compile_definitions(peerapi PRIVATE ${_PEERAPI_INTERNAL_DEFINES})
|
||||
target_include_directories(peerapi PRIVATE ${_PEERAPI_INTERNAL_INCLUDE_DIR} )
|
||||
|
||||
if (MSVC)
|
||||
add_custom_command(TARGET peerconnect PRE_BUILD
|
||||
add_custom_command(TARGET peerapi PRE_BUILD
|
||||
COMMAND echo Building WebRTC library
|
||||
COMMAND set PATH=${DEPOT_TOOLS_DIR};%PATH%
|
||||
COMMAND cmd.exe /C gn gen ${WEBRTC_OUT_DIR} --args=\"is_debug=false is_component_build=false target_cpu=\\\"x86\\\"\"
|
||||
|
@ -142,14 +142,14 @@ if (PC_WITH_STATIC)
|
|||
elseif (APPLE)
|
||||
string(TOUPPER "${CMAKE_BUILD_TYPE}" _CMAKE_BUILD_TYPE)
|
||||
if (_CMAKE_BUILD_TYPE STREQUAL "DEBUG")
|
||||
add_custom_command(TARGET peerconnect PRE_LINK
|
||||
add_custom_command(TARGET peerapi PRE_LINK
|
||||
COMMAND ${CMAKE_COMMAND} -E env \"PATH=${DEPOT_TOOLS_DIR}:$ENV{PATH}\" gn gen ${WEBRTC_OUT_DIR_DEBUG} --args=\"is_debug=true is_component_build=false\"
|
||||
COMMAND ${CMAKE_COMMAND} -E env \"PATH=${DEPOT_TOOLS_DIR}:$ENV{PATH}\" ninja -C ${WEBRTC_OUT_DIR_DEBUG}
|
||||
WORKING_DIRECTORY "${WEBRTC_ROOT_DIR}"
|
||||
COMMENT "Building WebRTC library (Once)"
|
||||
)
|
||||
else()
|
||||
add_custom_command(TARGET peerconnect PRE_LINK
|
||||
add_custom_command(TARGET peerapi PRE_LINK
|
||||
COMMAND ${CMAKE_COMMAND} -E env \"PATH=${DEPOT_TOOLS_DIR}:$ENV{PATH}\" gn gen ${WEBRTC_OUT_DIR} --args=\"is_debug=false is_component_build=false\"
|
||||
COMMAND ${CMAKE_COMMAND} -E env \"PATH=${DEPOT_TOOLS_DIR}:$ENV{PATH}\" ninja -C ${WEBRTC_OUT_DIR}
|
||||
WORKING_DIRECTORY "${WEBRTC_ROOT_DIR}"
|
||||
|
@ -159,7 +159,7 @@ if (PC_WITH_STATIC)
|
|||
elseif(UNIX)
|
||||
string(TOUPPER "${CMAKE_BUILD_TYPE}" _CMAKE_BUILD_TYPE)
|
||||
if (_CMAKE_BUILD_TYPE STREQUAL "DEBUG")
|
||||
add_custom_command(TARGET peerconnect PRE_LINK
|
||||
add_custom_command(TARGET peerapi PRE_LINK
|
||||
COMMAND export \"PATH=${DEPOT_TOOLS_DIR}:$ENV{PATH}\"
|
||||
COMMAND gn gen ${WEBRTC_OUT_DIR_DEBUG} --args=\"is_debug=true is_component_build=false\"
|
||||
COMMAND ninja -C ${WEBRTC_OUT_DIR_DEBUG} peerconnection_client
|
||||
|
@ -167,7 +167,7 @@ if (PC_WITH_STATIC)
|
|||
COMMENT "Building WebRTC library (Once)"
|
||||
)
|
||||
else()
|
||||
add_custom_command(TARGET peerconnect PRE_LINK
|
||||
add_custom_command(TARGET peerapi PRE_LINK
|
||||
COMMAND export \"PATH=${DEPOT_TOOLS_DIR}:$ENV{PATH}\"
|
||||
COMMAND gn gen ${WEBRTC_OUT_DIR} --args=\"is_debug=false is_component_build=false\"
|
||||
COMMAND ninja -C ${WEBRTC_OUT_DIR} peerconnection_client
|
||||
|
@ -181,25 +181,25 @@ if (PC_WITH_STATIC)
|
|||
if (WIN32)
|
||||
# Windows uses the same .lib ending for static libraries and shared
|
||||
# library linker files, so rename the static library.
|
||||
set_target_properties(peerconnect PROPERTIES OUTPUT_NAME peerconnect_static)
|
||||
set_target_properties(peerapi PROPERTIES OUTPUT_NAME peerapi_static)
|
||||
endif()
|
||||
|
||||
if (MSVC)
|
||||
MERGE_STATIC_LIBRARIES( peerconnect
|
||||
MERGE_STATIC_LIBRARIES( peerapi
|
||||
"${WEBRTC_LIBRARIES_INTERNAL_RELEASE}"
|
||||
"${WEBRTC_LIBRARIES_INTERNAL_DEBUG}"
|
||||
"${WEBRTC_OBJECTS_INTERNAL_RELEASE}"
|
||||
"${WEBRTC_OBJECTS_INTERNAL_DEBUG}"
|
||||
)
|
||||
elseif (APPLE)
|
||||
MERGE_STATIC_LIBRARIES(peerconnect
|
||||
MERGE_STATIC_LIBRARIES(peerapi
|
||||
"${WEBRTC_LIBRARIES_INTERNAL_RELEASE}"
|
||||
"${WEBRTC_LIBRARIES_INTERNAL_DEBUG}"
|
||||
"${WEBRTC_OBJECTS_INTERNAL_RELEASE}"
|
||||
"${WEBRTC_OBJECTS_INTERNAL_DEBUG}"
|
||||
)
|
||||
elseif (UNIX)
|
||||
MERGE_STATIC_LIBRARIES(peerconnect
|
||||
MERGE_STATIC_LIBRARIES(peerapi
|
||||
"${WEBRTC_LIBRARIES_INTERNAL_RELEASE}"
|
||||
"${WEBRTC_LIBRARIES_INTERNAL_DEBUG}"
|
||||
"${WEBRTC_OBJECTS_INTERNAL_RELEASE}"
|
||||
|
@ -209,81 +209,81 @@ if (PC_WITH_STATIC)
|
|||
|
||||
endif()
|
||||
|
||||
if (PC_WITH_SHARED)
|
||||
add_library(peerconnect_shared SHARED ${HEADERS} ${SOURCES})
|
||||
if (PEERAPI_WITH_SHARED)
|
||||
add_library(peerapi_shared SHARED ${HEADERS} ${SOURCES})
|
||||
|
||||
target_compile_definitions(peerconnect_shared PRIVATE ${_PC_INTERNAL_DEFINES})
|
||||
target_include_directories(peerconnect_shared PRIVATE ${_PC_INTERNAL_INCLUDE_DIR} )
|
||||
set_target_properties(peerconnect_shared PROPERTIES OUTPUT_NAME peerconnect)
|
||||
target_link_libraries(peerconnect_shared ${_PC_INTERNAL_LIBRARIES} ${WEBRTC_OBJECTS_INTERNAL})
|
||||
target_compile_definitions(peerapi_shared PRIVATE ${_PEERAPI_INTERNAL_DEFINES})
|
||||
target_include_directories(peerapi_shared PRIVATE ${_PEERAPI_INTERNAL_INCLUDE_DIR} )
|
||||
set_target_properties(peerapi_shared PROPERTIES OUTPUT_NAME peerapi)
|
||||
target_link_libraries(peerapi_shared ${_PEERAPI_INTERNAL_LIBRARIES} ${WEBRTC_OBJECTS_INTERNAL})
|
||||
|
||||
if (WIN32)
|
||||
# # Compile as DLL (export function declarations)
|
||||
# set_property(
|
||||
# TARGET peerconnect_shared
|
||||
# TARGET peerapi_shared
|
||||
# PROPERTY COMPILE_DEFINITIONS)
|
||||
endif()
|
||||
|
||||
if (APPLE)
|
||||
set_property(TARGET peerconnect_shared PROPERTY MACOSX_RPATH YES)
|
||||
set_property(TARGET peerapi_shared PROPERTY MACOSX_RPATH YES)
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# Variables for parent project including peerconnect using add_subdirectory()
|
||||
# Variables for parent project including peerapi using add_subdirectory()
|
||||
# ============================================================================
|
||||
|
||||
set(PEERCONNECT_INCLUDE_DIR ${PC_INCLUDE_DIRECTORY}
|
||||
CACHE STRING "PeerConnect include directories")
|
||||
if (PC_WITH_STATIC)
|
||||
set(PEERCONNECT_LIBRARIES_STATIC peerconnect ${WEBRTC_LIBRARIES_EXTERNAL}
|
||||
CACHE STRING "PeerConnect static library")
|
||||
set(PEERAPI_INCLUDE_DIR ${PEERAPI_INCLUDE_DIRECTORY}
|
||||
CACHE STRING "PeerApi include directories")
|
||||
if (PEERAPI_WITH_STATIC)
|
||||
set(PEERAPI_LIBRARIES_STATIC peerapi ${WEBRTC_LIBRARIES_EXTERNAL}
|
||||
CACHE STRING "PeerApi static library")
|
||||
endif()
|
||||
if (PC_WITH_SHARED)
|
||||
set(PEERCONNECT_LIBRARIES_SHARED peerconnect_shared ${WEBRTC_LIBRARIES_EXTERNAL}
|
||||
CACHE STRING "PeerConnect shared library")
|
||||
if (PEERAPI_WITH_SHARED)
|
||||
set(PEERAPI_LIBRARIES_SHARED peerapi_shared ${WEBRTC_LIBRARIES_EXTERNAL}
|
||||
CACHE STRING "PeerApi shared library")
|
||||
endif()
|
||||
|
||||
# ============================================================================
|
||||
# Test
|
||||
# ============================================================================
|
||||
|
||||
if (PC_BUILD_TEST)
|
||||
if (PEERAPI_BUILD_TEST)
|
||||
add_executable(test_main src/test/test_main.cc)
|
||||
add_dependencies(test_main peerconnect)
|
||||
target_include_directories(test_main PRIVATE ${PEERCONNECT_INCLUDE_DIR})
|
||||
target_link_libraries(test_main ${PEERCONNECT_LIBRARIES_STATIC})
|
||||
add_dependencies(test_main peerapi)
|
||||
target_include_directories(test_main PRIVATE ${PEERAPI_INCLUDE_DIR})
|
||||
target_link_libraries(test_main ${PEERAPI_LIBRARIES_STATIC})
|
||||
set_target_properties (test_main PROPERTIES FOLDER test)
|
||||
|
||||
add_test(test_main test_main)
|
||||
endif(PC_BUILD_TEST)
|
||||
endif(PEERAPI_BUILD_TEST)
|
||||
|
||||
# ============================================================================
|
||||
# Example
|
||||
# ============================================================================
|
||||
|
||||
if (PC_BUILD_EXAMPLE)
|
||||
if (PEERAPI_BUILD_EXAMPLE)
|
||||
# echo server
|
||||
add_executable(echo_server examples/echo_server/main.cc)
|
||||
add_dependencies(echo_server peerconnect)
|
||||
target_include_directories(echo_server PRIVATE ${PEERCONNECT_INCLUDE_DIR})
|
||||
target_link_libraries(echo_server ${PEERCONNECT_LIBRARIES_STATIC})
|
||||
add_dependencies(echo_server peerapi)
|
||||
target_include_directories(echo_server PRIVATE ${PEERAPI_INCLUDE_DIR})
|
||||
target_link_libraries(echo_server ${PEERAPI_LIBRARIES_STATIC})
|
||||
set_target_properties (echo_server PROPERTIES FOLDER examples)
|
||||
|
||||
# echo client
|
||||
add_executable(echo_client examples/echo_client/main.cc)
|
||||
add_dependencies(echo_client peerconnect)
|
||||
target_include_directories(echo_client PRIVATE ${PEERCONNECT_INCLUDE_DIR})
|
||||
target_link_libraries(echo_client ${PEERCONNECT_LIBRARIES_STATIC})
|
||||
add_dependencies(echo_client peerapi)
|
||||
target_include_directories(echo_client PRIVATE ${PEERAPI_INCLUDE_DIR})
|
||||
target_link_libraries(echo_client ${PEERAPI_LIBRARIES_STATIC})
|
||||
set_target_properties (echo_client PROPERTIES FOLDER examples)
|
||||
|
||||
# p2p netcat
|
||||
add_executable(p2p_netcat examples/p2p_netcat/main.cc)
|
||||
add_dependencies(p2p_netcat peerconnect)
|
||||
target_include_directories(p2p_netcat PRIVATE ${PEERCONNECT_INCLUDE_DIR})
|
||||
target_link_libraries(p2p_netcat ${PEERCONNECT_LIBRARIES_STATIC})
|
||||
add_dependencies(p2p_netcat peerapi)
|
||||
target_include_directories(p2p_netcat PRIVATE ${PEERAPI_INCLUDE_DIR})
|
||||
target_link_libraries(p2p_netcat ${PEERAPI_LIBRARIES_STATIC})
|
||||
set_target_properties (p2p_netcat PROPERTIES FOLDER examples)
|
||||
set_target_properties (p2p_netcat PROPERTIES OUTPUT_NAME pnc)
|
||||
endif (PC_BUILD_EXAMPLE)
|
||||
endif (PEERAPI_BUILD_EXAMPLE)
|
||||
|
|
2
LICENSE
2
LICENSE
|
@ -1,6 +1,6 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2016 PeerConnect
|
||||
Copyright (c) 2016 PeerApi
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
|
|
@ -74,7 +74,7 @@ macro (MERGE_STATIC_LIBRARIES TARGET_LIB LIBRARIES LIBRARIES_DEBUG OBJECTS OBJEC
|
|||
set(_OBJECTS ${OBJECTS})
|
||||
endif()
|
||||
|
||||
set(outfile "libpeerconnect.a")
|
||||
set(outfile "libpeerapi.a")
|
||||
set(target_temp_file "${CMAKE_CURRENT_BINARY_DIR}/lib${TARGET_LIB}_temp.a")
|
||||
|
||||
set(MRI_SCRIPT "create ${outfile}\n")
|
||||
|
@ -89,13 +89,13 @@ macro (MERGE_STATIC_LIBRARIES TARGET_LIB LIBRARIES LIBRARIES_DEBUG OBJECTS OBJEC
|
|||
set(MRI_SCRIPT "${MRI_SCRIPT}save\n")
|
||||
set(MRI_SCRIPT "${MRI_SCRIPT}end\n")
|
||||
|
||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/peerconnect.mri" "${MRI_SCRIPT}")
|
||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/peerapi.mri" "${MRI_SCRIPT}")
|
||||
|
||||
add_custom_command(TARGET ${TARGET_LIB} POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy "${outfile}"
|
||||
"${target_temp_file}"
|
||||
COMMAND rm "${outfile}"
|
||||
COMMAND ${CMAKE_AR} -M < "${CMAKE_CURRENT_BINARY_DIR}/peerconnect.mri"
|
||||
COMMAND ${CMAKE_AR} -M < "${CMAKE_CURRENT_BINARY_DIR}/peerapi.mri"
|
||||
COMMAND rm "${target_temp_file}"
|
||||
)
|
||||
endif (WIN32)
|
||||
|
|
Loading…
Reference in New Issue