Files
UniversalCan/CMakeLists.txt
T
2026-08-25 22:10:31 -04:00

92 lines
2.2 KiB
CMake
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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})