You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.3 KiB
71 lines
2.3 KiB
# utun_sources.cmake — shared library description for uTun C core |
|
# |
|
# Include this file and call utun_setup_sources() from any CMakeLists.txt. |
|
# The function takes LIB_DIR and SRC_DIR (paths differ per caller) and |
|
# exports UTUN_SOURCES, UTUN_INCLUDE_DIRS, UTUN_DEFINES to parent scope. |
|
# |
|
# Usage: |
|
# set(LIB_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../lib) |
|
# set(SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../src) |
|
# set(CFG_DIR ${CMAKE_CURRENT_SOURCE_DIR}) |
|
# set(TOOLS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../..) |
|
# include(${CFG_DIR}/utun_sources.cmake) |
|
# utun_setup_sources("${LIB_DIR}" "${SRC_DIR}" "${CFG_DIR}" "${TOOLS_DIR}") |
|
# add_library(utun STATIC ${UTUN_SOURCES}) |
|
# target_include_directories(utun PRIVATE ${UTUN_INCLUDE_DIRS}) |
|
# target_compile_definitions(utun PRIVATE ${UTUN_DEFINES}) |
|
|
|
function(utun_setup_sources LIB_DIR SRC_DIR CONFIG_DIR TOOLS_DIR) |
|
|
|
# ── lib/ sources ── |
|
file(GLOB _lib_src "${LIB_DIR}/*.c") |
|
set(_lmdb_src |
|
"${LIB_DIR}/liblmdb/mdb.c" |
|
"${LIB_DIR}/liblmdb/midl.c" |
|
) |
|
|
|
# ── src/ sources (all except utun.c, lwip_orig, uip, BBR) ── |
|
file(GLOB_RECURSE _src_src "${SRC_DIR}/*.c") |
|
list(FILTER _src_src EXCLUDE REGEX "/lwip_orig/") |
|
list(FILTER _src_src EXCLUDE REGEX "/uip/") |
|
list(FILTER _src_src EXCLUDE REGEX "/transport_layer/BBR/") |
|
list(REMOVE_ITEM _src_src "${SRC_DIR}/utun.c") |
|
|
|
# ── Our added files ── |
|
set(_cfg_src |
|
"${CONFIG_DIR}/utun_config_api.c" |
|
"${CONFIG_DIR}/invite_link_c.c" |
|
"${CONFIG_DIR}/instance_lite.c" |
|
"${CONFIG_DIR}/voice_recorder.c" |
|
"${CONFIG_DIR}/attachment_sender.c" |
|
) |
|
|
|
# ── Export sources ── |
|
set(UTUN_SOURCES |
|
${_lib_src} ${_lmdb_src} ${_src_src} ${_cfg_src} |
|
PARENT_SCOPE |
|
) |
|
|
|
# ── Export include dirs ── |
|
set(UTUN_INCLUDE_DIRS |
|
${LIB_DIR} |
|
${LIB_DIR}/liblmdb |
|
${LIB_DIR}/libopus/include |
|
${SRC_DIR} |
|
${SRC_DIR}/transport_layer |
|
${SRC_DIR}/routing_layer |
|
${SRC_DIR}/chat |
|
${SRC_DIR}/proxy |
|
${SRC_DIR}/lwip_tcp |
|
${SRC_DIR}/BBR |
|
${TOOLS_DIR} |
|
${CONFIG_DIR} |
|
PARENT_SCOPE |
|
) |
|
|
|
# ── Export compile definitions ── |
|
set(UTUN_DEFINES |
|
USE_OPENSSL USE_SQLITE _ISOC99_SOURCE _DEFAULT_SOURCE DEBUG_OUTPUT_STDERR |
|
PARENT_SCOPE |
|
) |
|
endfunction()
|
|
|