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

# 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()