Skip to content

Commit 51cf6ab

Browse files
committed
Fix lv2 ttl gen step in a proper way for meson
Signed-off-by: falkTX <[email protected]>
1 parent c2e99c0 commit 51cf6ab

File tree

7 files changed

+53
-41
lines changed

7 files changed

+53
-41
lines changed

.github/workflows/build.yml

+3-2
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ jobs:
4343
./.github/workflows/bootstrap-deps.sh ${{ matrix.target }}
4444
- name: Build
4545
env:
46-
LDFLAGS: -static-libgcc -static-libstdc++
46+
#LDFLAGS: -static-libgcc -static-libstdc++
4747
PKG_CONFIG_PATH: /usr/lib/${{ matrix.pkgprefix }}/pkgconfig
4848
run: |
49-
meson build --buildtype=release --prefix=/usr --cross-file scripts/meson/${{ matrix.target }}.ini
49+
meson setup build --buildtype=release --prefix=/usr --cross-file scripts/meson/${{ matrix.target }}.ini
5050
ninja -C build
5151
- name: Install
5252
run: |
@@ -96,6 +96,7 @@ jobs:
9696
apt-get install -yqq \
9797
binfmt-support \
9898
build-essential \
99+
file \
99100
git \
100101
meson \
101102
pkg-config \

meson.build

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
###############################################################################
22

33
project('DISTRHO-Ports',
4-
'c', 'cpp',
5-
license : 'GPLv3'
4+
['c', 'cpp'],
5+
license : 'GPLv3',
6+
meson_version: '>=0.55.0',
7+
version: '1',
68
)
79

810
###############################################################################

ports-juce5/meson.build

+2-9
Original file line numberDiff line numberDiff line change
@@ -250,17 +250,10 @@ if build_lv2 or build_vst2
250250
link_with: link_with_plugin,
251251
)
252252

253-
plugin_lv2_dir = meson.current_build_dir() / plugin_name + '.lv2'
254-
255-
plugin_lv2_ttl = custom_target(plugin_name + '_lv2-ttl',
253+
custom_target(plugin_name + '_lv2-dir',
256254
output: plugin_name + '.lv2',
257255
input: plugin_lv2_lib,
258-
command: [
259-
'mkdir', '-p', plugin_lv2_dir, '&&',
260-
'cd', plugin_lv2_dir, '&&',
261-
'cp', plugin_lv2_lib.full_path(), plugin_lv2_dir / plugin_name + lib_suffix, '&&',
262-
(os_windows ? 'wine' : 'env'), lv2_ttl_generator, '.' / plugin_name + lib_suffix,
263-
],
256+
command: [ '../scripts/generate-ttl.sh', lv2_ttl_generator, '@OUTPUT@', plugin_lv2_lib.full_path() ],
264257
install: true,
265258
install_dir: lv2dir,
266259
)

ports-juce6.0/meson.build

+3-10
Original file line numberDiff line numberDiff line change
@@ -187,17 +187,10 @@ foreach plugin : plugins
187187
link_with: [ lib_juce60, plugin_lib ],
188188
)
189189

190-
plugin_lv2_dir = meson.current_build_dir() / plugin_name + '.lv2'
191-
192-
plugin_lv2_ttl = custom_target(plugin_name + '_lv2-ttl',
190+
custom_target(plugin_name + '_lv2-dir',
193191
output: plugin_name + '.lv2',
194192
input: plugin_lv2_lib,
195-
command: [
196-
'mkdir', '-p', plugin_lv2_dir, '&&',
197-
'cd', plugin_lv2_dir, '&&',
198-
'mv', plugin_lv2_lib.full_path(), plugin_lv2_dir / plugin_name + lib_suffix, '&&',
199-
(os_windows ? 'wine' : 'env'), lv2_ttl_generator, '.' / plugin_name + lib_suffix,
200-
],
193+
command: [ '../scripts/generate-ttl.sh', lv2_ttl_generator, '@OUTPUT@', plugin_lv2_lib.full_path() ],
201194
install: true,
202195
install_dir: lv2dir,
203196
)
@@ -244,7 +237,7 @@ foreach plugin : plugins
244237
command: [
245238
'mkdir', '-p', plugin_vst3_dir, '&&',
246239
'cd', plugin_vst3_dir, '&&',
247-
'mv', plugin_vst3_lib.full_path(), plugin_vst3_dir / plugin_name + lib_suffix,
240+
'cp', plugin_vst3_lib.full_path(), plugin_vst3_dir / plugin_name + lib_suffix,
248241
],
249242
install: true,
250243
install_dir: vst3dir,

ports-juce6.1/meson.build

+3-10
Original file line numberDiff line numberDiff line change
@@ -194,17 +194,10 @@ foreach plugin : plugins
194194
link_with: [ lib_juce6, plugin_lib ],
195195
)
196196

