diff --git a/ports/portaudio/CONTROL b/ports/portaudio/CONTROL index 2337719bdd1213..c6a562625cb33f 100644 --- a/ports/portaudio/CONTROL +++ b/ports/portaudio/CONTROL @@ -1,4 +1,4 @@ Source: portaudio -Version: 2019-09-30 +Version: 2019-11-5 Homepage: https://app.assembla.com/spaces/portaudio/wiki Description: PortAudio Portable Cross-platform Audio I/O API PortAudio is a free, cross-platform, open-source, audio I/O library. It lets you write simple audio programs in 'C' or C++ that will compile and run on many platforms including Windows, Macintosh OS X, and Unix (OSS/ALSA). It is intended to promote the exchange of audio software between developers on different platforms. Many applications use PortAudio for Audio I/O. \ No newline at end of file diff --git a/ports/portaudio/fix-include.patch b/ports/portaudio/fix-include.patch new file mode 100644 index 00000000000000..4003959f77a775 --- /dev/null +++ b/ports/portaudio/fix-include.patch @@ -0,0 +1,22 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1024016..7e6ea20 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -365,7 +365,7 @@ IF(PA_BUILD_SHARED) + ADD_LIBRARY(portaudio SHARED ${PA_INCLUDES} ${PA_COMMON_INCLUDES} ${PA_SOURCES} ${PA_NON_UNICODE_SOURCES} ${PA_EXTRA_SHARED_SOURCES}) + SET_PROPERTY(TARGET portaudio APPEND_STRING PROPERTY COMPILE_DEFINITIONS ${PA_PRIVATE_COMPILE_DEFINITIONS}) + TARGET_INCLUDE_DIRECTORIES(portaudio PRIVATE ${PA_PRIVATE_INCLUDE_PATHS}) +- TARGET_INCLUDE_DIRECTORIES(portaudio PUBLIC "$") ++ TARGET_INCLUDE_DIRECTORIES(portaudio PUBLIC "$" "$") + TARGET_LINK_LIBRARIES(portaudio ${PA_LIBRARY_DEPENDENCIES}) + ENDIF() + +@@ -374,7 +374,7 @@ IF(PA_BUILD_STATIC) + ADD_LIBRARY(portaudio_static STATIC ${PA_INCLUDES} ${PA_COMMON_INCLUDES} ${PA_SOURCES} ${PA_NON_UNICODE_SOURCES}) + SET_PROPERTY(TARGET portaudio_static APPEND_STRING PROPERTY COMPILE_DEFINITIONS ${PA_PRIVATE_COMPILE_DEFINITIONS}) + TARGET_INCLUDE_DIRECTORIES(portaudio_static PRIVATE ${PA_PRIVATE_INCLUDE_PATHS}) +- TARGET_INCLUDE_DIRECTORIES(portaudio_static PUBLIC "$") ++ TARGET_INCLUDE_DIRECTORIES(portaudio_static PUBLIC "$" "$") + TARGET_LINK_LIBRARIES(portaudio_static ${PA_LIBRARY_DEPENDENCIES}) + IF(NOT PA_LIBNAME_ADD_SUFFIX) + SET_PROPERTY(TARGET portaudio_static PROPERTY OUTPUT_NAME portaudio) diff --git a/ports/portaudio/fix-library-can-not-be-found.patch b/ports/portaudio/fix-library-can-not-be-found.patch new file mode 100644 index 00000000000000..93353d7eed67a2 --- /dev/null +++ b/ports/portaudio/fix-library-can-not-be-found.patch @@ -0,0 +1,16 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1024016..266e6d5 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -352,11 +352,6 @@ ENDIF() + # embedded builds this is not an issue as they will only build the configuration + # used in the host application. + MARK_AS_ADVANCED(PA_LIBNAME_ADD_SUFFIX) +-IF(MSVC AND PA_BUILD_STATIC AND PA_BUILD_SHARED AND NOT PA_LIBNAME_ADD_SUFFIX) +- MESSAGE(WARNING "Building both shared and static libraries, and avoiding the suffix _static will lead to a name conflict") +- SET(PA_LIBNAME_ADD_SUFFIX ON CACHE BOOL "Forcing use of suffix _static to avoid name conflict between static and import library" FORCE) +- MESSAGE(WARNING "PA_LIBNAME_ADD_SUFFIX was set to ON") +-ENDIF() + + SET(PA_TARGETS "") + diff --git a/ports/portaudio/portfile.cmake b/ports/portaudio/portfile.cmake index ea356d5aee9857..329e75b1190715 100644 --- a/ports/portaudio/portfile.cmake +++ b/ports/portaudio/portfile.cmake @@ -1,9 +1,10 @@ -include(vcpkg_common_functions) - vcpkg_from_git( OUT_SOURCE_PATH SOURCE_PATH URL https://git.assembla.com/portaudio.git REF c5d2c51bd6fe354d0ee1119ba932bfebd3ebfacc + PATCHES + fix-library-can-not-be-found.patch + fix-include.patch ) # NOTE: the ASIO backend will be built automatically if the ASIO-SDK is provided @@ -17,35 +18,19 @@ vcpkg_configure_cmake( -DPA_USE_WDMKS=ON -DPA_USE_WMME=ON -DPA_ENABLE_DEBUG_OUTPUT:BOOL=ON + -DPA_LIBNAME_ADD_SUFFIX=OFF ) vcpkg_install_cmake() - -# Remove static builds from dynamic builds and otherwise -# Remove x86 and x64 from resulting files -if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - file (REMOVE ${CURRENT_PACKAGES_DIR}/lib/portaudio_static_${VCPKG_TARGET_ARCHITECTURE}.lib) - file (REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/portaudio_static_${VCPKG_TARGET_ARCHITECTURE}.lib) - - file (RENAME ${CURRENT_PACKAGES_DIR}/lib/portaudio_${VCPKG_TARGET_ARCHITECTURE}.lib ${CURRENT_PACKAGES_DIR}/lib/portaudio.lib) - file (RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/portaudio_${VCPKG_TARGET_ARCHITECTURE}.lib ${CURRENT_PACKAGES_DIR}/debug/lib/portaudio.lib) - else () - file (RENAME ${CURRENT_PACKAGES_DIR}/lib/portaudio_static_${VCPKG_TARGET_ARCHITECTURE}.lib ${CURRENT_PACKAGES_DIR}/lib/portaudio.lib) - file (RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/portaudio_static_${VCPKG_TARGET_ARCHITECTURE}.lib ${CURRENT_PACKAGES_DIR}/debug/lib/portaudio.lib) - file (REMOVE ${CURRENT_PACKAGES_DIR}/lib/portaudio_${VCPKG_TARGET_ARCHITECTURE}.lib) - file (REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) - file (REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/portaudio_${VCPKG_TARGET_ARCHITECTURE}.lib) - file (REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) - endif () -endif () - vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT}) vcpkg_copy_pdbs() -# Handle copyright -file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/portaudio) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/portaudio/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/portaudio/copyright) - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) \ No newline at end of file +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) +endif() + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/portaudio RENAME copyright) \ No newline at end of file