Diagnostics for port audio package finder on macOS

This commit is contained in:
Bill Somerville 2021-04-14 21:49:23 +01:00
parent b17ddac6c6
commit a44959962c
No known key found for this signature in database
GPG Key ID: D864B06D1E81618F
1 changed files with 32 additions and 18 deletions

View File

@ -2,12 +2,12 @@
# #
# Once done, this will define: # Once done, this will define:
# #
# portaudio_FOUND - system has portaudio # Portaudio_FOUND - system has portaudio
# portaudio_VERSION - The version of the portaudio library which was found # Portaudio_VERSION - The version of the portaudio library which was found
# #
# and the following imported targets:: # and the following imported targets::
# #
# portaudio::portaudio - The portaudio library # Portaudio::Portaudio - The portaudio library
# #
function(dump_cmake_variables) function(dump_cmake_variables)
@ -80,28 +80,42 @@ endfunction(print_target_properties)
include (LibFindMacros) include (LibFindMacros)
libfind_pkg_detect (portaudio portaudio-2.0 libfind_pkg_detect (Portaudio portaudio-2.0
FIND_PATH portaudio.h FIND_PATH portaudio.h
FIND_LIBRARY portaudio FIND_LIBRARY portaudio
) )
libfind_process (portaudio) libfind_process (Portaudio)
dump_cmake_variables ("portaudio")
if (portaudio_FOUND AND NOT TARGET portaudio::portaudio) # fix up extra link libraries for macOS as target_link_libraries gets
add_library (portaudio::portaudio UNKNOWN IMPORTED) # it wrong for frameworks
set_target_properties (portaudio::portaudio PROPERTIES unset (_next_is_framework)
IMPORTED_LOCATION "${portaudio_LIBRARY}" unset (_portaudio_EXTRA_LIBS)
INTERFACE_COMPILE_OPTIONS "${portaudio_PKGCONF_CFLAGS_OTHER}" foreach (_lib IN LISTS Portaudio_PKGCONF_LDFLAGS_OTHER)
INTERFACE_INCLUDE_DIRECTORIES "${portaudio_INCLUDE_DIRS}" if (_next_is_framework)
INTERFACE_LINK_OPTIONS "${portaudio_PKGCONF_LDFLAGS_OTHER}" list (APPEND _portaudio_EXTRA_LIBS "-framework ${_lib}")
INTERFACE_LINK_DIRECTORIES "${portaudio_PKGCONF_LIBDIR}" unset (_next_is_framework)
INTERFACE_LINK_LIBRARIES "${portaudio_PKGCONF_LIBRARIES}" elseif (${_lib} STREQUAL "-framework")
set (_next_is_framework TRUE)
else ()
list (APPEND _portaudio_EXTRA_LIBS ${_lib})
endif ()
endforeach ()
dump_cmake_variables ("Portaudio")
if (Portaudio_FOUND AND NOT TARGET Portaudio::Portaudio)
add_library (Portaudio::Portaudio UNKNOWN IMPORTED)
set_target_properties (Portaudio::Portaudio PROPERTIES
IMPORTED_LOCATION "${Portaudio_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${Portaudio_PKGCONF_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${Portaudio_INCLUDE_DIRS}"
INTERFACE_LINK_LIBRARIES "${_portaudio_EXTRA_LIBS}"
) )
endif () endif ()
print_target_properties (portaudio::portaudio) print_target_properties (Portaudio::Portaudio)
mark_as_advanced ( mark_as_advanced (
portaudio_INCLUDE_DIR Portaudio_INCLUDE_DIR
portaudio_LIBRARY Portaudio_LIBRARY
) )