2023-10-10 16:25:43 +08:00
|
|
|
|
# 设置CMake的最低版本要求
|
2023-10-09 20:38:38 +08:00
|
|
|
|
cmake_minimum_required(VERSION 3.12)
|
|
|
|
|
|
2023-10-10 16:25:43 +08:00
|
|
|
|
# 设置项目名称和版本,以及编程语言
|
2023-10-10 11:54:29 +08:00
|
|
|
|
project(WinDevice VERSION 0.1 LANGUAGES CXX)
|
2023-10-09 20:38:38 +08:00
|
|
|
|
|
2023-10-10 16:25:43 +08:00
|
|
|
|
# 设置C++标准
|
2023-10-10 11:54:29 +08:00
|
|
|
|
set(CMAKE_CXX_STANDARD 11)
|
|
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
|
|
2023-10-10 16:25:43 +08:00
|
|
|
|
# 添加源代码文件编码为UTF-8的选项,可选择启用或禁用
|
|
|
|
|
option(ENABLE_UTF8_SOURCE "Enable UTF-8 source code encoding" ON)
|
|
|
|
|
|
|
|
|
|
# 如果启用了UTF-8源码编码选项
|
|
|
|
|
if (ENABLE_UTF8_SOURCE)
|
|
|
|
|
# 如果是MSVC编译器
|
|
|
|
|
if (MSVC)
|
|
|
|
|
# 设置MSVC编译器的UTF-8源码编码选项
|
|
|
|
|
add_compile_options("/source-charset:utf-8")
|
|
|
|
|
# 如果是MinGW编译器
|
|
|
|
|
elseif (CMAKE_COMPILER_IS_GNUCXX)
|
|
|
|
|
# 设置MinGW编译器的UTF-8源码编码选项
|
|
|
|
|
add_compile_options("-fexec-charset=UTF-8" "-finput-charset=UTF-8")
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
2023-10-10 11:54:29 +08:00
|
|
|
|
|
2023-10-10 16:25:43 +08:00
|
|
|
|
# 使用通配符自动列举源文件
|
|
|
|
|
file(GLOB WinDevice_SOURCES
|
|
|
|
|
"${CMAKE_SOURCE_DIR}/src/*.cpp"
|
|
|
|
|
"${CMAKE_SOURCE_DIR}/src/Audio/*.cpp"
|
|
|
|
|
"${CMAKE_SOURCE_DIR}/src/Video/*.cpp"
|
|
|
|
|
"${CMAKE_SOURCE_DIR}/src/Utils/*.cpp"
|
|
|
|
|
)
|
2023-10-09 20:38:38 +08:00
|
|
|
|
|
|
|
|
|
# 添加功能模块的源文件
|
2023-10-10 16:25:43 +08:00
|
|
|
|
add_library(WinDevice ${WinDevice_SOURCES})
|
|
|
|
|
|
|
|
|
|
# 设置WinDevice库的公共包含目录
|
|
|
|
|
target_include_directories(WinDevice PUBLIC
|
|
|
|
|
"${CMAKE_SOURCE_DIR}/src"
|
2023-10-09 20:38:38 +08:00
|
|
|
|
)
|
2023-10-10 16:25:43 +08:00
|
|
|
|
|
|
|
|
|
# 设置WinDevice库的私有包含目录,包括第三方库和源码目录
|
|
|
|
|
set(THIRD_LIB_DIR ${CMAKE_SOURCE_DIR}/include/third_lib)
|
|
|
|
|
target_include_directories(WinDevice PRIVATE
|
|
|
|
|
${THIRD_LIB_DIR}
|
|
|
|
|
"${CMAKE_SOURCE_DIR}/src"
|
|
|
|
|
)
|