diff --git a/.travis.yml b/.travis.yml index fc8200b..0cafbc8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,9 +17,9 @@ matrix: sudo: required dist: xenial cache: ccache - before_install: autobuild/install-requirements-linux.sh + before_install: ./1-setup-linux-native.sh before_script: ccache -s - script: autobuild/synfigstudio-linux-build.sh + script: ./2-build-production.sh after_script: autobuild/synfigrenderer-regression-test.sh - os: osx @@ -31,9 +31,9 @@ matrix: - HOMEBREW_NO_ANALYTICS=1 cache: ccache before_install: brew reinstall libtool # fix no sed - install: autobuild/osx/brew/install-requirements-osx.sh + install: ./1-setup-osx-brew.sh before_script: ccache -s - script: autobuild/osx/brew/synfigstudio-osx-build.sh + script: ./2-build-production.sh after_script: ccache -s # show ccache stats - os: osx @@ -46,11 +46,11 @@ matrix: cache: ccache # oclint already uninstalled (fixed in Nov 2018) #before_install: brew cask uninstall oclint # fix gcc installing - install: autobuild/osx/brew/install-requirements-osx.sh + install: ./1-setup-osx-brew.sh before_script: - ccache -s - ccache --set-config=compression=true - script: autobuild/osx/brew/synfigstudio-osx-build.sh + script: ./2-build-production.sh after_script: ccache -s # show ccache stats #allow_failures: diff --git a/1-setup-linux-native.sh b/1-setup-linux-native.sh new file mode 100755 index 0000000..ca23648 --- /dev/null +++ b/1-setup-linux-native.sh @@ -0,0 +1,188 @@ +#!/bin/bash + +set -e + +echo "Checking dependencies..." +if which apt-get >/dev/null; then + if [ ! -f /etc/altlinux-release ]; then + # + # Ubuntu/Debian + # + PKG_LIST=" \ + build-essential \ + autoconf automake autopoint \ + shared-mime-info \ + libltdl3-dev \ + libtool \ + intltool \ + gettext \ + libpng-dev \ + libfftw3-dev \ + fontconfig \ + libfreetype6-dev \ + libfontconfig1-dev \ + libxml2-dev \ + libtiff5-dev \ + libmlt-dev libmlt++-dev \ + x11proto-xext-dev libdirectfb-dev libxfixes-dev libxinerama-dev libxdamage-dev libxcomposite-dev libxcursor-dev libxft-dev libxrender-dev libxt-dev libxrandr-dev libxi-dev libxext-dev libx11-dev \ + libatk1.0-dev \ + libgl1-mesa-dev \ + imagemagick \ + libsdl2-dev \ + libsdl2-mixer-dev \ + bzip2 + git-core \ + libmng-dev \ + libjack-jackd2-dev \ + libgtkmm-3.0-dev \ + libglibmm-2.4-dev \ + libsigc++-2.0-dev \ + libxml++2.6-dev \ + libboost-system-dev \ + libmagick++-dev \ + " + else + # + # ALT Linux case + # + PKG_LIST=" \ + rpm-build \ + git-core \ + shared-mime-info \ + libltdl3-devel \ + intltool \ + gettext \ + libpng12-devel \ + libjpeg-devel \ + fontconfig \ + libfreetype-devel \ + fontconfig-devel \ + libxml2-devel \ + libtiff-devel \ + libjasper-devel \ + libdirectfb-devel \ + libfftw3-dev \ + libXfixes-devel \ + libXinerama-devel \ + libXdamage-devel \ + libXcomposite-devel \ + libXcursor-devel \ + libXft-devel \ + libXrender-devel \ + libXt-devel \ + libXrandr-devel \ + libXi-devel \ + libXext-devel \ + libX11-devel \ + libatk-devel \ + bzip2 \ + libmng-devel \ + libgtkmm3-devel \ + libglibmm-devel \ + libsigc++2-devel \ + libxml++2-devel \ + " + fi + echo "Running apt-get (you need root privelegies to do that)..." + echo + sudo apt-get update -qq || true + sudo apt-get install -y -q $PKG_LIST + +elif which dnf >/dev/null; then + # + # Fedora >= 22 + # + PKG_LIST="git \ + intltool \ + libpng-devel \ + libjpeg-devel \ + fftw-devel \ + freetype-devel \ + fontconfig-devel \ + atk-devel \ + pango-devel \ + cairo-devel \ + gtk3-devel \ + gettext-devel \ + libxml2-devel \ + libxml++-devel \ + gcc-c++ \ + autoconf \ + automake \ + libtool \ + libtool-ltdl-devel \ + boost-devel \ + shared-mime-info \ + OpenEXR-devel \ + libmng-devel \ + ImageMagick-c++-devel \ + jack-audio-connection-kit-devel \ + mlt-devel \ + ocl-icd-devel \ + opencl-headers \ + gtkmm30-devel \ + glibmm24-devel \ + SDL2-devel \ + SDL2_mixer-devel" + if ! ( rpm -qv $PKG_LIST ); then + echo "Running dnf (you need root privelegies to do that)..." + su -c "dnf install $PKG_LIST" || true + fi +elif which yum >/dev/null; then + # + # Fedora + # + PKG_LIST="git \ + intltool \ + libpng-devel \ + libjpeg-devel \ + fftw-devel \ + freetype-devel \ + fontconfig-devel \ + atk-devel \ + pango-devel \ + cairo-devel \ + gtk3-devel \ + gettext-devel \ + libxml2-devel \ + libxml++-devel \ + gcc-c++ \ + autoconf \ + automake \ + libtool \ + libtool-ltdl-devel \ + boost-devel \ + shared-mime-info \ + OpenEXR-devel \ + libmng-devel \ + ImageMagick-c++-devel \ + jack-audio-connection-kit-devel \ + mlt-devel \ + ocl-icd-devel \ + opencl-headers \ + gtkmm30-devel \ + glibmm24-devel \ + SDL2-devel \ + SDL2_mixer-devel" + if ! ( rpm -qv $PKG_LIST ); then + echo "Running yum (you need root privelegies to do that)..." + su -c "yum install $PKG_LIST" || true + fi +elif which zypper >/dev/null; then + # + # OpenSUSE + # + PKG_LIST="git libpng-devel libjpeg-devel freetype-devel fontconfig-devel atk-devel pango-devel cairo-devel gtk3-devel gettext-devel libxml2-devel libxml++-devel gcc-c++ autoconf automake libtool libtool-ltdl-devel boost-devel shared-mime-info" + PKG_LIST="${PKG_LIST} OpenEXR-devel libmng-devel ImageMagick-c++-devel gtkmm3-devel glibmm2-devel" + + if ! ( rpm -qv $PKG_LIST ); then + echo "Running zypper (you need root privelegies to do that)..." + su -c "zypper install $PKG_LIST" || true + fi +else + echo "WARNING: This build script does not works with package mangement systems other than yum, zypper or apt! You should install dependent packages manually." + echo "REQUIRED PACKAGES: " + echo "libpng-devel libjpeg-devel freetype-devel fontconfig-devel atk-devel pango-devel cairo-devel gtk3-devel gettext-devel libxml2-devel libxml++-devel gcc-c++ autoconf automake libtool libtool-ltdl-devel shared-mime-info OpenEXR-devel libmng-devel ImageMagick-c++-devel gtkmm30-devel glibmm24-devel" + echo "" +fi +echo "Done." diff --git a/1-setup-nix.sh b/1-setup-nix.sh new file mode 100755 index 0000000..9af8057 --- /dev/null +++ b/1-setup-nix.sh @@ -0,0 +1,12 @@ +#!/bin/bash +# + +set -e + +WORKDIR=`dirname "$0"` +pushd "${WORKDIR}" > /dev/null +WORKDIR=`pwd` +popd > /dev/null + +. $HOME/.nix-profile/etc/profile.d/nix.sh +nix-shell "${WORKDIR}/autobuild/default.nix" diff --git a/1-setup-osx-brew.sh b/1-setup-osx-brew.sh new file mode 100755 index 0000000..2c4adea --- /dev/null +++ b/1-setup-osx-brew.sh @@ -0,0 +1,63 @@ +#!/bin/bash + +# zlib not required because it is already part of OSX + +# Travis-CI workaround +# When we install a package that is already installed inside the travis VM, and we have an outdated brew +# (for faster build), then we get an error and the build fails. Unfortunately brew doesn't have switch to skip +# already installed packages (https://github.com/Homebrew/brew/issues/2491) and recommends to install using +# brew bundle. But! `brew bundle` can't be run without updating brew and fails with error "Your Homebrew is outdated". +# Yep, i know what and this is what i want. So here is workaround: first we check which package is not already installed, +# and if not then install it. + + +set -e + +if ! ( which brew >/dev/null ); then + echo "No brew found. Installing..." + /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" +fi + +WORKDIR=`dirname "$0"` +pushd "${WORKDIR}" > /dev/null +WORKDIR=`pwd` +popd > /dev/null + +PACKAGES="adwaita-icon-theme autoconf automake ccache libtool intltool imagemagick gettext pkg-config glibmm libxml++ cairo fftw pango mlt boost gtkmm3 sdl2 sdl2_mixer" + +export HOMEBREW_NO_AUTO_UPDATE=1 +export HOMEBREW_NO_ANALYTICS=1 + +export OS=`uname -r | cut -d "." -f1` + +if [ $OS -lt 15 ] && [ -z "$TRAVIS_BUILD_DIR" ]; then # For OSX < 10.11 + cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/ + git fetch --unshallow || true + git checkout a91becd6afc177b0cada2cf9cce2e3bde514053b # librsvg 2.40.20 (wothout rust) 2017.12.16 + cd /usr/local/Homebrew/ + git checkout 1.4.1 + brew info gobject-introspection | grep --quiet 'Not installed' && brew install ${WORKDIR}/autobuild/osx/gobject-introspection.rb +fi + +for pkg in $PACKAGES; +do + echo "Checking $pkg..." + brew info "$pkg" | grep --quiet 'Not installed' && brew install "$pkg" +done + +#HOMEBREW_NO_AUTO_UPDATE=1 brew bundle -no-upgrade --file=-<<-EOF +#brew "autoconf" +#brew "automake" +#brew "boost" +#brew "cairo" +#brew "fftw" +#brew "gettext" +#brew "glibmm" +#brew "gtkmm3" +#brew "intltool" +#brew "libtool" +#brew "libxml++" +#brew "mlt" +#brew "pango" +#brew "pkg-config" +#EOF diff --git a/2-build-cmake.sh b/2-build-cmake.sh new file mode 100755 index 0000000..0c34eb2 --- /dev/null +++ b/2-build-cmake.sh @@ -0,0 +1,57 @@ +#!/usr/bin/env bash +# +# = Usage: = +# ./build-cmake.sh [OPTIONS] +# +# OPTIONS +# -d = Debug build (standard) +# -r = Release build +# -n = Don't write the run-portable.sh to the out dir +# -j NUMBER = Set parallel make jobs (1 <= NUMBER <= 999) (standard is 1) +# -p = Only print out the current active build settings and exit +# --data-prefix = The installed Synfig Studio looks for it's data (icons, sounds, etc) in [DATA_PREFIX]/share/. This option sets a custom DATA_PREFIX. (Standard is the out directory) +# +# = Examples = +# Make a debug build +# ./build-cmake -d +# +# Make a release build +# ./build-cmake -r +# +# Make a release build with two parallel make jobs +# ./build-cmake -r -j 2 + +#Define dir paths +pwd_dir="$PWD" +absolute_script_path="$(readlink -f "$0")" +absolute_base_dir="$(dirname "$absolute_script_path")" + +cd ${absolute_base_dir} + +# Include build folder names and build functions +source ./autobuild/build-cmake-common.sh + +if [ $? -ne 0 ] + then + echo "Failed to include: ./autobuild/build-cmake-common.sh" + cd "$pwd_dir" + exit +fi + +# Parse build options +parse_build_arguments "$@" + +# Print build settings +print_build_settings + +# Exec build steps +clean_build_dir +gen_dir_structure +build_etl +build_synfig_core +build_synfig_studio +write_portable_run_code + +# Print success, restore the current directory and exit +echo "Build successfull to: ${absolute_base_dir}/${cmake_build_dir}/${out_dir}" +cd "$pwd_dir" diff --git a/2-build-debug.sh b/2-build-debug.sh new file mode 100755 index 0000000..e7d76e2 --- /dev/null +++ b/2-build-debug.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash +# +# = Usage: = +# ./build.sh [package] [mode] +# +# where: +# - [package] is all|etl|core|studio +# - [mode] is full|clean|configure|make +# +# +# = Examples: = +# +# == Standart mode == +# Configure and (re)build: +# ./build.sh +# Configure and make clean build: +# ./build.sh all full +# Quick rebuild (without configure): +# ./build.sh all make +# Quick rebuild od synfig-core (without configure): +# ./build.sh core make + +set -e + +export TYPE="_debug" +export DEBUG=1 + +WORKDIR=`dirname "$0"` +pushd "${WORKDIR}" > /dev/null +WORKDIR=`pwd` +popd > /dev/null + +[ -d "${WORKDIR}/${TYPE}" ] || mkdir "${WORKDIR}/${TYPE}" + +[ -f "${WORKDIR}/build.conf" ] && cp -f "${WORKDIR}/build.conf" "${WORKDIR}/${TYPE}/build.conf" + +cd "${WORKDIR}/${TYPE}" + +bash ${WORKDIR}/autobuild/build.sh "$1" "$2" diff --git a/2-build-production.sh b/2-build-production.sh new file mode 100755 index 0000000..d9b229e --- /dev/null +++ b/2-build-production.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash +# +# = Usage: = +# ./build.sh [package] [mode] +# +# where: +# - [package] is all|etl|core|studio +# - [mode] is full|clean|configure|make +# +# +# = Examples: = +# +# == Standart mode == +# Configure and (re)build: +# ./build.sh +# Configure and make clean build: +# ./build.sh all full +# Quick rebuild (without configure): +# ./build.sh all make +# Quick rebuild of synfig-core (without configure): +# ./build.sh core make + +set -e + +export TYPE="_production" +export DEBUG=0 + +WORKDIR=`dirname "$0"` +pushd "${WORKDIR}" > /dev/null +WORKDIR=`pwd` +popd > /dev/null + +[ -d "${WORKDIR}/${TYPE}" ] || mkdir "${WORKDIR}/${TYPE}" + +[ -f "${WORKDIR}/build.conf" ] && cp -f "${WORKDIR}/build.conf" "${WORKDIR}/${TYPE}/build.conf" + +cd "${WORKDIR}/${TYPE}" + +bash ${WORKDIR}/autobuild/build.sh "$1" "$2" diff --git a/3-package-osx-dmg.sh b/3-package-osx-dmg.sh new file mode 100755 index 0000000..1ac36f8 --- /dev/null +++ b/3-package-osx-dmg.sh @@ -0,0 +1,369 @@ +#!/bin/bash +# + + +#======= HEADER =========== + +set -e + +export RELEASE=1 +export BUILDROOT_VERSION=1 + +#if [ `whoami` != "root" ]; then +# echo "Please use sudo to run this script. Aborting." +# exit 1 +#fi + +export SCRIPTPATH=$(cd `dirname "$0"`; pwd) +export MACPORTS="/usr/local/opt" # dictated by HomeBrew defaults + + + + +#======= HEADER END =========== + +smart_find() +{ + if [ -f "$1" ]; then + #HomeBrew + echo "$1" + else + #MacPorts + BINARY=`basename "$1"` + echo "$MACPORTS/bin/$BINARY" + fi +} + + +mkapp() +{ + cd ${SCRIPTPATH} + VERSION=`get_version_release_string` + echo Now trying to build your new SynfigStudio app ... + + APPDIR="${SCRIPTPATH}/_production/SynfigStudio.app" + #APPDIR_FINAL="${SCRIPTPATH}/_production/SynfigStudio.app" + APPCONTENTS="${APPDIR}/Contents/Resources" + + # initial cleanup + [ ! -d ${APPDIR} ] || rm -rf ${APPDIR} + [ ! -d ${APPDIR_FINAL} ] || rm -rf ${APPDIR_FINAL} + + cp -Rf "${SCRIPTPATH}/autobuild/app-template" "$APPDIR" + mv ${APPDIR}/Contents/MacOS/synfigstudio $APPDIR/Contents/MacOS/SynfigStudio || true + + #mkdir -p "$APPCONTENTS/bin" + #cp -R "$MACPORTS/bin/ffmpeg" "$APPCONTENTS/bin" + #"$SCRIPTPATH/macos-gather-deps.sh" "$APPCONTENTS/bin/ffmpeg" + #exit 0 + + #cp -R "$MACPORTS/synfig/bin/synfig" "$APPCONTENTS/bin" + mkdir -p "${APPCONTENTS}/etc" + mkdir -p "${APPCONTENTS}/share" + + # Synfig + "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "`smart_find ${SCRIPTPATH}/_production/build/bin/synfig`" "${SCRIPTPATH}/_production/build" "$APPCONTENTS" + + "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "`smart_find ${SCRIPTPATH}/_production/build/bin/synfigstudio`" "${SCRIPTPATH}/_production/build" "$APPCONTENTS" + pushd "${SCRIPTPATH}/_production/build/lib/synfig/modules/" + for FILE in `ls -1 *.so`; do + "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "${SCRIPTPATH}/_production/build/lib/synfig/modules/$FILE" "${SCRIPTPATH}/_production/build" "$APPCONTENTS" + done + cp -R ${SCRIPTPATH}/_production/build/lib/synfig/modules/*.la "$APPCONTENTS/lib/synfig/modules/" + popd + cp -R "${SCRIPTPATH}/_production/build/etc" "$APPCONTENTS/" + cp -R "${SCRIPTPATH}/_production/build/share" "$APPCONTENTS/" + + "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "`smart_find $MACPORTS/ffmpeg/bin/ffmpeg`" "$MACPORTS" "$APPCONTENTS" + "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "`smart_find $MACPORTS/ffmpeg/bin/ffprobe`" "$MACPORTS" "$APPCONTENTS" + + "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "`smart_find $MACPORTS/libdv/bin/encodedv`" "$MACPORTS" "$APPCONTENTS" + "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "`smart_find $MACPORTS/sox/bin/sox`" "$MACPORTS" "$APPCONTENTS" + + # Gtk3 + "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "`smart_find $MACPORTS/gdk-pixbuf/bin/gdk-pixbuf-query-loaders`" "$MACPORTS" "$APPCONTENTS" + "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "`smart_find $MACPORTS/gdk-pixbuf/bin/gdk-pixbuf-pixdata`" "$MACPORTS" "$APPCONTENTS" + "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "`smart_find $MACPORTS/gtk+3/bin/gtk3-demo`" "$MACPORTS" "$APPCONTENTS" + + if [ -d "$MACPORTS/gdk-pixbuf" ]; then + PKG_PREFIX="/gdk-pixbuf" + else + PKG_PREFIX="" + fi + pushd "${MACPORTS}${PKG_PREFIX}/lib/gdk-pixbuf-2.0/2.10.0/loaders/" + for FILE in `ls -1 *.so`; do + "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "${MACPORTS}${PKG_PREFIX}/lib/gdk-pixbuf-2.0/2.10.0/loaders/$FILE" "$MACPORTS" "$APPCONTENTS" + done + popd + cp -R "${MACPORTS}${PKG_PREFIX}/share/gir-1.0" "${APPCONTENTS}/share/" + cp -R "${MACPORTS}${PKG_PREFIX}/share/locale" "${APPCONTENTS}/share/" + + if [ -d "$MACPORTS/librsvg-2.40.20" ]; then + PKG_PREFIX="/librsvg-2.40.20" + elif [ -d "$MACPORTS/librsvg" ]; then + PKG_PREFIX="/librsvg" + else + PKG_PREFIX="" + fi + pushd "${MACPORTS}${PKG_PREFIX}/lib/gdk-pixbuf-2.0/2.10.0/loaders/" + for FILE in `ls -1 *.so`; do + "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "${MACPORTS}${PKG_PREFIX}/lib/gdk-pixbuf-2.0/2.10.0/loaders/$FILE" "$MACPORTS" "$APPCONTENTS" + done + popd + + if [ -d "$MACPORTS/gtk+3" ]; then + PKG_PREFIX="/gtk+3" + else + PKG_PREFIX="" + fi + pushd "${MACPORTS}${PKG_PREFIX}/lib/gtk-3.0/3.0.0/immodules/" + for FILE in `ls -1 *.so`; do + "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "${MACPORTS}${PKG_PREFIX}/lib/gtk-3.0/3.0.0/immodules/$FILE" "$MACPORTS" "$APPCONTENTS" + done + popd + pushd "${MACPORTS}${PKG_PREFIX}/lib/gtk-3.0/3.0.0/printbackends/" + for FILE in `ls -1 *.so`; do + "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "${MACPORTS}${PKG_PREFIX}/lib/gtk-3.0/3.0.0/printbackends/$FILE" "$MACPORTS" "$APPCONTENTS" + done + popd + cp -R "${MACPORTS}${PKG_PREFIX}/etc/gtk-3.0" "${APPCONTENTS}/etc/" + cp -R "${MACPORTS}${PKG_PREFIX}/lib/girepository-1.0" "${APPCONTENTS}/lib/" + cp -R "${MACPORTS}${PKG_PREFIX}/share/icons" "${APPCONTENTS}/share/" + cp -R "${MACPORTS}${PKG_PREFIX}/share/gir-1.0" "${APPCONTENTS}/share/" + cp -R "${MACPORTS}${PKG_PREFIX}/share/glib-2.0" "${APPCONTENTS}/share/" + cp -R "${MACPORTS}${PKG_PREFIX}/share/locale" "${APPCONTENTS}/share/" + cp -R "${MACPORTS}${PKG_PREFIX}/share/themes" "${APPCONTENTS}/share/" + + if [ -d "$MACPORTS/gsettings-desktop-schemas" ]; then + PKG_PREFIX="/gsettings-desktop-schemas" + else + PKG_PREFIX="" + fi + cp -R "${MACPORTS}${PKG_PREFIX}/share/glib-2.0" "${APPCONTENTS}/share/" + glib-compile-schemas "${APPCONTENTS}/share/glib-2.0/schemas/" + + if [ -d "$MACPORTS/hicolor-icon-theme" ]; then + PKG_PREFIX="/hicolor-icon-theme" + else + PKG_PREFIX="" + fi + cp -R "${MACPORTS}${PKG_PREFIX}/share/icons" "${APPCONTENTS}/share/" + + if [ -d "$MACPORTS/adwaita-icon-theme" ]; then + PKG_PREFIX="/adwaita-icon-theme" + else + PKG_PREFIX="" + fi + cp -R "${MACPORTS}${PKG_PREFIX}/share/icons/Adwaita" "${APPCONTENTS}/share/icons/" + + if [ -d "$MACPORTS/cairo" ]; then + PKG_PREFIX="/cairo" + else + PKG_PREFIX="" + fi + pushd "${MACPORTS}${PKG_PREFIX}/lib/cairo/" + for FILE in `ls -1 *.so`; do + "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "${MACPORTS}${PKG_PREFIX}/lib/cairo/$FILE" "$MACPORTS" "$APPCONTENTS" + done + + mkdir -p "${APPCONTENTS}/lib/cairo/" || true + cp -R ${MACPORTS}${PKG_PREFIX}/lib/cairo/*.la "${APPCONTENTS}/lib/cairo/" || true + cp -R ${MACPORTS}${PKG_PREFIX}/lib/cairo/*.a "${APPCONTENTS}/lib/cairo/" || true + popd + #pushd "$MACPORTS/lib/engines/" + #for FILE in `ls -1 *.so`; do + # "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "`smart_find $MACPORTS/lib/engines/$FILE`" "$MACPORTS" "$APPCONTENTS" + #done + #popd + if [ -d "$MACPORTS/glib" ]; then + PKG_PREFIX="/glib" + else + PKG_PREFIX="" + fi + #mkdir -p "${APPCONTENTS}/share/glib-2.0/" + cp -R "${MACPORTS}${PKG_PREFIX}/share/glib-2.0" "${APPCONTENTS}/share/" + cp -R "${MACPORTS}${PKG_PREFIX}/share/locale" "${APPCONTENTS}/share/" + + # Python 3 + if [ -d "$MACPORTS/python3" ]; then + PKG_PREFIX="/python3" + else + PKG_PREFIX="/Library" + fi + pushd "${MACPORTS}${PKG_PREFIX}/Frameworks/Python.framework/Versions/" + PYTHON_VERSION=`ls -1 | head -n 1` + popd + "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "`smart_find $MACPORTS/python3/bin/python3`" "$MACPORTS" "$APPCONTENTS" + "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "${MACPORTS}${PKG_PREFIX}/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/Resources/Python.app/Contents/MacOS/Python" "$MACPORTS" "$APPCONTENTS" + mkdir -p "${APPCONTENTS}/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/lib/python${PYTHON_VERSION}/" + rsync -av --exclude "__pycache__" "${MACPORTS}${PKG_PREFIX}/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/lib/python${PYTHON_VERSION}/" "${APPCONTENTS}/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/lib/python${PYTHON_VERSION}/" + #cp -R "${MACPORTS}${PKG_PREFIX}/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/lib/python3.3" "${APPCONTENTS}/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/lib/" + #find ${APPCONTENTS}/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/lib -name "__pycache__" -exec rm -rf {} \; + + # MLT + if [ -d "$MACPORTS/mlt" ]; then + PKG_PREFIX="/mlt" + else + PKG_PREFIX="" + fi + "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "${MACPORTS}${PKG_PREFIX}/bin/melt" "$MACPORTS" "$APPCONTENTS" + pushd "${MACPORTS}${PKG_PREFIX}/lib/mlt/" + for FILE in `ls -1 *.dylib`; do + "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "${MACPORTS}${PKG_PREFIX}/lib/mlt/$FILE" "$MACPORTS" "$APPCONTENTS" + done + popd + mkdir -p "${APPCONTENTS}/share/" + cp -R "${MACPORTS}${PKG_PREFIX}/share/mlt" "${APPCONTENTS}/share/" + + # ImageMagick + "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "`smart_find $MACPORTS/imagemagick/bin/animate`" "$MACPORTS" "$APPCONTENTS" + "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "`smart_find $MACPORTS/imagemagick/bin/composite`" "$MACPORTS" "$APPCONTENTS" + "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "`smart_find $MACPORTS/imagemagick/bin/convert`" "$MACPORTS" "$APPCONTENTS" + if [ -d "$MACPORTS/imagemagick" ]; then + PKG_PREFIX="/imagemagick" + else + PKG_PREFIX="" + fi + pushd "${MACPORTS}${PKG_PREFIX}/lib/" + IMAGEMAGICK_DIR=`ls -1d ImageMagick* |head -n 1` + popd + pushd "${MACPORTS}${PKG_PREFIX}/lib/${IMAGEMAGICK_DIR}" + IMAGEMAGICK_MODULES_DIR=`ls -1d modules-* |head -n 1` + popd + pushd "${MACPORTS}${PKG_PREFIX}/lib/${IMAGEMAGICK_DIR}" + IMAGEMAGICK_CONFIG_DIR=`ls -1d config-* |head -n 1` + popd + pushd "${MACPORTS}${PKG_PREFIX}/etc" + IMAGEMAGICK_ETC_DIR=`ls -1d ImageMagick-* |head -n 1` + popd + pushd "${MACPORTS}${PKG_PREFIX}/lib/${IMAGEMAGICK_DIR}/${IMAGEMAGICK_MODULES_DIR}/coders/" + for FILE in `ls -1 *.so`; do + "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "${MACPORTS}${PKG_PREFIX}/lib/${IMAGEMAGICK_DIR}/${IMAGEMAGICK_MODULES_DIR}/coders/$FILE" "$MACPORTS" "$APPCONTENTS" + done + cp -R ${MACPORTS}${PKG_PREFIX}/lib/${IMAGEMAGICK_DIR}/${IMAGEMAGICK_MODULES_DIR}/coders/*.la "${APPCONTENTS}/lib/${IMAGEMAGICK_DIR}/${IMAGEMAGICK_MODULES_DIR}/coders/" + popd + pushd "${MACPORTS}${PKG_PREFIX}/lib/${IMAGEMAGICK_DIR}/${IMAGEMAGICK_MODULES_DIR}/filters/" + for FILE in `ls -1 *.so`; do + "$SCRIPTPATH/autobuild/osx/relocate-binary.sh" "${MACPORTS}${PKG_PREFIX}/lib/${IMAGEMAGICK_DIR}/${IMAGEMAGICK_MODULES_DIR}/filters/$FILE" "$MACPORTS" "$APPCONTENTS" + done + cp -R ${MACPORTS}${PKG_PREFIX}/lib/${IMAGEMAGICK_DIR}/${IMAGEMAGICK_MODULES_DIR}/filters/*.la "${APPCONTENTS}/lib/${IMAGEMAGICK_DIR}/${IMAGEMAGICK_MODULES_DIR}/filters/" + popd + cp -R "${MACPORTS}${PKG_PREFIX}/lib/${IMAGEMAGICK_DIR}/${IMAGEMAGICK_CONFIG_DIR}" "${APPCONTENTS}/lib/${IMAGEMAGICK_DIR}/" + cp -R "${MACPORTS}${PKG_PREFIX}/etc/${IMAGEMAGICK_ETC_DIR}" "${APPCONTENTS}/etc/" + + #cp -R "${MACPORTS}/share/icons" "$APPCONTENTS/share/" + #cp -R "${MACPORTS}/share/themes" "$APPCONTENTS/share/" + #cp -R "${MACPORTS}/share/mime" "$APPCONTENTS/share/" + + # app bundle files + echo "*** Please do _NOT_ delete this file. The file script depends on it. ***" > "$APPCONTENTS/v$VERSION" + sed -i "" -e "s/_VERSION_/$VERSION/g" "$APPDIR/Contents/MacOS/SynfigStudio" + sed -i "" -e "s/_VERSION_/$VERSION/g" "$APPDIR/Contents/Info.plist" + + # save information about the ports which make up this build + echo "Synfig Studio $VERSION for Mac OS X" > "$APPCONTENTS/build-info.txt" + date >> "$APPCONTENTS/build-info.txt" + #port installed >> "$APPCONTENTS/build-info.txt" + #sed -i "" -e "s/are currently installed:/were used to build this package:/g" "$APPCONTENTS/build-info.txt" + + #mv "${APPDIR}" "${APPDIR_FINAL}" + + echo + echo "Your new Synfig Studio app bundle should now be ready to run." + echo +} + +mkdmg() +{ + cd "${SCRIPTPATH}/_production/" + + # get OS major version + OSXVER=`uname -r | cut -f 1 -d '.'` + + #VERSION=`synfig --version 2>&1 | cut -d " " -f 2` + VERSION=`get_version_release_string` + #echo Synfig version is: $VERSION + + ARCH=`uname -m` + export FINAL_FILENAME=SynfigStudio-"$VERSION" + + + VOLNAME="SynfigStudio" + TRANSITORY_FILENAME="synfig-wla.sparseimage" + [ ! -f "$TRANSITORY_FILENAME" ] || rm -f "$TRANSITORY_FILENAME" + + APPDIR="${SCRIPTPATH}/_production/SynfigStudio.app" + + /usr/bin/hdiutil detach /Volumes/"$VOLNAME" || true + + echo "Creating and attaching disk image..." + [ ! -e "$TRANSITORY_FILENAME" ] || rm -rf "$TRANSITORY_FILENAME" + /usr/bin/hdiutil create -type SPARSE -size 700m -fs "HFS+" -volname "$VOLNAME" -attach "$TRANSITORY_FILENAME" + + echo "Copying files to disk image..." + cp -R $APPDIR /Volumes/"$VOLNAME"/SynfigStudio.app + cp -R ${SCRIPTPATH}/synfig-studio/COPYING /Volumes/"$VOLNAME"/LICENSE.txt + cp -R ${SCRIPTPATH}/autobuild/osx/README_FIRST.pdf /Volumes/"$VOLNAME"/README_FIRST.pdf + mv /Volumes/"$VOLNAME"/SynfigStudio.app/Contents/MacOS/synfigstudio /Volumes/"$VOLNAME"/SynfigStudio.app/Contents/MacOS/SynfigStudio || true + + # open the window so that the icon database is generated + open /Volumes/"$VOLNAME" || true + sleep 3 + + echo "Detaching disk image..." + /usr/bin/hdiutil detach /Volumes/"$VOLNAME" + + echo "Compressing disk image..." + [ ! -e "./${FINAL_FILENAME}.dmg" ] || rm -rf "./${FINAL_FILENAME}.dmg" + /usr/bin/hdiutil convert -imagekey zlib-level=9 -format UDBZ "$TRANSITORY_FILENAME" -o ./"${FINAL_FILENAME}" + + echo "Removing uncompressed transitory dmg..." + /bin/rm -f "$TRANSITORY_FILENAME" + + echo "Done!" +} + +get_version_release_string() +{ + pushd "$SCRIPTPATH" > /dev/null + VERSION=`cat synfig-core/configure.ac |egrep "AC_INIT\(\[Synfig Core\],"| sed "s|.*Core\],\[||" | sed "s|\],\[.*||"` + #if [ -z $BREED ]; then + # BREED="`git branch -a --no-color --contains HEAD | sed -e s/\*\ // | sed -e s/\(no\ branch\)// | tr '\n' ' ' | tr -s ' ' | sed s/^' '//`" + # if ( echo $BREED | egrep origin/master > /dev/null ); then + # #give a priority to master branch + # BREED='master' + # else + # BREED=`echo $BREED | cut -d ' ' -f 1` + # BREED=${BREED##*/} + # fi + # BREED=${BREED%_master} + #fi + if [[ ${VERSION##*-RC} != ${VERSION} ]]; then + #if [[ $BREED == 'master' ]]; then + BREED=rc${VERSION##*-RC} + #else + # BREED=rc${VERSION##*-RC}.$BREED + #fi + VERSION=${VERSION%%-*} + fi + if [ ! -z $BREED ]; then + BREED=`echo $BREED | tr _ . | tr - .` # No "-" or "_" characters, becuse RPM and DEB complain + BREED=.$BREED + fi + REVISION=`git show --pretty=format:%ci HEAD | head -c 10 | tr -d '-'` + echo "$VERSION-$REVISION$BREED" + #echo "$VERSION-$REVISION$BREED.$RELEASE" + popd >/dev/null +} + + + +###=================================== MAIN ====================================== + +main() # dummy for navigation +{ + true +} + +mkapp +mkdmg diff --git a/README-CMake.md b/README-CMake.md index 38cad10..b13f5a7 100644 --- a/README-CMake.md +++ b/README-CMake.md @@ -27,6 +27,7 @@ You need development & library packages of the following libs: - pango - gtkmm-3.0 (only for studio) - gettext +- SDL2_mixer - some threading support (e.g. pthread) Generally CMake will throw error if it doesn't find something, so you can just @@ -87,7 +88,7 @@ $ popd # synfig-studio You can also build synfig-studio and run it without installation. To build change the directory to the project path (where README-CMake.md is located) and start the build process with: ``` -$ ./build-cmake.sh +$ ./2-build-cmake.sh ``` This can take some time. diff --git a/autobuild/app-template/Contents/Info.plist b/autobuild/app-template/Contents/Info.plist deleted file mode 100644 index 550f8e9..0000000 --- a/autobuild/app-template/Contents/Info.plist +++ /dev/null @@ -1,76 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - - CFBundleGetInfoString - _VERSION_, © 2001-2008 The Synfig Team - CFBundleShortVersionString - _VERSION_ - CFBundleVersion - _VERSION_ - NSHumanReadableCopyright - © 2001-2008 The Synfig Team - CFBundleIconFile - SynfigStudio - CFBundleDocumentTypes - - - CFBundleTypeExtensions - - sif - SIF - - CFBundleTypeIconFile - sif_file.icns - CFBundleTypeMIMETypes - - image/x-sif - - CFBundleTypeName - Synfig Animation - CFBundleTypeOSTypes - - SIF - - CFBundleTypeRole - Editor - LSIsAppleDefaultForType - - LSItemContentTypes - - org.synfig.sif - - - - CFBundleTypeExtensions - - sifz - SIFZ - - CFBundleTypeIconFile - sif_file.icns - CFBundleTypeMIMETypes - - image/x-compressed-sif - - CFBundleTypeName - Synfig Compressed Animation - CFBundleTypeOSTypes - - SIFZ - - CFBundleTypeRole - Editor - LSIsAppleDefaultForType - - LSItemContentTypes - - org.synfig.sifz - - - - - diff --git a/autobuild/app-template/Contents/MacOS/SynfigStudio b/autobuild/app-template/Contents/MacOS/SynfigStudio deleted file mode 100755 index fbcab9f..0000000 --- a/autobuild/app-template/Contents/MacOS/SynfigStudio +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh - -set -e - -DIR=`dirname "$0"` -cd "$DIR/../Resources" -CWD=`pwd` - -#export DYLD_LIBRARY_PATH="$CWD/lib:$CWD/synfig/lib:$CWD/Library/Frameworks/Python.framework/Versions/3.3/:/Volumes/data/SynfigStudio.app/Contents/Resources/Library/Frameworks/Python.framework/Versions/3.3/Resources/Python.app/Contents/MacOS/:$DYLD_LIBRARY_PATH" - -export GTK_EXE_PREFIX="$CWD" -export GTK_DATA_PREFIX="$CWD/share" - -export GSETTINGS_SCHEMA_DIR="$CWD/share/glib-2.0/schemas/" -export FONTCONFIG_PATH="$CWD/etc/fonts" -export MLT_DATA="$CWD/share/mlt/" -export MLT_REPOSITORY="$CWD/lib/mlt/" - -export PATH="$CWD/bin:$CWD/synfig/bin:$PATH" -export SYNFIG_ROOT="$CWD/synfig/" -export SYNFIG_MODULE_LIST="$CWD/synfig/etc/synfig_modules.cfg" - - -export MAGICK_DIR=`ls -1 -d ${CWD}/lib/ImageMagick-* | head -n 1` -export MAGICK_DIR=`basename $MAGICK_DIR` -export MAGICK_CONFIGURE_PATH="${CWD}/lib/${MAGICK_DIR}/config-Q16/" -export MAGICK_CODER_MODULE_PATH="${CWD}/lib/${MAGICK_DIR}/modules-Q16/coders/" -export MAGICK_CODER_FILTER_PATH="${CWD}/lib/${MAGICK_DIR}/modules-Q16/filters/" - -export XDG_DATA_DIRS="$CWD/share/:$XDG_DATA_DIRS" -export GDK_PIXBUF_MODULEDIR="$CWD/lib/gdk-pixbuf-2.0/2.10.0/loaders/" -export GDK_PIXBUF_MODULE_FILE=$HOME/.synfig-gdk-loaders -[ ! -f $HOME/.synfig-gdk-loaders ] || rm -f $HOME/.synfig-gdk-loaders -"$CWD/bin/gdk-pixbuf-query-loaders" > "$GDK_PIXBUF_MODULE_FILE" - -cd "$CWD" -exec "$SYNFIG_ROOT/bin/synfigstudio" "$@" diff --git a/autobuild/app-template/Contents/PkgInfo b/autobuild/app-template/Contents/PkgInfo deleted file mode 100644 index 0c9a484..0000000 --- a/autobuild/app-template/Contents/PkgInfo +++ /dev/null @@ -1 +0,0 @@ -APPLSYNFIG diff --git a/autobuild/app-template/Contents/Resources/SynfigStudio.icns b/autobuild/app-template/Contents/Resources/SynfigStudio.icns deleted file mode 100644 index 3d3d20f..0000000 Binary files a/autobuild/app-template/Contents/Resources/SynfigStudio.icns and /dev/null differ diff --git a/autobuild/app-template/Contents/Resources/sif_file.icns b/autobuild/app-template/Contents/Resources/sif_file.icns deleted file mode 100644 index 3092df6..0000000 Binary files a/autobuild/app-template/Contents/Resources/sif_file.icns and /dev/null differ diff --git a/autobuild/build.sh b/autobuild/build.sh index 96bc047..f012d92 100755 --- a/autobuild/build.sh +++ b/autobuild/build.sh @@ -68,10 +68,40 @@ fi [ -d synfig-studio ] || mkdir synfig-studio [ -d "${PREFIX}" ] || mkdir "${PREFIX}" -export PKG_CONFIG_PATH=${PREFIX}/lib/pkgconfig:${PREFIX}/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib/`uname -i`-linux-gnu/pkgconfig/:$PKG_CONFIG_PATH +#========================== VARIABLES ================================== + +if [[ `uname` == "Linux" ]]; then + export PKG_CONFIG_PATH=${PREFIX}/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib/`uname -i`-linux-gnu/pkgconfig/:${PKG_CONFIG_PATH} +fi +if [[ `uname` == "Darwin" ]]; then + # autopoint is not in PATH after install via brew (conflicting with system gettext https://github.com/Homebrew/legacy-homebrew/issues/24070) + # so we can do `brew link --force gettext` or just add it to PATH before configuring which is preferable because we need it only for compiling + export PATH="/usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin:${PATH}" + export LDFLAGS="-L/usr/local/opt/gettext/lib ${LDFLAGS}" + export CPPFLAGS="-I/usr/local/opt/gettext/include ${CPPFLAGS}" +fi +export PKG_CONFIG_PATH=${PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH} export PATH=${PREFIX}/bin:$PATH export LD_LIBRARY_PATH=${PREFIX}/lib:${PREFIX}/lib64:/usr/local/lib:$LD_LIBRARY_PATH -export LDFLAGS="-Wl,-rpath -Wl,\\\$\$ORIGIN/lib" +export LDFLAGS="-Wl,-rpath -Wl,\\\$\$ORIGIN/lib ${LDFLAGS}" +export CFLAGS="-fdiagnostics-color=always $CFLAGS" +export CXXFLAGS="-fdiagnostics-color=always $CXXFLAGS" + +#========================== FUNCTIONS ================================== + +travis_fold_start() +{ + if [ -n "$TRAVIS" ]; then + echo -e "travis_fold:start:$1\033[33;1m$2\033[0m" + fi +} + +travis_fold_end() +{ + if [ -n "$TRAVIS" ]; then + echo -e "\ntravis_fold:end:$1\r" + fi +} #============================== ETL ==================================== @@ -97,7 +127,7 @@ etl_make() { cd ETL make -j$MAKE_THREADS -sed -i "s|^Cflags: -I\\\${includedir}|Cflags: -I$REPO_DIR\/ETL -I\\\${includedir}|" ETL.pc +sed -i.bak "s|^Cflags: -I\\\${includedir}|Cflags: -I$REPO_DIR\/ETL -I\\\${includedir}|" ETL.pc make install cd .. } @@ -153,7 +183,7 @@ core_make() { cd synfig-core make -j$MAKE_THREADS -sed -i "s|^includedir=.*$|includedir=$REPO_DIR\/synfig-core\/src|" synfig.pc +sed -i.bak "s|^includedir=.*$|includedir=$REPO_DIR\/synfig-core\/src|" synfig.pc make install cd .. } @@ -187,11 +217,17 @@ cd synfig-studio pushd ${REPO_DIR}/synfig-studio/ >/dev/null /bin/bash ${REPO_DIR}/synfig-studio/bootstrap.sh popd >/dev/null +if [[ `uname` == "Linux" ]]; then + export CONFIGURE_OPTIONS="--enable-jack" +else + export CONFIGURE_OPTIONS="" +fi + /bin/bash ${REPO_DIR}/synfig-studio/configure --prefix=${PREFIX} \ --includedir=${PREFIX}/include \ --disable-static \ --enable-shared \ - --enable-jack \ + ${CONFIGURE_OPTIONS} \ --enable-warnings=max $DEBUG cd .. } @@ -257,9 +293,17 @@ studio_make all_build() { +travis_fold_start ETL "Building ETL" etl_build +travis_fold_end ETL + +travis_fold_start synfig-core "Building Synfig Core" core_build +travis_fold_end synfig-core + +travis_fold_start synfig-studio "Building Synfig Studio" studio_build +travis_fold_end synfig-studio } all_full() diff --git a/autobuild/install-requirements-linux.sh b/autobuild/install-requirements-linux.sh deleted file mode 100755 index 96d9b96..0000000 --- a/autobuild/install-requirements-linux.sh +++ /dev/null @@ -1,228 +0,0 @@ -#!/bin/bash - -set -e - -# Make sure we have all dependencies installed -echo "Checking dependencies..." -DEB_LIST_MINIMAL="\ - build-essential \ - autoconf automake \ - shared-mime-info \ - libltdl3-dev \ - libtool \ - intltool \ - gettext \ - libpng-dev \ - libfftw3-dev \ - fontconfig \ - libfreetype6-dev \ - libfontconfig1-dev \ - libxml2-dev \ - libtiff5-dev \ - libmlt-dev libmlt++-dev \ - x11proto-xext-dev libdirectfb-dev libxfixes-dev libxinerama-dev libxdamage-dev libxcomposite-dev libxcursor-dev libxft-dev libxrender-dev libxt-dev libxrandr-dev libxi-dev libxext-dev libx11-dev \ - libatk1.0-dev \ - libgl1-mesa-dev \ - imagemagick \ - libsdl2-dev \ - libsdl2-mixer-dev \ - bzip2" -if which dnf >/dev/null; then - # - # Fedora >= 22 - # - PKG_LIST="git" - if [[ $MODE == 'package' ]]; then - PKG_LIST="${PKG_LIST} \ - debootstrap \ - rsync" - else - PKG_LIST="${PKG_LIST} \ - intltool \ - libpng-devel \ - libjpeg-devel \ - fftw-devel \ - freetype-devel \ - fontconfig-devel \ - atk-devel \ - pango-devel \ - cairo-devel \ - gtk3-devel \ - gettext-devel \ - libxml2-devel \ - libxml++-devel \ - gcc-c++ \ - autoconf \ - automake \ - libtool \ - libtool-ltdl-devel \ - boost-devel \ - shared-mime-info \ - OpenEXR-devel \ - libmng-devel \ - ImageMagick-c++-devel \ - jack-audio-connection-kit-devel \ - mlt-devel \ - ocl-icd-devel \ - opencl-headers \ - gtkmm30-devel \ - glibmm24-devel \ - SDL2-devel \ - SDL2_mixer-devel" - fi - if ! ( rpm -qv $PKG_LIST ); then - echo "Running dnf (you need root privelegies to do that)..." - su -c "dnf install $PKG_LIST" || true - fi -elif which yum >/dev/null; then - # - # Fedora - # - PKG_LIST="git" - if [[ $MODE == 'package' ]]; then - PKG_LIST="${PKG_LIST} \ - debootstrap \ - rsync" - else - PKG_LIST="${PKG_LIST} \ - intltool \ - libpng-devel \ - libjpeg-devel \ - fftw-devel \ - freetype-devel \ - fontconfig-devel \ - atk-devel \ - pango-devel \ - cairo-devel \ - gtk3-devel \ - gettext-devel \ - libxml2-devel \ - libxml++-devel \ - gcc-c++ \ - autoconf \ - automake \ - libtool \ - libtool-ltdl-devel \ - boost-devel \ - shared-mime-info \ - OpenEXR-devel \ - libmng-devel \ - ImageMagick-c++-devel \ - jack-audio-connection-kit-devel \ - mlt-devel \ - ocl-icd-devel \ - opencl-headers \ - gtkmm30-devel \ - glibmm24-devel \ - SDL2-devel \ - SDL2_mixer-devel" - fi - if ! ( rpm -qv $PKG_LIST ); then - echo "Running yum (you need root privelegies to do that)..." - su -c "yum install $PKG_LIST" || true - fi -elif which zypper >/dev/null; then - # - # OpenSUSE - # - PKG_LIST="git" - if [[ $MODE == 'package' ]]; then - PKG_LIST="${PKG_LIST} \ - debootstrap \ - rsync" - else - PKG_LIST="${PKG_LIST} libpng-devel libjpeg-devel freetype-devel fontconfig-devel atk-devel pango-devel cairo-devel gtk3-devel gettext-devel libxml2-devel libxml++-devel gcc-c++ autoconf automake libtool libtool-ltdl-devel boost-devel shared-mime-info" - PKG_LIST="${PKG_LIST} OpenEXR-devel libmng-devel ImageMagick-c++-devel gtkmm3-devel glibmm2-devel" - fi - if ! ( rpm -qv $PKG_LIST ); then - echo "Running zypper (you need root privelegies to do that)..." - su -c "zypper install $PKG_LIST" || true - fi -elif which apt-get >/dev/null; then - if [[ $MODE == 'package' ]]; then - if [[ `cat /etc/chroot.id` == "Synfig Packages Buildroot v${BUILDROOT_VERSION}" ]]; then - #we are inside of chroot - PKG_LIST="$DEB_LIST_MINIMAL rpm alien xsltproc wget python" - else - #we have to prepare chroot - PKG_LIST="git-core debootstrap rsync" - fi - else - if ( cat /etc/altlinux-release | egrep "ALT Linux" ); then - # - # ALT Linux case - # - PKG_LIST=" \ - rpm-build \ - git-core \ - shared-mime-info \ - libltdl3-devel \ - intltool \ - gettext \ - libpng12-devel \ - libjpeg-devel \ - fontconfig \ - libfreetype-devel \ - fontconfig-devel \ - libxml2-devel \ - libtiff-devel \ - libjasper-devel \ - libdirectfb-devel \ - libfftw3-dev \ - libXfixes-devel \ - libXinerama-devel \ - libXdamage-devel \ - libXcomposite-devel \ - libXcursor-devel \ - libXft-devel \ - libXrender-devel \ - libXt-devel \ - libXrandr-devel \ - libXi-devel \ - libXext-devel \ - libX11-devel \ - libatk-devel \ - bzip2 \ - libmng-devel \ - libgtkmm3-devel \ - libglibmm-devel \ - libsigc++2-devel \ - libxml++2-devel \ - " - else - # - # Ubuntu/Debian case - # - PKG_LIST=" \ - ${DEB_LIST_MINIMAL} \ - git-core \ - libmng-dev \ - libjack-jackd2-dev \ - libgtkmm-3.0-dev \ - libglibmm-2.4-dev \ - libsigc++-2.0-dev \ - libxml++2.6-dev \ - libboost-system-dev \ - libmagick++-dev \ - " - fi - fi - echo "Running apt-get (you need root privelegies to do that)..." - echo - sudo apt-get update -qq || true - sudo apt-get install -y -q $PKG_LIST - sudo apt-get install -y -q autopoint || true # Ubuntu special case -else - if [[ $MODE == 'package' ]]; then - if ! ( which git && which debootstrap ) ; then - echo "ERROR: Please install 'git' and 'debootstrap'." - exit; - fi - else - echo "WARNING: This build script does not works with package mangement systems other than yum, zypper or apt! You should install dependent packages manually." - echo "REQUIRED PACKAGES: libpng-devel libjpeg-devel freetype-devel fontconfig-devel atk-devel pango-devel cairo-devel gtk3-devel gettext-devel libxml2-devel libxml++-devel gcc-c++ autoconf automake libtool libtool-ltdl-devel shared-mime-info OpenEXR-devel libmng-devel ImageMagick-c++-devel gtkmm30-devel glibmm24-devel" - echo "" - read - fi -fi -echo "Done." diff --git a/autobuild/osx-relocate-binary.sh b/autobuild/osx-relocate-binary.sh deleted file mode 100755 index bd7c5b5..0000000 --- a/autobuild/osx-relocate-binary.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/bash - -set -e - -[ -z "$3" ] && echo "usage: \"$0\" " && echo "This utility relocates binary from to together with all dependencies and adds rpath support." && exit 1 - -PREFIX="$2" -PREFIXLEN=${#PREFIX} - -DEST="$3" - -process_lib() { - -FILESRC=$1 -if [[ "${FILESRC}" == ${PREFIX}* ]]; then - #FILEDEST_SHORT=`echo "${FILESRC}" | cut -c1-$PREFIXLEN` - local FILEDEST_SHORT="${FILESRC:$PREFIXLEN}" - local FILEDEST="${DEST}/${FILEDEST_SHORT}" - - if [ ! -f "${FILEDEST}" ]; then - - - if [ ! -d `dirname "${FILEDEST}"` ]; then - mkdir -p `dirname "${FILEDEST}"` - fi - cp "${FILESRC}" "${FILEDEST}" - chmod a+rw "$FILEDEST" - install_name_tool -add_rpath ./ "$FILEDEST" > /dev/null 2>&1 || true - - - echo "Relinking ${FILEDEST_SHORT} ..." - local FIRST=true - local LINE= - local LINE2= - otool -L "${FILEDEST}" | while read -r LINE; do - - if $FIRST; then - FIRST=false - else - LINE=`echo "$LINE" | sed -e 's/^[ \t]*//' | sed -e 's/ \(.*\)$//'` - - # make sure file isn't referencing itself - #A=$(basename "$FILEDEST") - #B=$(basename "$LINE") - if [ ! "$LINE" == "$FILESRC" ] && [[ "$LINE" == $PREFIX* ]]; then - #LINE2=`echo "${LINE}" | cut -c1-$PREFIXLEN` - LINE2="${LINE:$PREFIXLEN}" - install_name_tool -change "$LINE" "@rpath/$LINE2" "$FILEDEST" - process_lib "$LINE" - fi - - fi - done - #echo "... finished ${FILEDEST_SHORT}" - fi -fi - -} - -echo "Gathering deps for: $1" - -#scan "$BASE_FILE" -#scan "$BASE_FILE" subscan - -process_lib "$1" - -echo "Success." -echo "" - diff --git a/autobuild/osx/README_FIRST.odt b/autobuild/osx/README_FIRST.odt new file mode 100644 index 0000000..3c4b01e Binary files /dev/null and b/autobuild/osx/README_FIRST.odt differ diff --git a/autobuild/osx/README_FIRST.pdf b/autobuild/osx/README_FIRST.pdf new file mode 100644 index 0000000..9a92977 Binary files /dev/null and b/autobuild/osx/README_FIRST.pdf differ diff --git a/autobuild/osx/app-template/Contents/Info.plist b/autobuild/osx/app-template/Contents/Info.plist new file mode 100644 index 0000000..550f8e9 --- /dev/null +++ b/autobuild/osx/app-template/Contents/Info.plist @@ -0,0 +1,76 @@ + + + + + CFBundleDevelopmentRegion + English + + CFBundleGetInfoString + _VERSION_, © 2001-2008 The Synfig Team + CFBundleShortVersionString + _VERSION_ + CFBundleVersion + _VERSION_ + NSHumanReadableCopyright + © 2001-2008 The Synfig Team + CFBundleIconFile + SynfigStudio + CFBundleDocumentTypes + + + CFBundleTypeExtensions + + sif + SIF + + CFBundleTypeIconFile + sif_file.icns + CFBundleTypeMIMETypes + + image/x-sif + + CFBundleTypeName + Synfig Animation + CFBundleTypeOSTypes + + SIF + + CFBundleTypeRole + Editor + LSIsAppleDefaultForType + + LSItemContentTypes + + org.synfig.sif + + + + CFBundleTypeExtensions + + sifz + SIFZ + + CFBundleTypeIconFile + sif_file.icns + CFBundleTypeMIMETypes + + image/x-compressed-sif + + CFBundleTypeName + Synfig Compressed Animation + CFBundleTypeOSTypes + + SIFZ + + CFBundleTypeRole + Editor + LSIsAppleDefaultForType + + LSItemContentTypes + + org.synfig.sifz + + + + + diff --git a/autobuild/osx/app-template/Contents/MacOS/SynfigStudio b/autobuild/osx/app-template/Contents/MacOS/SynfigStudio new file mode 100755 index 0000000..d8cdfd6 --- /dev/null +++ b/autobuild/osx/app-template/Contents/MacOS/SynfigStudio @@ -0,0 +1,42 @@ +#!/bin/sh + +set -e + +DIR=`dirname "$0"` +cd "$DIR/../Resources" +CWD=`pwd` + +#export DYLD_LIBRARY_PATH="$CWD/lib:$CWD/synfig/lib:$CWD/Library/Frameworks/Python.framework/Versions/3.3/:/Volumes/data/SynfigStudio.app/Contents/Resources/Library/Frameworks/Python.framework/Versions/3.3/Resources/Python.app/Contents/MacOS/:$DYLD_LIBRARY_PATH" + +export GTK_EXE_PREFIX="$CWD" +export GTK_DATA_PREFIX="$CWD/share" + +export GSETTINGS_SCHEMA_DIR="$CWD/share/glib-2.0/schemas/" +export FONTCONFIG_PATH="$CWD/etc/fonts" +export MLT_DATA="$CWD/share/mlt/" +export MLT_REPOSITORY="$CWD/lib/mlt/" + +export PATH="$CWD/bin:$CWD/synfig-production/bin:$PATH" +export SYNFIG_ROOT="$CWD/" +export SYNFIG_MODULE_LIST="$CWD/etc/synfig_modules.cfg" + +export PYTHONHOME="$CWD/Frameworks/Python.framework/Versions/3.6/" + +export MAGICK_DIR=`ls -1 -d ${CWD}/lib/ImageMagick* | head -n 1` +export MAGICK_DIR=`basename $MAGICK_DIR` +export MAGICK_DIR_CONFIG=`ls -1 -d ${CWD}/lib/${MAGICK_DIR}/config-* | head -n 1` +export MAGICK_DIR_CONFIG=`basename $MAGICK_DIR_CONFIG` +export MAGICK_DIR_MODULES=`ls -1 -d ${CWD}/lib/${MAGICK_DIR}/modules-* | head -n 1` +export MAGICK_DIR_MODULES=`basename $MAGICK_DIR_MODULES` +export MAGICK_CONFIGURE_PATH="${CWD}/lib/${MAGICK_DIR}/${MAGICK_DIR_CONFIG}/" +export MAGICK_CODER_MODULE_PATH="${CWD}/lib/${MAGICK_DIR}/${MAGICK_DIR_MODULES}/coders/" +export MAGICK_CODER_FILTER_PATH="${CWD}/lib/${MAGICK_DIR}/${MAGICK_DIR_MODULES}/filters/" + +export XDG_DATA_DIRS="$CWD/share/:$XDG_DATA_DIRS" +export GDK_PIXBUF_MODULEDIR="$CWD/lib/gdk-pixbuf-2.0/2.10.0/loaders/" +export GDK_PIXBUF_MODULE_FILE=$HOME/.synfig-gdk-loaders +[ ! -f $HOME/.synfig-gdk-loaders ] || rm -f $HOME/.synfig-gdk-loaders +"$CWD/bin/gdk-pixbuf-query-loaders" > "$GDK_PIXBUF_MODULE_FILE" + +cd "$CWD" +exec "$SYNFIG_ROOT/bin/synfigstudio" "$@" diff --git a/autobuild/osx/app-template/Contents/PkgInfo b/autobuild/osx/app-template/Contents/PkgInfo new file mode 100644 index 0000000..0c9a484 --- /dev/null +++ b/autobuild/osx/app-template/Contents/PkgInfo @@ -0,0 +1 @@ +APPLSYNFIG diff --git a/autobuild/osx/app-template/Contents/Resources/SynfigStudio.icns b/autobuild/osx/app-template/Contents/Resources/SynfigStudio.icns new file mode 100644 index 0000000..3d3d20f Binary files /dev/null and b/autobuild/osx/app-template/Contents/Resources/SynfigStudio.icns differ diff --git a/autobuild/osx/app-template/Contents/Resources/sif_file.icns b/autobuild/osx/app-template/Contents/Resources/sif_file.icns new file mode 100644 index 0000000..3092df6 Binary files /dev/null and b/autobuild/osx/app-template/Contents/Resources/sif_file.icns differ diff --git a/autobuild/osx/brew/install-requirements-osx.sh b/autobuild/osx/brew/install-requirements-osx.sh deleted file mode 100755 index 20b4940..0000000 --- a/autobuild/osx/brew/install-requirements-osx.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash - -# zlib not required because it is already part of OSX - -# Travis-CI workaround -# When we install a package that is already installed inside the travis VM, and we have an outdated brew -# (for faster build), then we get an error and the build fails. Unfortunately brew doesn't have switch to skip -# already installed packages (https://github.com/Homebrew/brew/issues/2491) and recommends to install using -# brew bundle. But! `brew bundle` can't be run without updating brew and fails with error "Your Homebrew is outdated". -# Yep, i know what and this is what i want. So here is workaround: first we check which package is not already installed, -# and if not then install it. - - -set -e - -PACKAGES="autoconf automake ccache libtool intltool gettext pkg-config glibmm libxml++ cairo fftw pango mlt boost gtkmm3 sdl2 sdl2_mixer" - -export HOMEBREW_NO_AUTO_UPDATE=1 -export HOMEBREW_NO_ANALYTICS=1 - -for pkg in $PACKAGES; -do - echo "Checking $pkg..." - brew info "$pkg" | grep --quiet 'Not installed' && brew install "$pkg" -done - -#HOMEBREW_NO_AUTO_UPDATE=1 brew bundle -no-upgrade --file=-<<-EOF -#brew "autoconf" -#brew "automake" -#brew "boost" -#brew "cairo" -#brew "fftw" -#brew "gettext" -#brew "glibmm" -#brew "gtkmm3" -#brew "intltool" -#brew "libtool" -#brew "libxml++" -#brew "mlt" -#brew "pango" -#brew "pkg-config" -#EOF diff --git a/autobuild/osx/brew/synfigstudio-osx-build-debug.sh b/autobuild/osx/brew/synfigstudio-osx-build-debug.sh deleted file mode 100755 index 9485b7e..0000000 --- a/autobuild/osx/brew/synfigstudio-osx-build-debug.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -export DEBUG=1 -export MAKE_THREADS=4 - -SCRIPT_PATH=$(cd `dirname "$0"`; pwd) -pushd $SCRIPT_PATH -./synfigstudio-osx-build.sh -popd \ No newline at end of file diff --git a/autobuild/osx/brew/synfigstudio-osx-build.sh b/autobuild/osx/brew/synfigstudio-osx-build.sh deleted file mode 100755 index 0a27603..0000000 --- a/autobuild/osx/brew/synfigstudio-osx-build.sh +++ /dev/null @@ -1,106 +0,0 @@ -#!/bin/bash - -# libtool for synfig-core glibtoolize -# gettext for autopoint - -# autopoint is not in PATH after install via brew (conflicting with system gettext https://github.com/Homebrew/legacy-homebrew/issues/24070) -# so we can do `brew link --force gettext` or just add it to PATH before configuring which is preferable because we need it only for compiling - -#export PATH=/usr/local/opt/gettext/bin:$PATH -# assume we have ccache and gettext already installed -export PATH="/usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin:$PATH" -SCRIPT_PATH=$(cd `dirname "$0"`; pwd) - -if [[ $DEBUG == 1 ]]; then - DEBUG_FLAGS="--enable-debug --enable-optimization=0" -else - DEBUG_FLAGS="" -fi - -MAKE_THREADS=2 -MAKE_OPTIONS="-j$MAKE_THREADS --silent LIBTOOLFLAGS=--silent" - -export CFLAGS="-fdiagnostics-color=always $CFLAGS" -export CXXFLAGS="-fdiagnostics-color=always $CXXFLAGS" -#CONFIGURE_FLAGS="--enable-optimization=0" - -set -e - -travis_fold_start() -{ - if [ -n "$TRAVIS" ]; then - echo -e "travis_fold:start:$1\033[33;1m$2\033[0m" - fi -} - -travis_fold_end() -{ - if [ -n "$TRAVIS" ]; then - echo -e "\ntravis_fold:end:$1\r" - fi -} - - -# move to synfig root dir -pushd "$SCRIPT_PATH/../../../" - -travis_fold_start ETL "Building ETL" -pushd ETL - ./bootstrap.sh - ./configure $DEBUG_FLAGS - make install $MAKE_OPTIONS -popd # ETL -travis_fold_end ETL - -travis_fold_start synfig-core "Building Synfig Core" -pushd synfig-core - ./bootstrap.sh - ./configure $DEBUG_FLAGS - make install $MAKE_OPTIONS -popd # synfig-core -travis_fold_end synfig-core - -travis_fold_start synfig-studio "Building Synfig Studio" -pushd synfig-studio - ./bootstrap.sh - ./configure $DEBUG_FLAGS - make install $MAKE_OPTIONS -popd # synfig-studio -travis_fold_end synfig-studio - -popd # back to start directory - - - -# ============== Helpers ================== - - - -# ./bootstrap.sh -#PATH=/usr/local/opt/gettext/bin:$PATH ./configure - -#PATH=/usr/local/opt/gettext/bin:$PATH ./configure --prefix=/Users/az/synfig/ - -#For compilers to find this software you may need to set: -# LDFLAGS: -L/usr/local/opt/libffi/lib -#For pkg-config to find this software you may need to set: -# PKG_CONFIG_PATH: /usr/local/opt/libffi/lib/pkgconfig - - -#If you need to have this software first in your PATH run: -# echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> ~/.bash_profile -# echo 'export PATH="/usr/local/opt/icu4c/sbin:$PATH"' >> ~/.bash_profile - -#For compilers to find this software you may need to set: -# LDFLAGS: -L/usr/local/opt/icu4c/lib -# CPPFLAGS: -I/usr/local/opt/icu4c/include -#For pkg-config to find this software you may need to set: -# PKG_CONFIG_PATH: /usr/local/opt/icu4c/lib/pkgconfig - -#For compilers to find this software you may need to set: -# LDFLAGS: -L/usr/local/opt/zlib/lib -# CPPFLAGS: -I/usr/local/opt/zlib/include -#For pkg-config to find this software you may need to set: -# PKG_CONFIG_PATH: /usr/local/opt/zlib/lib/pkgconfig - -# zlib not checked \ No newline at end of file diff --git a/autobuild/osx/gobject-introspection.rb b/autobuild/osx/gobject-introspection.rb new file mode 100644 index 0000000..863d3b7 --- /dev/null +++ b/autobuild/osx/gobject-introspection.rb @@ -0,0 +1,51 @@ +class GobjectIntrospection < Formula + desc "Generate introspection data for GObject libraries" + homepage "https://live.gnome.org/GObjectIntrospection" + url "https://download.gnome.org/sources/gobject-introspection/1.54/gobject-introspection-1.54.1.tar.xz" + sha256 "b88ded5e5f064ab58a93aadecd6d58db2ec9d970648534c63807d4f9a7bb877e" + revision 1 + + bottle do + sha256 "af8872721600cf3b5c033bad125fcef08a59e3ddfde4093fe6bc6bce5331e004" => :high_sierra + sha256 "4f07bc2e12b9015a670a999744d8201c575ea9d49421ec617507aa01407d841e" => :sierra + sha256 "88736baecfbab3cf709cb6b09de85f9e4a4382ac1d1c59f33af22c522dab81a4" => :el_capitan + end + + depends_on "pkg-config" => :run + depends_on "glib" + depends_on "cairo" + depends_on "libffi" + depends_on "python@2" if MacOS.version <= :mavericks + + resource "tutorial" do + url "https://gist.github.com/7a0023656ccfe309337a.git", + :revision => "499ac89f8a9ad17d250e907f74912159ea216416" + end + + def install + ENV["GI_SCANNER_DISABLE_CACHE"] = "true" + inreplace "giscanner/transformer.py", "/usr/share", "#{HOMEBREW_PREFIX}/share" + inreplace "configure" do |s| + s.change_make_var! "GOBJECT_INTROSPECTION_LIBDIR", "#{HOMEBREW_PREFIX}/lib" + end + + python = if MacOS.version >= :yosemite + "/usr/bin/python2.7" + else + Formula["python@2"].opt_bin/"python2.7" + end + + system "./configure", "--disable-dependency-tracking", + "--prefix=#{prefix}", + "--with-python=#{python}" + system "make" + system "make", "install" + end + + test do + ENV.prepend_path "PKG_CONFIG_PATH", Formula["libffi"].opt_lib/"pkgconfig" + resource("tutorial").stage testpath + system "make" + assert_predicate testpath/"Tut-0.1.typelib", :exist? + end +end diff --git a/autobuild/osx/relocate-binary.sh b/autobuild/osx/relocate-binary.sh new file mode 100755 index 0000000..dd8fcd6 --- /dev/null +++ b/autobuild/osx/relocate-binary.sh @@ -0,0 +1,149 @@ +#!/bin/bash + +set -e +#set -x + +[ -z "$2" ] && echo "usage: \"$0\" " && echo "This utility relocates binary from to together with all dependencies and adds rpath support." && exit 1 + +readlink_f() { + TARGET_FILE=$1 + + cd `dirname $TARGET_FILE` + TARGET_FILE=`basename $TARGET_FILE` + + # Iterate down a (possible) chain of symlinks + while [ -L "$TARGET_FILE" ] + do + TARGET_FILE=`readlink $TARGET_FILE` + cd `dirname $TARGET_FILE` + TARGET_FILE=`basename $TARGET_FILE` + done + + # Compute the canonicalized name by finding the physical path + # for the directory we're in and appending the target file. + PHYS_DIR=`pwd -P` + RESULT=$PHYS_DIR/$TARGET_FILE + echo $RESULT +} + +remove_prefix() { + local INPUT="$1" + local OUTPUT="" + if [[ "$INPUT" == /usr/local/Cellar/* ]]; then + TMP="${INPUT#*/}" # usr/local/Cellar/pkgname/pkgversion/path + TMP="${TMP#*/}" # local/Cellar/pkgname/pkgversion/path + TMP="${TMP#*/}" # Cellar/pkgname/pkgversion/path + TMP="${TMP#*/}" # pkgname/pkgversion/path + TMP="${TMP#*/}" # pkgversion/path + TMP="${TMP#*/}" # path + OUTPUT="${TMP}" + elif [[ "$INPUT" == /usr/local/opt/* ]]; then + TMP="${INPUT#*/}" # usr/local/opt/pkgname/path + TMP="${TMP#*/}" # local/opt/pkgname/path + TMP="${TMP#*/}" # opt/pkgname/path + TMP="${TMP#*/}" # pkgname/path + TMP="${TMP#*/}" # path + OUTPUT="${TMP}" + elif [[ "$INPUT" == /usr/local/lib/* ]]; then + TMP="${INPUT#*/}" # usr/local/lib/file + TMP="${TMP#*/}" # local/lib/file + TMP="${TMP#*/}" # lib/file = path + OUTPUT="${TMP}" + elif [[ "$INPUT" == /usr/local/share/* ]]; then + TMP="${INPUT#*/}" # usr/local/share/file + TMP="${TMP#*/}" # local/share/file + TMP="${TMP#*/}" # share/file = path + OUTPUT="${TMP}" + elif [[ "$INPUT" == $PREFIX* ]]; then + #LINE2=`echo "${INPUT}" | cut -c1-$PREFIXLEN` + OUTPUT="${INPUT:$PREFIXLEN}" + fi + echo "$OUTPUT" +} + +process_lib() { + +local FILESRC="$1" +local FILEDEST_SHORT="$2" + +#local FILE_PARENT="$2" + + + + local FILEDEST="${DEST}/${FILEDEST_SHORT}" + + if [ ! -f "${FILEDEST}" ]; then + + + if [ ! -d `dirname "${FILEDEST}"` ]; then + mkdir -p `dirname "${FILEDEST}"` + fi + REALPATH=`readlink_f "${FILESRC}"` + cp "${REALPATH}" "${FILEDEST}" + chmod a+rw "$FILEDEST" + + + install_name_tool -add_rpath ./ "$FILEDEST" > /dev/null 2>&1 || true + + + echo "Relinking ${FILEDEST_SHORT} ..." + local FIRST=true + local LINE= + local LINE2= + otool -L "${FILEDEST}" | while read -r LINE; do + #echo "$LINE" + if $FIRST; then + FIRST=false + else + LINE=`echo "$LINE" | sed -e 's/^[ \t]*//' | sed -e 's/ \(.*\)$//'` + + # make sure file isn't referencing itself + #A=$(basename "$FILEDEST") + #B=$(basename "$LINE") + if [ ! "$LINE" == "$FILESRC" ]; then + LINE2=`remove_prefix "$LINE"` + if [ ! -z "$LINE2" ]; then + #if [ ! -z "$FILE_PARENT" ]; then + #echo " install_name_tool -change \"$LINE\" \"@rpath/$LINE2\" \"$FILEDEST\"" + install_name_tool -change "$LINE" "@rpath/$LINE2" "$FILEDEST" + process_lib "$LINE" "$LINE2" + #fi + + fi + fi + + fi + done + #echo "... finished ${FILEDEST_SHORT}" + fi + + +} + +#scan "$BASE_FILE" +#scan "$BASE_FILE" subscan + +#TARGET_FILE=`readlink_f "$1"` +TARGET_FILE="$1" +echo "Gathering deps for: $TARGET_FILE" + +export DEST="$3" +#echo "DESTINATION: $DEST" + +export PREFIX="$2" +export PREFIXLEN=${#PREFIX} + +if [ ! -f "${TARGET_FILE}" ]; then + echo "ERROR: File not found." + exit 1 +fi + +FILEDEST_SHORT=`remove_prefix "${TARGET_FILE}"` + +if [[ "${TARGET_FILE}" == ${PREFIX}* ]]; then + process_lib "${TARGET_FILE}" "${FILEDEST_SHORT}" +fi + +echo "Success." +echo "" + diff --git a/autobuild/synfigstudio-linux-build.sh b/autobuild/synfigstudio-linux-build.sh deleted file mode 100755 index dbae2b2..0000000 --- a/autobuild/synfigstudio-linux-build.sh +++ /dev/null @@ -1,1194 +0,0 @@ -#!/bin/bash -# -# SynfigStudio build script -# Copyright (c) 2008-2010 Konstantin Dmitriev -# -# This package is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. -# -# This package is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. - -# = Usage: = -# ./synfigstudio-linux-build.sh [mode] [revision] -# -# where: -# - [mode] is full|quick|package -# - [revision] - commit id, branch or tag (package mode only) -# -# To build packages it's required to run this script as root. -# -# = Examples: = -# -# == Standart mode == -# Configure and (re)build synfigstudio into your homedir: -# ./synfigstudio-linux-build.sh -# Configure and make clean build synfigstudio into your homedir: -# ./synfigstudio-linux-build.sh full -# Quick rebuild of synfig (without configure) into your homedir: -# ./synfigstudio-linux-build.sh quick -# -# == Package mode == -# Build package from "master" branch: -# ./synfigstudio-linux-build.sh package -# Build package from "genete_setup_dialog" branch -# ./synfigstudio-linux-build.sh package origin/genete_setup_dialog -# Build package from commit with "synfigstudio-0.62.00" tag -# ./synfigstudio-linux-build.sh package synfigstudio-0.62.00 -# -# Note: Make sure to run "git clean -f -x -d" after you switch branches. -# -# = TODO = -# - debuginfo packages - -RELEASE=8 - -if [ -z "$PREFIX" ]; then -PREFIX=$HOME/synfig/ -fi - -PACKAGES_PATH=$HOME/synfig-packages # path where to write packages files - -if [ -z $BUILDROOT ]; then -PACKAGES_BUILDROOT=$HOME/synfig-buildroot # path of for build infrastructure -else -PACKAGES_BUILDROOT=$BUILDROOT/synfig-buildroot -fi -if [ -d "$PACKAGES_BUILDROOT" ]; then -PACKAGES_BUILDROOT=`cd $PACKAGES_BUILDROOT; pwd` # canonify buildroot path -fi - -BUILDROOT_VERSION=9 -BUILDROOT_LIBRARY_SET_ID=4 -MAKE_THREADS=2 #count of threads for make - -# full = clean, configure, make -# standart = configure, make -# quick = make -# package = chroot, clean, configure, make -MODE='standart' -OPENGL=0 -BREED= -if [ -z $DEBUG ]; then - export DEBUG=0 -fi - -export EMAIL='root@synfig.org' - -# Bundled libraries -LIBSIGCPP=2.2.10 -GLEW=1.5.1 -CAIROMM=1.8.0 -IMAGEMAGICK=6.8.6 -PANGOMM=2.26.3 # required by GTKMM 2.20.3 -GTKMM=3.0.0 # !!! we need Notebook.set_action_widget() -FTGL=2.1.2 -FREEGLUT=2.4.0 -GTKGLEXT=1.2.0 -GTKGLEXTMM=1.2.0 -LIBXMLPP=2.22.0 -GLIBMM=2.24.2 # required by GTKMM 2.20.3 -CAIRO=1.12.0 # required by the cairo render engine 2013-04-01 -BOOST=1_53_0 - -# System libraries -ATK=1.29.4 # required by GTK 2.20.1 -GLIB=2.24.2 # required by GLIBMM 2.24.2 -GTK=3.0.0 # !!! we need Notebook.set_action_widget() -PIXMAN=0.22.0 # required by CAIRO 1.12.0 -PANGO=1.24.5 -FONTCONFIG=2.5.0 -JACK=0.124.1 - - -GITVERSION=1.7.0 # git version for chroot environment - -SYNFIG_REPO_DIR='' -WORKDIR_IS_REPO=0 - -# Allow overriding PREFIX and/or BREED -if [ -f "./synfigstudio-build.conf" ] ; then - . "./synfigstudio-build.conf" -fi - -# enable ccache for speedup -if which ccache > /dev/null; then - echo "ccache found! Enabling ccache..." - - # set CC/CXX variables if it is not already - if [ -z $CC ]; then - export CC=gcc - fi - if [ -z $CXX ]; then - export CXX=g++ - fi - - export CC="ccache $CC" - export CXX="ccache $CXX" - echo "CC=$CC" - echo "CXX=$CXX" -else - echo "ccache not found..." -fi - -MAKE_OPTIONS="-j$MAKE_THREADS --silent LIBTOOLFLAGS=--silent" -CFLAGS="-fdiagnostics-color=always $CFLAGS" -CXXFLAGS="-fdiagnostics-color=always $CXXFLAGS" - - - -set -e - -travis_fold_start() { - if [ -n "$TRAVIS" ]; then - echo -e "travis_fold:start:$1\033[33;1m$2\033[0m" - fi -} - -travis_fold_end() { - - if [ -n "$TRAVIS" ]; then - echo -e "\ntravis_fold:end:$1\r" - fi -} - -if (test "$2"); then - SELECTEDREVISION=$2 -else - SELECTEDREVISION=origin/master -fi - -mklibsigcpp() -{ -if ! pkg-config sigc\+\+-2.0 --exact-version=${LIBSIGCPP} --print-errors; then - pushd /source - wget -c --no-check-certificate http://ftp.gnome.org/pub/GNOME/sources/libsigc++/${LIBSIGCPP%.*}/libsigc++-${LIBSIGCPP}.tar.bz2 - [ ! -d libsigc++-${LIBSIGCPP} ] && tar -xjf libsigc++-${LIBSIGCPP}.tar.bz2 #&& cd libsigc++-${LIBSIGCPP} && patch -p1 < ../libsigc++-2.0_2.0.18-2.diff && cd .. - cd libsigc++-${LIBSIGCPP} - #make clean || true - ./configure --prefix=${PREFIX}/ --includedir=${PREFIX}/include --disable-static --enable-shared - make -j$MAKE_THREADS - make install - cd .. - popd -fi -} - -mkglib() -{ -if ! pkg-config glib-2.0 --exact-version=${GLIB} --print-errors; then - pushd /source - [ ! -d glib-${GLIB} ] && tar -xjf glib-${GLIB}.tar.bz2 - cd glib-${GLIB} - #[[ $DOCLEAN == 1 ]] && make clean || true - ./configure --disable-static --enable-shared - make -j$MAKE_THREADS - make install - cd .. - popd -fi -} - -mkjack() -{ -if ! pkg-config jack --exact-version=${JACK} --print-errors; then - pushd /source - apt-get install -y libdb-dev uuid-dev - [ ! -d jack-audio-connection-kit-${JACK} ] && tar -xzf jack-audio-connection-kit-${JACK}.tar.gz - cd jack-audio-connection-kit-${JACK} - #[[ $DOCLEAN == 1 ]] && make clean || true - ./configure --disable-static --enable-shared \ - --libdir=/usr/local/lib - make -j$MAKE_THREADS - make install - cd .. - popd -fi -} - - -mkatk() -{ -if ! pkg-config atk --exact-version=${ATK} --print-errors; then - pushd /source - [ ! -d atk-${ATK} ] && tar -xjf atk-${ATK}.tar.bz2 - cd atk-${ATK} - #[[ $DOCLEAN == 1 ]] && make clean || true - ./configure --disable-static --enable-shared - make -j$MAKE_THREADS - make install - cd .. - popd -fi -} - -mkglibmm() -{ -if ! pkg-config glibmm-2.4 --exact-version=${GLIBMM} --print-errors; then - pushd /source - [ ! -d glibmm-${GLIBMM} ] && tar -xjf glibmm-${GLIBMM}.tar.bz2 - cd glibmm-${GLIBMM} - #[[ $DOCLEAN == 1 ]] && make clean || true - ./configure --prefix=${PREFIX} --includedir=${PREFIX}/include --disable-static --enable-shared --disable-fulldocs - make -j$MAKE_THREADS - make install - cd .. - popd -fi -} - -mklibxmlpp() -{ -if ! pkg-config libxml\+\+-2.6 --exact-version=${LIBXMLPP} --print-errors; then - pushd /source - [ ! -d libxml++-${LIBXMLPP} ] && tar -xjf libxml++-${LIBXMLPP}.tar.bz2 - cd libxml++-${LIBXMLPP} - #[[ $DOCLEAN == 1 ]] && make clean || true - ./configure --prefix=${PREFIX} --includedir=${PREFIX}/include --disable-static --enable-shared - make -j$MAKE_THREADS - make install - cd .. - popd -fi -} - -mkimagemagick() -{ -PKG_NAME=ImageMagick -PKG_VERSION="${IMAGEMAGICK}-10" -TAREXT=bz2 -if ! pkg-config ImageMagick --exact-version=${IMAGEMAGICK} --print-errors; then - pushd /source - [ -e ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT} ] || wget http://www.imagemagick.org/download/legacy/${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT} - [ ! -d ${PKG_NAME}-${PKG_VERSION} ] && tar -xjf ${PKG_NAME}-${PKG_VERSION}.tar.bz2 # && cd ${PKG_NAME}-${PKG_VERSION} && patch -p1 < ../ImageMagick-6.4.0-multilib.patch && cd .. - cd ${PKG_NAME}-${PKG_VERSION} - #[[ $DOCLEAN == 1 ]] && make clean || true - ./configure --prefix=${PREFIX} --includedir=${PREFIX}/include --disable-static --enable-shared \ - --with-modules \ - --without-perl \ - --without-x \ - --with-threads \ - --with-magick_plus_plus - sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool - sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool - make -j$MAKE_THREADS - make install - cd .. - popd -fi -} - -mkglew() -{ -[ ! -d glew-${GLEW} ] && tar -xzf glew-${GLEW}.tar.gz && cd glew && patch -p1 < glew-${GLEW}-makefile.patch && cd .. - pushd /source - cd glew - #[[ $DOCLEAN == 1 ]] && make clean || true - sed -i -e 's/\r//g' config/config.guess - make -j$MAKE_THREADS - make install GLEW_DEST=${PREFIX} libdir=/lib bindir=/bin includedir=/include - cd .. - popd -} - -mkfontconfig() -{ -if ! pkg-config fontconfig --exact-version=${FONTCONFIG} --print-errors; then - pushd /source - [ ! -d fontconfig-${FONTCONFIG} ] && tar -xzf fontconfig-${FONTCONFIG}.tar.gz - cd fontconfig-${FONTCONFIG} - #[[ $DOCLEAN == 1 ]] && make clean || true - ./configure --disable-static --enable-shared - make -j$MAKE_THREADS - make install - cd .. -fi -} - -mkpixman() -{ -if ! pkg-config pixman-1 --exact-version=${PIXMAN} --print-errors; then - pushd /source - [ ! -d pixman-${PIXMAN} ] && tar -xzf pixman-${PIXMAN}.tar.gz - cd pixman-${PIXMAN} - #[[ $DOCLEAN == 1 ]] && make clean || true - ./configure --disable-static --enable-shared - make -j$MAKE_THREADS - make install - cd .. -fi -} - -mkcairo() -{ -if ! pkg-config cairo --exact-version=${CAIRO} --print-errors; then - pushd /source - [ ! -d cairo-${CAIRO} ] && tar -xzf cairo-${CAIRO}.tar.gz - cd cairo-${CAIRO} - #[[ $DOCLEAN == 1 ]] && make clean || true - ./configure --prefix=${PREFIX} \ - --disable-static \ - --enable-warnings \ - --enable-xlib \ - --enable-freetype \ - --enable-gobject \ - --disable-gtk-doc - make -j$MAKE_THREADS - make install - cd .. -fi -} - -mkcairomm() -{ -if ! pkg-config cairomm-1.0 --exact-version=${CAIROMM} --print-errors; then - pushd /source - [ ! -d cairomm-${CAIROMM} ] && tar -xzf cairomm-${CAIROMM}.tar.gz - cd cairomm-${CAIROMM} - #[[ $DOCLEAN == 1 ]] && make clean || true - ./configure --prefix=${PREFIX} --includedir=${PREFIX}/include --disable-static --enable-shared --enable-docs=no - make -j$MAKE_THREADS - make install - cd .. -fi -} - -mkpango() -{ -if ! pkg-config pango --exact-version=${PANGO} --print-errors; then - pushd /source - [ ! -d pango-${PANGO} ] && tar -xjf pango-${PANGO}.tar.bz2 - cd pango-${PANGO} - #[[ $DOCLEAN == 1 ]] && make clean || true - ./configure --disable-static --enable-shared - make -j$MAKE_THREADS - make install - cd .. - popd -fi -} - -mkpangomm() -{ -if ! pkg-config pangomm-1.4 --exact-version=${PANGOMM} --print-errors; then - pushd /source - [ ! -d pangomm-${PANGOMM} ] && tar -xjf pangomm-${PANGOMM}.tar.bz2 - cd pangomm-${PANGOMM} - #[[ $DOCLEAN == 1 ]] && make clean || true - ./configure --prefix=${PREFIX} --includedir=${PREFIX}/include --disable-static --enable-shared --disable-docs - make -j$MAKE_THREADS - make install - cd .. - popd -fi -} - -mkgtk() -{ -if ! pkg-config gtk\+-3.0 --exact-version=${GTK} --print-errors; then - pushd /source - [ ! -d gtk\+-${GTK} ] && tar -xjf gtk\+-${GTK}.tar.bz2 - cd gtk\+-${GTK} - #[[ $DOCLEAN == 1 ]] && make clean || true - ./configure --disable-static --enable-shared --disable-examples --disable-demos --disable-docs - make -j$MAKE_THREADS - make install - cd .. - popd -fi -} - -mkgtkmm() -{ -if ! pkg-config gtkmm-3.0 --exact-version=${GTKMM} --print-errors; then - pushd /source - [ ! -d gtkmm-${GTKMM} ] && tar -xjf gtkmm-${GTKMM}.tar.bz2 - cd gtkmm-${GTKMM} - #[[ $DOCLEAN == 1 ]] && make clean || true - ./configure --prefix=${PREFIX} --includedir=${PREFIX}/include --disable-static --enable-shared --disable-examples --disable-demos --disable-docs - make -j$MAKE_THREADS - make install - cd .. - popd -fi -} - -mkfreeglut() -{ - pushd /source - [ ! -d freeglut-${FREEGLUT} ] && tar -xzf freeglut-${FREEGLUT}.tar.gz - cd freeglut-${FREEGLUT} - #[[ $DOCLEAN == 1 ]] && make clean || true - ./configure --prefix=${PREFIX} --includedir=${PREFIX}/include --disable-static --disable-warnings --enable-shared - make -j$MAKE_THREADS - make install - cd .. - popd -} - -mkftgl() -{ - pushd /source - if [ ! -d ftgl-${FTGL} ]; then - tar -xjf ftgl-${FTGL}.tar.bz2 - cd FTGL - patch -p1 -b < ftgl-2.1.2-destdir.patch - patch -p1 -b < ftgl-2.1.2-Glyph-g++_41.patch - patch -p1 -b < ftgl-2.1.2-pc_req.patch - patch -p1 -b < ftgl-2.1.2-rpath_FTGLDemo.patch - patch -p1 -b < ftgl-2.1.2-ttf_font.patch - sed -i.fixed_version -e 's|2.0.5|%{version}|g' unix/configure.ac unix/configure - cd .. - fi - cd FTGL - cd unix - #[[ $DOCLEAN == 1 ]] && make clean || true - ./configure --prefix=${PREFIX} --includedir=${PREFIX}/include --disable-static --enable-shared --with-gl-inc=${PREFIX}/include --with-gl-lib=${PREFIX}/lib --with-glut-inc=${PREFIX}/include --with-glut-lib=${PREFIX}/lib --with-x - make all -j$MAKE_THREADS - make install - cd .. - popd -} - -mkgtkglext() -{ - pushd /source - [ ! -d gtkglext-${GTKGLEXT} ] && tar -xjf gtkglext-${GTKGLEXT}.tar.bz2 - cd gtkglext-${GTKGLEXT} - #[[ $DOCLEAN == 1 ]] && make clean || true - ./configure --prefix=${PREFIX} --includedir=${PREFIX}/include --disable-gtk-doc --disable-static --enable-shared - make -j$MAKE_THREADS - make install - cd .. - popd -} - -mkgtkglextmm() -{ - pushd /source - [ ! -d gtkglextmm-${GTKGLEXTMM} ] && tar -xjf gtkglextmm-${GTKGLEXTMM}.tar.bz2 && cd gtkglextmm-${GTKGLEXTMM} && patch -p1 < gtkglextmm-1.2.0-aclocal.diff && cd .. - cd gtkglextmm-${GTKGLEXTMM} - #[[ $DOCLEAN == 1 ]] && make clean || true - ./configure --prefix=${PREFIX} --includedir=${PREFIX}/include --disable-dependency-tracking --disable-static --enable-shared - make -j$MAKE_THREADS - make install - popd -cd .. -} - -mkgit() -{ - pushd /source - [ ! -d git-${GITVERSION} ] && tar -xjf git-${GITVERSION}.tar.bz2 - cd git-${GITVERSION} - ./configure - make -j$MAKE_THREADS - make install - cd .. - popd -} - -mkboost() -{ -if ! cat /usr/local/include/boost/version.hpp |egrep "BOOST_LIB_VERSION \"${BOOST%_*}\""; then - pushd /source - [ ! -d boost-${BOOST} ] && tar -xjf boost_${BOOST}.tar.bz2 - cd boost_${BOOST} - ./bootstrap.sh - ./b2 || true - ./b2 install || true - cd .. - popd -fi -cp /usr/local/lib/libboost_program_options.so.1.53.0 $PREFIX/lib/ -} - -mkETL() -{ -travis_fold_start ETL "Building ETL" - -if [ -f ${SYNFIG_REPO_DIR}/ETL/trunk/configure.ac ]; then - pushd ${SYNFIG_REPO_DIR}/ETL/trunk -else - pushd ${SYNFIG_REPO_DIR}/ETL -fi - - -if ( [[ $MODE == 'package' ]] || [[ $MODE == 'full' ]] ); then - echo "Cleaning source tree..." - make clean || true -fi - - -if [[ $MODE != 'quick' ]]; then - echo "Going to configure..." - rm -f aclocal.m4 - autoreconf --install --force - ./configure --prefix=${PREFIX} --includedir=${PREFIX}/include $DEBUG CFLAGS=$CFLAGS CXXFLAGS=$CXXFLAGS -fi -make $MAKE_OPTIONS -sed -i "s|^Cflags: -I\\\${includedir}|Cflags: -I$SYNFIG_REPO_DIR\/ETL -I\\\${includedir}|" ETL.pc -make install - -popd -travis_fold_end ETL -} - -mksynfig() -{ -travis_fold_start SynfigCore "Building Synfig Core" -if [ -d ${SYNFIG_REPO_DIR}/synfig-core/trunk/configure.ac ]; then - pushd ${SYNFIG_REPO_DIR}/synfig-core/trunk -else - pushd ${SYNFIG_REPO_DIR}/synfig-core -fi - -if [[ $MODE == 'package' ]] || [[ $MODE == 'full' ]]; then - make clean || true -fi - -if [[ $MODE != 'quick' ]]; then - /bin/sh ./bootstrap.sh - if [ -e /etc/debian_version ] && [ -z $BOOST_CONFIGURE_OPTIONS ]; then - # Debian/Ubuntu multiarch - MULTIARCH_LIBDIR="/usr/lib/`uname -m`-linux-gnu/" - if [ -e "${MULTIARCH_LIBDIR}/libboost_program_options.so" ]; then - export BOOST_CONFIGURE_OPTIONS="--with-boost-libdir=$MULTIARCH_LIBDIR" - fi - fi - export CONFIG_SHELL=/bin/bash - /bin/bash ./configure --prefix=${PREFIX} \ - --includedir=${PREFIX}/include \ - --disable-static --enable-shared \ - --with-magickpp \ - --without-libavcodec \ - --without-included-ltdl \ - $BOOST_CONFIGURE_OPTIONS \ - $DEBUG \ - CFLAGS=$CFLAGS \ - CXXFLAGS=$CXXFLAGS -fi - -#It looks like mod_libavcodec causes segfault on synfig-core when rendering to png. -#Tested on: ffmpeg-0.4.9-0.52.20080908.fc10.x86_64. - -#if [[ $GIT == 1 ]]; then -# export CFLAGS=-I/opt/synfig/include/GL/ -# export LDFLAGS=-L/opt/synfig/lib/ -#else -# export CFLAGS='' -# export LDFLAGS='' -#fi -make $MAKE_OPTIONS -sed -i "s|^includedir=.*$|includedir=$SYNFIG_REPO_DIR\/synfig-core\/src|" synfig.pc -make install - -popd -travis_fold_end SynfigCore -} - -mksynfigstudio() -{ -travis_fold_start SynfigStudio "Building Synfig Studio" -if [ -d ${SYNFIG_REPO_DIR}/synfig-studio/trunk/configure.ac ]; then - pushd ${SYNFIG_REPO_DIR}/synfig-studio/trunk -else - pushd ${SYNFIG_REPO_DIR}/synfig-studio -fi - -if [[ $MODE == 'package' ]] || [[ $MODE == 'full' ]]; then - make clean || true -fi - -if [[ $MODE == 'package' ]]; then - CONFIGURE_PACKAGE_OPTIONS='--disable-update-mimedb' -fi - -if [[ $MODE != 'quick' ]]; then - /bin/sh ./bootstrap.sh - /bin/sh ./configure --prefix=${PREFIX} --includedir=${PREFIX}/include --disable-static --enable-shared --enable-jack --enable-warnings=max $DEBUG $CONFIGURE_PACKAGE_OPTIONS CFLAGS=$CFLAGS CXXFLAGS=$CXXFLAGS -fi - -make $MAKE_OPTIONS -make install - -for n in AUTHORS COPYING NEWS README -do - cp -f $n ${PREFIX} -done - -#if [ -e synfigstudio-cph-monitor ]; then -# cp -f synfigstudio-cph-monitor ${PREFIX}/bin/ -# chmod a+x ${PREFIX}/bin/synfigstudio-cph-monitor -#fi - -popd -travis_fold_end SynfigStudio -} - -mkpack() -{ - [ -d /packages ] || mkdir /packages - - # bundle libpng - rm -f ${PREFIX}/lib/libpng* || true - cp -av /usr/lib/libpng*.so* ${PREFIX}/lib - # bundle libjasper - rm -f ${PREFIX}/lib/libjasper* || true - cp -av /usr/lib/libjasper*.so* ${PREFIX}/lib - # bundle libltdl - rm -f ${PREFIX}/lib/libltdl* || true - cp -av /usr/lib/libltdl*.so* ${PREFIX}/lib - - # A place for optional libs - [ -e ${PREFIX}/lib.extra ] || mkdir -p ${PREFIX}/lib.extra - # bundle optional libjack - rm -f ${PREFIX}/lib.extra/libjack* || true - cp -av /usr/local/lib/libjack.so* ${PREFIX}/lib.extra - rm -f ${PREFIX}/lib.extra/libdb-4* || true - cp -av /usr/lib/libdb-4*.so ${PREFIX}/lib.extra - - cat > $PREFIX/synfig < $PREFIX/synfigstudio </dev/null ) || ( ! which jackd >/dev/null ) ; then - # No JACK, so disable this functionality. - # (The bundled libjack won't work correctly anyway). - export SYNFIG_DISABLE_JACK=1 - export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:\${PREFIX}/lib.extra -fi - -export LD_LIBRARY_PATH=\${PREFIX}/lib:\$LD_LIBRARY_PATH -export SYNFIG_ROOT=\${PREFIX}/ -export SYNFIG_MODULE_LIST=\${PREFIX}/etc/synfig_modules.cfg - -\$PREFIX/bin/synfigstudio "\$@" -EOF - chmod a+x $PREFIX/synfigstudio - - #== tar.bz2 == - TBZPREFIX=/tmp/synfigstudio-${VERSION}-${REVISION}.$BREED.$RELEASE.${ARCH} - rm -rf $TBZPREFIX - mkdir -p $TBZPREFIX - cp -r ${PREFIX}/* $TBZPREFIX - - if [[ $DEBUG != '' ]]; then - GDB="which gdb && xterm -e gdb -ex run -ex quit \$PREFIX/bin/synfig \"\$@\" || " - else - GDB='' - fi - - #binaries - cat > $TBZPREFIX/synfig < $TBZPREFIX/synfigstudio </dev/null ) || ( ! which jackd >/dev/null ) ; then - # No JACK, so disable this functionality. - # (The bundled libjack won't work correctly anyway). - export SYNFIG_DISABLE_JACK=1 - export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:\${PREFIX}/lib.extra -fi - -export LD_LIBRARY_PATH=\${PREFIX}/lib:\$LD_LIBRARY_PATH -export SYNFIG_ROOT=\${PREFIX}/ -export SYNFIG_MODULE_LIST=\${PREFIX}/etc/synfig_modules.cfg - -$GDB\$PREFIX/bin/synfigstudio "\$@" -EOF - chmod a+x $TBZPREFIX/synfig - chmod a+x $TBZPREFIX/synfigstudio - - #cleaning devel stuff - mkdir $TBZPREFIX/bin.tmp - mv $TBZPREFIX/bin/synfig $TBZPREFIX/bin.tmp/synfig - mv $TBZPREFIX/bin/synfigstudio $TBZPREFIX/bin.tmp/synfigstudio - rm -rf $TBZPREFIX/bin - mv $TBZPREFIX/bin.tmp $TBZPREFIX/bin - - rm -f $TBZPREFIX/lib/*.la - rm -f $TBZPREFIX/lib/*.a - rm -f $TBZPREFIX/lib/cairo/*.la - rm -rf $TBZPREFIX/include - rm -rf $TBZPREFIX/lib/gdkmm-3.0 - rm -rf $TBZPREFIX/lib/libxml++-2.6 - rm -rf $TBZPREFIX/lib/glibmm-2.4 - rm -rf $TBZPREFIX/lib/pangomm-1.4 - rm -rf $TBZPREFIX/lib/gtkmm-3.0 - rm -rf $TBZPREFIX/lib/pkgconfig - rm -rf $TBZPREFIX/lib/sigc++-2.0 - rm -rf $TBZPREFIX/share/doc - rm -rf $TBZPREFIX/share/devhelp - rm -rf $TBZPREFIX/share/gtk-doc - rm -rf $TBZPREFIX/share/aclocal - rm -rf $TBZPREFIX/share/ImageMagick-6.4.0 - rm -rf $TBZPREFIX/share/man - - rm -f /packages/synfigstudio-${VERSION}-${REVISION}.$BREED.$RELEASE.${ARCH}.tar.bz2 - pushd $TBZPREFIX/../ - tar cjf /packages/synfigstudio-${VERSION}-${REVISION}.$BREED.$RELEASE.${ARCH}.tar.bz2 synfigstudio-${VERSION}-${REVISION}.$BREED.$RELEASE.${ARCH} - popd - rm -rf $TBZPREFIX - - #== rpm == - cat > synfigstudio.spec << EOF -%define __spec_install_post /bin/true - -Name: synfigstudio -Version: ${VERSION} -Release: ${REVISION}.${BREED}.${RELEASE} -Summary: Film-Quality 2D Vector Animation package -Group: Applications/Graphics -License: GPL -URL: http://www.synfig.org/ -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -Obsoletes: synfig ETL -AutoReqProv: no - - -%description -Synfig Animation Studio is a powerful, industrial-strength vector-based -2D animation software, designed from the ground-up for producing -feature-film quality animation with fewer people and resources. -It eliminates the need for tweening, preventing the need to hand-draw -each frame. Synfig features spatial and temporal resolution independence -(sharp and smooth at any resolution or framerate), high dynamic range -images, and a flexible plugin system. - - -%prep - - -%build - -%install -rm -rf \$RPM_BUILD_ROOT -mkdir -p \$RPM_BUILD_ROOT/${PREFIX} -cp -r ${PREFIX}/* \$RPM_BUILD_ROOT/${PREFIX} -mkdir -p \$RPM_BUILD_ROOT/usr/share -mv \$RPM_BUILD_ROOT/${PREFIX}/share/applications \$RPM_BUILD_ROOT/usr/share -mv \$RPM_BUILD_ROOT/${PREFIX}/share/icons \$RPM_BUILD_ROOT/usr/share -mv \$RPM_BUILD_ROOT/${PREFIX}/share/mime \$RPM_BUILD_ROOT/usr/share -mkdir -p \$RPM_BUILD_ROOT/usr/share/mime-info -ln -sf ${PREFIX}/share/mime-info/synfigstudio.keys \$RPM_BUILD_ROOT/usr/share/mime-info/synfigstudio.keys -ln -sf ${PREFIX}/share/mime-info/synfigstudio.mime \$RPM_BUILD_ROOT/usr/share/mime-info/synfigstudio.mime -mkdir -p \$RPM_BUILD_ROOT/usr/share/pixmaps -ln -sf ${PREFIX}/share/pixmaps/sif_icon.png \$RPM_BUILD_ROOT/usr/share/pixmaps/sif_icon.png -ln -sf ${PREFIX}/share/pixmaps/synfig_icon.png \$RPM_BUILD_ROOT/usr/share/pixmaps/synfig_icon.png -mkdir -p \$RPM_BUILD_ROOT/usr/bin -cp \$RPM_BUILD_ROOT/${PREFIX}/synfig \$RPM_BUILD_ROOT/usr/bin/ -cp \$RPM_BUILD_ROOT/${PREFIX}/synfigstudio \$RPM_BUILD_ROOT/usr/bin/ - -#if [ -e \$RPM_BUILD_ROOT/${PREFIX}/bin/synfigstudio-cph-monitor ]; then -#mv \$RPM_BUILD_ROOT/${PREFIX}/bin/synfigstudio-cph-monitor \$RPM_BUILD_ROOT/usr/bin/ -#cat > \$RPM_BUILD_ROOT/usr/share/applications/synfigstudio-cph-monitor.desktop << EOD -#[Desktop Entry] -#Encoding=UTF-8 -#Name=Synfig Studio CPH monitor -#Comment=This application collecting statistics about synfig crashes -#Exec=synfigstudio-cph-monitor -#Icon=terminal.png -#Terminal=true -#Type=Application -#Categories=Graphics;Application; -#X-Desktop-File-Install-Version=0.15 -#EOD -#fi - -#cleaning devel stuff -rm -f \$RPM_BUILD_ROOT/${PREFIX}/lib/*.la -rm -f \$RPM_BUILD_ROOT/${PREFIX}/lib/*.a -rm -f \$RPM_BUILD_ROOT/${PREFIX}/lib/cairo/*.la -#rm -rf \$RPM_BUILD_ROOT/${PREFIX}/bin -rm -rf \$RPM_BUILD_ROOT/${PREFIX}/include -rm -rf \$RPM_BUILD_ROOT/${PREFIX}/lib/gdkmm-3.0 -rm -rf \$RPM_BUILD_ROOT/${PREFIX}/lib/libxml++-2.6 -rm -rf \$RPM_BUILD_ROOT/${PREFIX}/lib/glibmm-2.4 -rm -rf \$RPM_BUILD_ROOT/${PREFIX}/lib/gtkmm-3.0 -rm -rf \$RPM_BUILD_ROOT/${PREFIX}/lib/pangomm-1.4 -rm -rf \$RPM_BUILD_ROOT/${PREFIX}/lib/pkgconfig -rm -rf \$RPM_BUILD_ROOT/${PREFIX}/lib/sigc++-2.0 -rm -rf \$RPM_BUILD_ROOT/${PREFIX}/share/doc -rm -rf \$RPM_BUILD_ROOT/${PREFIX}/share/devhelp -rm -rf \$RPM_BUILD_ROOT/${PREFIX}/share/gtk-doc -rm -rf \$RPM_BUILD_ROOT/${PREFIX}/share/aclocal -rm -rf \$RPM_BUILD_ROOT/${PREFIX}/share/ImageMagick-6.4.0 -rm -rf \$RPM_BUILD_ROOT/${PREFIX}/share/man - - -%clean -rm -rf \$RPM_BUILD_ROOT - -%post -if [ -x /usr/bin/update-mime-database ]; then - update-mime-database /usr/share/mime -fi -if [ -x /usr/bin/update-desktop-database ]; then - update-desktop-database -fi - -%postun -if [ -x /usr/bin/update-mime-database ]; then - update-mime-database /usr/share/mime -fi -if [ -x /usr/bin/update-desktop-database ]; then - update-desktop-database -fi - -%files -%defattr(-,root,root,-) -$PREFIX -/usr/share/* -/usr/bin/* - -%changelog -* Sat Mar 21 2009 Konstantin Dmitriev - 0.61.09-2354.morevnapackage.1 -- Update to SVN2354 -- Include ImageMagick-c++ - -* Wed Jan 14 2009 Konstantin Dmitriev - 0.61.09-2316.morevnapackage.1 -- First release - -EOF - rpmbuild -bb synfigstudio.spec - - #cp /usr/src/redhat/RPMS/$ARCH/synfigstudio-${VERSION}-${REVISION}.${BREED}.$RELEASE.${ARCH}.rpm ../ - cp /usr/src/rpm/RPMS/$ARCH/synfigstudio-${VERSION}-${REVISION}.${BREED}.$RELEASE.${ARCH}.rpm /packages/ - pushd /packages/ - alien -k --scripts synfigstudio-${VERSION}-${REVISION}.${BREED}.$RELEASE.${ARCH}.rpm - rm -rf synfigstudio-${VERSION} - popd -} - -initialize() -{ - if [[ $DEBUG == 1 ]]; then - DEBUG='--enable-debug --enable-optimization=0' - else - DEBUG='' - fi - - if [[ $MODE == 'package' ]]; then - PREFIX="/opt/synfig" - fi - - if [[ $MODE == 'package' ]] && [[ `cat /etc/chroot.id` == "Synfig Packages Buildroot v${BUILDROOT_VERSION}" ]]; then - SYNFIG_REPO_DIR="/source/synfig.git" - - which git || mkgit - - pushd $SYNFIG_REPO_DIR - git fetch - git reset --hard HEAD - #we can't switch directly to specified commit wit old git, so let's create temporary branch: - #git checkout master || ( git branch -f master && git checkout master ) - #git branch -f __build $SELECTEDREVISION - #git checkout __build - git checkout $SELECTEDREVISION - VERSION=`cat synfig-core/configure.ac |egrep "AC_INIT\(\[Synfig Core\],"| sed "s|.*Core\],\[||" | sed "s|\],\[.*||"` - if [ -z $BREED ]; then - BREED="`git branch -a --no-color --contains HEAD | sed -e s/\*\ // | sed -e s/\(no\ branch\)// | tr '\n' ' ' | tr -s ' ' | sed s/^' '//`" - if ( echo $BREED | egrep origin/master > /dev/null ); then - #give a priority to master branch - BREED='master' - else - BREED=`echo $BREED | cut -d ' ' -f 1` - BREED=${BREED##*/} - fi - BREED=${BREED%_master} - fi - if [[ ${VERSION##*-RC} != ${VERSION} ]]; then - #if [[ $BREED == 'master' ]]; then - BREED=rc${VERSION##*-RC} - #else - # BREED=rc${VERSION##*-RC}.$BREED - #fi - VERSION=${VERSION%%-*} - fi - [[ $DEBUG == 1 ]] && BREED=${BREED}.dbg - BREED=`echo $BREED | tr _ . | tr - .` # No "-" or "_" characters, becuse RPM and DEB complain - REVISION=`git show --pretty=format:%ci HEAD | head -c 10 | tr -d '-'` - echo - echo - echo "BUILDING synfigstudio-$VERSION-$REVISION.$BREED.$RELEASE" - echo - echo - sleep 5 - popd - - #Trick to detect arch under chroot - #ARCH=`rpm -q --queryformat='%{arch}\n' e2fsprogs` - MACHINE_TYPE=`uname -m` - case ${MACHINE_TYPE} in - i586) - ARCH=i386;; - i686) - ARCH=i386;; - *) - ARCH=${MACHINE_TYPE};; - esac - else - #detecting repo - SCRIPTPATH=`dirname "$0"` - pushd "$SCRIPTPATH" - if git rev-parse --git-dir >/dev/null; then - SYNFIG_REPO_DIR=$(dirname `git rev-parse --git-dir`) - pushd "$SYNFIG_REPO_DIR" > /dev/null - SYNFIG_REPO_DIR=`pwd` - popd > /dev/null - WORKDIR_IS_REPO=1 - fi - popd > /dev/null - fi - - #export PREFIX=/opt/synfig - export PKG_CONFIG_PATH=${PREFIX}/lib/pkgconfig:${PREFIX}/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib/`uname -i`-linux-gnu/pkgconfig/:$PKG_CONFIG_PATH - export PATH=${PREFIX}/bin:$PATH - export LD_LIBRARY_PATH=${PREFIX}/lib:${PREFIX}/lib64:/usr/local/lib:$LD_LIBRARY_PATH - export LDFLAGS="-Wl,-rpath -Wl,\\\$\$ORIGIN/lib" -} - -mk() -{ - #get_dependencies - initialize - - if [[ $WORKDIR_IS_REPO == 0 ]]; then - SYNFIG_REPO_DIR=`pwd`/synfig.git/ - git clone git://github.com/synfig/synfig.git ${SYNFIG_REPO_DIR} - fi - - mkETL - mksynfig - mksynfigstudio -} - -mkpackage() -{ - #check if we already in chroot - if [[ `cat /etc/chroot.id` == "Synfig Packages Buildroot v${BUILDROOT_VERSION}" ]]; then - echo "We are in chroot now." - - echo "[user]" > /root/.gitconfig - echo "email = packages@synfig.org" >> /root/.gitconfig - echo "name = Synfig Packager" >> /root/.gitconfig - - # we need newer intltool - dpkg -i /source/intltool_0.41.1-1_all.deb - - #system libs - mkglib - mkfontconfig - mkatk - mkpixman - mkcairo - mkpango - mkgtk - mkjack - - - #synfig-core deps - mklibsigcpp - mkglibmm - mklibxmlpp - if [[ $OPENGL == 1 ]]; then - mkglew - fi - mkimagemagick - mkboost - - #synfig-studio deps - mkcairomm - mkpangomm - mkgtkmm - if [[ $OPENGL == 1 ]]; then - mkfreeglut - mkftgl - mkgtkglext - mkgtkglextmm - fi - - mkETL - mksynfig - mksynfigstudio - - mkpack - else - [ -d $HOME/synfig-packages ] || mkdir -p $HOME/synfig-packages - #DEB_LIST="build-essential,autoconf,automake,libltdl3-dev,libtool,gettext,libpng12-dev,libjpeg62-dev,libfreetype6-dev,libfontconfig1-dev,libgtk3.0-dev,libxml2-dev,bzip2,rpm,alien,xsltproc" - for ARCH in i386 amd64; do - if [[ $ARCH == 'i386' ]];then - SETARCH='linux32' - else - SETARCH='linux64' - fi - - # If chroot version changed -> reset existing buildroot - if [[ `cat $PACKAGES_BUILDROOT.$ARCH/etc/chroot.id` != "Synfig Packages Buildroot v${BUILDROOT_VERSION}" ]]; then - echo "======================= !!! ======================" - echo " Buildroot version changed. Force update..." - echo "======================= !!! ======================" - if [ -e $PACKAGES_BUILDROOT.$ARCH/ ]; then - rm -rf $PACKAGES_BUILDROOT.$ARCH/ - fi - debootstrap --arch=$ARCH --variant=buildd --include=sudo lenny $PACKAGES_BUILDROOT.$ARCH http://archive.debian.org/debian - #debootstrap --arch=$ARCH --variant=buildd --include=sudo squeeze $PACKAGES_BUILDROOT.$ARCH http://ftp.de.debian.org/debian - fi - #set chroot ID - echo "Synfig Packages Buildroot v${BUILDROOT_VERSION}" > $PACKAGES_BUILDROOT.$ARCH/etc/chroot.id - - # If library set changed -> remove all existing libraries to force rebuild - if [[ `cat $PACKAGES_BUILDROOT.$ARCH/etc/chroot_libset.id` != "${BUILDROOT_LIBRARY_SET_ID}" ]]; then - echo "======================= !!! ======================" - echo " Library set is changed. Force cleanup..." - echo "======================= !!! ======================" - sleep 5 - echo "Cleaning $PACKAGES_BUILDROOT.$ARCH/usr/local ..." - rm -rf $PACKAGES_BUILDROOT.$ARCH/usr/local || true - echo "Cleaning $PACKAGES_BUILDROOT.$ARCH/$PREFIX ..." - rm -rf $PACKAGES_BUILDROOT.$ARCH/$PREFIX || true - echo - fi - #set library set ID - echo "${BUILDROOT_LIBRARY_SET_ID}" > $PACKAGES_BUILDROOT.$ARCH/etc/chroot_libset.id - - cp -f $0 $PACKAGES_BUILDROOT.$ARCH/build.sh - - #resolv.conf - cp -f /etc/resolv.conf $PACKAGES_BUILDROOT.$ARCH/etc/resolv.conf - #keep proxy settings - if ! [ -z $http_proxy ]; then - #echo "export http_proxy=\"$http_proxy\";" >> $PACKAGES_BUILDROOT.$ARCH/root/.bashrc - #echo "echo 'proxy export done';" >> $PACKAGES_BUILDROOT.$ARCH/root/.bashrc - echo "Acquire::http::Proxy \"$http_proxy\";" > $PACKAGES_BUILDROOT.$ARCH/etc/apt/apt.conf - fi - #fetch sources to cache - if [ -d $PACKAGES_BUILDROOT.$ARCH/source/synfig.git ]; then - rm -rf $PACKAGES_BUILDROOT.$ARCH/source/synfig.git || true - fi - if [ -d $PACKAGES_BUILDROOT/synfig.git ]; then - if [[ $WORKDIR_IS_REPO == 1 ]]; then - rm -rf "$PACKAGES_BUILDROOT/synfig.git" - fi - fi - if ! [ -d $PACKAGES_BUILDROOT/synfig.git ]; then - if [[ $WORKDIR_IS_REPO == 1 ]]; then - git clone $SYNFIG_REPO_DIR $PACKAGES_BUILDROOT/synfig.git - sed -i 's|url = .*|url = git://github.com/synfig/synfig.git|' $PACKAGES_BUILDROOT/synfig.git/.git/config - else - git clone git://github.com/synfig/synfig.git $PACKAGES_BUILDROOT/synfig.git - fi - fi - pushd $PACKAGES_BUILDROOT - cd synfig.git && git fetch && cd .. - #[ ! -e git-$GITVERSION.tar.bz2 ] && wget -c http://kernel.org/pub/software/scm/git/git-$GITVERSION.tar.bz2 - rsync -av rsync://download.tuxfamily.org/pub/synfig/packages/sources/base/ ./ - if [[ $OPENGL == 1 ]]; then - rsync -av rsync://download.tuxfamily.org/pub/synfig/packages/sources/opengl/ ./ - fi - popd - #copy sources - [ -d $PACKAGES_BUILDROOT.$ARCH/source ] || mkdir -p $PACKAGES_BUILDROOT.$ARCH/source - cp -rf $PACKAGES_BUILDROOT/* $PACKAGES_BUILDROOT.$ARCH/source/ - - #set up the /proc link - echo "Mounting proc..." - if ! ( mount | egrep "proc on $PACKAGES_BUILDROOT.${ARCH}/proc" ); then - mount -o bind /proc $PACKAGES_BUILDROOT.$ARCH/proc - echo " Done." - else - echo " Already mounted. Skipping." - fi - - #go to chroot - $SETARCH chroot $PACKAGES_BUILDROOT.$ARCH env http_proxy=$http_proxy bash /build.sh package $SELECTEDREVISION - - umount $PACKAGES_BUILDROOT.$ARCH/proc || true - - mv -f $PACKAGES_BUILDROOT.$ARCH/packages/* $PACKAGES_PATH - done - echo - echo - find $PACKAGES_PATH/synfigstudio* -maxdepth 1 - echo " DONE BUILDING PACKAGES INTO $HOME/synfig-packages" - echo - fi -} - -###=================================== MAIN ====================================== - -if [ -z $1 ]; then - ARG='standart' -else - ARG=$1 -fi - -case $ARG in - full) - MODE='full' - mk - exit;; - standart) - MODE='standart' - mk - exit;; - quick) - MODE='quick' - mk - exit;; - package) - export MODE='package' - #get_dependencies - ./install-requirements-linux.sh - initialize - mk$ARG - exit;; - *) - if [ -e /etc/chroot.id ]; then - MODE='package' - else - MODE='standart' - fi - initialize - mk$ARG - exit;; -esac diff --git a/build-cmake.sh b/build-cmake.sh deleted file mode 100755 index 0c34eb2..0000000 --- a/build-cmake.sh +++ /dev/null @@ -1,57 +0,0 @@ -#!/usr/bin/env bash -# -# = Usage: = -# ./build-cmake.sh [OPTIONS] -# -# OPTIONS -# -d = Debug build (standard) -# -r = Release build -# -n = Don't write the run-portable.sh to the out dir -# -j NUMBER = Set parallel make jobs (1 <= NUMBER <= 999) (standard is 1) -# -p = Only print out the current active build settings and exit -# --data-prefix = The installed Synfig Studio looks for it's data (icons, sounds, etc) in [DATA_PREFIX]/share/. This option sets a custom DATA_PREFIX. (Standard is the out directory) -# -# = Examples = -# Make a debug build -# ./build-cmake -d -# -# Make a release build -# ./build-cmake -r -# -# Make a release build with two parallel make jobs -# ./build-cmake -r -j 2 - -#Define dir paths -pwd_dir="$PWD" -absolute_script_path="$(readlink -f "$0")" -absolute_base_dir="$(dirname "$absolute_script_path")" - -cd ${absolute_base_dir} - -# Include build folder names and build functions -source ./autobuild/build-cmake-common.sh - -if [ $? -ne 0 ] - then - echo "Failed to include: ./autobuild/build-cmake-common.sh" - cd "$pwd_dir" - exit -fi - -# Parse build options -parse_build_arguments "$@" - -# Print build settings -print_build_settings - -# Exec build steps -clean_build_dir -gen_dir_structure -build_etl -build_synfig_core -build_synfig_studio -write_portable_run_code - -# Print success, restore the current directory and exit -echo "Build successfull to: ${absolute_base_dir}/${cmake_build_dir}/${out_dir}" -cd "$pwd_dir" diff --git a/build-debug.sh b/build-debug.sh deleted file mode 100755 index e7d76e2..0000000 --- a/build-debug.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env bash -# -# = Usage: = -# ./build.sh [package] [mode] -# -# where: -# - [package] is all|etl|core|studio -# - [mode] is full|clean|configure|make -# -# -# = Examples: = -# -# == Standart mode == -# Configure and (re)build: -# ./build.sh -# Configure and make clean build: -# ./build.sh all full -# Quick rebuild (without configure): -# ./build.sh all make -# Quick rebuild od synfig-core (without configure): -# ./build.sh core make - -set -e - -export TYPE="_debug" -export DEBUG=1 - -WORKDIR=`dirname "$0"` -pushd "${WORKDIR}" > /dev/null -WORKDIR=`pwd` -popd > /dev/null - -[ -d "${WORKDIR}/${TYPE}" ] || mkdir "${WORKDIR}/${TYPE}" - -[ -f "${WORKDIR}/build.conf" ] && cp -f "${WORKDIR}/build.conf" "${WORKDIR}/${TYPE}/build.conf" - -cd "${WORKDIR}/${TYPE}" - -bash ${WORKDIR}/autobuild/build.sh "$1" "$2" diff --git a/build-production.sh b/build-production.sh deleted file mode 100755 index 9a27e19..0000000 --- a/build-production.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env bash -# -# = Usage: = -# ./build.sh [package] [mode] -# -# where: -# - [package] is all|etl|core|studio -# - [mode] is full|clean|configure|make -# -# -# = Examples: = -# -# == Standart mode == -# Configure and (re)build: -# ./build.sh -# Configure and make clean build: -# ./build.sh all full -# Quick rebuild (without configure): -# ./build.sh all make -# Quick rebuild of synfig-core (without configure): -# ./build.sh core make - -set -e - -export TYPE="_production" -export DEBUG=0 - -WORKDIR=`dirname "$0"` -pushd "${WORKDIR}" > /dev/null -WORKDIR=`pwd` -popd > /dev/null - -[ -d "${WORKDIR}/${TYPE}" ] || mkdir "${WORKDIR}/${TYPE}" - -[ -f "${WORKDIR}/build.conf" ] && cp -f "${WORKDIR}/build.conf" "${WORKDIR}/${TYPE}/build.conf" - -cd "${WORKDIR}/${TYPE}" - -/usr/bin/env bash ${WORKDIR}/autobuild/build.sh "$1" "$2" diff --git a/dev-env.sh b/dev-env.sh deleted file mode 100755 index 9af8057..0000000 --- a/dev-env.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -# - -set -e - -WORKDIR=`dirname "$0"` -pushd "${WORKDIR}" > /dev/null -WORKDIR=`pwd` -popd > /dev/null - -. $HOME/.nix-profile/etc/profile.d/nix.sh -nix-shell "${WORKDIR}/autobuild/default.nix" diff --git a/synfig-studio/images/Makefile.am b/synfig-studio/images/Makefile.am index 10ecc2f..4458b4d 100644 --- a/synfig-studio/images/Makefile.am +++ b/synfig-studio/images/Makefile.am @@ -641,11 +641,7 @@ action_doc_redo_icon.$(EXT): $(srcdir)/action_doc_icons.sif if DEVELOPMENT_SNAPSHOT splash_screen_development.sif: $(srcdir)/splash_screen_development.sif.in $(top_builddir)/autorevision.h - export commit_id=`git log --no-color -1 | head -n 1 | cut -f 2 -d ' ' | cut -c -6` && \ - export commit_date=`git show --pretty=format:%ci HEAD | head -c 10` && \ - export branch=`git branch -a --no-color --contains HEAD | sed -e s/\*\ // | sed -e s/\(no\ branch\)// | head -n 1 | sed s/^' '//` && \ - export branch=`echo $$branch | egrep origin/master > /dev/null && echo master || echo $$branch | cut -d ' ' -f 1 | sed -e 's/.*\///'` && \ - sed "s|%branch%|$$branch|" $< | sed "s|%commit_date%|$$commit_date|" | sed "s|%commit_id%|$$commit_id|" | sed "s|synfig_icon.sif#|$(srcdir)/synfig_icon.sif#|" > $@ + $(srcdir)/splash_screen_development.sh $@ "$(srcdir)" splash_screen.$(EXT): splash_screen_development.sif $(SYNFIG) -q $< -o $@ --time 0 echo " File \"images\\$@\"" >>./images.nsh diff --git a/synfig-studio/images/splash_screen_development.sh b/synfig-studio/images/splash_screen_development.sh new file mode 100755 index 0000000..923bc04 --- /dev/null +++ b/synfig-studio/images/splash_screen_development.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +set -x + +export commit_id=`git log --no-color -1 | head -n 1 | cut -f 2 -d ' ' | cut -c -6` +export commit_date=`git show --pretty=format:%ci HEAD | head -c 10` +export branch=`git branch -a --no-color --contains HEAD | sed -e s/\*\ // | sed -e s/\(no\ branch\)// | head -n 1 | sed s/^' '//` +export branch=`echo $branch | egrep origin/master > /dev/null && echo master || echo $branch | cut -d ' ' -f 1 | sed -e 's/.*\///'` +sed "s|%branch%|$branch|" "$2/splash_screen_development.sif.in" | sed "s|%commit_date%|$commit_date|" | sed "s|%commit_id%|$commit_id|" | sed "s|synfig_icon.sif#|$2/synfig_icon.sif#|" > "$1" +