Skip to content

Commit

Permalink
Fix lv2 ttl gen step in a proper way for meson
Browse files Browse the repository at this point in the history
Signed-off-by: falkTX <falktx@falktx.com>
  • Loading branch information
falkTX committed Dec 8, 2023
1 parent c2e99c0 commit 755b04e
Show file tree
Hide file tree
Showing 7 changed files with 53 additions and 41 deletions.
5 changes: 3 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,10 @@ jobs:
./.github/workflows/bootstrap-deps.sh ${{ matrix.target }}
- name: Build
env:
LDFLAGS: -static-libgcc -static-libstdc++
#LDFLAGS: -static-libgcc -static-libstdc++
PKG_CONFIG_PATH: /usr/lib/${{ matrix.pkgprefix }}/pkgconfig
run: |
meson build --buildtype=release --prefix=/usr --cross-file scripts/meson/${{ matrix.target }}.ini
meson setup build --buildtype=release --prefix=/usr --cross-file scripts/meson/${{ matrix.target }}.ini
ninja -C build
- name: Install
run: |
Expand Down Expand Up @@ -96,6 +96,7 @@ jobs:
apt-get install -yqq \
binfmt-support \
build-essential \
file \
git \
meson \
pkg-config \
Expand Down
6 changes: 4 additions & 2 deletions meson.build
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
###############################################################################

project('DISTRHO-Ports',
'c', 'cpp',
license : 'GPLv3'
['c', 'cpp'],
license : 'GPLv3',
meson_version: '>=0.55.0',
version: '1',
)

###############################################################################
Expand Down
11 changes: 2 additions & 9 deletions ports-juce5/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -250,17 +250,10 @@ if build_lv2 or build_vst2
link_with: link_with_plugin,
)

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

plugin_lv2_ttl = custom_target(plugin_name + '_lv2-ttl',
custom_target(plugin_name + '_lv2-dir',
output: plugin_name + '.lv2',
input: plugin_lv2_lib,
command: [
'mkdir', '-p', plugin_lv2_dir, '&&',
'cd', plugin_lv2_dir, '&&',
'cp', plugin_lv2_lib.full_path(), plugin_lv2_dir / plugin_name + lib_suffix, '&&',
(os_windows ? 'wine' : 'env'), lv2_ttl_generator, '.' / plugin_name + lib_suffix,
],
command: [ '../scripts/generate-ttl.sh', lv2_ttl_generator, '@OUTPUT@', plugin_lv2_lib.full_path() ],
install: true,
install_dir: lv2dir,
)
Expand Down
13 changes: 3 additions & 10 deletions ports-juce6.0/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -187,17 +187,10 @@ foreach plugin : plugins
link_with: [ lib_juce60, plugin_lib ],
)

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

plugin_lv2_ttl = custom_target(plugin_name + '_lv2-ttl',
custom_target(plugin_name + '_lv2-dir',
output: plugin_name + '.lv2',
input: plugin_lv2_lib,
command: [
'mkdir', '-p', plugin_lv2_dir, '&&',
'cd', plugin_lv2_dir, '&&',
'mv', plugin_lv2_lib.full_path(), plugin_lv2_dir / plugin_name + lib_suffix, '&&',
(os_windows ? 'wine' : 'env'), lv2_ttl_generator, '.' / plugin_name + lib_suffix,
],
command: [ '../scripts/generate-ttl.sh', lv2_ttl_generator, '@OUTPUT@', plugin_lv2_lib.full_path() ],
install: true,
install_dir: lv2dir,
)
Expand Down Expand Up @@ -244,7 +237,7 @@ foreach plugin : plugins
command: [
'mkdir', '-p', plugin_vst3_dir, '&&',
'cd', plugin_vst3_dir, '&&',
'mv', plugin_vst3_lib.full_path(), plugin_vst3_dir / plugin_name + lib_suffix,
'cp', plugin_vst3_lib.full_path(), plugin_vst3_dir / plugin_name + lib_suffix,
],
install: true,
install_dir: vst3dir,
Expand Down
13 changes: 3 additions & 10 deletions ports-juce6.1/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -194,17 +194,10 @@ foreach plugin : plugins
link_with: [ lib_juce6, plugin_lib ],
)

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

