12 Commits
Author SHA1 Message Date
7iwind bac53a3e45 Merge pull request 'fix: 修正缺失构建平台的错误' (#37) from feature/route into main
CI / host (push) Successful in 3s
CI / cortex-m (push) Successful in 4s
Release / release (push) Successful in 11s
Reviewed-on: #37
2026-07-27 00:45:17 +08:00
7iwind fa1f547e81 fix: 修正缺失构建平台的错误
CI / host (pull_request) Successful in 4s
CI / cortex-m (pull_request) Successful in 4s
2026-07-27 00:44:55 +08:00
7iwind 12e837c941 Merge pull request 'fix: 修正缺失构建平台的错误' (#36) from feature/route into main
CI / host (push) Successful in 3s
CI / cortex-m (push) Successful in 5s
Release / release (push) Successful in 10s
Reviewed-on: #36
2026-07-27 00:42:11 +08:00
7iwind 675d01f444 fix: 修正缺失构建平台的错误
CI / host (pull_request) Successful in 4s
CI / cortex-m (pull_request) Successful in 5s
2026-07-27 00:40:30 +08:00
7iwind ccde2f73e9 Merge pull request 'fix: 修正缺失构建平台的错误' (#35) from feature/route into main
CI / host (push) Successful in 7s
CI / cortex-m (push) Successful in 7s
Release / release (push) Successful in 16s
Reviewed-on: #35
2026-07-27 00:30:21 +08:00
7iwind 3b44bd97f7 fix: 修正缺失构建平台的错误
CI / host (pull_request) Successful in 4s
CI / cortex-m (pull_request) Successful in 6s
2026-07-27 00:29:35 +08:00
7iwind c5fea61784 Merge pull request 'fix: 修正缺失构建平台的错误' (#34) from feature/route into main
CI / host (push) Successful in 18s
CI / cortex-m (push) Successful in 3s
Release / release (push) Successful in 9s
Reviewed-on: #34
2026-07-27 00:23:31 +08:00
7iwind 07c4aa316a fix: 修正缺失构建平台的错误
CI / host (pull_request) Successful in 4s
CI / cortex-m (pull_request) Successful in 3s
2026-07-27 00:20:33 +08:00
7iwind 5d1ef621db Merge pull request 'fix: 修正缺失构建平台的错误' (#33) from feature/route into main
CI / host (push) Successful in 2s
CI / cortex-m (push) Successful in 3s
Release / release (push) Successful in 9s
Reviewed-on: #33
2026-07-27 00:15:18 +08:00
7iwind 8fe1b36cdc fix: 修正缺失构建平台的错误
CI / host (pull_request) Successful in 3s
CI / cortex-m (pull_request) Successful in 4s
2026-07-27 00:15:00 +08:00
7iwind b717c5f163 Merge pull request 'fix: 修正缺失构建平台的错误' (#32) from feature/route into main
CI / host (push) Successful in 8s
CI / cortex-m (push) Successful in 6s
Release / release (push) Failing after 10s
Reviewed-on: #32
2026-07-27 00:13:06 +08:00
7iwind 5ddc63abdf fix: 修正缺失构建平台的错误
CI / host (pull_request) Successful in 10s
CI / cortex-m (pull_request) Successful in 10s
2026-07-27 00:12:49 +08:00
3 changed files with 62 additions and 7 deletions
+3 -1
View File
@@ -85,7 +85,7 @@ jobs:
"linux-arm64|OFF|-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-linux-arm64.cmake" \
"linux-armhf|OFF|-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-linux-armhf.cmake" \
"windows-amd64|OFF|-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-windows-amd64.cmake -DBUILD_EXAMPLES=OFF" \
"baremetal-arm32|OFF|-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-baremetal-arm32.cmake -DBUILD_EXAMPLES=OFF -DBUILD_SHARED=OFF"
"baremetal-arm32|OFF|-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-baremetal-arm32.cmake -DBUILD_EXAMPLES=OFF"
do
IFS='|' read -r name testing extra <<< "$entry"
echo ">>> Building $name"
@@ -110,6 +110,8 @@ jobs:
echo ">>> Building $name"
cmake -S . -B "build-$name" \
-DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF \
-DCMAKE_C_COMPILER=arm-none-eabi-gcc \
-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY \
-DCMAKE_C_FLAGS="$flags"
cmake --build "build-$name"
cmake --install "build-$name" --prefix "dist/datarouter-$name"
+45 -3
View File
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.10)
project(DataRouter C)
project(DataRouter VERSION 1.1.0 LANGUAGES C)
set(CMAKE_C_STANDARD 11)
@@ -12,6 +12,9 @@ option(DR_COMPILE_CHECK "Build compile-compatibility tests for each Cortex-M va
set(DR_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/datarouter.c CACHE INTERNAL "")
set(DR_INCLUDES ${CMAKE_CURRENT_SOURCE_DIR} CACHE INTERNAL "")
# 预编译包使用者可用 find_package(DataRouter CONFIG) 从此路径加载
set(DataRouter_CMAKE_CONFIG_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/cmake CACHE INTERNAL "")
# ── 编译兼容性矩阵 (仅在 host 编译器和 ARM GCC 均可用时生效) ──
if(DR_COMPILE_CHECK)
@@ -56,7 +59,9 @@ endif()
# ── 常规库构建 ────────────────────────────────────────────────
add_library(DataRouter STATIC datarouter.c)
target_include_directories(DataRouter PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_include_directories(DataRouter PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
)
if(BUILD_EXAMPLES OR NOT DEFINED BUILD_EXAMPLES)
add_executable(example example.c)
@@ -73,10 +78,47 @@ endif()
# ── 安装规则(用于打包发布) ─────────────────────────────
include(GNUInstallDirs)
install(TARGETS DataRouter ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
include(CMakePackageConfigHelpers)
set(DataRouter_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/DataRouter")
install(TARGETS DataRouter
EXPORT DataRouterTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
install(FILES
${CMAKE_CURRENT_SOURCE_DIR}/datarouter.h
${CMAKE_CURRENT_SOURCE_DIR}/datarouter_config.h
${CMAKE_CURRENT_SOURCE_DIR}/datarouter_config_template.h
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)
# ── CMake 包配置文件(find_package(DataRouter) 用) ────
set(PACKAGE_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR})
set(PACKAGE_LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR})
configure_package_config_file(
${CMAKE_CURRENT_SOURCE_DIR}/cmake/DataRouterConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/DataRouterConfig.cmake
INSTALL_DESTINATION ${DataRouter_INSTALL_CMAKEDIR}
PATH_VARS PACKAGE_INCLUDE_INSTALL_DIR PACKAGE_LIB_INSTALL_DIR
)
write_basic_package_version_file(
${CMAKE_CURRENT_BINARY_DIR}/DataRouterConfigVersion.cmake
VERSION ${PROJECT_VERSION}
COMPATIBILITY AnyNewerVersion
)
install(EXPORT DataRouterTargets
FILE DataRouterTargets.cmake
DESTINATION ${DataRouter_INSTALL_CMAKEDIR}
)
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/DataRouterConfig.cmake
${CMAKE_CURRENT_BINARY_DIR}/DataRouterConfigVersion.cmake
DESTINATION ${DataRouter_INSTALL_CMAKEDIR}
)
+14 -3
View File
@@ -1,11 +1,22 @@
@PACKAGE_INIT@
set_and_check(DataRouter_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@")
set_and_check(DataRouter_LIBRARY_DIR "@PACKAGE_LIB_INSTALL_DIR@")
get_filename_component(DataRouter_INCLUDE_DIR
"${CMAKE_CURRENT_LIST_DIR}/../../../include" ABSOLUTE)
get_filename_component(DataRouter_LIBRARY_DIR
"${CMAKE_CURRENT_LIST_DIR}/../../../lib" ABSOLUTE)
include("${CMAKE_CURRENT_LIST_DIR}/DataRouterTargets.cmake" OPTIONAL)
if(NOT TARGET DataRouter::DataRouter)
# 无论 targets 文件是否加载,都覆盖 include 路径为正确值
# (targets 文件中的 _IMPORT_PREFIX 在某些平台/工具链下可能计算异常)
if(TARGET DataRouter)
set_target_properties(DataRouter PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${DataRouter_INCLUDE_DIR}"
)
if(NOT TARGET DataRouter::DataRouter)
add_library(DataRouter::DataRouter ALIAS DataRouter)
endif()
else()
add_library(DataRouter::DataRouter STATIC IMPORTED)
set_target_properties(DataRouter::DataRouter PROPERTIES
IMPORTED_LOCATION "${DataRouter_LIBRARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}DataRouter${CMAKE_STATIC_LIBRARY_SUFFIX}"