Skip to content

Commit

Permalink
Merge pull request #63 from daschuer/portaudio_v19_7_0
Browse files Browse the repository at this point in the history
[portaudio] Update overlay to version v19.7.0+2023-04-04
  • Loading branch information
JoergAtGithub authored Apr 6, 2023
2 parents 049b5ad + 77d5446 commit df49129
Show file tree
Hide file tree
Showing 34 changed files with 1,033 additions and 211 deletions.
60 changes: 20 additions & 40 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,44 +21,7 @@ jobs:
# check_disk_space: df -h
env:
VCPKG_PACKAGES: >-
angle
chromaprint
fdk-aac
ffmpeg
fftw3
hidapi
hss1394
libebur128
libflac
libid3tag
libkeyfinder
libmad
libmodplug
libogg
libopusenc
libshout
libsndfile
libusb
libvorbis
lilv
mp3lame
opus
opusfile
portaudio[asio]
portmidi
protobuf
pthreads
qt5-base
qt5-declarative
qt5-script
qt5-svg
qt5-translations
qt5-winextras
qtkeychain
rubberband
soundtouch
taglib
wavpack
VCPKG_DEFAULT_TRIPLET: ${{ matrix.vcpkg_triplet }}
VCPKG_OVERLAY_PORTS: overlay/ports
DEPS_BASE_NAME: mixxx-deps
Expand Down Expand Up @@ -96,8 +59,8 @@ jobs:
- name: Check available disk space
run: ${{ matrix.check_disk_space }}

- name: Upgrade packages in cache
run: ./vcpkg upgrade --no-dry-run
- name: Remove outdated packages from cache
run: ./vcpkg remove --vcpkg-root=${{ matrix.vcpkg_path }} --outdated --recurse
working-directory: ${{ matrix.vcpkg_path }}

- name: Build packages
Expand All @@ -112,7 +75,24 @@ jobs:
path: ${{ matrix.vcpkg_path }}/buildtrees/**/*.log

- name: Create buildenv archive
run: ./vcpkg export ${{ env.VCPKG_PACKAGES }} --zip --output=${{ env.DEPS_BASE_NAME }}-${{ env.MIXXX_VERSION }}-${{ matrix.vcpkg_triplet }}-${{ steps.vars.outputs.sha_short }}
run: ./vcpkg export ${{ env.VCPKG_PACKAGES }} --raw --output=${{ env.DEPS_BASE_NAME }}-${{ env.MIXXX_VERSION }}-${{ matrix.vcpkg_triplet }}-${{ steps.vars.outputs.sha_short }}
working-directory: ${{ matrix.vcpkg_path }}

- name: Download ${{ env.DEPS_BASE_NAME }}
id: download-file
uses: carlosperate/download-file-action@v2
with:
file-url: 'https://downloads.mixxx.org/dependencies/2.3/Windows/mixxx-deps-2.3-x64-windows-049b5ad.zip'
sha256: '82c49c82f54989cca0b35ab331afcb5fed486e929464beeede321583a778940a'

- name: Inegrate ${{ env.DEPS_BASE_NAME }}
if: ${{ steps.cache.outputs.cache-matched-key == null }}
run: |
cmake -E tar xv ${{ steps.download-file.outputs.file-path }}
cmake -E copy_directory ${{ env.DEPS_BASE_NAME }}-${{ env.MIXXX_VERSION }}-${{ matrix.vcpkg_triplet }}-${{ steps.vars.outputs.sha_short }} mixxx-deps-2.3-x64-windows-049b5ad
cmake -E rm -r ${{ env.DEPS_BASE_NAME }}-${{ env.MIXXX_VERSION }}-${{ matrix.vcpkg_triplet }}-${{ steps.vars.outputs.sha_short }}
cmake -E rename mixxx-deps-2.3-x64-windows-049b5ad ${{ env.DEPS_BASE_NAME }}-${{ env.MIXXX_VERSION }}-${{ matrix.vcpkg_triplet }}-${{ steps.vars.outputs.sha_short }}
cmake -E tar cfv ${{ env.DEPS_BASE_NAME }}-${{ env.MIXXX_VERSION }}-${{ matrix.vcpkg_triplet }}-${{ steps.vars.outputs.sha_short }}.zip --format=zip ${{ env.DEPS_BASE_NAME }}-${{ env.MIXXX_VERSION }}-${{ matrix.vcpkg_triplet }}-${{ steps.vars.outputs.sha_short }}
working-directory: ${{ matrix.vcpkg_path }}

- name: "[Windows] Install additional tools"
Expand Down
33 changes: 33 additions & 0 deletions overlay/ports/jack2/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
cmake_minimum_required(VERSION 3.1)
project(jack VERSION 1.9 LANGUAGES C)

include_directories(common)

add_library(jack common/JackWeakAPI.c)
if(WIN32 AND BUILD_SHARED_LIBS)
target_sources(jack PRIVATE jack.def)
endif()
target_link_libraries(jack PRIVATE ${CMAKE_DL_LIBS})

include(GNUInstallDirs)
install(TARGETS jack
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
)

