Skip to content

Commit

Permalink
Make GTK3 build default, and GTK2 build optional
Browse files Browse the repository at this point in the history
* Replace `--enable-gtk3` with `--enable-gtk2`
* Update Travis CI builds
* Change `cross-build-mingw.sh` default to GTK3 and cleanup a little

After this commit it will be required to pass `--enable-gtk2` to
the Autoconf script in order to build with GTK+2, otherwise GTK+3
will be required.
  • Loading branch information
codebrainz committed Oct 4, 2020
1 parent f6624c6 commit 6095bc1
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 33 deletions.
16 changes: 8 additions & 8 deletions .travis.yml
Expand Up @@ -5,12 +5,12 @@ dist: trusty
compiler:
- gcc
env:
- GTK3=no BINRELOC=no
- GTK3=yes BINRELOC=no
- GTK3=no BINRELOC=yes
- GTK3=yes BINRELOC=yes
- GTK3=no MINGW=yes
- GTK3=yes MINGW=yes
- GTK2=no BINRELOC=no
- GTK2=yes BINRELOC=no
- GTK2=no BINRELOC=yes
- GTK2=yes BINRELOC=yes
- GTK2=no MINGW=yes
- GTK2=yes MINGW=yes
before_install:
- sudo apt-get update -qq
install:
Expand All @@ -29,11 +29,11 @@ script:
- NOCONFIGURE=1 ./autogen.sh
- >
if [ -n "$MINGW" ]; then
arg=-2; [ "$GTK3" = yes ] && arg=-3;
arg=-3; [ "$GTK2" = yes ] && arg=-2;
unset CC CXX;
sh ./scripts/cross-build-mingw.sh $arg;
else
CONFIGURE_FLAGS="--enable-gtk3=$GTK3 --enable-binreloc=$BINRELOC";
CONFIGURE_FLAGS="--enable-gtk2=$GTK2 --enable-binreloc=$BINRELOC";
mkdir _build &&
cd _build &&
{ ../configure $CONFIGURE_FLAGS || { cat config.log; exit 1; } ; } &&
Expand Down
25 changes: 11 additions & 14 deletions configure.ac
Expand Up @@ -72,26 +72,23 @@ GEANY_CHECK_REVISION([dnl force debug mode for a VCS working copy
CFLAGS="-g -DGEANY_DEBUG $CFLAGS"])

# GTK version check
AC_ARG_ENABLE([gtk3],
[AS_HELP_STRING([--enable-gtk3],
[compile against GTK3 [default=auto]])],
[enable_gtk3=$enableval],
[enable_gtk3=auto])
AC_ARG_ENABLE([gtk2],
[AS_HELP_STRING([--enable-gtk2],
[compile against deprecated GTK2 [default=no]])],
[enable_gtk2=$enableval],
[enable_gtk2=no])

gtk2_package=gtk+-2.0
gtk2_min_version=2.24
gtk3_package=gtk+-3.0
gtk3_min_version=3.0

PKG_CHECK_EXISTS([$gtk2_package >= $gtk2_min_version], [have_gtk2=yes], [have_gtk2=no])
PKG_CHECK_EXISTS([$gtk3_package >= $gtk3_min_version], [have_gtk3=yes], [have_gtk3=no])
AS_IF([test "x$enable_gtk3" = xyes || (test "x$enable_gtk3" != xno &&
test "x$have_gtk3" = xyes &&
test "x$have_gtk2" = xno)],
[gtk_package=$gtk3_package
gtk_min_version=$gtk3_min_version],
[gtk_package=$gtk2_package
gtk_min_version=$gtk2_min_version])
AS_IF([test "x$enable_gtk2" = "xyes"],
[gtk_package=$gtk2_package
gtk_min_version=$gtk2_min_version],
[gtk_package=$gtk3_package
gtk_min_version=$gtk3_min_version])

AM_CONDITIONAL([GTK3], [test "x$gtk_package" = "x$gtk3_package"])

# GTK/GLib/GIO checks
Expand Down
23 changes: 12 additions & 11 deletions scripts/cross-build-mingw.sh
Expand Up @@ -18,7 +18,7 @@ HOST=i686-w64-mingw32
GTK2_BUNDLE_ZIP="https://download.geany.org/contrib/gtk/gtk+-bundle_2.24.10-20120208_win32.zip"
GTK3_BUNDLE_ZIP="https://download.geany.org/contrib/gtk/gtk+-bundle_3.8.2-20131001_win32.zip"
BUILDDIR=_build-cross-mingw
GTK3=no
GTK3=yes
CONFIGUREFLAGS="--enable-nls"
MAKEFLAGS="${MAKEFLAGS:--j2}"

Expand All @@ -31,8 +31,8 @@ while getopts '32b:h' o; do
cat <<EOF
USAGE: $0 [-2|-3] [-b DIR] [-h]
-2 Build against GTK2
-3 Build against GTK3
-2 Build against GTK2 (deprecated)
-3 Build against GTK3 (default)
-b DIR Use DIR as build directory
-h Show this help and exit
EOF
Expand All @@ -42,13 +42,6 @@ EOF
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()
{
Expand Down Expand Up @@ -87,8 +80,16 @@ mkdir "$BUILDDIR"
cd "$BUILDDIR"

mkdir _deps

# both the GTK2 and GTK3 build require files from the GTK3 bundle
# so download and unzip it unconditionally
fetch_and_unzip "$GTK3_BUNDLE_ZIP" _deps
[ "$GTK3" = yes ] || fetch_and_unzip "$BUNDLE_ZIP" _deps

if [ "$GTK3" = no ]; then
fetch_and_unzip "$GTK2_BUNDLE_ZIP" _deps
CONFIGUREFLAGS="$CONFIGUREFLAGS --enable-gtk2=yes"
fi

# fixup the prefix= in the pkg-config files
sed -i "s%^\(prefix=\).*$%\1$PWD/_deps%" _deps/lib/pkgconfig/*.pc

Expand Down

0 comments on commit 6095bc1

Please sign in to comment.