get_filename_component(name ${CMAKE_CURRENT_LIST_DIR} NAME) set(rely libarchive SQLiteCpp) rcl_load_dependency_environment(drogon ${rely}) message(STATUS "before find SQLiteCpp CMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}") message(STATUS "CMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}") message(STATUS "CMAKE_FIND_USE_CMAKE_PATH=${CMAKE_FIND_USE_CMAKE_PATH}") message(STATUS "CMAKE_FIND_ROOT_PATH=${CMAKE_FIND_ROOT_PATH}") message(STATUS "CMAKE_FIND_ROOT_PATH_MODE_PACKAGE=${CMAKE_FIND_ROOT_PATH_MODE_PACKAGE}") find_package(Jsoncpp CONFIG) list(PREPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake") if(MSVC AND NOT TARGET std::filesystem) add_library(std::filesystem INTERFACE IMPORTED GLOBAL) set_property(TARGET std::filesystem APPEND PROPERTY INTERFACE_COMPILE_FEATURES cxx_std_17) endif() find_package(Drogon) set(Core Core_Static) if(1) set(md "${CMAKE_CURRENT_LIST_DIR}/module") if(WIN32) set(cfg_dir ${CMAKE_CURRENT_LIST_DIR}/config) else() set(cfg_dir ${CMAKE_CURRENT_LIST_DIR}/config/x86_linux) endif() _create("dll" dll_source) _create("exe" data_process) _attach_include_dir(dll_source "${md}") _attach_source_dir(dll_source "${md}/dll_source") _attach_include_dir(data_process "${md}") _attach_source_dir(data_process "${md}/dll_source") _depend(dll_source ${Core}) _depend(data_process ${Core}) _attach_post_build_file(dll_source ${cfg_dir}/data_progress_config.json "${CMAKE_CURRENT_LIST_DIR}/data/BIN_Blank_Text/ADS-B_195_0205.txt") _create("dll" mlat_source) _attach_include_dir(mlat_source "${md}") _attach_source_dir(mlat_source "${md}/mlat_source") _depend(mlat_source ${Core}) _create("exe" mlat_source_exe) _attach_include_dir(mlat_source_exe "${md}") _attach_source_dir(mlat_source_exe "${md}/mlat_source") _depend(mlat_source_exe ${Core}) find_package(SQLiteCpp CONFIG REQUIRED) _create("exe" ecap_server) _depend(ecap_server SSR) _attach_include_dir(ecap_server "${md}") _attach_source_dir(ecap_server "${md}/Local_Server") target_include_directories(ecap_server PRIVATE "${CMAKE_CURRENT_LIST_DIR}/../../core_library/Core/3rd/ucoro/include") target_link_libraries(ecap_server PRIVATE Drogon::Drogon) target_link_libraries(ecap_server PRIVATE SQLiteCpp) target_link_libraries(ecap_server PRIVATE ${ZLIB_LIBRARY}) target_include_directories(ecap_server PRIVATE ${ZLIB_INCLUDE_DIR}) message("LibArchive_SUB_LIBRARIES ${LibArchive_SUB_LIBRARIES}") target_link_libraries(ecap_server PRIVATE LibArchive::LibArchive ${LibArchive_SUB_LIBRARIES} ) target_compile_definitions(ecap_server PRIVATE LIBARCHIVE_STATIC) _attach_source_file(ecap_server "${md}/Local_Server_main.cpp") _attach_post_build_file(ecap_server ${cfg_dir}/config.json) if(UNIX AND NOT APPLE) # 添加进程间通信系统库 target_compile_options(ecap_server PRIVATE -g -gstrict-dwarf -gdwarf-4 -fvar-tracking-assignments) set(CMAKE_FOLDER "lzy") add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/lzy ${CMAKE_BINARY_DIR}/lzy) unset(CMAKE_FOLDER) set(ver v1.0.4) set(WEB_DIR "${CMAKE_CURRENT_LIST_DIR}/webapp") set(publish_root_dir "${CMAKE_CURRENT_LIST_DIR}/ver") set(publish_dir "${publish_root_dir}/${ver}") set(WEB_OUT_DIR "${publish_dir}/wwwroot") set(PACKAGE_ZIP "${publish_dir}.zip") set(NODE_DIR "C:/Users/wyc/AppData/Roaming/JetBrains/CLion2026.1/node/versions/24.15.0") set(NPM_EXECUTABLE "${NODE_DIR}/npm.cmd") if(NOT EXISTS "${NODE_DIR}/node.exe") message(FATAL_ERROR "node.exe not found: ${NODE_DIR}/node.exe") endif() add_custom_target(ecap_server_package COMMAND ${CMAKE_COMMAND} -E make_directory "${publish_dir}" COMMAND ${CMAKE_COMMAND} -E copy_if_different $ ${publish_dir} COMMAND ${CMAKE_COMMAND} -E remove_directory "${WEB_OUT_DIR}" COMMAND ${CMAKE_COMMAND} -E env "PATH=${NODE_DIR};$ENV{PATH}" ${CMAKE_COMMAND} -E chdir "${WEB_DIR}" "${NPM_EXECUTABLE}" run build -- --outDir "${WEB_OUT_DIR}" --emptyOutDir COMMAND ${CMAKE_COMMAND} -E remove -f "${PACKAGE_ZIP}" COMMAND ${CMAKE_COMMAND} -E chdir "${publish_dir}" ${CMAKE_COMMAND} -E tar cf "${PACKAGE_ZIP}" --format=zip -- . COMMENT "Build frontend" USES_TERMINAL VERBATIM ) add_dependencies(ecap_server_package ecap_server) endif() if(MSVC) target_compile_definitions(ecap_server PRIVATE _CRTDBG_MAP_ALLOC ) endif() add_dependencies(ecap_server dll_source) if(WIN32) endif() _create("exe" test_drogon) _attach_include_dir(test_drogon "${md}") _attach_source_dir(test_drogon "${md}/test_drogon") target_link_libraries(test_drogon PRIVATE Drogon::Drogon) endif() rcl_unload_dependency_environment(drogon ${rely}) include("${CMAKE_SOURCE_DIR}/0_cmake_library/ninja_build_analyze/export.cmake") register_ninja_build_analyze_target( ninja_build_analyze_ctx # 分析上下文 target 名,自己起名 "Core_Static" # 要分析的构建目标;空字符串表示 all "${CMAKE_BINARY_DIR}/analyze" # 分析输出目录;空字符串表示 build/build_analysis "ON" # 是否先 clean:ON/OFF "30" # top 数量;空字符串表示 30 )