set(PREFIX "${CMAKE_INSTALL_PREFIX}")
set(LIBDIR "\${prefix}/${CMAKE_INSTALL_LIBDIR}")
set(INCLUDEDIR "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
set(JACK_VERSION "${CMAKE_PROJECT_VERSION}")
# JackWeak dynamically loads the real JACK library which requires linking CMAKE_DL_LIBS
if(CMAKE_DL_LIBS)
set(CLIENTLIB "jack -l${CMAKE_DL_LIBS}")
else()
set(CLIENTLIB "jack")
endif()
# NOTE: the server_libs variable will be broken but this port does not build the server anyway
configure_file(jack.pc.in "${CMAKE_CURRENT_BINARY_DIR}/jack.pc" @ONLY)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/jack.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")

install(DIRECTORY "common/jack" DESTINATION "include")
96 changes: 96 additions & 0 deletions overlay/ports/jack2/jack.def
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
LIBRARY JACK

EXPORTS

;FIXME these are unimplemented
;jack_port_uuid
;jack_get_cycle_times

jack_get_version
jack_get_version_string
jack_client_open
jack_client_new
jack_client_close
jack_client_name_size
jack_get_client_name
jack_get_uuid_for_client_name
jack_get_client_name_by_uuid
jack_internal_client_new
jack_internal_client_close
jack_activate
jack_deactivate
jack_client_thread_id
jack_is_realtime
jack_thread_wait
jack_cycle_wait
jack_cycle_signal
jack_set_process_thread
jack_set_thread_init_callback
jack_on_shutdown
jack_on_info_shutdown
jack_set_process_callback
jack_set_freewheel_callback
jack_set_buffer_size_callback
jack_set_sample_rate_callback
jack_set_client_registration_callback
jack_set_port_registration_callback
jack_set_port_connect_callback
jack_set_port_rename_callback
jack_set_graph_order_callback
jack_set_xrun_callback
jack_set_latency_callback
jack_set_freewheel
jack_set_buffer_size
jack_get_sample_rate
jack_get_buffer_size
jack_engine_takeover_timebase
jack_cpu_load
jack_port_register
jack_port_unregister
jack_port_get_buffer
jack_port_name
jack_port_short_name
jack_port_flags
jack_port_type
jack_port_type_id
jack_port_is_mine
jack_port_connected
jack_port_connected_to
jack_port_get_connections
jack_port_get_all_connections
jack_port_tie
jack_port_untie
jack_port_set_name
jack_port_rename
jack_port_set_alias
jack_port_unset_alias
jack_port_get_aliases
jack_port_request_monitor
jack_port_request_monitor_by_name
jack_port_ensure_monitor
jack_port_monitoring_input
jack_connect
jack_disconnect
jack_port_disconnect
jack_port_name_size
jack_port_type_size
jack_port_type_get_buffer_size
jack_port_set_latency
jack_port_get_latency_range
jack_port_set_latency_range
jack_recompute_total_latencies
jack_port_get_latency
jack_port_get_total_latency
jack_recompute_total_latency
jack_get_ports
jack_port_by_name
jack_port_by_id
jack_frames_since_cycle_start
jack_frame_time
jack_last_frame_time
jack_frames_to_time
jack_time_to_frames
jack_get_time
jack_set_error_function
jack_set_info_function
jack_free
25 changes: 25 additions & 0 deletions overlay/ports/jack2/portfile.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO jackaudio/jack2
REF v1.9.21
SHA512 0e9ce581fca3c5d9ffb1de22b45cae6d94085c6f92ff3554892e25727baf66a2269f10d338d95d991e8380c4be5e0cc1e1453b9f878c7dc2e8a990f3bd458557
HEAD_REF master
)

# Install headers and a shim library with JackWeakAPI.c
file(COPY
"${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt"
"${CMAKE_CURRENT_LIST_DIR}/jack.def"
DESTINATION "${SOURCE_PATH}"
)

vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
)

vcpkg_cmake_install()
vcpkg_fixup_pkgconfig()

file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")

file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
18 changes: 18 additions & 0 deletions overlay/ports/jack2/vcpkg.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"name": "jack2",
"version-semver": "1.9.21",
"description": "Cross-platform API that enables device sharing and inter-application audio routing",
"homepage": "https://jackaudio.org/",
"license": "GPL-2.0",
"supports": "!uwp",
"dependencies": [
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
}
]
}
82 changes: 82 additions & 0 deletions overlay/ports/pkgconf/portfile.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO pkgconf/pkgconf
REF cef30268e1a3f79efd607c26abcf556aa314c9c4
SHA512 ea03b81d01521201bdc471a39cdc8b13f9452f7cc78706d5c57056595f3e4e8a3562c022ebb72ce6444f2c7a8dfc778114814ef5064eaef770a70cc294c7f7ee
HEAD_REF master
)

vcpkg_configure_meson(
SOURCE_PATH "${SOURCE_PATH}"
NO_PKG_CONFIG
OPTIONS -Dtests=false
)

set(systemsuffix "")
set(architectureprefix "")

