Files
LinuxMotion/CMakeLists.txt
chen 818041201b fix: 修复 Types.h 缺少头文件保护导致的重复定义错误
- Types.h: 添加 #pragma once 防止重复包含
- CMakeLists.txt: C++ 标准 17 → 20
- App/CMakeLists.txt: 移除重复的 C++11 覆盖,统一继承根 CMake 标准
- Axis.cpp: 添加 #include <string> 显式包含
2026-07-03 03:52:40 +00:00

43 lines
1.9 KiB
CMake

cmake_minimum_required(VERSION 3.22)
project(Motion)
# 开启编译数据库导出(强制开启,不被缓存覆盖)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE INTERNAL "")
# 针对 GCC 编译器添加 UTF-8 编码选项
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU") # 仅对 GCC 生效
# 添加 C++ 编译选项
add_compile_options(-finput-charset=UTF-8)
add_compile_options(-fexec-charset=UTF-8)
# 若需要支持 C 语言,补充 C 编译选项
add_compile_options($<$<COMPILE_LANGUAGE:C>:-finput-charset=UTF-8>)
add_compile_options($<$<COMPILE_LANGUAGE:C>:-fexec-charset=UTF-8>)
endif()
if(WIN32)
# Windows平台特定的设置
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/build/$<CONFIGURATION>/WIN32")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/build/$<CONFIGURATION>/WIN32")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/build/$<CONFIGURATION>/WIN32/static_lib")
elseif(APPLE)
# Apple平台特定的设置
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/build/$<CONFIGURATION>/APPLE")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/build/$<CONFIGURATION>/APPLE")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/build/$<CONFIGURATION>/APPLE/static_lib")
elseif(UNIX) # 注意:Linux和macOS都满足UNIX为TRUE,所以通常先判断APPLE
# Linux或其他类Unix系统的设置
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/build/$<CONFIGURATION>/UNIX")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/build/$<CONFIGURATION>/UNIX")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/build/$<CONFIGURATION>/UNIX/static_lib")
endif()
set(CMAKE_C_STANDARD 20)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_subdirectory(${CMAKE_SOURCE_DIR}/MotionLib)
add_subdirectory(${CMAKE_SOURCE_DIR}/App)