Signed-off-by: falkTX <falktx@falktx.com>pull/117/head
@@ -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 \ | |||
@@ -1,8 +1,10 @@ | |||
############################################################################### | |||
project('DISTRHO-Ports', | |||
'c', 'cpp', | |||
license : 'GPLv3' | |||
['c', 'cpp'], | |||
license : 'GPLv3', | |||
meson_version: '>=0.55.0', | |||
version: '1', | |||
) | |||
############################################################################### | |||
@@ -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, | |||
) | |||
@@ -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, | |||
@@ -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, | |||
@@ -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, | |||
@@ -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}" |