diff --git a/CMakeLists.txt b/CMakeLists.txt index e6b89ab..9003e43 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,23 @@ cmake_minimum_required(VERSION 3.5) project(DPS) +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build type (Debug/Release/RelWithDebInfo/MinSizeRel)" FORCE) +endif() +set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "RelWithDebInfo" "MinSizeRel") +set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -O0") # Debug模式:禁用优化,包含调试符号 +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3") # Release模式:最大优化[2,6](@ref) +if(MSVC) + add_compile_options(/W4 /WX) # Windows: 开启所有警告并视警告为错误 +else() + add_compile_options(-Wall -Wextra -Wpedantic -Werror) # Linux/macOS: 严格警告[1](@ref) +endif() + +# 针对aarch64架构的特殊处理 +if(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|arm64") + message(STATUS "Building for ARM64 (aarch64)") +endif() + set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) @@ -14,9 +31,10 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) include_directories(include) -file(GLOB SOURCES "DataPlatform/*.cpp") +file(GLOB_RECURSE SOURCES "DataPlatform/*.cpp" "DataPlatform/*.c") # 自动收集源码,建议手动指定关键文件 +file(GLOB_RECURSE HEADERS "include/*.hpp" "include/*.h") -add_executable(${PROJECT_NAME} ${SOURCES}) +add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS}) install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin diff --git a/doc/DPS国产化适配问题记录.docx b/doc/DPS国产化适配问题记录.docx new file mode 100644 index 0000000..7a7f60d Binary files /dev/null and b/doc/DPS国产化适配问题记录.docx differ