set(SYSTEM_LIBDIR "")
set(PKG_DEFAULT_PATH "")
set(SYSTEM_INCLUDEDIR "")
set(PERSONALITY_PATH "personality.d")


if(NOT VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_CROSSCOMPILING AND VCPKG_TARGET_ARCHITECTURE MATCHES "x64")
# These defaults are obtained from pkgconf/pkg-config on Ubuntu and OpenSuse
# vcpkg cannot do system introspection to obtain/set these values since it would break binary caching.
set(SYSTEM_INCLUDEDIR "/usr/include")
# System lib dirs will be stripped from -L from the pkg-config output
set(SYSTEM_LIBDIR "/lib:/lib/i386-linux-gnu:/lib/x86_64-linux-gnu:/lib/x86_64-linux-gnux32:/lib64:/lib32:/libx32:/usr/lib:/usr/lib/i386-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnux32:/usr/lib64:/usr/lib32:/usr/libx32")
set(PKG_DEFAULT_PATH "/usr/local/lib/x86_64-linux-gnu/pkgconfig:/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig")
set(PERSONALITY_PATH "/usr/share/pkgconfig/personality.d:/etc/pkgconfig/personality.d")
endif()

if(DEFINED VCPKG_pkgconf_SYSTEM_LIBDIR)
set(SYSTEM_LIBDIR "${VCPKG_pkgconf_SYSTEM_LIBDIR}")
endif()
if(DEFINED VCPKG_pkgconf_PKG_DEFAULT_PATH)
set(PKG_DEFAULT_PATH "${VCPKG_pkgconf_PKG_DEFAULT_PATH}")
endif()
if(DEFINED VCPKG_pkgconf_SYSTEM_INCLUDEDIR)
set(SYSTEM_INCLUDEDIR "${VCPKG_pkgconf_SYSTEM_INCLUDEDIR}")
endif()
if(DEFINED VCPKG_pkgconf_PERSONALITY_PATH)
set(PERSONALITY_PATH "${VCPKG_pkgconf_PERSONALITY_PATH}")
endif()


set(pkgconfig_file "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/libpkgconf/config.h")
if(EXISTS "${pkgconfig_file}")
file(READ "${pkgconfig_file}" contents)
string(REGEX REPLACE "#define PKG_DEFAULT_PATH [^\n]+" "#define PKG_DEFAULT_PATH \"${PKG_DEFAULT_PATH}\"" contents "${contents}")
string(REGEX REPLACE "#define SYSTEM_INCLUDEDIR [^\n]+" "#define SYSTEM_INCLUDEDIR \"${SYSTEM_INCLUDEDIR}\"" contents "${contents}")
string(REGEX REPLACE "#define SYSTEM_LIBDIR [^\n]+" "#define SYSTEM_LIBDIR \"${SYSTEM_LIBDIR}\"" contents "${contents}")
string(REGEX REPLACE "#define PERSONALITY_PATH [^\n]+" "#define PERSONALITY_PATH \"${PERSONALITY_PATH}\"" contents "${contents}")
file(WRITE "${pkgconfig_file}" "${contents}")
endif()
set(pkgconfig_file "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libpkgconf/config.h")
if(EXISTS "${pkgconfig_file}")
file(READ "${pkgconfig_file}" contents)
string(REGEX REPLACE "#define PKG_DEFAULT_PATH [^\n]+" "#define PKG_DEFAULT_PATH \"${PKG_DEFAULT_PATH}\"" contents "${contents}")
string(REGEX REPLACE "#define SYSTEM_INCLUDEDIR [^\n]+" "#define SYSTEM_INCLUDEDIR \"${SYSTEM_INCLUDEDIR}\"" contents "${contents}")
string(REGEX REPLACE "#define SYSTEM_LIBDIR [^\n]+" "#define SYSTEM_LIBDIR \"${SYSTEM_LIBDIR}\"" contents "${contents}")
string(REGEX REPLACE "#define PERSONALITY_PATH [^\n]+" "#define PERSONALITY_PATH \"${PERSONALITY_PATH}\"" contents "${contents}")
file(WRITE "${pkgconfig_file}" "${contents}")
endif()

vcpkg_install_meson()
vcpkg_fixup_pkgconfig(SKIP_CHECK)

file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/man")

if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/pkgconf/libpkgconf/libpkgconf-api.h" "#if defined(PKGCONFIG_IS_STATIC)" "#if 1")
endif()

vcpkg_copy_tools(TOOL_NAMES pkgconf AUTO_CLEAN)

# Handle copyright
file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
14 changes: 14 additions & 0 deletions overlay/ports/pkgconf/vcpkg.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"name": "pkgconf",
"version": "1.8.0",
"port-version": 3,
"description": "pkgconf is a program which helps to configure compiler and linker flags for development libraries. It is similar to pkg-config from freedesktop.org.",
"homepage": "https://github.com/pkgconf/pkgconf",
"supports": "!uwp",
"dependencies": [
{
"name": "vcpkg-tool-meson",
"host": true
}
]
}
Loading

0 comments on commit df49129

Please sign in to comment.