summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt48
1 files changed, 27 insertions, 21 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 24b1d79..4575ad6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,8 +1,8 @@
-cmake_minimum_required(VERSION 3.0)
-project(zt)
-find_package(Threads)
+cmake_minimum_required(VERSION 3.0) # 3.0 以上
+project(zt) # 名称
+find_package(Threads) # 链接到线程库
-if (USE_SANITIZER STREQUAL "Address")
+if (USE_SANITIZER STREQUAL "Address") # 似乎是与内存有关的
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address")
elseif (USE_SANITIZER STREQUAL "Thread")
@@ -72,7 +72,7 @@ set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/lib)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR})
set(INTERMEDIATE_LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib/intermediate)
if(UNIX)
- set(LWIP_PORT_DIR ${PROJ_DIR}/ext/lwip-contrib/ports/unix/port)
+ set(LWIP_PORT_DIR ${PROJ_DIR}/ext/lwip-contrib/ports/unix/port) # port 的路径
endif()
if(BUILD_WIN)
@@ -98,7 +98,7 @@ include_directories(${PROJ_DIR}/include)
# libzt (ext)
include_directories(${PROJ_DIR}/ext/concurrentqueue)
include_directories(${LWIP_SRC_DIR}/include)
-include_directories(${LWIP_PORT_DIR}/include)
+include_directories(${LWIP_PORT_DIR}/include) # port 的 include
# ------------------------------------------------------------------------------
# | TARGET AND VARIANT SELECTION |
@@ -109,7 +109,7 @@ option(ALLOW_INSTALL_TARGET "Enable the install target" TRUE)
option(BUILD_STATIC_LIB "Build static library" TRUE)
option(BUILD_SHARED_LIB "Build shared libary" TRUE)
option(BUILD_HOST_SELFTEST "Build host selftest binary" TRUE)
-option(ZTS_DISABLE_CENTRAL_API "Disable central API" TRUE)
+option(ZTS_DISABLE_CENTRAL_API "Disable central API" TRUE) #不启用 central API
# C# language bindings (libzt.dll/dylib/so)
if (ZTS_ENABLE_PINVOKE)
@@ -276,9 +276,9 @@ endif()
# | BUILD TYPES |
# ------------------------------------------------------------------------------
-if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "debug")
+if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "debug") # build type debug
set(BUILD_DEBUG ON)
- set(CMAKE_VERBOSE_MAKEFILE ON)
+ set(CMAKE_VERBOSE_MAKEFILE ON) # 输出详细的编译信息
endif()
if(CMAKE_BUILD_TYPE STREQUAL "Release" OR CMAKE_BUILD_TYPE STREQUAL "release")
set(BUILD_RELEASE ON)
@@ -324,9 +324,9 @@ endif()
${PROJ_DIR}/examples/c/nostorage.c)
target_link_libraries(nostorage ${STATIC_LIB_NAME})
- add_executable(customroots
+ add_executable(customroots # 链接这个时候出错了
${PROJ_DIR}/examples/c/customroots.c)
- target_link_libraries(customroots ${STATIC_LIB_NAME})
+ target_link_libraries(customroots ${STATIC_LIB_NAME}) # STATIC_LIB_NAME 不全
add_executable(client
${PROJ_DIR}/examples/c/client.c)
@@ -443,8 +443,8 @@ endif()
# ------------------------------------------------------------------------------
# | OPTIONAL FEATURES |
# ------------------------------------------------------------------------------
-
-if(NOT ZTS_DISABLE_CENTRAL_API)
+# 无用
+if(NOT ZTS_DISABLE_CENTRAL_API)
set(requiredlibs)
find_package(CURL)
if(CURL_FOUND)
@@ -511,17 +511,18 @@ endif() # ZTS_ENABLE_JAVA
# ------------------------------------------------------------------------------
# | SOURCES |
# ------------------------------------------------------------------------------
-
+# ext/ztone
file(GLOB ztcoreSrcGlob ${ZTO_SRC_DIR}/node/*.cpp
${ZTO_SRC_DIR}/osdep/OSUtils.cpp ${ZTO_SRC_DIR}/osdep/PortMapper.cpp)
-
+# ext/ztone/ext/
file(GLOB libnatpmpSrcGlob ${ZTO_SRC_DIR}/ext/libnatpmp/natpmp.c
${ZTO_SRC_DIR}/ext/libnatpmp/wingettimeofday.c
${ZTO_SRC_DIR}/ext/libnatpmp/getgateway.c)
if(NOT BUILD_WIN)
-list(REMOVE_ITEM libnatpmpSrcGlob ${ZTO_SRC_DIR}/ext/libnatpmp/wingettimeofday.c)
+list(REMOVE_ITEM libnatpmpSrcGlob ${ZTO_SRC_DIR}/ext/libnatpmp/wingettimeofday.c) # 非 wind 移除 ext/libnatpmp/wingettimeofday.c
endif()
+# ext/ztone/ext/miniupnpc
file(
GLOB
libminiupnpcSrcGlob
@@ -538,15 +539,20 @@ file(
${ZTO_SRC_DIR}/ext/miniupnpc/upnpdev.c
${ZTO_SRC_DIR}/ext/miniupnpc/upnperrors.c
${ZTO_SRC_DIR}/ext/miniupnpc/upnpreplyparse.c)
-
+# libzt
file(GLOB libztSrcGlob ${LIBZT_SRC_DIR}/*.cpp ${LANG_WRAPPER_FILE})
-
+# lwipSrcGlob 还好包含了 lwip_port/sys_arch.c 但是没有其他的
file(
GLOB
lwipSrcGlob
${LWIP_SRC_DIR}/netif/*.c
${LWIP_SRC_DIR}/api/*.c
${LWIP_PORT_DIR}/sys_arch.c
+ ${LWIP_PORT_DIR}/perf.c
+ ${LWIP_PORT_DIR}/netif/tapif.c
+ ${LWIP_PORT_DIR}/netif/list.c
+ ${LWIP_PORT_DIR}/netif/sio.c
+ ${LWIP_PORT_DIR}/netif/fifo.c
${LWIP_SRC_DIR}/core/*.c
${LWIP_SRC_DIR}/core/ipv4/*.c
${LWIP_SRC_DIR}/core/ipv6/*.c)
@@ -561,7 +567,7 @@ file(GLOB frameworkHeaderGlob ${frameworkPublicHeaderGlob}
# | OBJECT LIBRARIES (INTERMEDIATE) |
# ------------------------------------------------------------------------------
-if(BUILD_STATIC_LIB)
+if(BUILD_STATIC_LIB) # 编译后 obj 文件
# zto_obj
add_library(zto_obj OBJECT ${ztcoreSrcGlob})
set_target_properties(zto_obj PROPERTIES COMPILE_FLAGS "${ZT_FLAGS}")
@@ -594,7 +600,7 @@ if(BUILD_STATIC_LIB)
target_compile_definitions(miniupnpc_obj PRIVATE MACOSX)
endif()
- # lwip_obj
+ # lwip_obj
add_library(lwip_obj OBJECT ${lwipSrcGlob})
set_target_properties(lwip_obj PROPERTIES COMPILE_FLAGS "${LWIP_FLAGS}")
@@ -653,7 +659,7 @@ if(BUILD_STATIC_LIB)
set_target_properties(
ztcore PROPERTIES OUTPUT_NAME ztcore LIBRARY_OUTPUT_DIRECTORY
${INTERMEDIATE_LIBRARY_OUTPUT_PATH})
- # libzt.a
+ # libzt.a 包含了 lwip_pic
add_library(
${STATIC_LIB_NAME} STATIC
$<TARGET_OBJECTS:zt_pic> $<TARGET_OBJECTS:zto_pic>