first commit
This commit is contained in:
@@ -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})
|
||||
Reference in New Issue
Block a user