[geany/geany] 8d367d: Merge pull request #360 from b4n/travis-test
Enrico Tröger
git-noreply at xxxxx
Sat Jul 11 08:05:30 UTC 2015
Branch: refs/heads/master
Author: Enrico Tröger <enrico.troeger at uvena.de>
Committer: Enrico Tröger <enrico.troeger at uvena.de>
Date: Sat, 11 Jul 2015 08:05:30 UTC
Commit: 8d367d49b98f63a28e2d1a7441faa360f1292fa4
https://github.com/geany/geany/commit/8d367d49b98f63a28e2d1a7441faa360f1292fa4
Log Message:
-----------
Merge pull request #360 from b4n/travis-test
travis: Add a Travis CI settings file
Modified Paths:
--------------
.travis.yml
scripts/cross-build-mingw.sh
Modified: .travis.yml
34 lines changed, 34 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,34 @@
+# we use both C and C++, so advertize C++
+language: cpp
+compiler:
+ - gcc
+env:
+ - GTK3=no
+ - GTK3=yes
+ - GTK3=no MINGW=yes
+ - GTK3=yes MINGW=yes
+before_install:
+ - sudo apt-get update -qq
+install:
+ - sudo apt-get install -y intltool libtool
+ - test -n "$MINGW" || sudo apt-get install -y libgtk2.0-dev libgtk-3-dev
+ - test -z "$MINGW" || sudo apt-get install -y mingw-w64-tools g++-mingw-w64-i686 gcc-mingw-w64-i686 binutils-mingw-w64-i686
+ - sudo apt-get install -y python-docutils rst2pdf
+ # try not to install doxygen-latex because we don't need it and it's huge
+ - sudo apt-get install -y --no-install-recommends doxygen
+before_script:
+ - export CFLAGS="-g -O2 -Werror=pointer-arith -Werror=aggregate-return -Werror=implicit-function-declaration"
+script:
+ - NOCONFIGURE=1 ./autogen.sh
+ - >
+ if [ -n "$MINGW" ]; then
+ arg=-2; [ "$GTK3" = yes ] && arg=-3;
+ unset CC CXX;
+ sh ./scripts/cross-build-mingw.sh $arg;
+ else
+ mkdir _build &&
+ cd _build &&
+ ../configure --enable-gtk3=$GTK3 &&
+ make -j2 &&
+ make -j2 check;
+ fi
Modified: scripts/cross-build-mingw.sh
104 lines changed, 104 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,104 @@
+#!/bin/sh
+# A script to automate setup and build for Windows cross-compilation
+#
+# What it does:
+# 1) prepare a build directory
+# 2) download and unpacked the dependencies
+# (see http://www.gtk.org/download/win32.php)
+# 2.1) fixup the unpacked pkg-config file paths
+# 3) setup the few required paths
+# 4) configure with sensible options for this
+# 5) build
+# 6) install in a local directory
+# 7) pack the installation in a ZIP file, ready to be used
+# (but does not pack the dependencies)
+
+# You may change those
+HOST=i686-w64-mingw32
+GTK2_BUNDLE_ZIP="http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.10-20120208_win32.zip"
+GTK3_BUNDLE_ZIP="http://win32builder.gnome.org/gtk+-bundle_3.8.2-20131001_win32.zip"
+BUILDDIR=_build-cross-mingw
+GTK3=no
+CONFIGUREFLAGS="--enable-nls"
+MAKEFLAGS="${MAKEFLAGS:--j2}"
+
+while getopts '32h' o; do
+ case "$o" in
+ 3) GTK3=yes;;
+ 2) GTK3=no;;
+ h)
+ cat <<EOF
+USAGE: $0 [-2|-3] [-h]
+
+-2 Build against GTK2
+-3 Build against GTK3
+-h Show this help and exit
+EOF
+ exit 0;;
+ *) echo "Invalid option $o (see -h)">&2; exit 1;;
+ esac
+done
+shift $((OPTIND - 1))
+
+CONFIGUREFLAGS="$CONFIGUREFLAGS --enable-gtk3=$GTK3"
+if [ "$GTK3" = yes ]; then
+ BUNDLE_ZIP="$GTK3_BUNDLE_ZIP"
+else
+ BUNDLE_ZIP="$GTK2_BUNDLE_ZIP"
+fi
+
+# USAGE: fetch_and_unzip URL DEST_PREFIX
+fetch_and_unzip()
+{
+ local basename=${1##*/}
+ curl -L -# "$1" > "$basename"
+ unzip -q "$basename" -d "$2"
+ rm -f "$basename"
+}
+
+if test -d "$BUILDDIR"; then
+ cat >&2 <<EOF
+** Directory "$BUILDDIR/" already exists.
+If it was created by this tool and just want to build, simply run make:
+ $ make -C "$BUILDDIR/_build/"
+
+If however you want to recreate it, please remove it first:
+ $ rm -rf "$BUILDDIR/"
+EOF
+ exit 1
+fi
+
+set -e
+set -x
+
+
+test -f configure
+# check if the host tools are available, because configure falls back
+# on default non-prefixed tools if they are missing, and it can spit
+# quite a lot of subtle errors. also avoids going further if something
+# is obviously missing.
+type "$HOST-gcc"
+
+SRCDIR="$PWD"
+
+mkdir "$BUILDDIR"
+cd "$BUILDDIR"
+
+mkdir _deps
+fetch_and_unzip "$BUNDLE_ZIP" _deps
+# fixup the prefix= in the pkg-config files
+sed -i "s%^\(prefix=\).*$%\1$PWD/_deps%" _deps/lib/pkgconfig/*.pc
+
+export PKG_CONFIG_PATH="$PWD/_deps/lib/pkgconfig/"
+export CPPFLAGS="-I$PWD/_deps/include"
+export LDFLAGS="-L$PWD/_deps/lib"
+
+mkdir _build
+cd _build
+"$SRCDIR/configure" \
+ --host=$HOST \
+ --disable-silent-rules \
+ --prefix="$PWD/../_install" \
+ $CONFIGUREFLAGS
+make $MAKEFLAGS
+make $MAKEFLAGS install
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
More information about the Commits
mailing list