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"
+