From bc4f1d6cfec5712d3922fc9f0a3a6fdc6d6f87b9 Mon Sep 17 00:00:00 2001 From: Matus Novak <mn00272@surrey.ac.uk> Date: Thu, 25 Apr 2019 23:48:52 +0200 Subject: [PATCH] Added missing MinGW dependencies for PortAudio --- .gitignore | 3 +++ include/rew/decoder/physical_audio_source.h | 5 +++-- include/rew/encoder/physical_audio_sink.h | 5 +++-- libs/CMakeLists.txt | 17 +++++++++-------- src/rew/decoder/CMakeLists.txt | 7 +++++-- src/rew/encoder/CMakeLists.txt | 7 ++++++- 6 files changed, 29 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index fbb2e41..d75afdf 100644 --- a/.gitignore +++ b/.gitignore @@ -45,3 +45,6 @@ tex2pdf* # doxygen doxygen/*.md doxygen/xml + +# VS Code +.vscode/ipch/ diff --git a/include/rew/decoder/physical_audio_source.h b/include/rew/decoder/physical_audio_source.h index 9ff3d3e..abb84a7 100644 --- a/include/rew/decoder/physical_audio_source.h +++ b/include/rew/decoder/physical_audio_source.h @@ -1,12 +1,13 @@ #ifndef REW_PHYSICAL_AUDIO_READER #define REW_PHYSICAL_AUDIO_READER -#include "../common/output.h" -#include "../common/audio_device.h" #include <vector> #include <mutex> #include <queue> #include <array> +#include <condition_variable> +#include "../common/output.h" +#include "../common/audio_device.h" #ifndef PORTAUDIO_H typedef void PaStream; diff --git a/include/rew/encoder/physical_audio_sink.h b/include/rew/encoder/physical_audio_sink.h index 3389b1a..7f0530f 100644 --- a/include/rew/encoder/physical_audio_sink.h +++ b/include/rew/encoder/physical_audio_sink.h @@ -1,11 +1,12 @@ #ifndef REW_PHYSICAL_AUDIO_SINK #define REW_PHYSICAL_AUDIO_SINK -#include "../common/output.h" -#include "../common/audio_device.h" #include <mutex> #include <queue> #include <vector> +#include <condition_variable> +#include "../common/output.h" +#include "../common/audio_device.h" #ifndef PORTAUDIO_H typedef void PaStream; diff --git a/libs/CMakeLists.txt b/libs/CMakeLists.txt index f5fc8e7..00aa336 100644 --- a/libs/CMakeLists.txt +++ b/libs/CMakeLists.txt @@ -5,7 +5,7 @@ include(${CMAKE_ROOT}/Modules/ExternalProject.cmake) ExternalProject_Add(ZLIB DOWNLOAD_COMMAND "" SOURCE_DIR ${CMAKE_SOURCE_DIR}/libs/zlib - CMAKE_ARGS -DBUILD_SHARED_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true + CMAKE_ARGS -DBUILD_SHARED_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true -DCMAKE_SH="CMAKE_SH-NOTFOUND" BUILD_COMMAND cmake --build . --target zlibstatic --config MinSizeRel INSTALL_COMMAND "" TEST_COMMAND "" @@ -25,7 +25,7 @@ endif() ExternalProject_Add(PortAudio DOWNLOAD_COMMAND "" SOURCE_DIR ${CMAKE_SOURCE_DIR}/libs/portaudio - CMAKE_ARGS --DPA_BUILD_SHARED=OFF -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true -DPA_BUILD_STATIC=ON -DPA_BUILD_TESTS=OFF -DPA_BUILD_EXAMPLES=OFF + CMAKE_ARGS --DPA_BUILD_SHARED=OFF -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true -DPA_BUILD_STATIC=ON -DPA_BUILD_TESTS=OFF -DPA_BUILD_EXAMPLES=OFF -DCMAKE_SH="CMAKE_SH-NOTFOUND" BUILD_COMMAND cmake --build . --target portaudio_static --config MinSizeRel INSTALL_COMMAND "" TEST_COMMAND "" @@ -33,13 +33,14 @@ ExternalProject_Add(PortAudio if(MSVC) set(PORTAUDIO_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/libs/portaudio/include ${CMAKE_BINARY_DIR}/libs/PortAudio-prefix/src/PortAudio-build PARENT_SCOPE) - set(PORTAUDIO_LIBRARY ${CMAKE_BINARY_DIR}/libs/PortAudio-prefix/src/PortAudio-build/MinSizeRel/portaudio_static_x86.lib PARENT_SCOPE) -elseif(MINGW) - #set(ZLIB_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/libs/zlib ${CMAKE_BINARY_DIR}/libs/ZLIB-prefix/src/ZLIB-build PARENT_SCOPE) - #set(ZLIB_LIBRARY ${CMAKE_BINARY_DIR}/libs/ZLIB-prefix/src/ZLIB-build/libzlibstatic.a PARENT_SCOPE) + if (CMAKE_CL_64) + set(PORTAUDIO_LIBRARY ${CMAKE_BINARY_DIR}/libs/PortAudio-prefix/src/PortAudio-build/MinSizeRel/portaudio_static_x64.lib PARENT_SCOPE) + else() + set(PORTAUDIO_LIBRARY ${CMAKE_BINARY_DIR}/libs/PortAudio-prefix/src/PortAudio-build/MinSizeRel/portaudio_static_x86.lib PARENT_SCOPE) + endif() else() - #set(ZLIB_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/libs/zlib ${CMAKE_BINARY_DIR}/libs/ZLIB-prefix/src/ZLIB-build PARENT_SCOPE) - #set(ZLIB_LIBRARY ${CMAKE_BINARY_DIR}/libs/ZLIB-prefix/src/ZLIB-build/libz.a PARENT_SCOPE) + set(PORTAUDIO_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/libs/portaudio/include ${CMAKE_BINARY_DIR}/libs/PortAudio-prefix/src/PortAudio-build PARENT_SCOPE) + set(PORTAUDIO_LIBRARY ${CMAKE_BINARY_DIR}/libs/PortAudio-prefix/src/PortAudio-build/libportaudio.a PARENT_SCOPE) endif() # Add third party libraries which do not need compilation step diff --git a/src/rew/decoder/CMakeLists.txt b/src/rew/decoder/CMakeLists.txt index e2981e3..c6693da 100644 --- a/src/rew/decoder/CMakeLists.txt +++ b/src/rew/decoder/CMakeLists.txt @@ -23,10 +23,13 @@ target_include_directories(${PROJECT_NAME} PRIVATE ${PORTAUDIO_INCLUDE_DIR}) target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/include) target_link_libraries(${PROJECT_NAME} ${ZLIB_LIBRARY} ${PORTAUDIO_LIBRARY}) -add_dependencies(${PROJECT_NAME} ZLIB) +add_dependencies(${PROJECT_NAME} ZLIB PortAudio) if(WIN32) - target_link_libraries(${PROJECT_NAME} wsock32 ws2_32) + target_link_libraries(${PROJECT_NAME} wsock32 ws2_32) +endif() +if(MINGW) + target_link_libraries(${PROJECT_NAME} Winmm SetupAPI) endif() set(DECODER_PROJECT ${PROJECT_NAME} PARENT_SCOPE) diff --git a/src/rew/encoder/CMakeLists.txt b/src/rew/encoder/CMakeLists.txt index 1f54883..8d44572 100644 --- a/src/rew/encoder/CMakeLists.txt +++ b/src/rew/encoder/CMakeLists.txt @@ -22,7 +22,12 @@ target_include_directories(${PROJECT_NAME} PRIVATE ${PORTAUDIO_INCLUDE_DIR}) target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/include) target_link_libraries(${PROJECT_NAME} ${ZLIB_LIBRARY} ${PORTAUDIO_LIBRARY}) -add_dependencies(${PROJECT_NAME} ZLIB) +add_dependencies(${PROJECT_NAME} ZLIB PortAudio) + +if(MINGW) + target_link_libraries(${PROJECT_NAME} Winmm SetupAPI) +endif() + set(ENCODER_PROJECT ${PROJECT_NAME} PARENT_SCOPE) set(ENCODER_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/include/encoder PARENT_SCOPE) -- GitLab