first commit

This commit is contained in:
liyp
2026-08-25 22:10:31 -04:00
commit dde12bf30b
41 changed files with 1379 additions and 0 deletions
+91
View File
@@ -0,0 +1,91 @@
cmake_minimum_required(VERSION 3.10)
project(UniversalCan VERSION 1.0.0)
# 设置C标准(纯C工程)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
# 公共部分(所有平台共享)
set(COMMON_INCLUDES
${CMAKE_CURRENT_SOURCE_DIR}/Inc
${CMAKE_CURRENT_SOURCE_DIR}/OsSample
)
set(COMMON_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/Src/*.c
${CMAKE_CURRENT_SOURCE_DIR}/OsSample/*.c
)
# Windows平台(包括MinGW
if(WIN32 OR MINGW)
message(STATUS "Configuring for Windows/MinGW")
# Windows平台特定包含目录
set(PLATFORM_INCLUDES
${CMAKE_CURRENT_SOURCE_DIR}/Device/ScHHS
${CMAKE_CURRENT_SOURCE_DIR}/Device/ScHHS/Port
${CMAKE_CURRENT_SOURCE_DIR}/Device/Zlg/Port
)
# Windows平台特定源文件
set(PLATFORM_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/Device/ScHHS/Port/*.c
${CMAKE_CURRENT_SOURCE_DIR}/Device/Zlg/Port/*.c
)
# Windows平台链接库
set(PLATFORM_LIBS
HCanbus # 四川何华盛的库
ws2_32 # winsock库
)
# Windows平台链接目录
set(PLATFORM_LINK_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/Device/ScHHS
)
# Windows平台定义
add_definitions(-D_WIN32_WINNT=0x0601)
# Linux平台
elseif(UNIX)
message(STATUS "Configuring for Linux")
# Linux平台特定包含目录(假设有Linux设备目录)
set(PLATFORM_INCLUDES
${CMAKE_CURRENT_SOURCE_DIR}/Device/Linux
)
# Linux平台特定源文件
set(PLATFORM_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/Device/Linux/*.c
)
# Linux平台链接库
set(PLATFORM_LIBS
pthread
rt
)
# Linux平台链接目录
set(PLATFORM_LINK_DIRS "")
endif()
# 收集所有源文件
file(GLOB COMMON_SRC ${COMMON_SOURCES})
file(GLOB PLATFORM_SRC ${PLATFORM_SOURCES})
# 创建可执行文件
add_executable(${PROJECT_NAME} ${COMMON_SRC} ${PLATFORM_SRC})
# 设置包含目录
target_include_directories(${PROJECT_NAME} PRIVATE
${COMMON_INCLUDES}
${PLATFORM_INCLUDES}
)
# 设置链接目录
target_link_directories(${PROJECT_NAME} PRIVATE ${PLATFORM_LINK_DIRS})
# 链接库
target_link_libraries(${PROJECT_NAME} ${PLATFORM_LIBS})