Browse Source

Start rework of build scripts

Signed-off-by: falkTX <falktx@falktx.com>
tags/v2.1-rc1
falkTX 5 years ago
parent
commit
8b5be578ee
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
6 changed files with 184 additions and 128 deletions
  1. +155
    -118
      data/linux/build-all.sh
  2. +1
    -4
      data/linux/build-deps.sh
  3. +10
    -3
      data/linux/common.env
  4. +1
    -1
      data/windows/README.txt
  5. +16
    -2
      data/windows/pack-win.sh
  6. +1
    -0
      source/frontend/carla_host.py

+ 155
- 118
data/linux/build-all.sh View File

@@ -24,7 +24,7 @@ cd $(dirname $0)
source common.env

CHROOT_CARLA_DIR="/tmp/carla-src"
PKG_FOLDER="Carla_2.0-RC4-linux"
PKG_FOLDER="Carla_2.1b1-linux"
PKGS_NUM="20190227"

# ---------------------------------------------------------------------------------------------------------------------
@@ -57,17 +57,6 @@ fi

}

# ---------------------------------------------------------------------------------------------------------------------
# create chroots

if [ ! -d ${TARGETDIR}/chroot32 ]; then
sudo debootstrap --no-check-gpg --arch=i386 lucid ${TARGETDIR}/chroot32 http://old-releases.ubuntu.com/ubuntu/
fi

if [ ! -d ${TARGETDIR}/chroot64 ]; then
sudo debootstrap --no-check-gpg --arch=amd64 lucid ${TARGETDIR}/chroot64 http://old-releases.ubuntu.com/ubuntu/
fi

# ---------------------------------------------------------------------------------------------------------------------
# setup chroots

@@ -139,19 +128,20 @@ if [ ! -f /tmp/setup-aria2 ]; then
fi

if [ ! -d ${CHROOT_CARLA_DIR} ]; then
git clone --depth=1 -b master git://github.com/falkTX/Carla ${CHROOT_CARLA_DIR}
git clone --depth=1 -b develop git://github.com/falkTX/Carla ${CHROOT_CARLA_DIR}
fi

if [ ! -f ${CHROOT_CARLA_DIR}/source/native-plugins/external/README.md ]; then
git clone --depth=1 -b master git://github.com/falkTX/Carla-Plugins ${CHROOT_CARLA_DIR}/source/native-plugins/external
git clone --depth=1 -b develop git://github.com/falkTX/Carla-Plugins ${CHROOT_CARLA_DIR}/source/native-plugins/external
fi

cd ${CHROOT_CARLA_DIR}
git checkout .
git pull
git submodule update
# git checkout .
# git pull
# git submodule update

