diff --git a/packaging/appimage/3rdparty/ext_frei0r/CMakeLists.txt b/packaging/appimage/3rdparty/ext_frei0r/CMakeLists.txt index 6245963a1..654339447 100644 --- a/packaging/appimage/3rdparty/ext_frei0r/CMakeLists.txt +++ b/packaging/appimage/3rdparty/ext_frei0r/CMakeLists.txt @@ -1,8 +1,7 @@ ExternalProject_Add( ext_frei0r DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} GIT_REPOSITORY https://github.com/dyne/frei0r.git CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} -DWITHOUT_OPENCV:BOOL=ON - DEPENDS ext_ffmpeg ) diff --git a/packaging/appimage/3rdparty/ext_jack/CMakeLists.txt b/packaging/appimage/3rdparty/ext_jack/CMakeLists.txt new file mode 100644 index 000000000..af1017559 --- /dev/null +++ b/packaging/appimage/3rdparty/ext_jack/CMakeLists.txt @@ -0,0 +1,12 @@ +ExternalProject_Add( + ext_jack + DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} + URL https://github.com/jackaudio/jack2/releases/download/v1.9.12/jack2-1.9.12.tar.gz + URL_MD5 6cb5dfea0586bcf009c733c4e4b04a03 + + BUILD_IN_SOURCE 1 + CONFIGURE_COMMAND ./waf configure --prefix=${EXT_INSTALL_DIR} + BUILD_ALWAYS TRUE + BUILD_COMMAND ./waf build + INSTALL_COMMAND ./waf install +) diff --git a/packaging/appimage/3rdparty/ext_sox/CMakeLists.txt b/packaging/appimage/3rdparty/ext_sox/CMakeLists.txt new file mode 100644 index 000000000..0aa85793b --- /dev/null +++ b/packaging/appimage/3rdparty/ext_sox/CMakeLists.txt @@ -0,0 +1,10 @@ +ExternalProject_Add( + ext_sox + DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} + URL https://downloads.sourceforge.net/project/sox/sox/14.4.2/sox-14.4.2.tar.gz + URL_MD5 d04fba2d9245e661f245de0577f48a33 + + CONFIGURE_COMMAND /configure --prefix=${EXT_INSTALL_DIR} + BUILD_COMMAND $(MAKE) + INSTALL_COMMAND $(MAKE) install +) diff --git a/packaging/appimage/3rdparty/ext_vidstab/CMakeLists.txt b/packaging/appimage/3rdparty/ext_vidstab/CMakeLists.txt new file mode 100644 index 000000000..fddef9f91 --- /dev/null +++ b/packaging/appimage/3rdparty/ext_vidstab/CMakeLists.txt @@ -0,0 +1,8 @@ +ExternalProject_Add( + ext_vidstab + DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} + GIT_REPOSITORY https://github.com/georgmartius/vid.stab.git + + CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} + +) diff --git a/packaging/appimage/build-dependencies.sh b/packaging/appimage/build-dependencies.sh index 4cfba2352..794d85820 100755 --- a/packaging/appimage/build-dependencies.sh +++ b/packaging/appimage/build-dependencies.sh @@ -1,135 +1,137 @@ #!/bin/bash # Halt on errors set -e # Be verbose set -x # Make sure the base dependencies are installed #apt-get update #apt-get -y install build-essential perl python git '^libxcb.*-dev' libx11-xcb-dev \ # libglu1-mesa-dev libxrender-dev libxi-dev flex bison gperf libicu-dev ruby #apt-get -y install cmake3 wget tar bzip2 xz-utils libtool libfile-which-perl automake gcc-4.8 patch \ # g++-4.8 zlib1g-dev libglib2.0-dev libc6-dev libeigen3-dev libssl-dev \ # libcppunit-dev libstdc++-4.8-dev libfreetype6-dev libfontconfig1-dev liblcms2-dev \ # mesa-common-dev libaio-dev lzma liblzma-dev\ # libpulse-dev libsox-dev liblist-moreutils-perl libxml-parser-perl \ # libjack-dev autopoint language-pack-en-base #apt-get -y install libpixman-1-dev docbook-xml docbook-xsl libattr1-dev # Extra dependencies for KDE AppImage Base #apt-get -y install liblist-moreutils-perl libtool libpixman-1-dev # Read in our parameters export BUILD_PREFIX=$1 export KDENLIVE_SOURCES=$2 # qjsonparser, used to add metadata to the plugins needs to work in a en_US.UTF-8 environment. # That's not always the case, so make sure it is export LC_ALL=en_US.UTF-8 export LANG=en_us.UTF-8 export CC=/usr/bin/gcc-6 export CXX=/usr/bin/g++-6 # We want to use $prefix/deps/usr/ for all our dependencies export DEPS_INSTALL_PREFIX=$BUILD_PREFIX/deps/usr export DOWNLOADS_DIR=$BUILD_PREFIX/downloads # Setup variables needed to help everything find what we build export LD_LIBRARY_PATH=$DEPS_INSTALL_PREFIX/lib:$DEPS_INSTALL_PREFIX/openssl/lib:$LD_LIBRARY_PATH export PATH=$DEPS_INSTALL_PREFIX/bin:$DEPS_INSTALL_PREFIX/openssl/bin:$PATH export PKG_CONFIG_PATH=$DEPS_INSTALL_PREFIX/share/pkgconfig:$DEPS_INSTALL_PREFIX/lib/pkgconfig:$DEPS_INSTALL_PREFIX/openssl/lib/pkgconfig:/usr/lib/pkgconfig:$PKG_CONFIG_PATH # A kdenlive build layout looks like this: # kdenlive/ -- the source directory # downloads/ -- downloads of the dependencies from files.kde.org # deps-build/ -- build directory for the dependencies # deps/ -- the location for the built dependencies # build/ -- build directory for kdenlive itself # kdenlive.appdir/ -- install directory for kdenlive and the dependencies # Make sure our downloads directory exists if [ ! -d $DOWNLOADS_DIR ] ; then mkdir -p $DOWNLOADS_DIR fi # Make sure our build directory exists if [ ! -d $BUILD_PREFIX/deps-build/ ] ; then mkdir -p $BUILD_PREFIX/deps-build/ fi # The 3rdparty dependency handling in Kdenlive also requires the install directory to be pre-created if [ ! -d $DEPS_INSTALL_PREFIX ] ; then mkdir -p $DEPS_INSTALL_PREFIX fi # Switch to our build directory as we're basically ready to start building... cd $BUILD_PREFIX/deps-build/ # Configure the dependencies for building cmake $KDENLIVE_SOURCES/packaging/appimage/3rdparty -DCMAKE_INSTALL_PREFIX=$DEPS_INSTALL_PREFIX -DEXT_INSTALL_DIR=$DEPS_INSTALL_PREFIX -DEXT_DOWNLOAD_DIR=$DOWNLOADS_DIR # Now start building everything we need, in the appropriate order cmake --build . --target ext_iconv cmake --build . --target ext_lzma cmake --build . --target ext_xml cmake --build . --target ext_gettext cmake --build . --target ext_xslt cmake --build . --target ext_png # cmake --build . --target ext_jpeg #this causes build failures in Qt 5.10 cmake --build . --target ext_qt2 cmake --build . --target ext_boost cmake --build . --target ext_gpgme cmake --build . --target ext_frameworks cmake --build . --target ext_libsndfile cmake --build . --target ext_libsamplerate cmake --build . --target ext_nasm cmake --build . --target ext_yasm cmake --build . --target ext_alsa cmake --build . --target ext_sdl2 cmake --build . --target ext_fftw3 cmake --build . --target ext_fftw3f # ladspa expects fft3w.pc pkgconfig files cp $DEPS_INSTALL_PREFIX/lib/pkgconfig/fftwf.pc $DEPS_INSTALL_PREFIX/lib/pkgconfig/fftw3f.pc cp $DEPS_INSTALL_PREFIX/lib/pkgconfig/fftw.pc $DEPS_INSTALL_PREFIX/lib/pkgconfig/fftw3.pc -cmake --build . --target ext_ladspa - cmake --build . --target ext_x264 cmake --build . --target ext_x265 # libvpx does not compile with this gcc6 version export CC=/usr/bin/gcc export CXX=/usr/bin/g++ cmake --build . --target ext_libvpx export CC=/usr/bin/gcc-6 export CXX=/usr/bin/g++-6 cmake --build . --target ext_ffmpeg +cmake --build . --target ext_sox +cmake --build . --target ext_jack +cmake --build . --target ext_ladspa cmake --build . --target ext_cairo cmake --build . --target ext_harfbuzz cmake --build . --target ext_pango cmake --build . --target ext_gdkpixbuf cmake --build . --target ext_gtk+ cmake --build . --target ext_frei0r +cmake --build . --target ext_vidstab cmake --build . --target ext_mlt cmake --build . --target ext_kbookmarks cmake --build . --target ext_kxmlgui cmake --build . --target ext_kconfigwidgets cmake --build . --target ext_knotifyconfig cmake --build . --target ext_knewstuff cmake --build . --target ext_kdeclarative cmake --build . --target ext_breezeicons cmake --build . --target ext_kcrash cmake --build . --target ext_breeze