- more changes for CI

This commit is contained in:
Dmytro Bogovych 2019-06-14 08:30:10 +03:00
parent 19e1a65abb
commit 1061089d9b
2 changed files with 77 additions and 56 deletions

View File

@ -2,6 +2,7 @@ build_exe:
script: script:
- mkdir -p build - mkdir -p build
- cd build - cd build
- cmake ../src - git clone git@gitlab.com:dmytro.bogovych/libraries.git
- cmake -D PLATFORM_LIBS=libraries ../src
- cmake --build . - cmake --build .

View File

@ -3,50 +3,50 @@ project(rtphone)
cmake_minimum_required(VERSION 3.0) cmake_minimum_required(VERSION 3.0)
macro(configure_msvc_runtime) macro(configure_msvc_runtime)
if(MSVC) if(MSVC)
# Default to statically-linked runtime. # Default to statically-linked runtime.
if("${MSVC_RUNTIME}" STREQUAL "") if("${MSVC_RUNTIME}" STREQUAL "")
set(MSVC_RUNTIME "static") set(MSVC_RUNTIME "static")
endif()
# Set compiler options.
set(variables
CMAKE_C_FLAGS_DEBUG
CMAKE_C_FLAGS_MINSIZEREL
CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS_DEBUG
CMAKE_CXX_FLAGS_MINSIZEREL
CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_RELWITHDEBINFO
)
if(${MSVC_RUNTIME} STREQUAL "static")
message(STATUS
"rtphone: MSVC -> forcing use of statically-linked runtime."
)
foreach(variable ${variables})
if(${variable} MATCHES "/MD")
string(REGEX REPLACE "/MD" "/MT" ${variable} "${${variable}}")
endif() endif()
endforeach() # Set compiler options.
else() set(variables
message(STATUS CMAKE_C_FLAGS_DEBUG
"rtphone: MSVC -> forcing use of dynamically-linked runtime." CMAKE_C_FLAGS_MINSIZEREL
) CMAKE_C_FLAGS_RELEASE
foreach(variable ${variables}) CMAKE_C_FLAGS_RELWITHDEBINFO
if(${variable} MATCHES "/MT") CMAKE_CXX_FLAGS_DEBUG
string(REGEX REPLACE "/MT" "/MD" ${variable} "${${variable}}") CMAKE_CXX_FLAGS_MINSIZEREL
CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_RELWITHDEBINFO
)
if(${MSVC_RUNTIME} STREQUAL "static")
message(STATUS
"rtphone: MSVC -> forcing use of statically-linked runtime."
)
foreach(variable ${variables})
if(${variable} MATCHES "/MD")
string(REGEX REPLACE "/MD" "/MT" ${variable} "${${variable}}")
endif()
endforeach()
else()
message(STATUS
"rtphone: MSVC -> forcing use of dynamically-linked runtime."
)
foreach(variable ${variables})
if(${variable} MATCHES "/MT")
string(REGEX REPLACE "/MT" "/MD" ${variable} "${${variable}}")
endif()
endforeach()
endif() endif()
endforeach()
foreach(variable ${variables})
string(REGEX REPLACE "/Z[iI7]" ""
${variable}
"${${variable}}")
set(${variable} "${${variable}} /Zi /Oy-")
endforeach()
endif() endif()
foreach(variable ${variables})
string(REGEX REPLACE "/Z[iI7]" ""
${variable}
"${${variable}}")
set(${variable} "${${variable}} /Zi /Oy-")
endforeach()
endif()
endmacro() endmacro()
@ -59,28 +59,48 @@ set (rtphone_engine engine)
set (USE_AMR_CODEC OFF CACHE BOOL "Use AMR codec. Requires libraries.") set (USE_AMR_CODEC OFF CACHE BOOL "Use AMR codec. Requires libraries.")
set (USE_EVS_CODEC OFF CACHE BOOL "Use EVS codec.") set (USE_EVS_CODEC OFF CACHE BOOL "Use EVS codec.")
set (OPENSSL_SSL ssl CACHE STRING "Pointer to ssl library")
set (OPENSSL_CRYPTO crypto CACHE STRING "Pointer to crypto library")
set (OPENSSL_INCLUDE "/usr/local/include/openssl" CACHE STRING "Pointer to OpenSSL include files")
set(CMAKE_POSITION_INDEPENDENT_CODE ON) if (NOT PLATFORM_LIBS)
message(FATAL_ERROR "PLATFORM_LIBS must be defined before build! This project requires it to get access to OpenSSL 1.0.x headers")
message ("Using ssl library at ${OPENSSL_SSL}") endif()
message ("Using crypto library at ${OPENSSL_CRYPTO}")
message ("Using OpenSSL include files from ${OPENSSL_INCLUDE}")
if (CMAKE_SYSTEM MATCHES "Windows*") if (CMAKE_SYSTEM MATCHES "Windows*")
set (TARGET_WIN ON)
add_definitions(-DTARGET_WIN) add_definitions(-DTARGET_WIN)
find_library(SSL_LIB ssl PATHES ${PLATFORM_LIBRARIES}/openssl/lib/win64)
endif() endif()
if (CMAKE_SYSTEM MATCHES "Linux*") if (CMAKE_SYSTEM MATCHES "Linux*")
set (TARGET_LINUX ON)
add_definitions(-DTARGET_LINUX) add_definitions(-DTARGET_LINUX)
find_library(SSL_LIB
NAMES ssl
PATHS ${PLATFORM_LIBS}/openssl/1.0/lin64
NO_DEFAULT_PATH)
find_library(CRYPTO_LIB
NAMES crypto
PATHS ${PLATFORM_LIBS}/openssl/1.0/lin64
NO_DEFAULT_PATH)
endif() endif()
if (CMAKE_SYSTEM MATCHES "Darwin*") if (CMAKE_SYSTEM MATCHES "Darwin*")
set (TARGET_OSX ON)
add_definitions(-DTARGET_OSX) add_definitions(-DTARGET_OSX)
find_library(SSL_LIB NAMES ssl PATHS ${PLATFORM_LIBS}/openssl/lib/osx NO_DEFAULT_PATH)
find_library(CRYPTO_LIB NAMES crypto PATHS ${PLATFORM_LIBS}/openssl/1.0/osx NO_DEFAULT_PATH)
endif() endif()
message(STATUS "SSL library: ${SSL_LIB}")
message(STATUS "Crypto library: ${CRYPTO_LIB}")
set (OPENSSL_INCLUDE "${PLATFORM_LIBS}/openssl/1.0/include")
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
message (STATUS "OpenSSL include files from ${OPENSSL_INCLUDE}")
set (RTPHONE_SOURCES set (RTPHONE_SOURCES
${rtphone_engine}/media/MT_Statistics.cpp ${rtphone_engine}/media/MT_Statistics.cpp
${rtphone_engine}/media/MT_WebRtc.cpp ${rtphone_engine}/media/MT_WebRtc.cpp
@ -108,7 +128,7 @@ set (RTPHONE_SOURCES
${rtphone_engine}/endpoint/EP_NetworkQueue.cpp ${rtphone_engine}/endpoint/EP_NetworkQueue.cpp
${rtphone_engine}/endpoint/EP_Observer.cpp ${rtphone_engine}/endpoint/EP_Observer.cpp
${rtphone_engine}/endpoint/EP_Session.cpp ${rtphone_engine}/endpoint/EP_Session.cpp
) )
set (RTPHONE_HEADERS set (RTPHONE_HEADERS
${rtphone_engine}/media/MT_Statistics.h ${rtphone_engine}/media/MT_Statistics.h
@ -180,12 +200,12 @@ target_link_libraries(rtphone
target_include_directories(rtphone target_include_directories(rtphone
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/engine> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/engine>
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/libs/ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/libs/
${CMAKE_CURRENT_SOURCE_DIR}/libs/speex/include ${CMAKE_CURRENT_SOURCE_DIR}/libs/speex/include
${CMAKE_CURRENT_SOURCE_DIR}/libs/opus/include/ ${CMAKE_CURRENT_SOURCE_DIR}/libs/opus/include/
${CMAKE_CURRENT_SOURCE_DIR}/libs/json ${CMAKE_CURRENT_SOURCE_DIR}/libs/json
) )
configure_msvc_runtime() configure_msvc_runtime()