197-
plugin_lv2_dir = meson.current_build_dir() / plugin_name + '.lv2'
198-
199-
plugin_lv2_ttl = custom_target(plugin_name + '_lv2-ttl',
197+
custom_target(plugin_name + '_lv2-dir',
200198
output: plugin_name + '.lv2',
201199
input: plugin_lv2_lib,
202-
command: [
203-
'mkdir', '-p', plugin_lv2_dir, '&&',
204-
'cd', plugin_lv2_dir, '&&',
205-
'mv', plugin_lv2_lib.full_path(), plugin_lv2_dir / plugin_name + lib_suffix, '&&',
206-
(os_windows ? 'wine' : 'env'), lv2_ttl_generator, '.' / plugin_name + lib_suffix,
207-
],
200+
command: [ '../scripts/generate-ttl.sh', lv2_ttl_generator, '@OUTPUT@', plugin_lv2_lib.full_path() ],
208201
install: true,
209202
install_dir: lv2dir,
210203
)
@@ -251,7 +244,7 @@ foreach plugin : plugins
251244
command: [
252245
'mkdir', '-p', plugin_vst3_dir, '&&',
253246
'cd', plugin_vst3_dir, '&&',
254-
'mv', plugin_vst3_lib.full_path(), plugin_vst3_dir / plugin_name + lib_suffix,
247+
'cp', plugin_vst3_lib.full_path(), plugin_vst3_dir / plugin_name + lib_suffix,
255248
],
256249
install: true,
257250
install_dir: vst3dir,

ports-juce7/meson.build

+3-8
Original file line numberDiff line numberDiff line change
@@ -180,15 +180,10 @@ foreach plugin : plugins
180180

181181
plugin_lv2_dir = meson.current_build_dir() / plugin_name + '.lv2'
182182

183-
plugin_lv2_ttl = custom_target(plugin_name + '_lv2-ttl',
183+
custom_target(plugin_name + '_lv2-dir',
184184
output: plugin_name + '.lv2',
185185
input: plugin_lv2_lib,
186-
command: [
187-
'mkdir', '-p', plugin_lv2_dir, '&&',
188-
'cd', plugin_lv2_dir, '&&',
189-
'mv', plugin_lv2_lib.full_path(), plugin_lv2_dir / plugin_name + lib_suffix, '&&',
190-
(os_windows ? 'wine' : 'env'), lv2_ttl_generator, '.' / plugin_name + lib_suffix,
191-
],
186+
command: [ '../scripts/generate-ttl.sh', lv2_ttl_generator, '@OUTPUT@', plugin_lv2_lib.full_path() ],
192187
install: true,
193188
install_dir: lv2dir,
194189
)
@@ -235,7 +230,7 @@ foreach plugin : plugins
235230
command: [
236231
'mkdir', '-p', plugin_vst3_dir, '&&',
237232
'cd', plugin_vst3_dir, '&&',
238-
'mv', plugin_vst3_lib.full_path(), plugin_vst3_dir / plugin_name + lib_suffix,
233+
'cp', plugin_vst3_lib.full_path(), plugin_vst3_dir / plugin_name + lib_suffix,
239234
],
240235
install: true,
241236
install_dir: vst3dir,

scripts/generate-ttl.sh

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
gen="${1}"
6+
dir="${2}"
7+
lib="${3}"
8+
9+
# meson does not support MESON_EXE_WRAPPER for post-build commands, only for tests
10+
# do a whole dance to try to replicate expected behaviour
11+
if [ -z "${MESON_EXE_WRAPPER}" ]; then
12+
fileout="$(file "${gen}")"
13+
if echo "${fileout}" | grep -q "PE32 executable.*Intel 80386"; then
14+
MESON_EXE_WRAPPER="wine"
15+
elif echo "${fileout}" | grep -q "PE32+ executable.*x86-64"; then
16+
MESON_EXE_WRAPPER="wine64"
17+
elif echo "${fileout}" | grep -q "ARM aarch64"; then
18+
MESON_EXE_WRAPPER="qemu-aarch64-static -L /usr/lib/aarch64-linux-gnu"
19+
elif echo "${fileout}" | grep -q "ARM"; then
20+
MESON_EXE_WRAPPER="qemu-arm-static -L /usr/lib/arm-linux-gnueabihf"
21+
elif echo "${fileout}" | grep -q "Intel 80386"; then
22+
MESON_EXE_WRAPPER="qemu-i386-static -L /usr/lib/i386-linux-gnu"
23+
elif echo "${fileout}" | grep -q "RISC-V"; then
24+
MESON_EXE_WRAPPER="qemu-riscv64-static -L /usr/lib/riscv64-linux-gnu"
25+
# elif echo "${fileout}" | grep -q "x86-64"; then
26+
# MESON_EXE_WRAPPER="qemu-x86_64-static -L /usr/lib/x86_64-linux-gnu"
27+
else
28+
echo "unrecognized file output: ${fileout}"
29+
# exit 1
30+
fi
31+
fi
32+
33+
mkdir -p "${dir}"
34+
cd "${dir}"
35+
exec ${MESON_EXE_WRAPPER} "${gen}" "${lib}"

0 commit comments

Comments
 (0)