Browse Source

jack2: add new package (#7692)

Saikari 1 month ago
parent
commit
1cad41caab
2 changed files with 137 additions and 0 deletions
  1. 99 0
      packages/j/jack2/port/jack.def
  2. 38 0
      packages/j/jack2/xmake.lua

+ 99 - 0
packages/j/jack2/port/jack.def

@@ -0,0 +1,99 @@
+LIBRARY "jack.dll"
+
+
+EXPORTS
+     jack_get_version     @1
+     jack_get_version_string     @2
+     jack_client_open     @3
+     jack_client_new     @4
+     jack_client_close     @5
+     jack_client_name_size     @6
+     jack_get_client_name     @7
+     jack_get_uuid_for_client_name     @8
+     jack_get_client_name_by_uuid     @9
+     jack_internal_client_new     @10
+     jack_internal_client_close     @11
+     jack_activate     @12
+     jack_deactivate     @13
+     jack_client_thread_id     @14
+     jack_is_realtime     @15
+     jack_thread_wait     @16
+     jack_cycle_wait     @17
+     jack_cycle_signal     @18
+     jack_set_process_thread     @19
+     jack_set_thread_init_callback     @20
+     jack_on_shutdown     @21
+     jack_on_info_shutdown     @22
+     jack_set_process_callback     @23
+     jack_set_freewheel_callback     @24
+     jack_set_buffer_size_callback     @25
+     jack_set_sample_rate_callback     @26
+     jack_set_client_registration_callback     @27
+     jack_set_port_registration_callback     @28
+     jack_set_port_connect_callback     @29
+     jack_set_port_rename_callback     @30
+     jack_set_graph_order_callback     @31
+     jack_set_xrun_callback     @32
+     jack_set_latency_callback     @33
+     jack_set_freewheel     @34
+     jack_set_buffer_size     @35
+     jack_get_sample_rate     @36
+     jack_get_buffer_size     @37
+     jack_engine_takeover_timebase     @38
+     jack_cpu_load     @39
+     jack_port_register     @40
+     jack_port_unregister     @41
+     jack_port_get_buffer     @42
+     jack_port_name     @43
+     jack_port_short_name     @44
+     jack_port_flags     @45
+     jack_port_type     @46
+     jack_port_type_id     @47
+     jack_port_is_mine     @48
+     jack_port_connected     @49
+     jack_port_connected_to     @50
+     jack_port_get_connections     @51
+     jack_port_get_all_connections     @52
+     jack_port_tie     @53
+     jack_port_untie     @54
+     jack_port_set_name     @55
+     jack_port_rename     @56
+     jack_port_set_alias     @57
+     jack_port_unset_alias     @58
+     jack_port_get_aliases     @59
+     jack_port_request_monitor     @60
+     jack_port_request_monitor_by_name     @61
+     jack_port_ensure_monitor     @62
+     jack_port_monitoring_input     @63
+     jack_connect     @64
+     jack_disconnect     @65
+     jack_port_disconnect     @66
+     jack_port_name_size     @67
+     jack_port_type_size     @68
+     jack_port_type_get_buffer_size     @69
+     jack_port_set_latency     @70
+     jack_port_get_latency_range     @71
+     jack_port_set_latency_range     @72
+     jack_recompute_total_latencies     @73
+     jack_port_get_latency     @74
+     jack_port_get_total_latency     @75
+     jack_recompute_total_latency     @76
+     jack_get_ports     @77
+     jack_port_by_name     @78
+     jack_port_by_id     @79
+     jack_frames_since_cycle_start     @80
+     jack_frame_time     @81
+     jack_last_frame_time     @82
+     jack_frames_to_time     @83
+     jack_time_to_frames     @84
+     jack_get_time     @85
+     jack_set_error_function     @86
+     jack_set_info_function     @87
+     jack_free     @88
+     jack_midi_get_event_count     @89
+     jack_midi_event_get     @90
+     jack_midi_clear_buffer     @91
+     jack_midi_max_event_size     @92
+     jack_midi_event_reserve     @93
+     jack_midi_event_write     @94
+     jack_midi_get_lost_event_count     @95

+ 38 - 0
packages/j/jack2/xmake.lua

@@ -0,0 +1,38 @@
+package("jack2")
+    set_homepage("https://jackaudio.org/")
+    set_description("Cross-platform API that enables device sharing and inter-application audio routing")
+    set_license("GPL-2.0")
+
+    add_urls("https://github.com/jackaudio/jack2/archive/refs/tags/$(version).tar.gz",
+             "https://github.com/jackaudio/jack2.git")
+
+    add_versions("v1.9.22", "1e42b9fc4ad7db7befd414d45ab2f8a159c0b30fcd6eee452be662298766a849")
+
+    on_install(function (package)
+        os.cp(path.join(package:scriptdir(), "port", "jack.def"), "jack.def")
+        io.writefile("xmake.lua", [[
+            add_rules("mode.release", "mode.debug")
+            add_languages("c11")
+
+            option("version", {description = "Set the version"})
+            set_version(get_config("version"))
+            option("dl")
+                set_showmenu(false)
+                add_links("dl")
+
+            target("jack")
+                set_kind("$(kind)")
+                add_includedirs("common")
+                add_files("common/JackWeakAPI.c")
+                add_headerfiles("common/(jack/*.h)")
+                add_options("dl")
+                if is_plat("windows") and is_kind("shared") then
+                    add_files("jack.def")
+                end
+        ]])
+        import("package.tools.xmake").install(package, {version = package:version()})
+    end)
+
+    on_test(function (package)
+        assert(package:has_cfuncs("jack_get_version_string", {includes = "jack/jack.h"}))
+    end)