aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/jack2
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/jack2')
-rw-r--r--vcpkg/ports/jack2/CMakeLists.txt33
-rw-r--r--vcpkg/ports/jack2/jack.def104
-rw-r--r--vcpkg/ports/jack2/portfile.cmake25
-rw-r--r--vcpkg/ports/jack2/vcpkg.json18
4 files changed, 180 insertions, 0 deletions
diff --git a/vcpkg/ports/jack2/CMakeLists.txt b/vcpkg/ports/jack2/CMakeLists.txt
new file mode 100644
index 0000000..6c46d8d
--- /dev/null
+++ b/vcpkg/ports/jack2/CMakeLists.txt
@@ -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")
diff --git a/vcpkg/ports/jack2/jack.def b/vcpkg/ports/jack2/jack.def
new file mode 100644
index 0000000..5c2d48e
--- /dev/null
+++ b/vcpkg/ports/jack2/jack.def
@@ -0,0 +1,104 @@
+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
+jack_midi_get_event_count
+jack_midi_event_get
+jack_midi_clear_buffer
+jack_midi_max_event_size
+jack_midi_event_reserve
+jack_midi_event_write
+jack_midi_get_lost_event_count
+
diff --git a/vcpkg/ports/jack2/portfile.cmake b/vcpkg/ports/jack2/portfile.cmake
new file mode 100644
index 0000000..cc25416
--- /dev/null
+++ b/vcpkg/ports/jack2/portfile.cmake
@@ -0,0 +1,25 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO jackaudio/jack2
+ REF "v${VERSION}"
+ SHA512 d93cb2bcc57b72b6815eed143de1092d14fe22542ae9a1f8480d9ed5f44b59c50f81279d18bdd84ff6276ddd71ca1aa64a1e46d61199a5eda0d873a356194ab4
+ 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")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")
diff --git a/vcpkg/ports/jack2/vcpkg.json b/vcpkg/ports/jack2/vcpkg.json
new file mode 100644
index 0000000..443204d
--- /dev/null
+++ b/vcpkg/ports/jack2/vcpkg.json
@@ -0,0 +1,18 @@
+{
+ "name": "jack2",
+ "version-semver": "1.9.22",
+ "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
+ }
+ ]
+}