plugin_lv2_ttl = custom_target(plugin_name + '_lv2-ttl',
custom_target(plugin_name + '_lv2-dir',
output: plugin_name + '.lv2',
input: plugin_lv2_lib,
command: [
'mkdir', '-p', plugin_lv2_dir, '&&',
'cd', plugin_lv2_dir, '&&',
'mv', plugin_lv2_lib.full_path(), plugin_lv2_dir / plugin_name + lib_suffix, '&&',
(os_windows ? 'wine' : 'env'), lv2_ttl_generator, '.' / plugin_name + lib_suffix,
],
command: [ '../scripts/generate-ttl.sh', lv2_ttl_generator, '@OUTPUT@', plugin_lv2_lib.full_path() ],
install: true,
install_dir: lv2dir,
)
Expand Down Expand Up @@ -251,7 +244,7 @@ foreach plugin : plugins
command: [
'mkdir', '-p', plugin_vst3_dir, '&&',
'cd', plugin_vst3_dir, '&&',
'mv', plugin_vst3_lib.full_path(), plugin_vst3_dir / plugin_name + lib_suffix,
'cp', plugin_vst3_lib.full_path(), plugin_vst3_dir / plugin_name + lib_suffix,
],
install: true,
install_dir: vst3dir,
Expand Down
11 changes: 3 additions & 8 deletions ports-juce7/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -180,15 +180,10 @@ foreach plugin : plugins

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

plugin_lv2_ttl = custom_target(plugin_name + '_lv2-ttl',
custom_target(plugin_name + '_lv2-dir',
output: plugin_name + '.lv2',
input: plugin_lv2_lib,
command: [
'mkdir', '-p', plugin_lv2_dir, '&&',
'cd', plugin_lv2_dir, '&&',
'mv', plugin_lv2_lib.full_path(), plugin_lv2_dir / plugin_name + lib_suffix, '&&',
(os_windows ? 'wine' : 'env'), lv2_ttl_generator, '.' / plugin_name + lib_suffix,
],
command: [ '../scripts/generate-ttl.sh', lv2_ttl_generator, '@OUTPUT@', plugin_lv2_lib.full_path() ],
install: true,
install_dir: lv2dir,
)
Expand Down Expand Up @@ -235,7 +230,7 @@ foreach plugin : plugins
command: [
'mkdir', '-p', plugin_vst3_dir, '&&',
'cd', plugin_vst3_dir, '&&',
'mv', plugin_vst3_lib.full_path(), plugin_vst3_dir / plugin_name + lib_suffix,
'cp', plugin_vst3_lib.full_path(), plugin_vst3_dir / plugin_name + lib_suffix,
],
install: true,
install_dir: vst3dir,
Expand Down
35 changes: 35 additions & 0 deletions scripts/generate-ttl.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/bin/bash

set -e

gen="${1}"
dir="${2}"
lib="${3}"

# meson does not support MESON_EXE_WRAPPER for post-build commands, only for tests
# do a whole dance to try to replicate expected behaviour
if [ -z "${MESON_EXE_WRAPPER}" ]; then
fileout="$(file "${gen}")"
if echo "${fileout}" | grep -q "PE32 executable.*Intel 80386"; then
MESON_EXE_WRAPPER="wine"
elif echo "${fileout}" | grep -q "PE32+ executable.*x86-64"; then
MESON_EXE_WRAPPER="wine64"
elif echo "${fileout}" | grep -q "ARM aarch64"; then
MESON_EXE_WRAPPER="qemu-aarch64-static -L/usr/lib/aarch64-linux-gnu"
elif echo "${fileout}" | grep -q "ARM"; then
MESON_EXE_WRAPPER="qemu-arm-static -L/usr/lib/arm-linux-gnueabihf"
elif echo "${fileout}" | grep -q "Intel 80386"; then
MESON_EXE_WRAPPER="qemu-i386-static -L/usr/lib/i386-linux-gnu"
elif echo "${fileout}" | grep -q "RISC-V"; then
MESON_EXE_WRAPPER="qemu-riscv64-static -L/usr/lib/riscv64-linux-gnu"
elif echo "${fileout}" | grep -q "x86-64"; then
MESON_EXE_WRAPPER="qemu-x86_64-static -L/usr/lib/x86_64-linux-gnu"
else
echo "unrecognized file output: ${fileout}"
exit 1
fi
fi

mkdir -p "${dir}"
cd "${dir}"
exec ${MESON_EXE_WRAPPER} "${gen}" "${lib}"

0 comments on commit 755b04e

Please sign in to comment.