﻿# 设置CMake最低版本要求
cmake_minimum_required(VERSION 3.15 FATAL_ERROR)

# 设置项目名称
project(MotionGloveSDK VERSION 1.0 LANGUAGES CXX)
# 只保留 Debug 和 Release 配置
if(CMAKE_CONFIGURATION_TYPES)
    set(CMAKE_CONFIGURATION_TYPES "Debug;Release")
    set(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING "Reset the configurations to only Debug and Release" FORCE)
endif()

# 设置C++标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)


# 手动指定源文件（请根据您的实际文件修改以下路径）
# CPP文件
set(SRC_FILES
src/decodeAsGloveCSV.cpp
src/eulerToQuat.cpp
"src/motionGloveSDK.cpp"
"src/motionGloveSdkHelper.cpp"
src/version.cpp
    # 添加其他.cpp文件
)

# 头文件
set(HEADER_FILES
"include/motionGloveSDK.h"
"include/motionGloveSDK_commonDef.h"
"include/motionGloveSDK_HMAXGloveDef.h"
"include/MotionGloveSDKDef.h"
inc/decodeAsGloveCSV.h
inc/eulerToQuat.h
"inc/motionGloveSdkHelper.h"
inc/readWriteLock.h
inc/version.h
    # 添加其他.h文件
)

# 创建可执行文件，包含所有手动指定的文件
add_library(${PROJECT_NAME} SHARED
    ${SRC_FILES}
    ${HEADER_FILES}
)
# 指定头文件目录，以便编译器能够找到
target_include_directories(${PROJECT_NAME} PUBLIC  ${PROJECT_SOURCE_DIR})

if(WIN32)
# Make VS .vcxproj.filters mirror the real directory tree from the repo root
source_group(TREE "${CMAKE_SOURCE_DIR}" FILES     ${SRC_FILES}     ${HEADER_FILES})
endif()


# 如果需要安装头文件
#install(FILES my_header.h DESTINATION include)

# 为该目标设置 Debug 版本的后缀为 'd'
if(WIN32)
    set_target_properties(${PROJECT_NAME} PROPERTIES DEBUG_POSTFIX "d")
endif()
