Browse Source
- Add tools/chatgui/libutun/CMakeLists.txt — builds libuasync (from lib/*.c) and libutun (from src/*.c except utun.c) as static libraries - All C code compiled as C99, linked into chatgui C++ binary - Include paths and defs match autotools build - chatgui CMakeLists.txt: add_subdirectory(libutun), link utun library - Fix zxing-cpp docs/ directory issuechatgui
3 changed files with 147 additions and 1 deletions
@ -0,0 +1,139 @@ |
|||||||
|
cmake_minimum_required(VERSION 3.16) |
||||||
|
|
||||||
|
set(LIB_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../lib) |
||||||
|
set(SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../src) |
||||||
|
|
||||||
|
# ============================================================================ |
||||||
|
# libuasync — low-level runtime library |
||||||
|
# ============================================================================ |
||||||
|
|
||||||
|
set(UASYNC_SOURCES |
||||||
|
${LIB_DIR}/ll_queue.c |
||||||
|
${LIB_DIR}/u_async.c |
||||||
|
${LIB_DIR}/debug_config.c |
||||||
|
${LIB_DIR}/timeout_heap.c |
||||||
|
${LIB_DIR}/memory_pool.c |
||||||
|
${LIB_DIR}/sha256.c |
||||||
|
${LIB_DIR}/socket_compat.c |
||||||
|
${LIB_DIR}/platform_compat.c |
||||||
|
${LIB_DIR}/getmyip.c |
||||||
|
${LIB_DIR}/swm_min.c |
||||||
|
${LIB_DIR}/mem.c |
||||||
|
${LIB_DIR}/radix.c |
||||||
|
${LIB_DIR}/serialize.c |
||||||
|
${LIB_DIR}/tcp_io.c |
||||||
|
${LIB_DIR}/liblmdb/mdb.c |
||||||
|
${LIB_DIR}/liblmdb/midl.c |
||||||
|
) |
||||||
|
|
||||||
|
add_library(uasync STATIC ${UASYNC_SOURCES}) |
||||||
|
|
||||||
|
target_include_directories(uasync PUBLIC |
||||||
|
${LIB_DIR} |
||||||
|
${SRC_DIR} |
||||||
|
${LIB_DIR}/liblmdb |
||||||
|
) |
||||||
|
|
||||||
|
target_compile_definitions(uasync PRIVATE |
||||||
|
_ISOC99_SOURCE |
||||||
|
DEBUG_OUTPUT_STDERR |
||||||
|
) |
||||||
|
|
||||||
|
set_target_properties(uasync PROPERTIES |
||||||
|
C_STANDARD 99 |
||||||
|
C_STANDARD_REQUIRED ON |
||||||
|
) |
||||||
|
|
||||||
|
# ============================================================================ |
||||||
|
# libutun — VPN core library (all src/ except utun.c) |
||||||
|
# ============================================================================ |
||||||
|
|
||||||
|
# Common sources (all platforms) |
||||||
|
set(UTUN_COMMON_SOURCES |
||||||
|
${SRC_DIR}/utun_instance.c |
||||||
|
${SRC_DIR}/config_parser.c |
||||||
|
${SRC_DIR}/config_updater.c |
||||||
|
${SRC_DIR}/route_lib.c |
||||||
|
${SRC_DIR}/route6_lib.c |
||||||
|
${SRC_DIR}/route_bgp.c |
||||||
|
${SRC_DIR}/route_ping.c |
||||||
|
${SRC_DIR}/route_node.c |
||||||
|
${SRC_DIR}/route_node_lmdb.c |
||||||
|
${SRC_DIR}/route_connectivity.c |
||||||
|
${SRC_DIR}/conn_mgr.c |
||||||
|
${SRC_DIR}/db_sync.c |
||||||
|
${SRC_DIR}/routing.c |
||||||
|
${SRC_DIR}/tun_if.c |
||||||
|
${SRC_DIR}/tun_route.c |
||||||
|
${SRC_DIR}/etcp.c |
||||||
|
${SRC_DIR}/etcp_connections.c |
||||||
|
${SRC_DIR}/etcp_bbr.c |
||||||
|
${SRC_DIR}/etcp_loadbalancer.c |
||||||
|
${SRC_DIR}/etcp_debug.c |
||||||
|
${SRC_DIR}/etcp_dump.c |
||||||
|
${SRC_DIR}/secure_channel.c |
||||||
|
${SRC_DIR}/crc32.c |
||||||
|
${SRC_DIR}/stcp_link.c |
||||||
|
${SRC_DIR}/stcp.c |
||||||
|
${SRC_DIR}/stcp_server.c |
||||||
|
${SRC_DIR}/stcp_client.c |
||||||
|
${SRC_DIR}/pkt_normalizer.c |
||||||
|
${SRC_DIR}/packet_dump.c |
||||||
|
${SRC_DIR}/etcp_api.c |
||||||
|
${SRC_DIR}/etcp_connect.c |
||||||
|
${SRC_DIR}/control_server.c |
||||||
|
${SRC_DIR}/msg_transport.c |
||||||
|
${SRC_DIR}/firewall.c |
||||||
|
${SRC_DIR}/eim_nat.c |
||||||
|
${SRC_DIR}/nat_transport.c |
||||||
|
${SRC_DIR}/dummynet.c |
||||||
|
${SRC_DIR}/etcp_router.c |
||||||
|
${SRC_DIR}/proxy/tcp_proxy_client.c |
||||||
|
${SRC_DIR}/proxy/tcp_proxy_server.c |
||||||
|
${SRC_DIR}/proxy/udp_proxy.c |
||||||
|
${SRC_DIR}/proxy/socks_proxy.c |
||||||
|
${SRC_DIR}/proxy/icmp_proxy.c |
||||||
|
${SRC_DIR}/lwip_tcp/lwip_pbuf.c |
||||||
|
${SRC_DIR}/lwip_tcp/lwip_tcp.c |
||||||
|
${SRC_DIR}/lwip_tcp/lwip_tcp_in.c |
||||||
|
${SRC_DIR}/lwip_tcp/lwip_tcp_out.c |
||||||
|
) |
||||||
|
|
||||||
|
# Platform-specific TUN implementation |
||||||
|
if(CMAKE_SYSTEM_NAME STREQUAL "Linux") |
||||||
|
set(UTUN_TUN_SOURCES ${SRC_DIR}/tun_linux.c) |
||||||
|
elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") |
||||||
|
set(UTUN_TUN_SOURCES ${SRC_DIR}/tun_freebsd.c) |
||||||
|
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") |
||||||
|
set(UTUN_TUN_SOURCES ${SRC_DIR}/tun_windows.c) |
||||||
|
else() |
||||||
|
set(UTUN_TUN_SOURCES ${SRC_DIR}/tun_linux.c) |
||||||
|
endif() |
||||||
|
|
||||||
|
add_library(utun STATIC ${UTUN_COMMON_SOURCES} ${UTUN_TUN_SOURCES}) |
||||||
|
|
||||||
|
target_include_directories(utun PUBLIC |
||||||
|
${SRC_DIR} |
||||||
|
${LIB_DIR} |
||||||
|
${SRC_DIR}/uip |
||||||
|
) |
||||||
|
|
||||||
|
target_compile_definitions(utun PRIVATE |
||||||
|
USE_OPENSSL |
||||||
|
) |
||||||
|
|
||||||
|
set_target_properties(utun PROPERTIES |
||||||
|
C_STANDARD 99 |
||||||
|
C_STANDARD_REQUIRED ON |
||||||
|
) |
||||||
|
|
||||||
|
target_link_libraries(utun PUBLIC |
||||||
|
uasync |
||||||
|
OpenSSL::Crypto |
||||||
|
${CMAKE_THREAD_LIBS_INIT} |
||||||
|
) |
||||||
|
|
||||||
|
# Platform-specific link flags |
||||||
|
if(WIN32) |
||||||
|
target_link_libraries(utun PUBLIC ws2_32 iphlpapi advapi32 bcrypt dbghelp) |
||||||
|
endif() |
||||||
Loading…
Reference in new issue