Skip to content

Commit b03a7f5

Browse files
committed
Updated plugin template
2 parents d0ae0b0 + ac27a7c commit b03a7f5

36 files changed

Lines changed: 4326 additions & 1 deletion

.cproject

Lines changed: 194 additions & 0 deletions
Large diffs are not rendered by default.

.gdbinit

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
handle SIG32 nostop
2+
3+
set print array off
4+
set print repeats unlimited
5+
set print elements unlimited
6+
source plot1d.gdb

.github/FUNDING.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
liberapay: sadko4u
2+
patreon: sadko4u
3+
custom:
4+
- https://www.blockchain.com/btc/address/15X3AfDRF3EshSLBoK8UfHAsFr2TQsH8pk
5+
- https://etherscan.io/address/0x079b24da78d78302cd3cfbb80c728cd554606cc6
6+
- https://www.bountysource.com/teams/lsp-plugins
7+
- https://paypal.me/sadko4u

.github/workflows/build.yml

Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
---
2+
3+
name: Build on various Operating Systems
4+
5+
on:
6+
push:
7+
branches: [devel, master]
8+
pull_request:
9+
branches: [devel, master]
10+
11+
env:
12+
CARLA_BRIDGE_DUMMY: 1
13+
CARLA_BRIDGE_TESTING: native
14+
# FIXME some system library is causing memory leaks, switch to --leak-check=full when fixed
15+
PLUGIN_METADATA: .build/target/lsp-plugin-fw/plugins.json
16+
VALGRIND_ARGS: --error-exitcode=255 --leak-check=no --track-origins=yes --suppressions=.github/workflows/valgrind.supp
17+
VALGRIND_DEBUG_ARGS: --error-exitcode=255 --leak-check=full --track-origins=yes --keep-debuginfo=yes --suppressions=.github/workflows/valgrind.supp
18+
19+
jobs:
20+
arch_linux:
21+
runs-on: ubuntu-latest
22+
container:
23+
image: archlinux:latest
24+
steps:
25+
- name: Add debug repositories
26+
run: |
27+
printf "[core-debug]\nInclude = /etc/pacman.d/mirrorlist\n[extra-debug]\nInclude = /etc/pacman.d/mirrorlist\n[community-debug]\nInclude = /etc/pacman.d/mirrorlist" >> /etc/pacman.conf
28+
printf 'Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch\n%s\n' "$(cat /etc/pacman.d/mirrorlist)" > /etc/pacman.d/mirrorlist
29+
- name: Install dependencies
30+
run: pacman --noconfirm -Syu alsa-lib base-devel cairo carla git glibc-debug hicolor-icon-theme jack jq ladspa libglvnd libsndfile libx11 libxrandr lv2 lv2lint php valgrind
31+
- uses: actions/checkout@v3
32+
- name: Configure project
33+
run: make config VERBOSE=1 FEATURES='doc jack ladspa lv2 vst2 xdg' PREFIX=/usr
34+
- name: Fetch project dependencies
35+
run: make fetch
36+
- name: Build project
37+
run: make VERBOSE=1
38+
- name: Install binaries
39+
run: make install
40+
- name: Lint LV2 plugins
41+
run: |
42+
for _plugin in $(jq -r '.plugins[].lv2_uri | select( . != null )' ${{ env.PLUGIN_METADATA }} ); do \
43+
lv2lint -Mpack "${_plugin}"; \
44+
done
45+
- name: Validate LV2 syntax
46+
run: lv2_validate /usr/lib/lv2/lsp-*.lv2/*.ttl
47+
- name: LADSPA runtime checks
48+
run: |
49+
for _plugin in $(jq -r '.plugins[].ladspa_label | select( . != null )' ${{ env.PLUGIN_METADATA }}); do \
50+
valgrind ${{ env.VALGRIND_ARGS }} /usr/lib/carla/carla-bridge-native ladspa /usr/lib/ladspa/lsp-*.so "${_plugin}" 1>/dev/null; \
51+
done
52+
- name: LV2 runtime checks
53+
run: |
54+
for _plugin in $(jq -r '.plugins[].lv2_uri | select( . != null )' ${{ env.PLUGIN_METADATA }}); do \
55+
valgrind ${{ env.VALGRIND_ARGS }} /usr/lib/carla/carla-bridge-native lv2 "" "${_plugin}" 1>/dev/null; \
56+
done
57+
- name: VST2 runtime checks
58+
run: |
59+
for _binary in $(ls /usr/lib/vst/lsp-plugins/*.so | grep -v /lsp-plugins-); do \
60+
valgrind ${{ env.VALGRIND_ARGS }} /usr/lib/carla/carla-bridge-native vst2 "${_binary}" "" 1>/dev/null; \
61+
done
62+
63+
arch_linux_debug:
64+
runs-on: ubuntu-latest
65+
container:
66+
image: archlinux:latest
67+
steps:
68+
- name: Add debug repositories
69+
run: |
70+
printf "[core-debug]\nInclude = /etc/pacman.d/mirrorlist\n[extra-debug]\nInclude = /etc/pacman.d/mirrorlist\n[community-debug]\nInclude = /etc/pacman.d/mirrorlist" >> /etc/pacman.conf
71+
printf 'Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch\n%s\n' "$(cat /etc/pacman.d/mirrorlist)" > /etc/pacman.d/mirrorlist
72+
- name: Install dependencies
73+
run: pacman --noconfirm -Syu alsa-lib base-devel cairo carla git glibc-debug hicolor-icon-theme jack jq ladspa libglvnd libsndfile libx11 libxrandr lv2 php valgrind
74+
- uses: actions/checkout@v3
75+
- name: Configure project
76+
run: make config DEBUG=1 VERBOSE=1 FEATURES='jack ladspa lv2 vst2' PREFIX=/usr
77+
- name: Fetch project dependencies
78+
run: make fetch
79+
- name: Build project
80+
run: make VERBOSE=1
81+
- name: Install binaries
82+
run: make install
83+
- name: LADSPA runtime checks
84+
run: |
85+
for _plugin in $(jq -r '.plugins[].ladspa_label | select( . != null )' ${{ env.PLUGIN_METADATA }}); do \
86+
valgrind ${{ env.VALGRIND_DEBUG_ARGS }} /usr/lib/carla/carla-bridge-native ladspa /usr/lib/ladspa/lsp-*.so "${_plugin}" 1>/dev/null; \
87+
done
88+
- name: LV2 runtime checks
89+
run: |
90+
for _plugin in $(jq -r '.plugins[].lv2_uri | select( . != null )' ${{ env.PLUGIN_METADATA }}); do \
91+
valgrind ${{ env.VALGRIND_DEBUG_ARGS }} /usr/lib/carla/carla-bridge-native lv2 "" "${_plugin}" 1>/dev/null; \
92+
done
93+
- name: VST2 runtime checks
94+
run: |
95+
for _binary in $(ls /usr/lib/vst/lsp-plugins/*.so | grep -v /lsp-plugins-); do \
96+
valgrind ${{ env.VALGRIND_DEBUG_ARGS }} /usr/lib/carla/carla-bridge-native vst2 "${_binary}" "" 1>/dev/null; \
97+
done
98+
99+
opensuse_leap:
100+
runs-on: ubuntu-latest
101+
container:
102+
image: opensuse/leap:latest
103+
steps:
104+
- name: Install dependencies
105+
run: zypper --non-interactive --no-gpg-checks in tar gzip gcc gcc-c++ git make php valgrind libX11-devel libXrandr-devel libjack-devel cairo-devel freetype2-devel libsndfile-devel lv2-devel ladspa-devel
106+
- uses: actions/checkout@v3
107+
- name: Configure project
108+
run: make config VERBOSE=1 FEATURES='doc jack ladspa lv2 vst2 xdg' PREFIX=/usr
109+
- name: Fetch project dependencies
110+
run: make fetch
111+
- name: Build project
112+
run: make VERBOSE=1
113+
- name: Install binaries
114+
run: make install
115+
116+
opensuse_tumbleweed_clang:
117+
runs-on: ubuntu-latest
118+
container:
119+
image: opensuse/tumbleweed:latest
120+
steps:
121+
- name: Install dependencies
122+
run: zypper --non-interactive --no-gpg-checks in tar gzip gcc gcc-c++ clang lld git make php8-cli valgrind libstdc++-devel libX11-devel libXrandr-devel libjack-devel cairo-devel freetype2-devel libsndfile-devel lv2-devel ladspa-devel
123+
- uses: actions/checkout@v3
124+
- name: Configure project
125+
run: make config CC=clang CXX=clang++ VERBOSE=1 FEATURES='doc jack ladspa lv2 vst2 xdg' PREFIX=/usr
126+
- name: Fetch project dependencies
127+
run: make fetch
128+
- name: Build project
129+
run: make VERBOSE=1
130+
- name: Install binaries
131+
run: make install
132+
133+
debian_stable:
134+
runs-on: ubuntu-latest
135+
container:
136+
image: debian:stable
137+
steps:
138+
- name: Update repositories
139+
run: apt-get update
140+
- name: Install dependencies
141+
run: apt-get -y install gcc g++ git make php-cli pkg-config valgrind libx11-dev libxrandr-dev libjack-dev libcairo2-dev libgl-dev libfreetype6-dev libsndfile1-dev lv2-dev ladspa-sdk
142+
- uses: actions/checkout@v3
143+
- name: Configure project
144+
run: make config VERBOSE=1 FEATURES='doc jack ladspa lv2 vst2 xdg' PREFIX=/usr
145+
- name: Fetch project dependencies
146+
run: make fetch
147+
- name: Build project
148+
run: make VERBOSE=1
149+
- name: Install binaries
150+
run: make install
151+

.github/workflows/valgrind.supp

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
{
2+
libdl is full of leaks
3+
Memcheck:Leak
4+
...
5+
fun:_dl_open
6+
...
7+
}
8+
{
9+
libdl is full of leaks
10+
Memcheck:Leak
11+
...
12+
fun:_dl_close
13+
...
14+
}
15+
{
16+
libdl is full of leaks
17+
Memcheck:Leak
18+
...
19+
fun:_dl_init
20+
}
21+
{
22+
libdl is full of leaks
23+
Memcheck:Leak
24+
...
25+
fun:_dl_allocate_tls
26+
...
27+
}
28+
{
29+
libdl is full of leaks
30+
Memcheck:Leak
31+
...
32+
fun:call_init.part.0
33+
}
34+
{
35+
ignore XInitThreads
36+
Memcheck:Leak
37+
...
38+
fun:XInitThreads
39+
...
40+
}

.gitignore

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/.svn/*
2+
/.settings/*
3+
/.build/*
4+
/.test/*
5+
/.install/*
6+
/Debug/*
7+
/Release/*
8+
/Debug/
9+
/Release
10+
*.log
11+
/gmon.out
12+
**/*.gmon
13+
*.core
14+
/.config.mk
15+
/INSTALL/
16+
/modules/

