diff --git a/CMakeLists.txt b/CMakeLists.txt index 70db51f04..de2ccfb93 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,14 +60,28 @@ 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_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) + 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,29 +159,14 @@ 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 - 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} @@ -193,14 +192,28 @@ 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(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(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 +287,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 +310,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() @@ -315,8 +326,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) AND (NOT WINDOWS_STORE)) +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) 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" ] },