Merge pull request #635 from Be-ing/export_hostapi_defines

CMake: export compile definitions for host APIs
This commit is contained in:
Dmitry Kostjuchenko 2021-11-13 21:22:10 +00:00 committed by GitHub
commit 00a0143f59
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 20 additions and 10 deletions

View File

@ -106,7 +106,8 @@ if(PA_USE_JACK)
target_link_libraries(PortAudio PRIVATE JACK::jack)
target_sources(PortAudio PRIVATE src/hostapi/jack/pa_jack.c)
set(PORTAUDIO_PUBLIC_HEADERS "${PORTAUDIO_PUBLIC_HEADERS}" include/pa_jack.h)
target_compile_definitions(PortAudio PRIVATE PA_USE_JACK=1)
target_compile_definitions(PortAudio PUBLIC PA_USE_JACK=1)
set(PKGCONFIG_CFLAGS "${PKGCONFIG_CFLAGS} -DPA_USE_JACK=1")
set(PKGCONFIG_REQUIRES_PRIVATE "${PKGCONFIG_REQUIRES_PRIVATE} jack")
# needed for PortAudioConfig.cmake so `find_package(PortAudio)` works in downstream projects
@ -174,7 +175,8 @@ if(WIN32)
if(PA_USE_ASIO AND TARGET ASIO::host)
target_link_libraries(PortAudio PRIVATE ASIO::host)
set(PORTAUDIO_PUBLIC_HEADERS "${PORTAUDIO_PUBLIC_HEADERS}" include/pa_asio.h)
target_compile_definitions(PortAudio PRIVATE PA_USE_ASIO=1)
target_compile_definitions(PortAudio PUBLIC PA_USE_ASIO=1)
set(PKGCONFIG_CFLAGS "${PKGCONFIG_CFLAGS} -DPA_USE_ASIO=1")
target_sources(PortAudio PRIVATE
src/hostapi/asio/pa_asio.cpp
src/hostapi/asio/iasiothiscallresolver.cpp
@ -193,7 +195,8 @@ if(WIN32)
)
target_include_directories(PortAudio PRIVATE src/hostapi/dsound)
set(PORTAUDIO_PUBLIC_HEADERS "${PORTAUDIO_PUBLIC_HEADERS}" include/pa_win_ds.h)
target_compile_definitions(PortAudio PRIVATE PA_USE_DS=1)
target_compile_definitions(PortAudio PUBLIC PA_USE_DS=1)
set(PKGCONFIG_CFLAGS "${PKGCONFIG_CFLAGS} -DPA_USE_DS=1")
target_link_libraries(PortAudio PRIVATE dsound)
if(NOT MINGW)
target_compile_definitions(PortAudio PRIVATE PAWIN_USE_DIRECTSOUNDFULLDUPLEXCREATE)
@ -204,7 +207,8 @@ if(WIN32)
if(PA_USE_WMME)
target_sources(PortAudio PRIVATE src/hostapi/wmme/pa_win_wmme.c)
set(PORTAUDIO_PUBLIC_HEADERS "${PORTAUDIO_PUBLIC_HEADERS}" include/pa_win_wmme.h)
target_compile_definitions(PortAudio PRIVATE PA_USE_WMME=1)
target_compile_definitions(PortAudio PUBLIC PA_USE_WMME=1)
set(PKGCONFIG_CFLAGS "${PKGCONFIG_CFLAGS} -DPA_USE_WMME=1")
target_link_libraries(PortAudio PRIVATE ole32 uuid)
else()
set(DEF_EXCLUDE_WMME_SYMBOLS ";")
@ -214,7 +218,8 @@ if(WIN32)
if(PA_USE_WASAPI)
target_sources(PortAudio PRIVATE src/hostapi/wasapi/pa_win_wasapi.c)
set(PORTAUDIO_PUBLIC_HEADERS "${PORTAUDIO_PUBLIC_HEADERS}" include/pa_win_wasapi.h)
target_compile_definitions(PortAudio PRIVATE PA_USE_WASAPI=1)
target_compile_definitions(PortAudio PUBLIC PA_USE_WASAPI=1)
set(PKGCONFIG_CFLAGS "${PKGCONFIG_CFLAGS} -DPA_USE_WASAPI=1")
target_link_libraries(PortAudio PRIVATE ole32 uuid)
else()
set(DEF_EXCLUDE_WASAPI_SYMBOLS ";")
@ -227,7 +232,8 @@ if(WIN32)
src/hostapi/wdmks/pa_win_wdmks.c
)
set(PORTAUDIO_PUBLIC_HEADERS "${PORTAUDIO_PUBLIC_HEADERS}" include/pa_win_wdmks.h)
target_compile_definitions(PortAudio PRIVATE PA_USE_WDMKS=1)
target_compile_definitions(PortAudio PUBLIC PA_USE_WDMKS=1)
set(PKGCONFIG_CFLAGS "${PKGCONFIG_CFLAGS} -DPA_USE_WDMKS=1")
target_link_libraries(PortAudio PRIVATE setupapi ole32 uuid)
endif()
@ -276,7 +282,8 @@ elseif(UNIX)
"${COREFOUNDATION_LIBRARY}"
"${CORESERVICES_LIBRARY}"
)
target_compile_definitions(PortAudio PRIVATE PA_USE_COREAUDIO=1)
target_compile_definitions(PortAudio PUBLIC PA_USE_COREAUDIO=1)
set(PKGCONFIG_CFLAGS "${PKGCONFIG_CFLAGS} -DPA_USE_COREAUDIO=1")
set(PKGCONFIG_LDFLAGS_PRIVATE
"${PKGCONFIG_LDFLAGS_PRIVATE} -framework CoreAudio -framework AudioToolbox -framework AudioUnit -framework CoreFoundation -framework CoreServices")
else()
@ -287,7 +294,8 @@ elseif(UNIX)
target_link_libraries(PortAudio PRIVATE "${ALSA_LIBRARIES}")
target_sources(PortAudio PRIVATE src/hostapi/alsa/pa_linux_alsa.c)
set(PORTAUDIO_PUBLIC_HEADERS "${PORTAUDIO_PUBLIC_HEADERS}" include/pa_linux_alsa.h)
target_compile_definitions(PortAudio PRIVATE PA_USE_ALSA=1)
target_compile_definitions(PortAudio PUBLIC PA_USE_ALSA=1)
set(PKGCONFIG_CFLAGS "${PKGCONFIG_CFLAGS} -DPA_USE_ALSA=1")
option(PA_ALSA_DYNAMIC "Enable dynamically loading libasound with dlopen using PaAlsa_SetLibraryPathName" OFF)
if(PA_ALSA_DYNAMIC)
@ -306,7 +314,8 @@ elseif(UNIX)
cmake_dependent_option(PA_USE_OSS "Enable support for OSS" OFF "OSS_FOUND" OFF)
if(PA_USE_OSS)
target_sources(PortAudio PRIVATE src/hostapi/oss/pa_unix_oss.c)
target_compile_definitions(PortAudio PRIVATE PA_USE_OSS=1)
target_compile_definitions(PortAudio PUBLIC PA_USE_OSS=1)
set(PKGCONFIG_CFLAGS "${PKGCONFIG_CFLAGS} -DPA_USE_OSS=1")
target_link_libraries(PortAudio PRIVATE OSS::oss)
# The FindOSS.cmake module does not need to be installed like the JACK modules because it
# does not link any library; it only adds an include directory and compile definition.
@ -316,7 +325,8 @@ elseif(UNIX)
cmake_dependent_option(AUDIOIO "Enable support for Solaris/NetBSD audio" ON "HAVE_SYS_AUDIOIO_H" AUDIOIO)
if(AUDIOIO AND HAVE_SYS_AUDIOIO_H)
target_sources(PortAudio PRIVATE src/hostapi/audioio/pa_unix_audioio.c)
target_compile_definitions(PortAudio PRIVATE PA_USE_AUDIOIO=1)
target_compile_definitions(PortAudio PUBLIC PA_USE_AUDIOIO=1)
set(PKGCONFIG_CFLAGS "${PKGCONFIG_CFLAGS} -DPA_USE_AUDIOIO=1")
endif()
endif()
endif()