.project

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<projectDescription>
3+
<name>lsp-plugins-plugin-template</name>
4+
<comment></comment>
5+
<projects>
6+
</projects>
7+
<buildSpec>
8+
<buildCommand>
9+
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
10+
<triggers>clean,full,incremental,</triggers>
11+
<arguments>
12+
</arguments>
13+
</buildCommand>
14+
<buildCommand>
15+
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
16+
<triggers>full,incremental,</triggers>
17+
<arguments>
18+
</arguments>
19+
</buildCommand>
20+
</buildSpec>
21+
<natures>
22+
<nature>org.eclipse.cdt.core.cnature</nature>
23+
<nature>org.eclipse.cdt.core.ccnature</nature>
24+
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
25+
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
26+
</natures>
27+
<filteredResources>
28+
<filter>
29+
<id>1642025177231</id>
30+
<name></name>
31+
<type>10</type>
32+
<matcher>
33+
<id>org.eclipse.ui.ide.multiFilter</id>
34+
<arguments>1.0-name-matches-false-false-.build</arguments>
35+
</matcher>
36+
</filter>
37+
</filteredResources>
38+
</projectDescription>

CHANGELOG

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
*******************************************************************************
2+
* RECENT CHANGES
3+
*******************************************************************************
4+
5+
=== 1.0.0 ===
6+
7+
* TODO: write chanes here as a dot list.

0 commit comments

Comments
 (0)