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($<$:-finput-charset=UTF-8>) add_compile_options($<$:-fexec-charset=UTF-8>) endif() if(WIN32) # Windows平台特定的设置 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/build/$/WIN32") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/build/$/WIN32") set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/build/$/WIN32/static_lib") elseif(APPLE) # Apple平台特定的设置 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/build/$/APPLE") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/build/$/APPLE") set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/build/$/APPLE/static_lib") elseif(UNIX) # 注意:Linux和macOS都满足UNIX为TRUE,所以通常先判断APPLE # Linux或其他类Unix系统的设置 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/build/$/UNIX") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/build/$/UNIX") set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/build/$/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)