# might be updated by git pull
touch data/linux/build-pyqt.sh
chmod 777 data/linux/*.sh
chmod 777 data/linux/common.env

@@ -161,12 +151,6 @@ EOF

}

export ARCH=32
chroot_setup

export ARCH=64
chroot_setup

# ---------------------------------------------------------------------------------------------------------------------
# build base libs

@@ -174,7 +158,7 @@ chroot_build_deps()
{

CHROOT_DIR=${TARGETDIR}/chroot${ARCH}
cp build-deps.sh common.env ${CHROOT_DIR}${CHROOT_CARLA_DIR}/data/linux/
cp build-deps.sh build-pyqt.sh common.env ${CHROOT_DIR}${CHROOT_CARLA_DIR}/data/linux/
sudo cp /etc/ca-certificates.conf ${CHROOT_DIR}/etc/
sudo cp -r /usr/share/ca-certificates/* ${CHROOT_DIR}/usr/share/ca-certificates/

@@ -198,24 +182,29 @@ update-ca-certificates

${CHROOT_CARLA_DIR}/data/linux/build-deps.sh ${ARCH}

if [ ! -f /tmp/setup-repo-packages-extra2 ]; then
apt-get install -y --no-install-recommends libasound2-dev libgtk2.0-dev libqt4-dev libx11-dev
apt-get install -y cx-freeze-python3 zip
apt-get clean
touch /tmp/setup-repo-packages-extra2
fi
# if [ ! -f /tmp/setup-repo-packages-extra2 ]; then
apt-get install -y --no-install-recommends libdbus-1-dev libx11-dev libffi-static
# apt-get clean
# touch /tmp/setup-repo-packages-extra2
# fi

EOF
${CHROOT_CARLA_DIR}/data/linux/build-pyqt.sh ${ARCH}

}
apt-get install -y --no-install-recommends libasound2-dev libpulse-dev libgtk2.0-dev libqt4-dev qt4-dev-tools zip

export ARCH=32
chroot_build_deps
# if [ x"${ARCH}" != x"32" ]; then
# wget https://launchpad.net/~ubuntu-security-proposed/+archive/ubuntu/ppa/+build/9003691/+files/libgtk-3-dev_3.4.2-0ubuntu0.9_amd64.deb
# dpkg -i libgtk-3-dev_3.4.2-0ubuntu0.9_amd64.deb
# else
# wget https://launchpad.net/~ubuntu-security-proposed/+archive/ubuntu/ppa/+build/9003694/+files/libgtk-3-0_3.4.2-0ubuntu0.9_i386.deb
# wget https://launchpad.net/~ubuntu-security-proposed/+archive/ubuntu/ppa/+build/9003694/+files/libgtk-3-dev_3.4.2-0ubuntu0.9_i386.deb
# dpkg -x libgtk-3-0_3.4.2-0ubuntu0.9_i386.deb /
# dpkg -x libgtk-3-dev_3.4.2-0ubuntu0.9_i386.deb /
# fi

export ARCH=64
chroot_build_deps
EOF

exit 0
}

# ---------------------------------------------------------------------------------------------------------------------
# build carla
@@ -234,16 +223,21 @@ unset LC_TIME

set -e

export OLDPATH=\${PATH}
export CFLAGS="-I${CHROOT_TARGET_DIR}/carla${ARCH}/include"
export CXXFLAGS=${CFLAGS}
export LDFLAGS="-L${CHROOT_TARGET_DIR}/carla${ARCH}/lib"
export PKG_CONFIG_PATH=${CHROOT_TARGET_DIR}/carla${ARCH}/lib/pkgconfig
export RCC_QT4=/usr/bin/rcc
export PKG_CONFIG_PATH=${CHROOT_TARGET_DIR}/carla${ARCH}/lib/pkgconfig:/usr/lib/i386-linux-gnu/pkgconfig
# export PATH=${CHROOT_TARGET_DIR}/carla${ARCH}/bin:\${PATH}
export LINUX=true
export DEFAULT_QT=4
export MOC_QT4=/usr/bin/moc-qt4
export RCC_QT4=/usr/bin/rcc
export PYRCC5=${CHROOT_TARGET_DIR}/carla${ARCH}/bin/pyrcc5
export PYUIC5=${CHROOT_TARGET_DIR}/carla${ARCH}/bin/pyuic5

cd ${CHROOT_CARLA_DIR}
make ${MAKE_ARGS}

make ${MAKE_ARGS} HAVE_GTK3=false

if [ x"${ARCH}" != x"32" ]; then
export CFLAGS="-I${CHROOT_TARGET_DIR}/carla32/include -m32"
@@ -257,12 +251,6 @@ EOF

}

export ARCH=32
chroot_build_carla

export ARCH=64
chroot_build_carla

# ---------------------------------------------------------------------------------------------------------------------
# download carla extras

@@ -323,12 +311,6 @@ EOF

}

export ARCH=32
download_carla_extras

export ARCH=64
download_carla_extras

# ---------------------------------------------------------------------------------------------------------------------
# download carla extras

@@ -336,7 +318,8 @@ chroot_pack_carla()
{

CHROOT_DIR=${TARGETDIR}/chroot${ARCH}
CXFREEZE_FLAGS="--include-modules=re,sip,subprocess,inspect"
# CXFREEZE_FLAGS="--include-modules=re,sip,subprocess,inspect"
CXFREEZE="${CHROOT_TARGET_DIR}/carla${ARCH}/bin/cxfreeze ${CXFREEZE_FLAGS}"

cat <<EOF | sudo chroot ${CHROOT_DIR}
export HOME=/root
@@ -346,9 +329,13 @@ unset LC_TIME

set -e

export PKG_CONFIG_PATH=${CHROOT_TARGET_DIR}/carla${ARCH}/lib/pkgconfig
export PKG_CONFIG_PATH=${CHROOT_TARGET_DIR}/carla${ARCH}/lib/pkgconfig:/usr/lib/i386-linux-gnu/pkgconfig
# export PATH=${CHROOT_TARGET_DIR}/carla${ARCH}/bin:\${PATH}
export LINUX=true
export MOC_QT4=/usr/bin/moc-qt4
export RCC_QT4=/usr/bin/rcc
export LINUX="true"
export PYRCC5=${CHROOT_TARGET_DIR}/carla${ARCH}/bin/pyrcc5
export PYUIC5=${CHROOT_TARGET_DIR}/carla${ARCH}/bin/pyuic5

cd ${CHROOT_CARLA_DIR}
rm -rf ./tmp-install
@@ -360,70 +347,77 @@ make -C data/windows/unzipfx-carla-control -f Makefile.linux ${MAKE_ARGS}
# ---------------------------------------------------------------------------------------------------------------------
# Standalone

rm -rf build-carla build-carla-control build-lv2 build-vst carla *.zip
mkdir build-carla
mkdir build-carla/resources
mkdir build-carla/src
mkdir build-carla/src/widgets

cp extra-bins${PKGS_NUM}/* build-carla/
cp -r ./tmp-install/usr/lib/carla/* build-carla/
cp -LR ./tmp-install/usr/share/carla/resources/* build-carla/resources/
cp ./tmp-install/usr/share/carla/carla build-carla/src/
cp ./tmp-install/usr/share/carla/carla-control build-carla/src/
cp ./tmp-install/usr/share/carla/*.py build-carla/src/
cp ./tmp-install/usr/share/carla/widgets/*.py build-carla/src/widgets/

mv build-carla/resources/carla-plugin build-carla/resources/carla-plugin.py
mv build-carla/resources/bigmeter-ui build-carla/resources/bigmeter-ui.py
mv build-carla/resources/midipattern-ui build-carla/resources/midipattern-ui.py
mv build-carla/resources/notes-ui build-carla/resources/notes-ui.py

cxfreeze-python3 ${CXFREEZE_FLAGS} build-carla/src/carla --target-dir=build-carla/
cxfreeze-python3 ${CXFREEZE_FLAGS} build-carla/src/carla-control --target-dir=build-carla-control/
cxfreeze-python3 ${CXFREEZE_FLAGS} build-carla/resources/carla-plugin.py --target-dir=build-carla/resources/
cxfreeze-python3 ${CXFREEZE_FLAGS} build-carla/resources/bigmeter-ui.py --target-dir=build-carla/resources/
cxfreeze-python3 ${CXFREEZE_FLAGS} build-carla/resources/midipattern-ui.py --target-dir=build-carla/resources/
cxfreeze-python3 ${CXFREEZE_FLAGS} build-carla/resources/notes-ui.py --target-dir=build-carla/resources/

cp /usr/lib/libpython3.2mu.so.1.0 build-carla/
cp /usr/lib/libffi.so.5 build-carla/
cp /usr/lib/libssl.so.0.9.8 build-carla/
cp /usr/lib/libcrypto.so.0.9.8 build-carla/
cp /lib/libbz2.so.1.0 build-carla/
cp /lib/libselinux.so.1 build-carla/
cp /root/builds/carla${ARCH}/share/misc/magic.mgc build-carla/

cp /usr/lib/libpython3.2mu.so.1.0 build-carla-control/
cp /usr/lib/libffi.so.5 build-carla-control/
cp /usr/lib/libssl.so.0.9.8 build-carla-control/
cp /usr/lib/libcrypto.so.0.9.8 build-carla-control/
cp /lib/libbz2.so.1.0 build-carla-control/
cp /lib/libselinux.so.1 build-carla-control/
cp build-carla/libcarla_utils.so build-carla-control/
cp -r build-carla/styles build-carla-control/

find build-carla -name "*.py" -delete
find build-carla -name PyQt4.QtAssistant.so -delete
find build-carla -name PyQt4.QtNetwork.so -delete
find build-carla -name PyQt4.QtScript.so -delete
find build-carla -name PyQt4.QtTest.so -delete
find build-carla -name PyQt4.QtXml.so -delete
rm -rf build-carla/src

find build-carla-control -name "*.py" -delete
find build-carla-control -name PyQt4.QtAssistant.so -delete
find build-carla-control -name PyQt4.QtNetwork.so -delete
find build-carla-control -name PyQt4.QtScript.so -delete
find build-carla-control -name PyQt4.QtTest.so -delete
find build-carla-control -name PyQt4.QtXml.so -delete
rm -rf build-carla-control/src
# rm -rf build-carla build-carla-control build-lv2 build-vst carla *.zip
# mkdir build-carla
# mkdir build-carla/resources
# mkdir build-carla/src
# mkdir build-carla/src/modgui
# mkdir build-carla/src/patchcanvas
# mkdir build-carla/src/widgets
#
# # cp extra-bins${PKGS_NUM}/* build-carla/
# cp -r ./tmp-install/usr/lib/carla/* build-carla/
# cp -LR ./tmp-install/usr/share/carla/resources/* build-carla/resources/
# cp ./tmp-install/usr/share/carla/carla build-carla/src/
# cp ./tmp-install/usr/share/carla/carla-control build-carla/src/
# cp ./tmp-install/usr/share/carla/*.py build-carla/src/
# cp ./tmp-install/usr/share/carla/modgui/*.py build-carla/src/modgui/
# cp ./tmp-install/usr/share/carla/patchcanvas/*.py build-carla/src/patchcanvas/
# cp ./tmp-install/usr/share/carla/widgets/*.py build-carla/src/widgets/

# mv build-carla/resources/carla-plugin build-carla/resources/carla-plugin.py
# mv build-carla/resources/bigmeter-ui build-carla/resources/bigmeter-ui.py
# mv build-carla/resources/midipattern-ui build-carla/resources/midipattern-ui.py
# mv build-carla/resources/notes-ui build-carla/resources/notes-ui.py

${CXFREEZE} build-carla/src/carla --target-dir=build-carla/
# ${CXFREEZE} build-carla/src/carla-control --target-dir=build-carla-control/
# ${CXFREEZE} build-carla/resources/carla-plugin.py --target-dir=build-carla/resources/
# ${CXFREEZE} build-carla/resources/bigmeter-ui.py --target-dir=build-carla/resources/
# ${CXFREEZE} build-carla/resources/midipattern-ui.py --target-dir=build-carla/resources/
# ${CXFREEZE} build-carla/resources/notes-ui.py --target-dir=build-carla/resources/

# cp /usr/lib/libpython3.2mu.so.1.0 build-carla/
# cp /usr/lib/libffi.so.5 build-carla/
# cp /usr/lib/libssl.so.0.9.8 build-carla/
# cp /usr/lib/libcrypto.so.0.9.8 build-carla/
# cp /lib/libbz2.so.1.0 build-carla/
# cp /lib/libselinux.so.1 build-carla/
# cp /root/builds/carla${ARCH}/share/misc/magic.mgc build-carla/
#
# cp /usr/lib/libpython3.2mu.so.1.0 build-carla-control/
# cp /usr/lib/libffi.so.5 build-carla-control/
# cp /usr/lib/libssl.so.0.9.8 build-carla-control/
# cp /usr/lib/libcrypto.so.0.9.8 build-carla-control/
# cp /lib/libbz2.so.1.0 build-carla-control/
# cp /lib/libselinux.so.1 build-carla-control/
# cp build-carla/libcarla_utils.so build-carla-control/
# cp -r build-carla/styles build-carla-control/

# find build-carla -name "*.py" -delete
# find build-carla -name PyQt4.QtAssistant.so -delete
# find build-carla -name PyQt4.QtNetwork.so -delete
# find build-carla -name PyQt4.QtScript.so -delete
# find build-carla -name PyQt4.QtTest.so -delete
# find build-carla -name PyQt4.QtXml.so -delete
# rm -rf build-carla/src
#
# find build-carla-control -name "*.py" -delete
# find build-carla-control -name PyQt4.QtAssistant.so -delete
# find build-carla-control -name PyQt4.QtNetwork.so -delete
# find build-carla-control -name PyQt4.QtScript.so -delete
# find build-carla-control -name PyQt4.QtTest.so -delete
# find build-carla-control -name PyQt4.QtXml.so -delete
# rm -rf build-carla-control/src

cd build-carla/resources/ && \
rm *.so* carla-plugin-patchbay && \
ln -s ../*.so* . && \
rm carla-plugin-patchbay && \
ln -s carla-plugin carla-plugin-patchbay && \
cd ../..
# rm *.so*
# ln -s ../*.so* . &&

false

mkdir build-lv2
cp -LR ./tmp-install/usr/lib/lv2/carla.lv2 build-lv2/
@@ -469,8 +463,51 @@ EOF

}

export ARCH=32
chroot_pack_carla
# ---------------------------------------------------------------------------------------------------------------------
# cleanup here if needed

# cleanup

# ---------------------------------------------------------------------------------------------------------------------
# create chroots

if [ ! -d ${TARGETDIR}/chroot32 ]; then
sudo debootstrap --no-check-gpg --arch=i386 lucid ${TARGETDIR}/chroot32 http://old-releases.ubuntu.com/ubuntu/
fi

if [ ! -d ${TARGETDIR}/chroot64 ]; then
sudo debootstrap --no-check-gpg --arch=amd64 lucid ${TARGETDIR}/chroot64 http://old-releases.ubuntu.com/ubuntu/
fi

# ---------------------------------------------------------------------------------------------------------------------
# run the functions

# export ARCH=32
# chroot_setup

export ARCH=64
chroot_setup

# export ARCH=32
# chroot_build_deps

export ARCH=64
chroot_build_deps

# export ARCH=32
# chroot_build_carla

export ARCH=64
chroot_build_carla

# export ARCH=32
# download_carla_extras
#
# export ARCH=64
# download_carla_extras

# export ARCH=32
# chroot_pack_carla

export ARCH=64
chroot_pack_carla


+ 1
- 4
data/linux/build-deps.sh View File

@@ -258,10 +258,7 @@ fi

if [ ! -d mxml-${MXML_VERSION} ]; then
aria2c https://github.com/michaelrsweet/mxml/releases/download/v${MXML_VERSION}/mxml-${MXML_VERSION}.tar.gz
mkdir mxml-${MXML_VERSION}
cd mxml-${MXML_VERSION}
tar -xf ../mxml-${MXML_VERSION}.tar.gz
cd ..
tar -xf mxml-${MXML_VERSION}.tar.gz
fi

if [ ! -f mxml-${MXML_VERSION}/build-done ]; then


+ 10
- 3
data/linux/common.env View File

@@ -1,16 +1,23 @@
#!/bin/bash

PKG_CONFIG_VERSION=0.28
LIBLO_VERSION=0.29
LIBLO_VERSION=0.30
ZLIB_VERSION=1.2.11
FILE_VERSION=5.34
LIBOGG_VERSION=1.3.3
LIBOGG_VERSION=1.3.4
LIBVORBIS_VERSION=1.3.6
FLAC_VERSION=1.3.2
LIBSNDFILE_VERSION=1.0.28
FLUIDSYNTH_VERSION=1.1.11
MXML_VERSION=2.11
MXML_VERSION=2.12
FFTW3_VERSION=3.3.8
QT5_VERSION=5.9.8
QT5_MVERSION=5.9
PYTHON_VERSION=3.7.3
SIP_VERSION=4.19.13
PYLIBLO_VERSION=0.9.2
PYQT5_VERSION=5.11.3
CXFREEZE_VERSION=6.0

MAKE_ARGS="-j 8"
TARGETDIR=$HOME/builds

+ 1
- 1
data/windows/README.txt View File

@@ -27,4 +27,4 @@ For the LV2 plugin, create the "C:\Program Files\Common Files\LV2" folder (if it
For the VST2 plugin, create the "C:\Program Files\Common Files\VST2" folder (if it does not exist yet), then copy Carla.vst into it and restart your VST2 host.

For a complete and updated description of Carla, please check:
http://kxstudio.linuxaudio.org/carla
https://kx.studio/carla

+ 16
- 2
data/windows/pack-win.sh View File

@@ -87,7 +87,7 @@ export_vars "${ARCH}" "${ARCH_PREFIX}" "${CPUARCH}"

cd data/windows/

rm -rf Carla Carla.lv2 Carla.vst
rm -rf Carla Carla.lv2 Carla.vst CarlaControl

# ---------------------------------------------------------------------------------------------------------------------
# freeze carla (console and gui)
@@ -186,6 +186,20 @@ cp ${MSYS2_PREFIX}/share/qt5/plugins/platforms/qwindows.dll Carla/platforms/
mkdir -p Carla/styles
cp ../../bin/styles/carlastyle.dll Carla/styles/

# ---------------------------------------------------------------------------------------------------------------------
# also for CarlaControl

cp ../../bin/libcarla_utils.dll CarlaControl/

mkdir -p CarlaControl/imageformats
cp ${MSYS2_PREFIX}/share/qt5/plugins/imageformats/qsvg.dll CarlaControl/imageformats/

mkdir -p CarlaControl/platforms
cp ${MSYS2_PREFIX}/share/qt5/plugins/platforms/qwindows.dll CarlaControl/platforms/

mkdir -p CarlaControl/styles
cp ../../bin/styles/carlastyle.dll CarlaControl/styles/

# ---------------------------------------------------------------------------------------------------------------------
# prepare lv2 bundle

@@ -234,7 +248,7 @@ cat unzipfx-carla/unzipfx2cat.exe Carla.zip > Carla.exe
chmod +x Carla.exe

rm -f CarlaControl.exe
cat unzipfx-carla/unzipfx2cat.exe CarlaControl.zip > CarlaControl.exe
cat unzipfx-carla-control/unzipfx2cat.exe CarlaControl.zip > CarlaControl.exe
chmod +x CarlaControl.exe

# Cleanup


+ 1
- 0
source/frontend/carla_host.py View File

@@ -21,6 +21,7 @@

import json

# This fails in some configurations, assume >= 5.6.0 in that case
try:
from PyQt5.Qt import PYQT_VERSION
except ImportError:


Loading…
Cancel
Save