Browse Source

Fix lv2 ttl gen step in a proper way for meson

Signed-off-by: falkTX <falktx@falktx.com>
pull/117/head
falkTX 1 year ago
parent
commit
7ee1f48b34
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
7 changed files with 70 additions and 41 deletions
  1. +3
    -2
      .github/workflows/build.yml
  2. +4
    -2
      meson.build
  3. +2
    -9
      ports-juce5/meson.build
  4. +3
    -10
      ports-juce6.0/meson.build
  5. +3
    -10
      ports-juce6.1/meson.build
  6. +3
    -8
      ports-juce7/meson.build
  7. +52
    -0
      scripts/generate-ttl.sh

+ 3
- 2
.github/workflows/build.yml View File

@@ -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: |
@@ -96,6 +96,7 @@ jobs:
apt-get install -yqq \
binfmt-support \
build-essential \
file \
git \
meson \
pkg-config \


+ 4
- 2
meson.build View File

@@ -1,8 +1,10 @@
###############################################################################

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

###############################################################################


+ 2
- 9
ports-juce5/meson.build View File

@@ -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,
)


+ 3
- 10
ports-juce6.0/meson.build View File

@@ -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,
)
@@ -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,


+ 3
- 10
ports-juce6.1/meson.build View File

@@ -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,
)
@@ -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,


+ 3
- 8
ports-juce7/meson.build View File

@@ -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,
)
@@ -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,


+ 52
- 0
scripts/generate-ttl.sh View File

@@ -0,0 +1,52 @@
#!/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
if [ "$(uname -m)" != "aarch64" ]; then
MESON_EXE_WRAPPER="qemu-aarch64-static"
fi

elif echo "${fileout}" | grep -q "ARM"; then
if [ "$(uname -m)" != "arm" ] && [ "$(uname -m)" != "armv7l" ]; then
MESON_EXE_WRAPPER="qemu-arm-static"
fi

elif echo "${fileout}" | grep -q "Intel 80386"; then
if [ "$(uname -m)" != "i386" ] && [ "$(uname -m)" != "i686" ]; then
MESON_EXE_WRAPPER="qemu-i386-static"
fi

elif echo "${fileout}" | grep -q "RISC-V"; then
if [ "$(uname -m)" != "riscv64" ]; then
MESON_EXE_WRAPPER="qemu-riscv64-static"
fi

elif echo "${fileout}" | grep -q "x86-64"; then
if [ "$(uname -m)" != "x86_64" ]; then
MESON_EXE_WRAPPER="qemu-x86_64-static"
fi

else
echo "unrecognized file output: ${fileout}"
exit 1
fi
fi

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

Loading…
Cancel
Save