diff --git a/data/linux/build-deps.sh b/data/linux/build-deps.sh deleted file mode 100755 index e7fa18554..000000000 --- a/data/linux/build-deps.sh +++ /dev/null @@ -1,338 +0,0 @@ -#!/bin/bash - -# ------------------------------------------------------------------------------------ -# stop on error - -set -e - -# ------------------------------------------------------------------------------------ -# cd to correct path - -if [ -f Makefile ]; then - cd data/linux -fi - -# ------------------------------------------------------------------------------------ -# Use gcc 4.8 - -export CC=gcc-4.8 -export CXX=g++-4.8 - -# ------------------------------------------------------------------------------------ -# function to build base libs - -build_base() -{ - -export CFLAGS="-O2 -mtune=generic -msse -msse2 -m$ARCH -fPIC -DPIC" -export CXXFLAGS=$CFLAGS -export LDFLAGS="-m$ARCH" - -export PREFIX=/opt/carla$ARCH -export PATH=$PREFIX/bin:/usr/bin:/bin:/usr/sbin:/sbin -export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig - -# ------------------------------------------------------------------------------------ -# pkgconfig - -if [ ! -d pkg-config-0.28 ]; then -aria2c http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz -tar -xf pkg-config-0.28.tar.gz -fi - -if [ ! -f pkg-config-0.28_$ARCH/build-done ]; then -cp -r pkg-config-0.28 pkg-config-0.28_$ARCH -cd pkg-config-0.28_$ARCH -./configure --enable-indirect-deps --with-internal-glib --with-pc-path=$PKG_CONFIG_PATH --prefix=$PREFIX -make -sudo make install -touch build-done -cd .. -fi - -# ------------------------------------------------------------------------------------ -# zlib - -if [ ! -d zlib-1.2.8 ]; then -aria2c http://zlib.net/zlib-1.2.8.tar.gz -tar -xf zlib-1.2.8.tar.gz -fi - -if [ ! -f zlib-1.2.8_$ARCH/build-done ]; then -cp -r zlib-1.2.8 zlib-1.2.8_$ARCH -cd zlib-1.2.8_$ARCH -./configure --static --prefix=$PREFIX -make -sudo make install -touch build-done -cd .. -fi - -# ------------------------------------------------------------------------------------ -# liblo - -if [ ! -d liblo-0.28 ]; then -aria2c http://download.sourceforge.net/liblo/liblo-0.28.tar.gz -tar -xf liblo-0.28.tar.gz -fi - -if [ ! -f liblo-0.28_$ARCH/build-done ]; then -cp -r liblo-0.28 liblo-0.28_$ARCH -cd liblo-0.28_$ARCH -./configure --enable-static --disable-shared --prefix=$PREFIX -make -sudo make install -touch build-done -cd .. -fi - -# ------------------------------------------------------------------------------------ -# mxml - -if [ ! -d mxml-2.8 ]; then -aria2c http://www.msweet.org/files/project3/mxml-2.8.tar.gz -tar -xf mxml-2.8.tar.gz -fi - -if [ ! -f mxml-2.8_$ARCH/build-done ]; then -cp -r mxml-2.8 mxml-2.8_$ARCH -cd mxml-2.8_$ARCH -./configure --enable-static --disable-shared --prefix=$PREFIX -make -sudo cp *.a $PREFIX/lib/ -sudo cp *.pc $PREFIX/lib/pkgconfig/ -sudo cp mxml.h $PREFIX/include/ -touch build-done -cd .. -fi - -# ------------------------------------------------------------------------------------ -# fftw3 - -if [ ! -d fftw-3.3.4 ]; then -aria2c http://www.fftw.org/fftw-3.3.4.tar.gz -tar -xf fftw-3.3.4.tar.gz -fi - -if [ ! -f fftw-3.3.4_$ARCH/build-done ]; then -export CFLAGS="-O2 -mtune=generic -msse -msse2 -ffast-math -mfpmath=sse -m$ARCH -fPIC -DPIC" -export CXXFLAGS=$CFLAGS -cp -r fftw-3.3.4 fftw-3.3.4_$ARCH -cd fftw-3.3.4_$ARCH -./configure --enable-static --enable-sse2 --disable-shared --disable-debug --prefix=$PREFIX -make -sudo make install -make clean -./configure --enable-static --enable-sse --enable-sse2 --enable-single --disable-shared --disable-debug --prefix=$PREFIX -make -sudo make install -make clean -touch build-done -cd .. -fi - -} - -# ------------------------------------------------------------------------------------ -# build base libs - -export ARCH=32 -build_base - -export ARCH=64 -build_base - -# ------------------------------------------------------------------------------------ -# qt5-base download - -if [ ! -d qtbase-opensource-src-5.3.0 ]; then -aria2c http://download.qt-project.org/official_releases/qt/5.3/5.3.0/submodules/qtbase-opensource-src-5.3.0.tar.xz -tar -xf qtbase-opensource-src-5.3.0.tar.xz -fi - -# ------------------------------------------------------------------------------------ -# qt5-base 32bit (minimal, static) - -if [ ! -f qtbase-opensource-src-5.3.0_32/build-done ]; then -export CFLAGS="-O2 -mtune=generic -msse -msse2 -m32 -fPIC -DPIC" -export CXXFLAGS=$CFLAGS -export LDFLAGS="-m32" -export PREFIX=/opt/carla32 -export PATH=$PREFIX/bin:/usr/bin:/bin:/usr/sbin:/sbin -export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig -cp -r qtbase-opensource-src-5.3.0 qtbase-opensource-src-5.3.0_32 -cd qtbase-opensource-src-5.3.0_32 -export CFG_ARCH=i386 -export QMAKESPEC=linux-g++-32 -./configure -release -static -opensource -confirm-license -force-pkg-config -platform linux-g++-32 \ - -prefix $PREFIX -plugindir $PREFIX/lib/qt5/plugins -headerdir $PREFIX/include/qt5 \ - -qt-freetype -qt-libjpeg -qt-libpng -qt-pcre -qt-sql-sqlite -qt-zlib -opengl no \ - -no-directfb -no-eglfs -no-kms -no-linuxfb -no-mtdev -no-xcb -no-xcb-xlib \ - -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 -no-avx -no-avx2 -no-mips_dsp -no-mips_dspr2 \ - -no-cups -no-dbus -no-evdev -no-fontconfig -no-harfbuzz -no-iconv -no-icu -no-gif -no-glib -no-nis -no-openssl -no-pch -no-sql-ibase -no-sql-odbc \ - -no-audio-backend -no-qml-debug -no-separate-debug-info \ - -no-compile-examples -no-gui -no-widgets -nomake examples -nomake tests -nomake tools -make libs -make -j 8 -sudo make install -touch build-done -cd .. -fi - -# ------------------------------------------------------------------------------------ -# qt5-base 64bit (minimal, static) - -if [ ! -f qtbase-opensource-src-5.3.0_64/build-done ]; then -export CFLAGS="-O2 -mtune=generic -msse -msse2 -m64 -fPIC -DPIC" -export CXXFLAGS=$CFLAGS -export LDFLAGS="-m64" -export PREFIX=/opt/carla64 -export PATH=$PREFIX/bin:/usr/bin:/bin:/usr/sbin:/sbin -export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig -cp -r qtbase-opensource-src-5.3.0 qtbase-opensource-src-5.3.0_64 -cd qtbase-opensource-src-5.3.0_64 -export CFG_ARCH=x86_64 -export QMAKESPEC=linux-g++-64 -./configure -release -static -opensource -confirm-license -force-pkg-config -platform linux-g++-64 \ - -prefix $PREFIX -plugindir $PREFIX/lib/qt5/plugins -headerdir $PREFIX/include/qt5 \ - -qt-freetype -qt-libjpeg -qt-libpng -qt-pcre -qt-sql-sqlite -qt-zlib -opengl no \ - -no-directfb -no-eglfs -no-kms -no-linuxfb -no-mtdev -no-xcb -no-xcb-xlib \ - -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 -no-avx -no-avx2 -no-mips_dsp -no-mips_dspr2 \ - -no-cups -no-dbus -no-evdev -no-fontconfig -no-harfbuzz -no-iconv -no-icu -no-gif -no-glib -no-nis -no-openssl -no-pch -no-sql-ibase -no-sql-odbc \ - -no-audio-backend -no-qml-debug -no-separate-debug-info \ - -no-compile-examples -no-gui -no-widgets -nomake examples -nomake tests -nomake tools -make libs -make -j 8 -sudo make install -touch build-done -cd .. -fi - -# ------------------------------------------------------------------------------------ -# set flags for qt stuff - -export CFLAGS="-O2 -mtune=generic -msse -msse2 -fPIC -DPIC" -export CXXFLAGS=$CFLAGS -export LDFLAGS="" - -export PREFIX=/opt/carla -export PATH=$PREFIX/bin:/usr/bin:/bin:/usr/sbin:/sbin -export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig - -export CFG_ARCH=x86_64 -export QMAKESPEC=linux-g++ - -# ------------------------------------------------------------------------------------ -# qt5-base download (5.2.1 for now) - -if [ ! -d qtbase-opensource-src-5.2.1 ]; then -aria2c http://download.qt-project.org/official_releases/qt/5.2/5.2.1/submodules/qtbase-opensource-src-5.2.1.tar.xz -tar -xf qtbase-opensource-src-5.2.1.tar.xz -fi - -# ------------------------------------------------------------------------------------ -# qt5-base (regular, shared) - -if [ ! -f qtbase-opensource-src-5.2.1/build-done ]; then -cd qtbase-opensource-src-5.2.1 -./configure -release -shared -opensource -confirm-license -force-pkg-config -platform linux-g++ \ - -prefix $PREFIX -plugindir $PREFIX/lib/qt5/plugins -headerdir $PREFIX/include/qt5 \ - -qt-freetype -qt-libjpeg -qt-libpng -qt-pcre -qt-sql-sqlite -qt-xcb -qt-xkbcommon -qt-zlib -opengl desktop -qpa xcb \ - -no-directfb -no-eglfs -no-kms -no-linuxfb -no-mtdev \ - -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 -no-avx -no-avx2 -no-neon -no-mips_dsp -no-mips_dspr2 \ - -no-cups -no-dbus -no-evdev -no-fontconfig -no-harfbuzz -no-iconv -no-icu -no-gif -no-glib -no-nis -no-openssl -no-pch -no-sql-ibase -no-sql-odbc \ - -no-audio-backend -no-javascript-jit -no-qml-debug -no-rpath -no-separate-debug-info \ - -no-compile-examples -nomake examples -nomake tests -make libs -make tools -make -j 8 -sudo make install -# sudo cp src/plugins/platforms/xcb/xcb-static/libxcb-static.a $PREFIX/lib/qt5/plugins/platforms/ -# sudo sed "s?`pwd`/src/plugins/platforms/xcb/xcb-static?$PREFIX/lib/qt5/plugins/platforms?" -i $PREFIX/lib/qt5/plugins/platforms/libqxcb.prl -touch build-done -cd .. -fi - -# ------------------------------------------------------------------------------------ -# qt5-svg - -if [ ! -d qtsvg-opensource-src-5.2.1 ]; then -aria2c http://download.qt-project.org/official_releases/qt/5.2/5.2.1/submodules/qtsvg-opensource-src-5.2.1.tar.gz -tar -xf qtsvg-opensource-src-5.2.1.tar.gz -fi - -if [ ! -f qtsvg-opensource-src-5.2.1/build-done ]; then -cd qtsvg-opensource-src-5.2.1 -qmake -make -j 8 -sudo make install -touch build-done -cd .. -fi - -# ------------------------------------------------------------------------------------ -# python - -if [ ! -d Python-3.3.5 ]; then -aria2c https://www.python.org/ftp/python/3.3.5/Python-3.3.5.tgz -tar -xf Python-3.3.5.tgz -fi - -if [ ! -f Python-3.3.5/build-done ]; then -cd Python-3.3.5 -./configure --prefix=$PREFIX -make -sudo make install -touch build-done -cd .. -fi - -# ------------------------------------------------------------------------------------ -# sip - -if [ ! -d sip-4.15.5 ]; then -aria2c http://sourceforge.net/projects/pyqt/files/sip/sip-4.15.5/sip-4.15.5.tar.gz -tar -xf sip-4.15.5.tar.gz -fi - -if [ ! -f sip-4.15.5/build-done ]; then -cd sip-4.15.5 -python3 configure.py -make -sudo make install -touch build-done -cd .. -fi - -# ------------------------------------------------------------------------------------ -# pyqt5 - -if [ ! -d PyQt-gpl-5.2.1 ]; then -aria2c http://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.2.1/PyQt-gpl-5.2.1.tar.gz -tar -xf PyQt-gpl-5.2.1.tar.gz -fi - -if [ ! -f PyQt-gpl-5.2.1/build-done ]; then -cd PyQt-gpl-5.2.1 -python3 configure.py --confirm-license -make -sudo make install -touch build-done -cd .. -fi - -# ------------------------------------------------------------------------------------ -# cxfreeze - -if [ ! -d cx_Freeze-4.3.3 ]; then -aria2c http://download.sourceforge.net/cx-freeze/cx_Freeze-4.3.3.tar.gz -tar -xf cx_Freeze-4.3.3.tar.gz -fi - -if [ ! -f cx_Freeze-4.3.3/build-done ]; then -cd cx_Freeze-4.3.3 -sed -i -e 's/"python%s.%s"/"python%s.%sm"/' setup.py -sed -i -e 's/not vars.get("Py_ENABLE_SHARED", 0)/True/' setup.py -python3 setup.py build -sudo python3 setup.py install --prefix=$PREFIX -touch build-done -cd .. -fi - -# ------------------------------------------------------------------------------------ diff --git a/data/linux/build.sh b/data/linux/build.sh deleted file mode 100755 index eb02eb401..000000000 --- a/data/linux/build.sh +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/bash - -set -e - -JOBS="-j 2" - -if [ ! -f Makefile ]; then - cd ../.. -fi - -export CC=gcc-4.8 -export CXX=g++-4.8 -export CXFREEZE=/opt/carla/bin/cxfreeze -export MOC_QT5=moc -export RCC_QT5=moc - -# Build python stuff -export PATH=/opt/carla/bin:/opt/carla64/bin:/usr/bin:/bin:/usr/sbin:/sbin -export PKG_CONFIG_PATH=/opt/carla/lib/pkgconfig:/opt/carla64/lib/pkgconfig -make $JOBS UI RES WIDGETS - -# Build theme -make $JOBS theme - -# Build everything else -export PATH=/opt/carla64/bin:/usr/bin:/bin:/usr/sbin:/sbin -export PKG_CONFIG_PATH=/opt/carla64/lib/pkgconfig -make -C source/modules dgl -make backend $JOBS LDFLAGS="../../modules/dgl.a -lGL -lX11" -# make $JOBS - -# Build Linux app -export PATH=/opt/carla/bin:/opt/carla64/bin:/usr/bin:/bin:/usr/sbin:/sbin -export PYTHONPATH=`pwd`/source -unset PKG_CONFIG_PATH - -# cd source -rm -rf ./build ./build-lv2 - -cp ./source/carla ./source/carla.pyw -cp ./source/carla-plugin ./source/carla-plugin.pyw -cp ./source/modules/native-plugins/resources/bigmeter-ui ./source/bigmeter-ui.pyw -cp ./source/modules/native-plugins/resources/notes-ui ./source/notes-ui.pyw -$CXFREEZE --include-modules=re,sip,subprocess,inspect --target-dir=./build/ ./source/carla.pyw -$CXFREEZE --include-modules=re,sip,subprocess,inspect --target-dir=./build/plugin/ ./source/carla-plugin.pyw -$CXFREEZE --include-modules=re,sip,subprocess,inspect --target-dir=./build/plugin/ ./source/bigmeter-ui.pyw -$CXFREEZE --include-modules=re,sip,subprocess,inspect --target-dir=./build/plugin/ ./source/notes-ui.pyw -rm ./source/*.pyw - -cd build - -mkdir backend -mkdir bridges -mkdir discovery -mkdir styles -cp ../source/backend/*.so ./backend/ -# cp ../source/bridges/carla-bridge-* ./bridges/ -# cp ../source/discovery/carla-discovery-* ./discovery/ -cp ../source/modules/theme/styles/* ./styles/ -cp -r ../source/modules/native-plugins/resources . - -find . -type f -name "*.py" -delete -mv plugin/* ./resources/ -rmdir plugin - -mkdir ../build-lv2 -cd ../build-lv2 - -cp -r ../source/plugin/carla-native.lv2/ . -rm -r ./carla-native.lv2/resources -cp -r ../build/resources/ ./carla-native.lv2/ - -mkdir carla-native.lv2/resources/styles -# cp ../source/bridges/carla-bridge-* carla-native.lv2/resources/ -# cp ../source/discovery/carla-discovery-* carla-native.lv2/resources/ -cp ../build/./styles/* carla-native.lv2/resources/styles/ - -cd .. diff --git a/source/carla_shared.py b/source/carla_shared.py index 267042502..660f13a06 100644 --- a/source/carla_shared.py +++ b/source/carla_shared.py @@ -520,41 +520,49 @@ def initHost(initName, libPrefix = None, failError = True): # Set binary dir CWDl = CWD.lower() + print(CWD) + # standalone, installed system-wide linux if libPrefix is not None: - gCarla.pathBinaries = os.path.join(libPrefix, "lib", "carla") + gCarla.pathBinaries = os.path.join(libPrefix, "lib", "carla") + gCarla.pathResources = os.path.join(libPrefix, "share", "carla", "resources") + # standalone, local source + elif CWDl.endswith("source"): + gCarla.pathBinaries = os.path.abspath(os.path.join(CWD, "..", "bin")) + gCarla.pathResources = os.path.join(gCarla.pathBinaries, "resources") + + # plugin elif CWDl.endswith("resources"): - if CWDl.endswith("native-plugins%sresources" % os.sep): - gCarla.pathBinaries = os.path.abspath(os.path.join(CWD, "..", "..", "..", "..", "bin")) - elif "carla-native.lv2" in sys.argv[0].lower(): - gCarla.pathBinaries = os.path.abspath(os.path.join(CWD, "..", "..", "..", "lv2", "carla-native.lv2")) - else: - gCarla.pathBinaries = os.path.abspath(os.path.join(CWD, "..")) + # system-wide + if CWDl.endswith("/share/carla/resources"): + gCarla.pathBinaries = os.path.abspath(os.path.join(CWD, "..", "..", "..", "lib", "carla")) + gCarla.pathResources = CWD - elif CWDl.endswith("source"): - gCarla.pathBinaries = os.path.abspath(os.path.join(CWD, "..", "bin")) + # local source + elif CWDl.endswith("native-plugins%sresources" % os.sep): + gCarla.pathBinaries = os.path.abspath(os.path.join(CWD, "..", "..", "..", "..", "bin")) + gCarla.pathResources = CWD - elif CWDl.endswith("bin") or os.path.isfile(sys.path[0]): - gCarla.pathBinaries = CWD + # other + else: + gCarla.pathBinaries = os.path.abspath(os.path.join(CWD, "..")) + gCarla.pathResources = CWD + + # everything else + else: + gCarla.pathBinaries = CWD + gCarla.pathResources = os.path.join(gCarla.pathBinaries, "resources") # ------------------------------------------------------------- # Fail if binary dir is not found - if not (gCarla.pathBinaries or gCarla.isPlugin): + if not (os.path.exists(gCarla.pathBinaries) or gCarla.isPlugin): if failError: QMessageBox.critical(None, "Error", "Failed to find the carla library, cannot continue") sys.exit(1) return - # ------------------------------------------------------------- - # Set resources dir - - if libPrefix is not None: - gCarla.pathResources = os.path.join(libPrefix, "share", "carla", "resources") - else: - gCarla.pathResources = os.path.join(gCarla.pathBinaries, "resources") - # ------------------------------------------------------------- # Print info diff --git a/source/carla_style.py b/source/carla_style.py index 440f74c22..c6f665df3 100644 --- a/source/carla_style.py +++ b/source/carla_style.py @@ -48,24 +48,33 @@ class CarlaApplication(object): CWDl = CWD.lower() + # standalone, installed system-wide linux if libPrefix is not None: stylesDir = os.path.join(libPrefix, "lib", "carla") + # standalone, local source + elif CWDl.endswith("source"): + stylesDir = os.path.abspath(os.path.join(CWD, "..", "bin")) + + # plugin elif CWDl.endswith("resources"): - if CWDl.endswith("native-plugins%sresources" % os.sep): - stylesDir = os.path.abspath(os.path.join(CWD, "..", "..", "..", "..", "bin")) - elif "carla-native.lv2" in sys.argv[0].lower(): - stylesDir = os.path.abspath(os.path.join(CWD, "..", "..", "..", "lv2", "carla-native.lv2")) - else: + # system-wide + if CWDl.endswith("/share/carla/resources"): stylesDir = os.path.abspath(os.path.join(CWD, "..", "..", "..", "lib", "carla")) - elif CWDl.endswith("source"): - stylesDir = os.path.abspath(os.path.join(CWD, "..", "bin")) + # local source + elif CWDl.endswith("native-plugins%sresources" % os.sep): + stylesDir = os.path.abspath(os.path.join(CWD, "..", "..", "..", "..", "bin")) - elif CWDl.endswith("bin") or os.path.isfile(sys.path[0]): + # other + else: + stylesDir = os.path.abspath(os.path.join(CWD, "..")) + + # everything else + else: stylesDir = CWD - if stylesDir and os.path.exists(stylesDir): + if os.path.exists(stylesDir): QApplication.addLibraryPath(stylesDir) elif not config_UseQt5: