Skip to content
Snippets Groups Projects
Commit 7d2e5506 authored by Ming Rui Zhang's avatar Ming Rui Zhang Committed by Andreas Traczyk
Browse files

project: use cmake to generate ring-daemon vcxproj

Change-Id: Ib1d736c241849415eaef957c9e6565e78cda45f1
parent 4ad78be5
No related branches found
No related tags found
No related merge requests found
Showing
with 1005 additions and 1954 deletions
################################################################################
# Command for variable_watch. This command issues error message, if a variable
# is changed. If variable PROPERTY_READER_GUARD_DISABLED is TRUE nothing happens
# variable_watch(<variable> property_reader_guard)
################################################################################
function(property_reader_guard VARIABLE ACCESS VALUE CURRENT_LIST_FILE STACK)
if("${PROPERTY_READER_GUARD_DISABLED}")
return()
endif()
if("${ACCESS}" STREQUAL "MODIFIED_ACCESS")
message(FATAL_ERROR
" Variable ${VARIABLE} is not supposed to be changed.\n"
" It is used only for reading target property ${VARIABLE}.\n"
" Use\n"
" set_target_properties(\"<target>\" PROPERTIES \"${VARIABLE}\" \"<value>\")\n"
" or\n"
" set_target_properties(\"<target>\" PROPERTIES \"${VARIABLE}_<CONFIG>\" \"<value>\")\n"
" instead.\n")
endif()
endfunction()
################################################################################
# Create variable <name> with generator expression that expands to value of
# target property <name>_<CONFIG>. If property is empty or not set then property
# <name> is used instead. Variable <name> has watcher property_reader_guard that
# doesn't allow to edit it.
# create_property_reader(<name>)
# Input:
# name - Name of watched property and output variable
################################################################################
function(create_property_reader NAME)
set(PROPERTY_READER_GUARD_DISABLED TRUE)
set(CONFIG_VALUE "$<TARGET_GENEX_EVAL:${PROPS_TARGET},$<TARGET_PROPERTY:${PROPS_TARGET},${NAME}_$<UPPER_CASE:$<CONFIG>>>>")
set(IS_CONFIG_VALUE_EMPTY "$<STREQUAL:${CONFIG_VALUE},>")
set(GENERAL_VALUE "$<TARGET_GENEX_EVAL:${PROPS_TARGET},$<TARGET_PROPERTY:${PROPS_TARGET},${NAME}>>")
set("${NAME}" "$<IF:${IS_CONFIG_VALUE_EMPTY},${GENERAL_VALUE},${CONFIG_VALUE}>" PARENT_SCOPE)
variable_watch("${NAME}" property_reader_guard)
endfunction()
################################################################################
# Set property $<name>_${PROPS_CONFIG_U} of ${PROPS_TARGET} to <value>
# set_config_specific_property(<name> <value>)
# Input:
# name - Prefix of property name
# value - New value
################################################################################
function(set_config_specific_property NAME VALUE)
set_target_properties("${PROPS_TARGET}" PROPERTIES "${NAME}_${PROPS_CONFIG_U}" "${VALUE}")
endfunction()
################################################################################
create_property_reader("TARGET_NAME")
create_property_reader("OUTPUT_DIRECTORY")
set_config_specific_property("TARGET_NAME" "${PROPS_TARGET}")
set_config_specific_property("OUTPUT_NAME" "${TARGET_NAME}")
set_config_specific_property("ARCHIVE_OUTPUT_NAME" "${TARGET_NAME}")
set_config_specific_property("LIBRARY_OUTPUT_NAME" "${TARGET_NAME}")
set_config_specific_property("RUNTIME_OUTPUT_NAME" "${TARGET_NAME}")
set_config_specific_property("ARCHIVE_OUTPUT_DIRECTORY" "${OUTPUT_DIRECTORY}")
set_config_specific_property("LIBRARY_OUTPUT_DIRECTORY" "${OUTPUT_DIRECTORY}")
set_config_specific_property("RUNTIME_OUTPUT_DIRECTORY" "${OUTPUT_DIRECTORY}")
\ No newline at end of file
include("${CMAKE_CURRENT_LIST_DIR}/Default.cmake")
set_config_specific_property("OUTPUT_DIRECTORY" "${CMAKE_SOURCE_DIR}$<$<NOT:$<STREQUAL:${CMAKE_VS_PLATFORM_NAME},Win32>>:/${CMAKE_VS_PLATFORM_NAME}>/${PROPS_CONFIG}")
if(MSVC)
create_property_reader("DEFAULT_CXX_DEBUG_RUNTIME_LIBRARY")
create_property_reader("DEFAULT_CXX_RUNTIME_LIBRARY")
create_property_reader("DEFAULT_CXX_EXCEPTION_HANDLING")
create_property_reader("DEFAULT_CXX_DEBUG_INFORMATION_FORMAT")
set_config_specific_property("DEFAULT_CXX_DEBUG_RUNTIME_LIBRARY" "/MDd")
set_config_specific_property("DEFAULT_CXX_RUNTIME_LIBRARY" "/MD")
set_config_specific_property("DEFAULT_CXX_EXCEPTION_HANDLING" "/EHsc")
set_config_specific_property("DEFAULT_CXX_DEBUG_INFORMATION_FORMAT" "/Zi")
endif()
# utils file for projects came from visual studio solution with cmake-converter.
################################################################################
# Wrap each token of the command with condition
################################################################################
cmake_policy(PUSH)
cmake_policy(SET CMP0054 NEW)
macro(prepare_commands)
unset(TOKEN_ROLE)
unset(COMMANDS)
foreach(TOKEN ${ARG_COMMANDS})
if("${TOKEN}" STREQUAL "COMMAND")
set(TOKEN_ROLE "KEYWORD")
elseif("${TOKEN_ROLE}" STREQUAL "KEYWORD")
set(TOKEN_ROLE "CONDITION")
elseif("${TOKEN_ROLE}" STREQUAL "CONDITION")
set(TOKEN_ROLE "COMMAND")
elseif("${TOKEN_ROLE}" STREQUAL "COMMAND")
set(TOKEN_ROLE "ARG")
endif()
if("${TOKEN_ROLE}" STREQUAL "KEYWORD")
list(APPEND COMMANDS "${TOKEN}")
elseif("${TOKEN_ROLE}" STREQUAL "CONDITION")
set(CONDITION ${TOKEN})
elseif("${TOKEN_ROLE}" STREQUAL "COMMAND")
list(APPEND COMMANDS "$<$<NOT:${CONDITION}>:${DUMMY}>$<${CONDITION}:${TOKEN}>")
elseif("${TOKEN_ROLE}" STREQUAL "ARG")
list(APPEND COMMANDS "$<${CONDITION}:${TOKEN}>")
endif()
endforeach()
endmacro()
cmake_policy(POP)
################################################################################
# Transform all the tokens to absolute paths
################################################################################
macro(prepare_output)
unset(OUTPUT)
foreach(TOKEN ${ARG_OUTPUT})
if(IS_ABSOLUTE ${TOKEN})
list(APPEND OUTPUT "${TOKEN}")
else()
list(APPEND OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/${TOKEN}")
endif()
endforeach()
endmacro()
################################################################################
# Parse add_custom_command_if args.
#
# Input:
# PRE_BUILD - Pre build event option
# PRE_LINK - Pre link event option
# POST_BUILD - Post build event option
# TARGET - Target
# OUTPUT - List of output files
# DEPENDS - List of files on which the command depends
# COMMANDS - List of commands(COMMAND condition1 commannd1 args1 COMMAND
# condition2 commannd2 args2 ...)
# Output:
# OUTPUT - Output files
# DEPENDS - Files on which the command depends
# COMMENT - Comment
# PRE_BUILD - TRUE/FALSE
# PRE_LINK - TRUE/FALSE
# POST_BUILD - TRUE/FALSE
# TARGET - Target name
# COMMANDS - Prepared commands(every token is wrapped in CONDITION)
# NAME - Unique name for custom target
# STEP - PRE_BUILD/PRE_LINK/POST_BUILD
################################################################################
function(add_custom_command_if_parse_arguments)
cmake_parse_arguments("ARG" "PRE_BUILD;PRE_LINK;POST_BUILD" "TARGET;COMMENT" "DEPENDS;OUTPUT;COMMANDS" ${ARGN})
if(WIN32)
set(DUMMY "cd.")
elseif(UNIX)
set(DUMMY "true")
endif()
prepare_commands()
prepare_output()
set(DEPENDS "${ARG_DEPENDS}")
set(COMMENT "${ARG_COMMENT}")
set(PRE_BUILD "${ARG_PRE_BUILD}")
set(PRE_LINK "${ARG_PRE_LINK}")
set(POST_BUILD "${ARG_POST_BUILD}")
set(TARGET "${ARG_TARGET}")
if(PRE_BUILD)
set(STEP "PRE_BUILD")
elseif(PRE_LINK)
set(STEP "PRE_LINK")
elseif(POST_BUILD)
set(STEP "POST_BUILD")
endif()
set(NAME "${TARGET}_${STEP}")
set(OUTPUT "${OUTPUT}" PARENT_SCOPE)
set(DEPENDS "${DEPENDS}" PARENT_SCOPE)
set(COMMENT "${COMMENT}" PARENT_SCOPE)
set(PRE_BUILD "${PRE_BUILD}" PARENT_SCOPE)
set(PRE_LINK "${PRE_LINK}" PARENT_SCOPE)
set(POST_BUILD "${POST_BUILD}" PARENT_SCOPE)
set(TARGET "${TARGET}" PARENT_SCOPE)
set(COMMANDS "${COMMANDS}" PARENT_SCOPE)
set(STEP "${STEP}" PARENT_SCOPE)
set(NAME "${NAME}" PARENT_SCOPE)
endfunction()
################################################################################
# Add conditional custom command
#
# Generating Files
# The first signature is for adding a custom command to produce an output:
# add_custom_command_if(
# <OUTPUT output1 [output2 ...]>
# <COMMANDS>
# <COMMAND condition command1 [args1...]>
# [COMMAND condition command2 [args2...]]
# [DEPENDS [depends...]]
# [COMMENT comment]
#
# Build Events
# add_custom_command_if(
# <TARGET target>
# <PRE_BUILD | PRE_LINK | POST_BUILD>
# <COMMAND condition command1 [args1...]>
# [COMMAND condition command2 [args2...]]
# [COMMENT comment]
#
# Input:
# output - Output files the command is expected to produce
# condition - Generator expression for wrapping the command
# command - Command-line(s) to execute at build time.
# args - Command`s args
# depends - Files on which the command depends
# comment - Display the given message before the commands are executed at
# build time.
# PRE_BUILD - Run before any other rules are executed within the target
# PRE_LINK - Run after sources have been compiled but before linking the
# binary
# POST_BUILD - Run after all other rules within the target have been
# executed
################################################################################
function(add_custom_command_if)
add_custom_command_if_parse_arguments(${ARGN})
if(OUTPUT AND TARGET)
message(FATAL_ERROR "Wrong syntax. A TARGET and OUTPUT can not both be specified.")
endif()
if(OUTPUT)
add_custom_command(OUTPUT ${OUTPUT}
${COMMANDS}
DEPENDS ${DEPENDS}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMENT ${COMMENT})
elseif(TARGET)
if(PRE_BUILD AND NOT ${CMAKE_GENERATOR} MATCHES "Visual Studio")
add_custom_target(
${NAME}
${COMMANDS}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMENT ${COMMENT})
add_dependencies(${TARGET} ${NAME})
else()
add_custom_command(
TARGET ${TARGET}
${STEP}
${COMMANDS}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMENT ${COMMENT})
endif()
else()
message(FATAL_ERROR "Wrong syntax. A TARGET or OUTPUT must be specified.")
endif()
endfunction()
################################################################################
# Use props file for a target and configs
# use_props(<target> <configs...> <props_file>)
# Inside <props_file> there are following variables:
# PROPS_TARGET - <target>
# PROPS_CONFIG - One of <configs...>
# PROPS_CONFIG_U - Uppercase PROPS_CONFIG
# Input:
# target - Target to apply props file
# configs - Build configurations to apply props file
# props_file - CMake script
################################################################################
macro(use_props TARGET CONFIGS PROPS_FILE)
set(PROPS_TARGET "${TARGET}")
foreach(PROPS_CONFIG ${CONFIGS})
string(TOUPPER "${PROPS_CONFIG}" PROPS_CONFIG_U)
get_filename_component(ABSOLUTE_PROPS_FILE "${PROPS_FILE}" ABSOLUTE BASE_DIR "${CMAKE_CURRENT_LIST_DIR}")
if(EXISTS "${ABSOLUTE_PROPS_FILE}")
include("${ABSOLUTE_PROPS_FILE}")
else()
message(WARNING "Corresponding cmake file from props \"${ABSOLUTE_PROPS_FILE}\" doesn't exist")
endif()
endforeach()
endmacro()
################################################################################
# Function for MSVC precompiled headers
# add_precompiled_header(<target> <precompiled_header> <precompiled_source>)
# Input:
# target - Target to which add precompiled header
# precompiled_header - Name of precompiled header
# precompiled_source - Name of precompiled source file
################################################################################
function(add_precompiled_header TARGET PRECOMPILED_HEADER PRECOMPILED_SOURCE)
get_target_property(SOURCES "${TARGET}" SOURCES)
list(REMOVE_ITEM SOURCES "${PRECOMPILED_SOURCE}")
if(MSVC)
set(PRECOMPILED_BINARY "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${PROJECT_NAME}.pch")
set_source_files_properties(
"${PRECOMPILED_SOURCE}"
PROPERTIES
COMPILE_OPTIONS "/Yc${PRECOMPILED_HEADER};/Fp${PRECOMPILED_BINARY}"
OBJECT_OUTPUTS "${PRECOMPILED_BINARY}")
set_source_files_properties(
${SOURCES}
PROPERTIES
COMPILE_OPTIONS "$<$<OR:$<COMPILE_LANGUAGE:C>,$<COMPILE_LANGUAGE:CXX>>:/Yu${PRECOMPILED_HEADER};/Fp${PRECOMPILED_BINARY}>"
OBJECT_DEPENDS "${PRECOMPILED_BINARY}")
endif()
list(INSERT SOURCES 0 "${PRECOMPILED_SOURCE}")
set_target_properties("${TARGET}" PROPERTIES SOURCES "${SOURCES}")
endfunction()
################################################################################
# Add compile options to source file
# source_file_compile_options(<source_file> [compile_options...])
# Input:
# source_file - Source file
# compile_options - Options to add to COMPILE_FLAGS property
################################################################################
function(source_file_compile_options SOURCE_FILE)
if("${ARGC}" LESS_EQUAL "1")
return()
endif()
get_source_file_property(COMPILE_OPTIONS "${SOURCE_FILE}" COMPILE_OPTIONS)
if(COMPILE_OPTIONS)
list(APPEND COMPILE_OPTIONS ${ARGN})
else()
set(COMPILE_OPTIONS "${ARGN}")
endif()
set_source_files_properties("${SOURCE_FILE}" PROPERTIES COMPILE_OPTIONS "${COMPILE_OPTIONS}")
endfunction()
################################################################################
# Default properties of visual studio projects
################################################################################
set(DEFAULT_CXX_PROPS "${CMAKE_CURRENT_LIST_DIR}/DefaultCXX.cmake")
set(DEFAULT_Fortran_PROPS "${CMAKE_CURRENT_LIST_DIR}/DefaultFortran.cmake")
cmake_minimum_required(VERSION 3.15)
project(ring-daemon C CXX)
################################################################################
# Source groups
################################################################################
# MSVC, src source group
add_subdirectory("MSVC")
add_subdirectory("src")
source_group("Source Files" FILES ${Source_Files})
source_group("Source Files\\client" FILES ${Source_Files__client})
source_group("Source Files\\config" FILES ${Source_Files__config})
source_group("Source Files\\dring" FILES ${Source_Files__dring})
source_group("Source Files\\hooks" FILES ${Source_Files__hooks})
source_group("Source Files\\im" FILES ${Source_Files__im})
source_group("Source Files\\jamidht" FILES ${Source_Files__jamidht})
source_group("Source Files\\jamidht\\eth\\libdevcore" FILES ${Source_Files__jamidht__eth__libdevcore})
source_group("Source Files\\jamidht\\eth\\libdevcrypto" FILES ${Source_Files__jamidht__eth__libdevcrypto})
source_group("Source Files\\media" FILES ${Source_Files__media})
source_group("Source Files\\media\\audio" FILES ${Source_Files__media__audio})
source_group("Source Files\\media\\audio\\sound" FILES ${Source_Files__media__audio__sound})
source_group("Source Files\\media\\video" FILES ${Source_Files__media__video})
if(MSVC)
if(WINDOWS_STORE)
source_group("Source Files\\media\\video\\uwpvideo" FILES ${Source_Files__media__video__uwpvideo})
endif()
source_group("Source Files\\media\\audio\\portaudio" FILES ${Source_Files__media__audio__portaudio})
source_group("Source Files\\media\\video\\winvideo" FILES ${Source_Files__media__video__winvideo})
endif()
source_group("Source Files\\security" FILES ${Source_Files__security})
source_group("Source Files\\sip" FILES ${Source_Files__sip})
source_group("Source Files\\upnp" FILES ${Source_Files__upnp})
source_group("Source Files\\upnp\\protocol" FILES ${Source_Files__upnp__protocol})
source_group("Source Files\\upnp\\protocol\\natpmp" FILES ${Source_Files__upnp__protocol__natpmp})
source_group("Source Files\\upnp\\protocol\\pupnp" FILES ${Source_Files__upnp__protocol__pupnp})
list (APPEND ALL_FILES
${Source_Files}
${Source_Files__client}
${Source_Files__config}
${Source_Files__dring}
${Source_Files__hooks}
${Source_Files__im}
${Source_Files__jamidht}
${Source_Files__jamidht__eth__libdevcore}
${Source_Files__jamidht__eth__libdevcrypto}
${Source_Files__media}
${Source_Files__media__audio}
${Source_Files__media__audio__sound}
${Source_Files__media__video}
${Source_Files__security}
${Source_Files__sip}
${Source_Files__upnp}
${Source_Files__upnp__protocol}
${Source_Files__upnp__protocol__natpmp}
${Source_Files__upnp__protocol__pupnp}
)
if(MSVC)
list (APPEND ALL_FILES ${ALL_FILES}
"${Source_Files__media__audio__portaudio}"
"${Source_Files__media__video__uwpvideo}"
"${Source_Files__media__video__winvideo}"
)
################################################################################
# Target
################################################################################
include("CMake/Utils.cmake")
add_library(${PROJECT_NAME} STATIC ${ALL_FILES})
set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER "daemon")
use_props(${PROJECT_NAME} "${CMAKE_CONFIGURATION_TYPES}" "${DEFAULT_CXX_PROPS}")
################################################################################
# Include necessary .cmake file (need to init use_props first)
################################################################################
include("CMake/Default.cmake")
include("CMake/DefaultCXX.cmake")
set(ROOT_NAMESPACE ringdaemon)
################################################################################
# Target name
################################################################################
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
set_target_properties(${PROJECT_NAME} PROPERTIES
TARGET_NAME_RELEASELIB_WIN32 "dring"
)
endif()
################################################################################
# Output directory
################################################################################
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
set_target_properties(${PROJECT_NAME} PROPERTIES
OUTPUT_DIRECTORY_RELEASELIB_WIN32 "${CMAKE_CURRENT_SOURCE_DIR}/MSVC/${CMAKE_VS_PLATFORM_NAME}/$<CONFIG>/bin/"
)
endif()
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
set_target_properties(${PROJECT_NAME} PROPERTIES
INTERPROCEDURAL_OPTIMIZATION_RELEASELIB_WIN32 "FALSE"
)
endif()
################################################################################
# Include directories
################################################################################
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
target_include_directories(${PROJECT_NAME} PUBLIC
"$<$<CONFIG:ReleaseLib_win32>:"
"${CMAKE_CURRENT_SOURCE_DIR}/contrib/msvc/include/upnp;"
"${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/ffmpeg/Build/win32/x64/include;"
"${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/sndfile/src;"
"${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/openssl/inc32;"
"${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/asio/asio/include;"
"${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/restinio/dev;"
"${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/fmt/include;"
"${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/http_parser;"
"${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/natpmp"
">"
"${CMAKE_CURRENT_SOURCE_DIR}/.;"
"${CMAKE_CURRENT_SOURCE_DIR}/MSVC;"
"${CMAKE_CURRENT_SOURCE_DIR}/src;"
"${CMAKE_CURRENT_SOURCE_DIR}/src/client;"
"${CMAKE_CURRENT_SOURCE_DIR}/src/config;"
"${CMAKE_CURRENT_SOURCE_DIR}/src/dring;"
"${CMAKE_CURRENT_SOURCE_DIR}/src/hooks;"
"${CMAKE_CURRENT_SOURCE_DIR}/src/im;"
"${CMAKE_CURRENT_SOURCE_DIR}/src/media;"
"${CMAKE_CURRENT_SOURCE_DIR}/src/jamidht;"
"${CMAKE_CURRENT_SOURCE_DIR}/src/security;"
"${CMAKE_CURRENT_SOURCE_DIR}/src/sip;"
"${CMAKE_CURRENT_SOURCE_DIR}/src/upnp;"
"${CMAKE_CURRENT_SOURCE_DIR}/src/upnp/igd;"
"${CMAKE_CURRENT_SOURCE_DIR}/src/upnp/protocol;"
"${CMAKE_CURRENT_SOURCE_DIR}/src/upnp/mapping;"
"${CMAKE_CURRENT_SOURCE_DIR}/src/jamidht/eth;"
"${CMAKE_CURRENT_SOURCE_DIR}/contrib/msvc;"
"${CMAKE_CURRENT_SOURCE_DIR}/contrib/msvc/include;"
"${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/msgpack-c/include;"
"${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/jsoncpp/include;"
"${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/yaml-cpp/include;"
"${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/pjproject/pjlib/include;"
"${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/pjproject/pjnath/include;"
"${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/pjproject/pjlib-util/include;"
"${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/pjproject/pjsip/include;"
"${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/pjproject/third_party;"
"${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/pjproject/pjmedia/include"
)
endif()
################################################################################
# Compile definitions
################################################################################
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
target_compile_definitions(${PROJECT_NAME} PRIVATE
"$<$<CONFIG:ReleaseLib_win32>:"
"_WIN32_WINNT=0x0A00;"
"ASIO_STANDALONE;"
"STATIC_GETOPT;"
"OPENDHT_PROXY_CLIENT;"
"OPENDHT_PROXY_SERVER;"
"OPENDHT_PUSH_NOTIFICATIONS;"
"NATPMP_STATICLIB;"
">"
"_USE_MATH_DEFINES;"
"_SCL_SECURE_NO_WARNINGS;"
"_CRT_SECURE_NO_WARNINGS;"
"NOMINMAX;"
"HAVE_CONFIG_H;"
"WIN32_LEAN_AND_MEAN;"
)
endif()
################################################################################
# Compile and link options
################################################################################
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
target_compile_options(${PROJECT_NAME} PRIVATE
$<$<CONFIG:ReleaseLib_win32>:
/O2;
/Oi;
${DEFAULT_CXX_RUNTIME_LIBRARY};
/Gy;
/MP;
/Oy-;
/sdl-;
/W0;
/FC
>
/nologo;
/Zi;
/wd4996;
/wd4503;
/wd4180;
/wd4244;
/wd4267;
${DEFAULT_CXX_EXCEPTION_HANDLING}
)
endif()
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
target_link_options(${PROJECT_NAME} PRIVATE
$<$<CONFIG:ReleaseLib_win32>:
/MACHINE:X86;
/OPT:REF;
/OPT:ICF
>
/VERBOSE:LIB;
/NODEFAULTLIB:libcmtd;
/NODEFAULTLIB:libcmt;
/OPT:NOLBR;
/OPT:NOICF;
/LTCG
)
endif()
################################################################################
# Dependencies
################################################################################
set(libAdditionalDependencies "${CMAKE_STATIC_LINKER_FLAGS} /LTCG ws2_32.lib
advapi32.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/ffmpeg/Build/win32/x64/bin/avcodec.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/ffmpeg/Build/win32/x64/bin/avdevice.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/ffmpeg/Build/win32/x64/bin/avfilter.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/ffmpeg/Build/win32/x64/bin/avformat.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/ffmpeg/Build/win32/x64/bin/avutil.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/ffmpeg/Build/win32/x64/bin/swresample.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/ffmpeg/Build/win32/x64/bin/swscale.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/msvc/lib/x64/libgnutls.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/msvc/lib/x64/lib_json.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/msvc/lib/x64/libopendht.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/argon2/vs2015/Argon2Ref/vs2015/build/Argon2Ref.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/msvc/lib/x64/secp256k1.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/yaml-cpp/msvc/Release/libyaml-cppmd.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/msvc/lib/x64/portaudio.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/msvc/lib/x64/libupnp.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/natpmp/msvc/Release/natpmp.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/pjproject/pjsip/lib/pjsip-core-x86_64-x64-vc15-Release.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/pjproject/pjsip/lib/pjsip-simple-x86_64-x64-vc15-Release.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/pjproject/pjsip/lib/pjsua2-lib-x86_64-x64-vc15-Release.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/pjproject/pjsip/lib/pjsua-lib-x86_64-x64-vc15-Release.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/pjproject/pjsip/lib/pjsip-ua-x86_64-x64-vc15-Release.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/pjproject/pjmedia/lib/pjmedia-x86_64-x64-vc15-Release.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/pjproject/pjlib-util/lib/pjlib-util-x86_64-x64-vc15-Release.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/pjproject/pjlib/lib/pjlib-x86_64-x64-vc15-Release.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/pjproject/pjnath/lib/pjnath-x86_64-x64-vc15-Release.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/fmt/msvc/Release/fmt.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/http_parser/x64/Release/http-parser.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/asio/asio/msvc/x64/Release/asio.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/openssl/out32dll/libeay32.lib
${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/openssl/out32dll/ssleay32.lib
/ignore:4006
"
)
set ( CMAKE_STATIC_LINKER_FLAGS ${libAdditionalDependencies} )
endif()
################################################################################
# Source groups - MSVC
################################################################################
if(MSVC)
list (APPEND Source_Files
"${CMAKE_CURRENT_SOURCE_DIR}/config.h"
"${CMAKE_CURRENT_SOURCE_DIR}/dlfcn.c"
"${CMAKE_CURRENT_SOURCE_DIR}/dlfcn.h"
)
endif()
set (Source_Files ${Source_Files} PARENT_SCOPE)
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
################################################################################
# Source groups - src
################################################################################
# client|config|dring|hooks|im|jamidht|media|security|sip|transport|upnp
list (APPEND Source_Files
"${CMAKE_CURRENT_SOURCE_DIR}/account.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/account.h"
"${CMAKE_CURRENT_SOURCE_DIR}/account_factory.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/account_factory.h"
"${CMAKE_CURRENT_SOURCE_DIR}/account_schema.h"
"${CMAKE_CURRENT_SOURCE_DIR}/archiver.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/archiver.h"
"${CMAKE_CURRENT_SOURCE_DIR}/array_size.h"
"${CMAKE_CURRENT_SOURCE_DIR}/base64.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/base64.h"
"${CMAKE_CURRENT_SOURCE_DIR}/buildinfo.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/call.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/call.h"
"${CMAKE_CURRENT_SOURCE_DIR}/call_factory.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/call_factory.h"
"${CMAKE_CURRENT_SOURCE_DIR}/channel.h"
"${CMAKE_CURRENT_SOURCE_DIR}/compiler_intrinsics.h"
"${CMAKE_CURRENT_SOURCE_DIR}/conference.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/conference.h"
"${CMAKE_CURRENT_SOURCE_DIR}/data_transfer.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/data_transfer.h"
"${CMAKE_CURRENT_SOURCE_DIR}/enumclass_utils.h"
"${CMAKE_CURRENT_SOURCE_DIR}/fileutils.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/fileutils.h"
"${CMAKE_CURRENT_SOURCE_DIR}/ftp_server.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/ftp_server.h"
"${CMAKE_CURRENT_SOURCE_DIR}/generic_io.h"
"${CMAKE_CURRENT_SOURCE_DIR}/ice_socket.h"
"${CMAKE_CURRENT_SOURCE_DIR}/ice_transport.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/ice_transport.h"
"${CMAKE_CURRENT_SOURCE_DIR}/ip_utils.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/ip_utils.h"
"${CMAKE_CURRENT_SOURCE_DIR}/logger.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/logger.h"
"${CMAKE_CURRENT_SOURCE_DIR}/manager.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/manager.h"
"${CMAKE_CURRENT_SOURCE_DIR}/map_utils.h"
"${CMAKE_CURRENT_SOURCE_DIR}/noncopyable.h"
"${CMAKE_CURRENT_SOURCE_DIR}/peer_connection.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/peer_connection.h"
"${CMAKE_CURRENT_SOURCE_DIR}/preferences.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/preferences.h"
"${CMAKE_CURRENT_SOURCE_DIR}/rational.h"
"${CMAKE_CURRENT_SOURCE_DIR}/registration_states.h"
"${CMAKE_CURRENT_SOURCE_DIR}/ring_api.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/ring_types.h"
"${CMAKE_CURRENT_SOURCE_DIR}/rw_mutex.h"
"${CMAKE_CURRENT_SOURCE_DIR}/scheduled_executor.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/scheduled_executor.h"
"${CMAKE_CURRENT_SOURCE_DIR}/smartools.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/smartools.h"
"${CMAKE_CURRENT_SOURCE_DIR}/string_utils.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/string_utils.h"
"${CMAKE_CURRENT_SOURCE_DIR}/threadloop.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/threadloop.h"
"${CMAKE_CURRENT_SOURCE_DIR}/turn_transport.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/turn_transport.h"
"${CMAKE_CURRENT_SOURCE_DIR}/utf8_utils.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/utf8_utils.h"
)
if(MSVC)
list (APPEND Source_Files
"${CMAKE_CURRENT_SOURCE_DIR}/windirent.h"
"${CMAKE_CURRENT_SOURCE_DIR}/winsyslog.c"
"${CMAKE_CURRENT_SOURCE_DIR}/winsyslog.h"
)
endif()
set (Source_Files ${Source_Files} PARENT_SCOPE)
add_subdirectory(client)
add_subdirectory(config)
add_subdirectory(dring)
add_subdirectory(hooks)
add_subdirectory(im)
add_subdirectory(jamidht)
add_subdirectory(media)
add_subdirectory(security)
add_subdirectory(sip)
add_subdirectory(upnp)
set (Source_Files__client ${Source_Files__client} PARENT_SCOPE)
set (Source_Files__config ${Source_Files__config} PARENT_SCOPE)
set (Source_Files__dring ${Source_Files__dring} PARENT_SCOPE)
set (Source_Files__hooks ${Source_Files__hooks} PARENT_SCOPE)
set (Source_Files__im ${Source_Files__im} PARENT_SCOPE)
set (Source_Files__jamidht ${Source_Files__jamidht} PARENT_SCOPE)
set (Source_Files__jamidht__eth__libdevcore ${Source_Files__jamidht__eth__libdevcore} PARENT_SCOPE)
set (Source_Files__jamidht__eth__libdevcrypto ${Source_Files__jamidht__eth__libdevcrypto} PARENT_SCOPE)
set (Source_Files__media ${Source_Files__media} PARENT_SCOPE)
set (Source_Files__media__audio ${Source_Files__media__audio} PARENT_SCOPE)
set (Source_Files__media__audio__sound ${Source_Files__media__audio__sound} PARENT_SCOPE)
set (Source_Files__media__video ${Source_Files__media__video} PARENT_SCOPE)
if(MSVC)
if(WINDOWS_STORE)
set (Source_Files__media__video__uwpvideo ${Source_Files__media__video__uwpvideo} PARENT_SCOPE)
endif()
set (Source_Files__media__audio__portaudio ${Source_Files__media__audio__portaudio} PARENT_SCOPE)
set (Source_Files__media__video__winvideo ${Source_Files__media__video__winvideo} PARENT_SCOPE)
endif()
set (Source_Files__security ${Source_Files__security} PARENT_SCOPE)
set (Source_Files__sip ${Source_Files__sip} PARENT_SCOPE)
set (Source_Files__upnp ${Source_Files__upnp} PARENT_SCOPE)
set (Source_Files__upnp__protocol ${Source_Files__upnp__protocol} PARENT_SCOPE)
set (Source_Files__upnp__protocol__pupnp ${Source_Files__upnp__protocol__pupnp} PARENT_SCOPE)
set (Source_Files__upnp__protocol__natpmp ${Source_Files__upnp__protocol__natpmp} PARENT_SCOPE)
\ No newline at end of file
################################################################################
# Source groups - client
################################################################################
list (APPEND Source_Files__client
"${CMAKE_CURRENT_SOURCE_DIR}/callmanager.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/configurationmanager.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/datatransfer.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/presencemanager.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/ring_signal.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/ring_signal.h"
"${CMAKE_CURRENT_SOURCE_DIR}/videomanager.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/videomanager.h"
)
set (Source_Files__client ${Source_Files__client} PARENT_SCOPE)
\ No newline at end of file
################################################################################
# Source groups - config
################################################################################
list (APPEND Source_Files__config
"${CMAKE_CURRENT_SOURCE_DIR}/serializable.h"
"${CMAKE_CURRENT_SOURCE_DIR}/yamlparser.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/yamlparser.h"
)
set (Source_Files__config ${Source_Files__config} PARENT_SCOPE)
\ No newline at end of file
################################################################################
# Source groups - dring
################################################################################
list (APPEND Source_Files__dring
"${CMAKE_CURRENT_SOURCE_DIR}/account_const.h"
"${CMAKE_CURRENT_SOURCE_DIR}/call_const.h"
"${CMAKE_CURRENT_SOURCE_DIR}/callmanager_interface.h"
"${CMAKE_CURRENT_SOURCE_DIR}/configurationmanager_interface.h"
"${CMAKE_CURRENT_SOURCE_DIR}/datatransfer_interface.h"
"${CMAKE_CURRENT_SOURCE_DIR}/dring.h"
"${CMAKE_CURRENT_SOURCE_DIR}/media_const.h"
"${CMAKE_CURRENT_SOURCE_DIR}/presence_const.h"
"${CMAKE_CURRENT_SOURCE_DIR}/presencemanager_interface.h"
"${CMAKE_CURRENT_SOURCE_DIR}/security_const.h"
"${CMAKE_CURRENT_SOURCE_DIR}/videomanager_interface.h"
)
set (Source_Files__dring ${Source_Files__dring} PARENT_SCOPE)
\ No newline at end of file
################################################################################
# Source groups - hooks
################################################################################
list (APPEND Source_Files__hooks
"${CMAKE_CURRENT_SOURCE_DIR}/urlhook.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/urlhook.h"
)
set (Source_Files__hooks ${Source_Files__hooks} PARENT_SCOPE)
\ No newline at end of file
################################################################################
# Source groups - im
################################################################################
list (APPEND Source_Files__im
"${CMAKE_CURRENT_SOURCE_DIR}/instant_messaging.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/instant_messaging.h"
"${CMAKE_CURRENT_SOURCE_DIR}/message_engine.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/message_engine.h"
)
set (Source_Files__im ${Source_Files__im} PARENT_SCOPE)
\ No newline at end of file
################################################################################
# Source groups - jamidht
################################################################################
# eth/libdevcore|eth/libdevcrypto
list (APPEND Source_Files__jamidht
"${CMAKE_CURRENT_SOURCE_DIR}/account_manager.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/account_manager.h"
"${CMAKE_CURRENT_SOURCE_DIR}/accountarchive.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/accountarchive.h"
"${CMAKE_CURRENT_SOURCE_DIR}/archive_account_manager.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/archive_account_manager.h"
"${CMAKE_CURRENT_SOURCE_DIR}/configkeys.h"
"${CMAKE_CURRENT_SOURCE_DIR}/contact_list.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/contact_list.h"
"${CMAKE_CURRENT_SOURCE_DIR}/jami_contact.h"
"${CMAKE_CURRENT_SOURCE_DIR}/jamiaccount.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/jamiaccount.h"
"${CMAKE_CURRENT_SOURCE_DIR}/namedirectory.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/namedirectory.h"
"${CMAKE_CURRENT_SOURCE_DIR}/p2p.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/p2p.h"
"${CMAKE_CURRENT_SOURCE_DIR}/jami_contact.h"
"${CMAKE_CURRENT_SOURCE_DIR}/server_account_manager.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/server_account_manager.h"
"${CMAKE_CURRENT_SOURCE_DIR}/sips_transport_ice.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/sips_transport_ice.h"
)
set (Source_Files__jamidht ${Source_Files__jamidht} PARENT_SCOPE)
add_subdirectory("eth/libdevcore")
add_subdirectory("eth/libdevcrypto")
set (Source_Files__jamidht__eth__libdevcore ${Source_Files__jamidht__eth__libdevcore} PARENT_SCOPE)
set (Source_Files__jamidht__eth__libdevcrypto ${Source_Files__jamidht__eth__libdevcrypto} PARENT_SCOPE)
\ No newline at end of file
################################################################################
# Source groups - libdevcore
################################################################################
list (APPEND Source_Files__jamidht__eth__libdevcore
"${CMAKE_CURRENT_SOURCE_DIR}/Address.h"
"${CMAKE_CURRENT_SOURCE_DIR}/Common.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/Common.h"
"${CMAKE_CURRENT_SOURCE_DIR}/CommonData.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/CommonData.h"
"${CMAKE_CURRENT_SOURCE_DIR}/FixedHash.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/FixedHash.h"
"${CMAKE_CURRENT_SOURCE_DIR}/Makefile.am"
"${CMAKE_CURRENT_SOURCE_DIR}/SHA3.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/SHA3.h"
"${CMAKE_CURRENT_SOURCE_DIR}/vector_ref.h"
)
set (Source_Files__jamidht__eth__libdevcore ${Source_Files__jamidht__eth__libdevcore} PARENT_SCOPE)
\ No newline at end of file
################################################################################
# Source groups - libdevcrypto
################################################################################
list (APPEND Source_Files__jamidht__eth__libdevcrypto
"${CMAKE_CURRENT_SOURCE_DIR}/Common.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/Common.h"
)
set (Source_Files__jamidht__eth__libdevcrypto ${Source_Files__jamidht__eth__libdevcrypto} PARENT_SCOPE)
\ No newline at end of file
################################################################################
# Source groups - media
################################################################################
# audio|video
list (APPEND Source_Files__media
"${CMAKE_CURRENT_SOURCE_DIR}/congestion_control.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/congestion_control.h"
"${CMAKE_CURRENT_SOURCE_DIR}/decoder_finder.h"
"${CMAKE_CURRENT_SOURCE_DIR}/libav_deps.h"
"${CMAKE_CURRENT_SOURCE_DIR}/libav_utils.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/libav_utils.h"
"${CMAKE_CURRENT_SOURCE_DIR}/localrecorder.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/localrecorder.h"
"${CMAKE_CURRENT_SOURCE_DIR}/localrecordermanager.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/localrecordermanager.h"
"${CMAKE_CURRENT_SOURCE_DIR}/media_buffer.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/media_buffer.h"
"${CMAKE_CURRENT_SOURCE_DIR}/media_codec.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/media_codec.h"
"${CMAKE_CURRENT_SOURCE_DIR}/media_decoder.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/media_decoder.h"
"${CMAKE_CURRENT_SOURCE_DIR}/media_device.h"
"${CMAKE_CURRENT_SOURCE_DIR}/media_encoder.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/media_encoder.h"
"${CMAKE_CURRENT_SOURCE_DIR}/media_filter.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/media_filter.h"
"${CMAKE_CURRENT_SOURCE_DIR}/media_io_handle.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/media_io_handle.h"
"${CMAKE_CURRENT_SOURCE_DIR}/media_recorder.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/media_recorder.h"
"${CMAKE_CURRENT_SOURCE_DIR}/media_stream.h"
"${CMAKE_CURRENT_SOURCE_DIR}/recordable.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/recordable.h"
"${CMAKE_CURRENT_SOURCE_DIR}/rtp_session.h"
"${CMAKE_CURRENT_SOURCE_DIR}/socket_pair.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/socket_pair.h"
"${CMAKE_CURRENT_SOURCE_DIR}/srtp.c"
"${CMAKE_CURRENT_SOURCE_DIR}/srtp.h"
"${CMAKE_CURRENT_SOURCE_DIR}/system_codec_container.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/system_codec_container.h"
)
set (Source_Files__media ${Source_Files__media} PARENT_SCOPE)
add_subdirectory(audio)
add_subdirectory(video)
set (Source_Files__media__audio ${Source_Files__media__audio} PARENT_SCOPE)
if(MSVC)
set (Source_Files__media__audio__portaudio ${Source_Files__media__audio__portaudio} PARENT_SCOPE)
endif()
set (Source_Files__media__audio__sound ${Source_Files__media__audio__sound} PARENT_SCOPE)
set (Source_Files__media__video ${Source_Files__media__video} PARENT_SCOPE)
if(MSVC)
if(WINDOWS_STORE)
set (Source_Files__media__video__uwpvideo ${Source_Files__media__video__uwpvideo} PARENT_SCOPE)
endif()
set (Source_Files__media__video__winvideo ${Source_Files__media__video__winvideo} PARENT_SCOPE)
endif()
################################################################################
# Source groups - audio
################################################################################
# alsa|coreaudio|jack|opensl|portaudio|pulseaudio|sound
list (APPEND Source_Files__media__audio
"${CMAKE_CURRENT_SOURCE_DIR}/audio_frame_resizer.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/audio_frame_resizer.h"
"${CMAKE_CURRENT_SOURCE_DIR}/audio_input.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/audio_input.h"
"${CMAKE_CURRENT_SOURCE_DIR}/audio_receive_thread.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/audio_receive_thread.h"
"${CMAKE_CURRENT_SOURCE_DIR}/audio_rtp_session.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/audio_rtp_session.h"
"${CMAKE_CURRENT_SOURCE_DIR}/audio_sender.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/audio_sender.h"
"${CMAKE_CURRENT_SOURCE_DIR}/audiobuffer.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/audiobuffer.h"
"${CMAKE_CURRENT_SOURCE_DIR}/audiolayer.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/audiolayer.h"
"${CMAKE_CURRENT_SOURCE_DIR}/audioloop.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/audioloop.h"
"${CMAKE_CURRENT_SOURCE_DIR}/dcblocker.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/dcblocker.h"
"${CMAKE_CURRENT_SOURCE_DIR}/resampler.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/resampler.h"
"${CMAKE_CURRENT_SOURCE_DIR}/ringbuffer.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/ringbuffer.h"
"${CMAKE_CURRENT_SOURCE_DIR}/ringbufferpool.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/ringbufferpool.h"
"${CMAKE_CURRENT_SOURCE_DIR}/tonecontrol.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/tonecontrol.h"
)
if(NOT MSVC)
list (APPEND Source_Files__media__audio
"${CMAKE_CURRENT_SOURCE_DIR}/dsp.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/dsp.h"
)
endif()
set (Source_Files__media__audio ${Source_Files__media__audio} PARENT_SCOPE)
if(MSVC)
add_subdirectory(portaudio)
set (Source_Files__media__audio__portaudio ${Source_Files__media__audio__portaudio} PARENT_SCOPE)
endif()
add_subdirectory(sound)
set (Source_Files__media__audio__sound ${Source_Files__media__audio__sound} PARENT_SCOPE)
\ No newline at end of file
################################################################################
# Source groups - portaudio
################################################################################
list (APPEND Source_Files__media__audio__portaudio
"${CMAKE_CURRENT_SOURCE_DIR}/portaudiolayer.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/portaudiolayer.h"
)
set (Source_Files__media__audio__portaudio ${Source_Files__media__audio__portaudio} PARENT_SCOPE)
\ No newline at end of file
################################################################################
# Source groups - sound
################################################################################
list (APPEND Source_Files__media__audio__sound
"${CMAKE_CURRENT_SOURCE_DIR}/audiofile.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/audiofile.h"
"${CMAKE_CURRENT_SOURCE_DIR}/dtmf.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/dtmf.h"
"${CMAKE_CURRENT_SOURCE_DIR}/dtmfgenerator.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/dtmfgenerator.h"
"${CMAKE_CURRENT_SOURCE_DIR}/tone.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/tone.h"
"${CMAKE_CURRENT_SOURCE_DIR}/tonelist.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/tonelist.h"
)
set (Source_Files__media__audio__sound ${Source_Files__media__audio__sound} PARENT_SCOPE)
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment