]> Repos - portaudio/commitdiff
only build x86 plain converters in Visual Studio due because of assembly syntax....
authorNicholas Appleton <nick@appletonaudio.com>
Tue, 13 Sep 2016 11:55:31 +0000 (21:55 +1000)
committerNicholas Appleton <nick@appletonaudio.com>
Tue, 13 Sep 2016 11:55:31 +0000 (21:55 +1000)
CMakeLists.txt
cmake_support/template_portaudio.def
src/hostapi/wasapi/pa_win_wasapi.c

index 3604c6e1498c734fd5f320b0d170af435bc13f97..44ea2fe2719c9f832d6b4d6eef796236a5a09666 100644 (file)
@@ -110,21 +110,26 @@ SET(PA_SOURCES ${PA_COMMON_SOURCES} ${PA_SKELETON_SOURCES})
 SET(PA_PRIVATE_INCLUDE_PATHS src/common ${CMAKE_CURRENT_BINARY_DIR})
 
 IF(WIN32)
-  IF(MSVC)
-    SET(PA_PRIVATE_COMPILE_DEFINITIONS ${PA_PRIVATE_COMPILE_DEFINITIONS} _CRT_SECURE_NO_WARNINGS)
-  ENDIF(MSVC)
+  SET(PA_PRIVATE_COMPILE_DEFINITIONS ${PA_PRIVATE_COMPILE_DEFINITIONS} _CRT_SECURE_NO_WARNINGS)
 
   SET(PA_PLATFORM_SOURCES 
     src/os/win/pa_win_hostapis.c
     src/os/win/pa_win_util.c
     src/os/win/pa_win_waveformat.c
     src/os/win/pa_win_wdmks_utils.c
-    src/os/win/pa_win_coinitialize.c
-    src/os/win/pa_x86_plain_converters.c)
+    src/os/win/pa_win_coinitialize.c)
   SET(PA_PLATFORM_INCLUDES
     src/os/win/pa_win_coinitialize.h
-    src/os/win/pa_win_wdmks_utils.h
-    src/os/win/pa_x86_plain_converters.h)
+    src/os/win/pa_win_wdmks_utils.h)
+
+  IF(MSVC)
+    SET(PA_PLATFORM_SOURCES ${PA_PLATFORM_SOURCES} src/os/win/pa_x86_plain_converters.c)
+    SET(PA_PLATFORM_INCLUDES ${PA_PLATFORM_INCLUDES} src/os/win/pa_x86_plain_converters.h)
+  ELSE()
+    SET(PA_PRIVATE_COMPILE_DEFINITIONS ${PA_PRIVATE_COMPILE_DEFINITIONS} _WIN32_WINNT=0x0501 WINVER=0x0501)
+    SET(DEF_EXCLUDE_X86_PLAIN_CONVERTERS ";")
+  ENDIF(MSVC)
+
   SOURCE_GROUP("os\\win" FILES ${PA_PLATFORM_SOURCES} ${PA_PLATFORM_INCLUDES})
   SET(PA_SOURCES ${PA_SOURCES} ${PA_PLATFORM_SOURCES})
   SET(PA_PRIVATE_INCLUDES ${PA_PRIVATE_INCLUDES} ${PA_PLATFORM_INCLUDES})
@@ -142,13 +147,14 @@ IF(WIN32)
     SET(PA_PRIVATE_INCLUDE_PATHS ${PA_PRIVATE_INCLUDE_PATHS} ${ASIOSDK_ROOT_DIR}/common)
     SET(PA_PRIVATE_INCLUDE_PATHS ${PA_PRIVATE_INCLUDE_PATHS} ${ASIOSDK_ROOT_DIR}/host)
     SET(PA_PRIVATE_INCLUDE_PATHS ${PA_PRIVATE_INCLUDE_PATHS} ${ASIOSDK_ROOT_DIR}/host/pc)
-    SET(PA_ASIO_SOURCES src/hostapi/asio/pa_asio.cpp)
+    SET(PA_ASIO_SOURCES src/hostapi/asio/pa_asio.cpp src/hostapi/asio/iasiothiscallresolver.cpp)
     SET(PA_ASIOSDK_SOURCES ${ASIOSDK_ROOT_DIR}/common/asio.cpp ${ASIOSDK_ROOT_DIR}/host/pc/asiolist.cpp ${ASIOSDK_ROOT_DIR}/host/asiodrivers.cpp)
     SOURCE_GROUP("hostapi\\ASIO" FILES ${PA_ASIO_SOURCES})
     SOURCE_GROUP("hostapi\\ASIO\\ASIOSDK" FILES ${PA_ASIOSDK_SOURCES})
     SET(PA_PUBLIC_INCLUDES ${PA_PUBLIC_INCLUDES} include/pa_asio.h)
     SET(PA_SOURCES ${PA_SOURCES} ${PA_ASIO_SOURCES})
     SET(PA_NON_UNICODE_SOURCES ${PA_NON_UNICODE_SOURCES} ${PA_ASIOSDK_SOURCES})
+    SET(PA_LIBRARY_DEPENDENCIES ${PA_LIBRARY_DEPENDENCIES} winmm ole32 uuid)
   ELSE()
     # Set variables for DEF file expansion
     SET(DEF_EXCLUDE_ASIO_SYMBOLS ";")
@@ -189,12 +195,21 @@ IF(WIN32)
     SET(PA_SOURCES ${PA_SOURCES} ${PA_WMME_SOURCES})
   ENDIF(PA_USE_WMME)
 
-  OPTION(PA_USE_WASAPI "Enable support for WASAPI" ON)
+  IF(MSVS)
+    OPTION(PA_USE_WASAPI "Enable support for WASAPI" ON)
+  ELSE()
+    # I was unable to get WASAPI to compile outside of Visual Studio. If
+    # anyone can figure out how to make this work with MinGW, please fix me.
+    SET(PA_USE_WASAPI OFF)
+  ENDIF()
   IF(PA_USE_WASAPI)
     SET(PA_WASAPI_SOURCES src/hostapi/wasapi/pa_win_wasapi.c)
     SOURCE_GROUP("hostapi\\wasapi" FILES ${PA_WASAPI_SOURCES})
     SET(PA_PUBLIC_INCLUDES ${PA_PUBLIC_INCLUDES} include/pa_win_wasapi.h)
     SET(PA_SOURCES ${PA_SOURCES} ${PA_WASAPI_SOURCES})
+    IF(NOT MSVC)
+      SET(PA_PRIVATE_INCLUDE_PATHS ${PA_PRIVATE_INCLUDE_PATHS} src/hostapi/wasapi/mingw-include)
+    ENDIF()
   ELSE()
     SET(DEF_EXCLUDE_WASAPI_SYMBOLS ";")
   ENDIF(PA_USE_WASAPI)
index 8ce2a98bf2e44958cc2da0257bb905a128b6c199..d05da59ab1bba051ef322cf0740a4cef34116518 100644 (file)
@@ -40,7 +40,7 @@ Pa_GetSampleSize                    @33
 Pa_Sleep                            @34
 @DEF_EXCLUDE_ASIO_SYMBOLS@PaAsio_GetAvailableBufferSizes      @50
 @DEF_EXCLUDE_ASIO_SYMBOLS@PaAsio_ShowControlPanel             @51
-PaUtil_InitializeX86PlainConverters @52
+@DEF_EXCLUDE_X86_PLAIN_CONVERTERS@PaUtil_InitializeX86PlainConverters @52
 @DEF_EXCLUDE_ASIO_SYMBOLS@PaAsio_GetInputChannelName          @53
 @DEF_EXCLUDE_ASIO_SYMBOLS@PaAsio_GetOutputChannelName         @54
 PaUtil_SetDebugPrintFunction        @55
index 6e62a4a88bd6a7e360c8315b85ce6089118378df..8ca9acd3760ac90d8a7bace571ff83c747714a66 100644 (file)
@@ -78,7 +78,6 @@
 #include "pa_win_coinitialize.h"
 
 #ifndef NTDDI_VERSION
     #undef WINVER
     #undef _WIN32_WINNT
     #define WINVER       0x0600 // VISTA