fix: 修正缺失构建平台的错误
This commit is contained in:
+43
-3
@@ -1,5 +1,5 @@
|
|||||||
cmake_minimum_required(VERSION 3.10)
|
cmake_minimum_required(VERSION 3.10)
|
||||||
project(DataRouter C)
|
project(DataRouter VERSION 1.1.0 LANGUAGES C)
|
||||||
|
|
||||||
set(CMAKE_C_STANDARD 11)
|
set(CMAKE_C_STANDARD 11)
|
||||||
|
|
||||||
@@ -56,7 +56,10 @@ endif()
|
|||||||
# ── 常规库构建 ────────────────────────────────────────────────
|
# ── 常规库构建 ────────────────────────────────────────────────
|
||||||
|
|
||||||
add_library(DataRouter STATIC datarouter.c)
|
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}>
|
||||||
|
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||||
|
)
|
||||||
|
|
||||||
if(BUILD_EXAMPLES OR NOT DEFINED BUILD_EXAMPLES)
|
if(BUILD_EXAMPLES OR NOT DEFINED BUILD_EXAMPLES)
|
||||||
add_executable(example example.c)
|
add_executable(example example.c)
|
||||||
@@ -73,10 +76,47 @@ endif()
|
|||||||
# ── 安装规则(用于打包发布) ─────────────────────────────
|
# ── 安装规则(用于打包发布) ─────────────────────────────
|
||||||
|
|
||||||
include(GNUInstallDirs)
|
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
|
install(FILES
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/datarouter.h
|
${CMAKE_CURRENT_SOURCE_DIR}/datarouter.h
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/datarouter_config.h
|
${CMAKE_CURRENT_SOURCE_DIR}/datarouter_config.h
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/datarouter_config_template.h
|
${CMAKE_CURRENT_SOURCE_DIR}/datarouter_config_template.h
|
||||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
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}
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user