Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 26 additions & 22 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -164,16 +164,16 @@ set(SHADER_SOURCES
Src/Shaders/ToneMap.fx)

# These source files are identical in both DX11 and DX12 version.
set(LIBRARY_HEADERS ${LIBRARY_HEADERS}
list(APPEND LIBRARY_HEADERS
Inc/SimpleMath.h
Inc/SimpleMath.inl)

set(LIBRARY_SOURCES ${LIBRARY_SOURCES}
list(APPEND LIBRARY_SOURCES
Src/BinaryReader.cpp
Src/Geometry.cpp
Src/SimpleMath.cpp)

set(LIBRARY_SOURCES ${LIBRARY_SOURCES}
list(APPEND LIBRARY_SOURCES
Src/AlignedNew.h
Src/Bezier.h
Src/BinaryReader.h
Expand All @@ -187,7 +187,7 @@ set(LIBRARY_SOURCES ${LIBRARY_SOURCES}
Src/vbo.h
Src/TeapotData.inc)

set(SHADER_SOURCES ${SHADER_SOURCES}
list(APPEND SHADER_SOURCES
Src/Shaders/Common.fxh
Src/Shaders/Lighting.fxh
Src/Shaders/PBRCommon.fxh
Expand All @@ -198,30 +198,30 @@ set(SHADER_SOURCES ${SHADER_SOURCES}

# Xbox-specific extensions
if(DEFINED XBOX_CONSOLE_TARGET)
set(LIBRARY_HEADERS ${LIBRARY_HEADERS}
list(APPEND LIBRARY_HEADERS
Inc/XboxDDSTextureLoader.h)

set(LIBRARY_SOURCES ${LIBRARY_SOURCES}
list(APPEND LIBRARY_SOURCES
Src/XboxDDSTextureLoader.cpp)
endif()

if(BUILD_XINPUT OR BUILD_WGI OR BUILD_GAMEINPUT)
set(LIBRARY_HEADERS ${LIBRARY_HEADERS}
list(APPEND LIBRARY_HEADERS
Inc/GamePad.h
Inc/Keyboard.h
Inc/Mouse.h)

set(LIBRARY_SOURCES ${LIBRARY_SOURCES}
list(APPEND LIBRARY_SOURCES
Src/GamePad.cpp
Src/Keyboard.cpp
Src/Mouse.cpp)
endif()

if(BUILD_XAUDIO_WIN10 OR BUILD_XAUDIO_WIN8 OR BUILD_XAUDIO_REDIST)
set(LIBRARY_HEADERS ${LIBRARY_HEADERS}
list(APPEND LIBRARY_HEADERS
Inc/Audio.h)

set(LIBRARY_SOURCES ${LIBRARY_SOURCES}
list(APPEND LIBRARY_SOURCES
Audio/AudioEngine.cpp
Audio/DynamicSoundEffectInstance.cpp
Audio/SoundCommon.cpp
Expand All @@ -246,8 +246,7 @@ else()
file(TO_CMAKE_PATH ${COMPILED_SHADERS} COMPILED_SHADERS)
endif()

set(LIBRARY_SOURCES ${LIBRARY_SOURCES}
${COMPILED_SHADERS}/SpriteEffect_SpriteVertexShader.inc)
list(APPEND LIBRARY_SOURCES ${COMPILED_SHADERS}/SpriteEffect_SpriteVertexShader.inc)

if(BUILD_XBOXONE_SHADERS)
message(STATUS "Using Shader Model 5.0 for Xbox One for shaders")
Expand All @@ -264,7 +263,9 @@ if(NOT USE_PREBUILT_SHADERS)
HINTS "C:/Program Files (x86)/Windows Kits/10/bin/${CMAKE_SYSTEM_VERSION}/${DIRECTX_HOST_ARCH}"
"C:/Program Files (x86)/Windows Kits/10/bin/${CMAKE_SYSTEM_VERSION}.0/${DIRECTX_HOST_ARCH}"
"C:/Program Files (x86)/Windows Kits/10/bin/${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION}/${DIRECTX_HOST_ARCH}")
message(STATUS "Using LegacyShaderCompiler found in ${DIRECTX_FXC_TOOL}")
if(DIRECTX_FXC_TOOL)
message(STATUS "Using LegacyShaderCompiler found in ${DIRECTX_FXC_TOOL}")
endif()
endif()
add_custom_command(
OUTPUT "${COMPILED_SHADERS}/SpriteEffect_SpriteVertexShader.inc"
Expand Down Expand Up @@ -312,8 +313,9 @@ source_group(Inc REGULAR_EXPRESSION Inc/*.*)
source_group(Src REGULAR_EXPRESSION Src/*.*)

target_include_directories(${PROJECT_NAME} PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/Inc>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/directxtk>)
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/Inc>)
target_include_directories(${PROJECT_NAME} SYSTEM INTERFACE
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/directxtk>)

target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_11)

Expand All @@ -330,7 +332,9 @@ endif()

if(directxmath_FOUND)
message(STATUS "Using DirectXMath package")
target_link_libraries(${PROJECT_NAME} PRIVATE Microsoft::DirectXMath)
if(NOT MINGW)
target_link_libraries(${PROJECT_NAME} PRIVATE Microsoft::DirectXMath)
endif()
endif()

if(BUILD_XAUDIO_REDIST AND (NOT BUILD_XAUDIO_WIN10) AND (NOT BUILD_XAUDIO_WIN8))
Expand Down Expand Up @@ -397,10 +401,9 @@ install(FILES
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PACKAGE_NAME})

# Create pkg-config file
include(build/JoinPaths.cmake)
# from: https://github.com/jtojnar/cmake-snips#concatenating-paths-when-building-pkg-config-files
join_paths(DIRECTXTK_INCLUDEDIR_FOR_PKG_CONFIG "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}")
join_paths(DIRECTXTK_LIBDIR_FOR_PKG_CONFIG "\${prefix}" "${CMAKE_INSTALL_LIBDIR}")
cmake_path(APPEND DIRECTXTK_INCLUDEDIR_FOR_PKG_CONFIG "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}")
cmake_path(APPEND DIRECTXTK_LIBDIR_FOR_PKG_CONFIG "\${prefix}" "${CMAKE_INSTALL_LIBDIR}")

set(DIRECTXTK_DEP_L "")
if(directxmath_FOUND)
Expand All @@ -420,6 +423,8 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/DirectXTK.pc"
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)

#--- Command-line tools
set(TOOL_EXES "")

if(BUILD_TOOLS AND WIN32)
set(TOOL_EXES xwbtool)

Expand Down Expand Up @@ -490,8 +495,6 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
target_compile_options(${t} PRIVATE "-Wno-attributes")
endif()
endforeach()
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 14)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
if(BUILD_SHARED_LIBS)
target_compile_options(${PROJECT_NAME} PRIVATE /wd4251 /wd4275)
Expand Down Expand Up @@ -533,6 +536,7 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
endforeach()

if(BUILD_FUZZING AND (NOT WINDOWS_STORE))
# Prevent fuzzing builds (which is otherwise configured as a Release mode) from disabling assertions
string(REPLACE "/DNDEBUG" "" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE})
string(REPLACE "/DNDEBUG" "" CMAKE_CXX_FLAGS_RELWITHDEBINFO ${CMAKE_CXX_FLAGS_RELWITHDEBINFO})

Expand Down Expand Up @@ -573,7 +577,7 @@ if(WIN32)
endif()
endif()

if(BUILD_TOOLS AND WIN32)
if(BUILD_TOOLS AND WIN32 AND (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR))
set_property(DIRECTORY PROPERTY VS_STARTUP_PROJECT xwbtool)
endif()

Expand Down
26 changes: 13 additions & 13 deletions CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -253,10 +253,10 @@
"hidden": true
},

{ "name": "x64-Debug" , "description": "MSVC for x64 (Debug) for Windows 8", "inherits": [ "base", "x64", "Debug", "MSVC" ] },
{ "name": "x64-Release" , "description": "MSVC for x64 (Release) for Windows 8", "inherits": [ "base", "x64", "Release", "MSVC" ] },
{ "name": "x86-Debug" , "description": "MSVC for x86 (Debug) for Windows 8", "inherits": [ "base", "x86", "Debug", "MSVC" ] },
{ "name": "x86-Release" , "description": "MSVC for x86 (Release) for Windows 8", "inherits": [ "base", "x86", "Release", "MSVC" ] },
{ "name": "x64-Debug" , "description": "MSVC for x64 (Debug) for Windows 8.1", "inherits": [ "base", "x64", "Debug", "MSVC" ] },
{ "name": "x64-Release" , "description": "MSVC for x64 (Release) for Windows 8.1", "inherits": [ "base", "x64", "Release", "MSVC" ] },
{ "name": "x86-Debug" , "description": "MSVC for x86 (Debug) for Windows 8.1", "inherits": [ "base", "x86", "Debug", "MSVC" ] },
{ "name": "x86-Release" , "description": "MSVC for x86 (Release) for Windows 8.1", "inherits": [ "base", "x86", "Release", "MSVC" ] },

{ "name": "x64-Debug-Win10" , "description": "MSVC for x64 (Debug) for Windows 10", "inherits": [ "base", "x64", "Debug", "MSVC", "Win10" ] },
{ "name": "x64-Release-Win10" , "description": "MSVC for x64 (Release) for Windows 10", "inherits": [ "base", "x64", "Release", "MSVC", "Win10" ] },
Expand Down Expand Up @@ -303,10 +303,10 @@
{ "name": "arm64ec-Debug-VCPKG" , "description": "MSVC for ARM64EC (Debug) using VCPKG", "inherits": [ "base", "ARM64EC", "Debug", "MSVC", "VCPKG", "Win10" ], "cacheVariables": { "VCPKG_TARGET_TRIPLET": "arm64ec-windows" } },
{ "name": "arm64ec-Release-VCPKG", "description": "MSVC for ARM64EC (Release) using VCPKG", "inherits": [ "base", "ARM64EC", "Release", "MSVC", "VCPKG", "Win10" ], "cacheVariables": { "VCPKG_TARGET_TRIPLET": "arm64ec-windows" } },

{ "name": "x64-Debug-Clang" , "description": "Clang/LLVM for x64 (Debug) for Windows 8", "inherits": [ "base", "x64", "Debug", "Clang" ] },
{ "name": "x64-Release-Clang" , "description": "Clang/LLVM for x64 (Release) for Windows 8", "inherits": [ "base", "x64", "Release", "Clang" ] },
{ "name": "x86-Debug-Clang" , "description": "Clang/LLVM for x86 (Debug) for Windows 8", "inherits": [ "base", "x86", "Debug", "Clang", "Clang-X86" ] },
{ "name": "x86-Release-Clang" , "description": "Clang/LLVM for x86 (Release) for Windows 8", "inherits": [ "base", "x86", "Release", "Clang", "Clang-X86" ] },
{ "name": "x64-Debug-Clang" , "description": "Clang/LLVM for x64 (Debug) for Windows 8.1", "inherits": [ "base", "x64", "Debug", "Clang" ] },
{ "name": "x64-Release-Clang" , "description": "Clang/LLVM for x64 (Release) for Windows 8.1", "inherits": [ "base", "x64", "Release", "Clang" ] },
{ "name": "x86-Debug-Clang" , "description": "Clang/LLVM for x86 (Debug) for Windows 8.1", "inherits": [ "base", "x86", "Debug", "Clang", "Clang-X86" ] },
{ "name": "x86-Release-Clang" , "description": "Clang/LLVM for x86 (Release) for Windows 8.1", "inherits": [ "base", "x86", "Release", "Clang", "Clang-X86" ] },

{ "name": "x64-Debug-Win10-Clang" , "description": "Clang/LLVM for x64 (Debug) for Windows 10", "inherits": [ "base", "x64", "Debug", "Clang", "Win10" ] },
{ "name": "x64-Release-Win10-Clang" , "description": "Clang/LLVM for x64 (Release) for Windows 10", "inherits": [ "base", "x64", "Release", "Clang", "Win10" ] },
Expand Down Expand Up @@ -344,13 +344,13 @@
{ "name": "x64-Debug-MinGW-GI" , "description": "MinG-W64 (Debug) using GameInput", "inherits": [ "base", "x64", "Debug", "GNUC", "VCPKG", "XAudio2Redist", "MinGW64" ], "cacheVariables": { "BUILD_GAMEINPUT": "true" } },
{ "name": "x64-Release-MinGW-GI", "description": "MinG-W64 (Release) using GameInput", "inherits": [ "base", "x64", "Release", "GNUC", "VCPKG", "XAudio2Redist", "MinGW64" ], "cacheVariables": { "BUILD_GAMEINPUT": "true" } },

{ "name": "x64-Debug-ICC" , "description": "Intel Classic Compiler (Debug) for Windows 8", "inherits": [ "base", "x64", "Debug", "Intel" ] },
{ "name": "x64-Release-ICC" , "description": "Intel Classic Compiler (Release) for Windows 8", "inherits": [ "base", "x64", "Release", "Intel" ] },
{ "name": "x64-Debug-ICC" , "description": "Intel Classic Compiler (Debug) for Windows 8.1", "inherits": [ "base", "x64", "Debug", "Intel" ] },
{ "name": "x64-Release-ICC" , "description": "Intel Classic Compiler (Release) for Windows 8.1", "inherits": [ "base", "x64", "Release", "Intel" ] },

{ "name": "x64-Debug-ICX" , "description": "Intel oneAPI Compiler (Debug) for Windows 8", "inherits": [ "base", "x64", "Debug", "IntelLLVM" ] },
{ "name": "x64-Release-ICX" , "description": "Intel oneAPI Compiler (Release) for Windows 8", "inherits": [ "base", "x64", "Release", "IntelLLVM" ] },
{ "name": "x64-Debug-ICX" , "description": "Intel oneAPI Compiler (Debug) for Windows 8.1", "inherits": [ "base", "x64", "Debug", "IntelLLVM" ] },
{ "name": "x64-Release-ICX" , "description": "Intel oneAPI Compiler (Release) for Windows 8.1", "inherits": [ "base", "x64", "Release", "IntelLLVM" ] },

{ "name": "x64-Analyze" , "description": "MSVC for x64 (Debug) for Windows 8 using /analyze", "inherits": [ "base", "x64", "Debug", "MSVC", "Analyze" ] },
{ "name": "x64-Analyze" , "description": "MSVC for x64 (Debug) for Windows 8.1 using /analyze", "inherits": [ "base", "x64", "Debug", "MSVC", "Analyze" ] },
{ "name": "x64-Analyze-Win10" , "description": "MSVC for x64 (Debug) for Windows 10 using /analyze", "inherits": [ "base", "x64", "Debug", "MSVC", "Win10", "Analyze" ] },
{ "name": "x64-Coverage" , "description": "MSVC for x64 (Debug) w/ Code Coverage", "inherits": [ "base", "x64", "Debug", "MSVC", "Coverage" ] },
{ "name": "x64-Coverage-Clang", "description": "Clang/LLVM for x64 (Debug) w/ Code Coverage", "inherits": [ "base", "x64", "Debug", "Clang", "Coverage" ] },
Expand Down
23 changes: 0 additions & 23 deletions build/JoinPaths.cmake

This file was deleted.

Loading