From 3a7f434c2bf5c297f32e94c46b7222bc98b11ca4 Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Mon, 3 Nov 2025 22:49:41 -0800 Subject: [PATCH 1/3] CMake build options improvements --- CMakeLists.txt | 45 +++++++++++++++++++++++++-------------------- CMakePresets.json | 6 ++++-- 2 files changed, 29 insertions(+), 22 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 70db51f04..329d1146f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -63,11 +63,25 @@ if(XBOX_CONSOLE_TARGET STREQUAL "durango") set(BUILD_XBOXONE_SHADERS ON) set(BUILD_XAUDIO_WIN10 OFF) set(BUILD_XAUDIO_WIN8 ON) + set(BUILD_XAUDIO_REDIST OFF) set(BUILD_TOOLS OFF) elseif(WINDOWS_STORE) set(BUILD_GAMEINPUT OFF) set(BUILD_WGI ON) + set(BUILD_XINPUT OFF) set(BUILD_TOOLS OFF) + set(BUILD_XAUDIO_WIN10 ON) + set(BUILD_XAUDIO_WIN8 OFF) + set(BUILD_XAUDIO_REDIST OFF) +elseif(MINGW) + set(BUILD_WGI OFF) + set(BUILD_XAUDIO_WIN10 OFF) + set(BUILD_XAUDIO_WIN8 OFF) + if (NOT BUILD_GAMEINPUT) + set(BUILD_XINPUT ON) + endif() +elseif(WIN32 AND (NOT BUILD_GAMEINPUT) AND (NOT BUILD_WGI)) + set(BUILD_XINPUT ON) endif() include(GNUInstallDirs) @@ -145,15 +159,6 @@ set(SHADER_SOURCES Src/Shaders/SpriteEffect.fx Src/Shaders/ToneMap.fx) -# Xbox-specific extensions -if(DEFINED XBOX_CONSOLE_TARGET) - set(LIBRARY_HEADERS ${LIBRARY_HEADERS} - Inc/XboxDDSTextureLoader.h) - - set(LIBRARY_SOURCES ${LIBRARY_SOURCES} - Src/XboxDDSTextureLoader.cpp) -endif() - # These source files are identical in both DX11 and DX12 version. set(LIBRARY_HEADERS ${LIBRARY_HEADERS} Inc/GamePad.h @@ -193,14 +198,16 @@ set(SHADER_SOURCES ${SHADER_SOURCES} Src/Shaders/Structures.fxh Src/Shaders/Utilities.fxh) -if(MINGW) - set(BUILD_XAUDIO_WIN10 OFF) - set(BUILD_XAUDIO_WIN8 OFF) +# Xbox-specific extensions +if(DEFINED XBOX_CONSOLE_TARGET) + set(LIBRARY_HEADERS ${LIBRARY_HEADERS} + Inc/XboxDDSTextureLoader.h) + + set(LIBRARY_SOURCES ${LIBRARY_SOURCES} + Src/XboxDDSTextureLoader.cpp) endif() -if(WINDOWS_STORE - OR BUILD_XAUDIO_WIN10 OR BUILD_XAUDIO_WIN8 - OR BUILD_XAUDIO_REDIST) +if(BUILD_XAUDIO_WIN10 OR BUILD_XAUDIO_WIN8 OR BUILD_XAUDIO_REDIST) set(LIBRARY_HEADERS ${LIBRARY_HEADERS} Inc/Audio.h) @@ -274,7 +281,7 @@ if(WIN32 AND BUILD_SHARED_LIBS) target_link_libraries(${PROJECT_NAME} PRIVATE kernelx.lib combase.lib d3d12_x.lib xi.lib) endif() - if(MINGW) + if(MINGW AND BUILD_XINPUT) target_link_libraries(${PROJECT_NAME} PRIVATE xinput1_4.lib) endif() else() @@ -297,9 +304,7 @@ target_include_directories(${PROJECT_NAME} PUBLIC target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_11) -if(WINDOWS_STORE - OR BUILD_XAUDIO_WIN10 OR BUILD_XAUDIO_WIN8 - OR BUILD_XAUDIO_REDIST) +if(BUILD_XAUDIO_WIN10 OR BUILD_XAUDIO_WIN8 OR BUILD_XAUDIO_REDIST) target_include_directories(${PROJECT_NAME} PRIVATE Audio) endif() @@ -316,7 +321,7 @@ if(directxmath_FOUND) endif() if(BUILD_XAUDIO_REDIST - AND (NOT BUILD_XAUDIO_WIN10) AND (NOT BUILD_XAUDIO_WIN8) AND (NOT WINDOWS_STORE)) + AND (NOT BUILD_XAUDIO_WIN10) AND (NOT BUILD_XAUDIO_WIN8)) message(STATUS "Using XAudio2Redist for DirectX Tool Kit for Audio.") find_package(xaudio2redist CONFIG REQUIRED) target_link_libraries(${PROJECT_NAME} PUBLIC Microsoft::XAudio2Redist) diff --git a/CMakePresets.json b/CMakePresets.json index 69e1cadb6..03b7c7a79 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -122,8 +122,7 @@ "cacheVariables": { "BUILD_XAUDIO_WIN10": false, "BUILD_XAUDIO_WIN8": false, - "BUILD_XAUDIO_REDIST": true, - "BUILD_XINPUT": true + "BUILD_XAUDIO_REDIST": true }, "hidden": true }, @@ -324,6 +323,9 @@ { "name": "x86-Debug-MinGW" , "description": "MinG-W32 (Debug)", "inherits": [ "base", "x86", "Debug", "GNUC", "VCPKG", "XAudio2Redist", "MinGW32" ] }, { "name": "x86-Release-MinGW", "description": "MinG-W32 (Release)", "inherits": [ "base", "x86", "Release", "GNUC", "VCPKG", "XAudio2Redist", "MinGW32" ] }, + { "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" ] }, From bf904b9e8ef88e35c93127d2c8fba010bffb14ae Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Mon, 3 Nov 2025 23:01:25 -0800 Subject: [PATCH 2/3] Code review feedback --- CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 329d1146f..d48e8f70c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -320,8 +320,7 @@ if(directxmath_FOUND) target_link_libraries(${PROJECT_NAME} PRIVATE Microsoft::DirectXMath) endif() -if(BUILD_XAUDIO_REDIST - AND (NOT BUILD_XAUDIO_WIN10) AND (NOT BUILD_XAUDIO_WIN8)) +if(BUILD_XAUDIO_REDIST AND (NOT BUILD_XAUDIO_WIN10) AND (NOT BUILD_XAUDIO_WIN8)) message(STATUS "Using XAudio2Redist for DirectX Tool Kit for Audio.") find_package(xaudio2redist CONFIG REQUIRED) target_link_libraries(${PROJECT_NAME} PUBLIC Microsoft::XAudio2Redist) From 96277e53eff05ece937debe7c56d956e3d06f7a7 Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Wed, 5 Nov 2025 10:27:19 -0800 Subject: [PATCH 3/3] Code review --- CMakeLists.txt | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d48e8f70c..de2ccfb93 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,19 +60,19 @@ if(XBOX_CONSOLE_TARGET STREQUAL "durango") set(BUILD_GAMEINPUT OFF) set(BUILD_WGI OFF) set(BUILD_XINPUT OFF) - set(BUILD_XBOXONE_SHADERS ON) set(BUILD_XAUDIO_WIN10 OFF) set(BUILD_XAUDIO_WIN8 ON) set(BUILD_XAUDIO_REDIST OFF) + set(BUILD_XBOXONE_SHADERS ON) set(BUILD_TOOLS OFF) elseif(WINDOWS_STORE) set(BUILD_GAMEINPUT OFF) set(BUILD_WGI ON) set(BUILD_XINPUT OFF) - set(BUILD_TOOLS OFF) set(BUILD_XAUDIO_WIN10 ON) set(BUILD_XAUDIO_WIN8 OFF) set(BUILD_XAUDIO_REDIST OFF) + set(BUILD_TOOLS OFF) elseif(MINGW) set(BUILD_WGI OFF) set(BUILD_XAUDIO_WIN10 OFF) @@ -161,18 +161,12 @@ set(SHADER_SOURCES # These source files are identical in both DX11 and DX12 version. set(LIBRARY_HEADERS ${LIBRARY_HEADERS} - Inc/GamePad.h - Inc/Keyboard.h - Inc/Mouse.h Inc/SimpleMath.h Inc/SimpleMath.inl) set(LIBRARY_SOURCES ${LIBRARY_SOURCES} Src/BinaryReader.cpp - Src/GamePad.cpp Src/Geometry.cpp - Src/Keyboard.cpp - Src/Mouse.cpp Src/SimpleMath.cpp) set(LIBRARY_SOURCES ${LIBRARY_SOURCES} @@ -207,6 +201,18 @@ if(DEFINED XBOX_CONSOLE_TARGET) Src/XboxDDSTextureLoader.cpp) endif() +if(BUILD_XINPUT OR BUILD_WGI OR BUILD_GAMEINPUT) + set(LIBRARY_HEADERS ${LIBRARY_HEADERS} + Inc/GamePad.h + Inc/Keyboard.h + Inc/Mouse.h) + + set(LIBRARY_SOURCES ${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} Inc/Audio.h)