|
|
|
@@ -10,7 +10,15 @@ project(WinDevice VERSION 0.1 LANGUAGES CXX)
|
|
|
|
|
# 允许 Windows 导出所有符号
|
|
|
|
|
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
|
|
|
|
|
# 设置Windows相关配置
|
|
|
|
|
set(CMAKE_GENERATOR_TOOLSET "v142")
|
|
|
|
|
set(CMAKE_GENERATOR_TOOLSET "v143")
|
|
|
|
|
|
|
|
|
|
if (NOT DEFINED CMAKE_GENERATOR_PLATFORM)
|
|
|
|
|
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
|
|
|
|
|
set(CMAKE_GENERATOR_PLATFORM x64)
|
|
|
|
|
else()
|
|
|
|
|
set(CMAKE_GENERATOR_PLATFORM x86)
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
# 设置C++标准
|
|
|
|
|
set(CMAKE_CXX_STANDARD 11)
|
|
|
|
@@ -77,8 +85,25 @@ target_include_directories(WinDevice
|
|
|
|
|
target_link_libraries(WinDevice PRIVATE ${DirectX_LIBS})
|
|
|
|
|
|
|
|
|
|
# 创建 output 目录
|
|
|
|
|
set(OUTPUT_DIR ${CMAKE_SOURCE_DIR}/output)
|
|
|
|
|
file(MAKE_DIRECTORY ${OUTPUT_DIR})
|
|
|
|
|
set(OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/output)
|
|
|
|
|
# 获取架构信息
|
|
|
|
|
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
|
|
|
|
set(ARCH_DIR "x64")
|
|
|
|
|
else()
|
|
|
|
|
set(ARCH_DIR "x86")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
# 创建架构特定的输出目录
|
|
|
|
|
file(MAKE_DIRECTORY ${OUTPUT_DIR}/${ARCH_DIR})
|
|
|
|
|
set_target_properties(WinDevice PROPERTIES
|
|
|
|
|
ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${OUTPUT_DIR}/${ARCH_DIR}/debug"
|
|
|
|
|
LIBRARY_OUTPUT_DIRECTORY_DEBUG "${OUTPUT_DIR}/${ARCH_DIR}/debug"
|
|
|
|
|
RUNTIME_OUTPUT_DIRECTORY_DEBUG "${OUTPUT_DIR}/${ARCH_DIR}/debug"
|
|
|
|
|
|
|
|
|
|
ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${OUTPUT_DIR}/${ARCH_DIR}/release"
|
|
|
|
|
LIBRARY_OUTPUT_DIRECTORY_RELEASE "${OUTPUT_DIR}/${ARCH_DIR}/release"
|
|
|
|
|
RUNTIME_OUTPUT_DIRECTORY_RELEASE "${OUTPUT_DIR}/${ARCH_DIR}/release"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
|
|
|
# Debug 模式下的配置
|
|
|
|
@@ -90,6 +115,15 @@ if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
|
|
|
PUBLIC $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src>
|
|
|
|
|
PRIVATE ${Third_Include_DIR} ${Windows_Kits_UM_DIR} ${Windows_Kits_SHARED_DIR})
|
|
|
|
|
target_link_libraries(WinDeviceTest PRIVATE ${DirectX_LIBS})
|
|
|
|
|
set_target_properties(WinDeviceTest PROPERTIES
|
|
|
|
|
ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${OUTPUT_DIR}/debug"
|
|
|
|
|
LIBRARY_OUTPUT_DIRECTORY_DEBUG "${OUTPUT_DIR}/debug"
|
|
|
|
|
RUNTIME_OUTPUT_DIRECTORY_DEBUG "${OUTPUT_DIR}/debug"
|
|
|
|
|
|
|
|
|
|
ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${OUTPUT_DIR}/release"
|
|
|
|
|
LIBRARY_OUTPUT_DIRECTORY_RELEASE "${OUTPUT_DIR}/release"
|
|
|
|
|
RUNTIME_OUTPUT_DIRECTORY_RELEASE "${OUTPUT_DIR}/release"
|
|
|
|
|
)
|
|
|
|
|
else()
|
|
|
|
|
# Release 模式下的配置
|
|
|
|
|
set(LIBRARY_OUTPUT_PATH "${OUTPUT_DIR}/release")
|
|
|
|
|