From e5f543c1abbafc14843d0463d4b698995be8f0c7 Mon Sep 17 00:00:00 2001 From: wangqr Date: Mon, 20 Jul 2020 16:16:20 -0400 Subject: [PATCH] Add support for XAudio2 redistributable Bundle XAudio2 to better support Win7 Fix wangqr/Aegisub#59 --- CMakeLists.txt | 7 +++++++ cmake/FindXAudio2redist.cmake | 13 +++++++++++++ src/audio_player_xaudio2.cpp | 4 ++++ 3 files changed, 24 insertions(+) create mode 100644 cmake/FindXAudio2redist.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 42090447e..4614f6d3b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -569,6 +569,13 @@ if(WIN32) if(WITH_XAUDIO2) target_compile_definitions(Aegisub PRIVATE "WITH_XAUDIO2") target_sources(Aegisub PRIVATE src/audio_player_xaudio2.cpp) + option(XAUDIO2_REDIST "Use XAudio redistributable") + if(XAUDIO2_REDIST) + find_package(XAudio2redist REQUIRED) + target_compile_definitions(Aegisub PRIVATE "XAUDIO2_REDIST") + target_include_directories(Aegisub PRIVATE ${XAudio2redist_INCLUDE_DIRS}) + target_link_libraries(Aegisub PRIVATE ${XAudio2redist_LIBRARIES}) + endif() endif() else() set(WITH_DIRECTSOUND OFF) diff --git a/cmake/FindXAudio2redist.cmake b/cmake/FindXAudio2redist.cmake new file mode 100644 index 000000000..f2ba35b1d --- /dev/null +++ b/cmake/FindXAudio2redist.cmake @@ -0,0 +1,13 @@ +find_path(XAudio2redist_INCLUDE_DIRS + NAMES xaudio2redist.h +) +find_library(XAudio2redist_LIBRARIES + NAMES xaudio2_9redist +) +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(XAudio2redist + FOUND_VAR XAudio2redist_FOUND + REQUIRED_VARS + XAudio2redist_LIBRARIES + XAudio2redist_INCLUDE_DIRS +) diff --git a/src/audio_player_xaudio2.cpp b/src/audio_player_xaudio2.cpp index fbc2f735f..fc1c194f5 100644 --- a/src/audio_player_xaudio2.cpp +++ b/src/audio_player_xaudio2.cpp @@ -37,7 +37,11 @@ #include #include +#ifndef XAUDIO2_REDIST #include +#else +#include +#endif namespace { class XAudio2Thread;