Unity doesn't deal well with pure GtkHeaderBar apps, so this allows for the GtkHeaderBar to be treated like a toolbar and the window retain its chrome.
190 lines
5.2 KiB
Bash
Executable file
190 lines
5.2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
#
|
|
# Copyright 2012-2014 Yorba Foundation
|
|
#
|
|
# This software is licensed under the GNU LGPL (version 2.1 or later).
|
|
# See the COPYING file in this distribution.
|
|
|
|
srcdir=$(cd $(dirname $0) && pwd)
|
|
|
|
DEFAULT_PREFIX="/usr/local"
|
|
|
|
PREFIX=$DEFAULT_PREFIX
|
|
|
|
configure_help() {
|
|
cat <<- EOT
|
|
Usage:
|
|
./configure [OPTIONS]...
|
|
|
|
Options:
|
|
-h, --help Print this help and exit.
|
|
--prefix=PREFIX Prepend PREFIX to program installation paths.
|
|
[$DEFAULT_PREFIX]
|
|
--debug Build for debugging.
|
|
|
|
--disable-fatal-warnings
|
|
Disable Vala fatal warnings when compiling.
|
|
--enable-unity
|
|
Enable Unity interface changes.
|
|
--enable-ref-tracking
|
|
Enable reference tracking which is dumped to stdout when the program exits.
|
|
--disable-schemas-compile
|
|
Disable compiling the GSettings schema.
|
|
--disable-desktop-update
|
|
Disable desktop database update.
|
|
--disable-desktop-validate
|
|
Disable checking for errors in generated desktop file.
|
|
--disable-icon-update
|
|
Disable icon cache update.
|
|
--disable-documentation
|
|
Disable generating and installing translated help documentation.
|
|
|
|
Some influential environment variables:
|
|
PKG_CONFIG_PATH Adds directories to pkg-config's search path.
|
|
PKG_CONFIG_LIBDIR Overrides pkg-config's built-in search path.
|
|
|
|
VALAC Name of the vala compiler to use, e.g. "valac-0.18".
|
|
|
|
EOT
|
|
}
|
|
|
|
abort() {
|
|
printf "%s: Invalid argument %s\n" $0 $1
|
|
configure_help
|
|
exit 1
|
|
}
|
|
|
|
while [ $# != 0 ]
|
|
do
|
|
if [[ "$1" = *=* ]]
|
|
then
|
|
option=${1%%=*}
|
|
value=${1#*=}
|
|
else
|
|
option=$1
|
|
value=
|
|
fi
|
|
|
|
case $option in
|
|
-h | --help) configure_help
|
|
exit 0
|
|
;;
|
|
|
|
--prefix) [ ! $value ] && abort $1
|
|
CMDLINE="${CMDLINE} -DCMAKE_INSTALL_PREFIX=${value}"
|
|
;;
|
|
|
|
# ignored for autotools compatibility
|
|
--bindir | --libdir | --sbindir |--datadir | --localstatedir | --includedir) ;;
|
|
--infodir | --sysconfdir | --mandir | --libexecdir) ;;
|
|
--build | --host | --target) ;;
|
|
--disable-silent-rules | --disable-static ) ;;
|
|
|
|
--debug)
|
|
CMDLINE="${CMDLINE} -DDEBUG=ON"
|
|
;;
|
|
|
|
--disable-fatal-warnings)
|
|
CMDLINE="${CMDLINE} -DNO_FATAL_WARNINGS=ON"
|
|
;;
|
|
|
|
--enable-ref-tracking)
|
|
CMDLINE="${CMDLINE} -DREF_TRACKING=ON"
|
|
;;
|
|
|
|
--enable-unity)
|
|
CMDLINE="${CMDLINE} -DENABLE_UNITY=ON"
|
|
;;
|
|
|
|
--disable-schemas-compile)
|
|
CMDLINE="${CMDLINE} -DGSETTINGS_COMPILE=OFF"
|
|
CMDLINE="${CMDLINE} -DGSETTINGS_COMPILE_IN_PLACE=OFF"
|
|
;;
|
|
|
|
--disable-icon-update)
|
|
CMDLINE="${CMDLINE} -DICON_UPDATE=OFF"
|
|
;;
|
|
|
|
--disable-desktop-update)
|
|
CMDLINE="${CMDLINE} -DDESKTOP_UPDATE=OFF"
|
|
;;
|
|
|
|
--disable-desktop-validate)
|
|
CMDLINE="${CMDLINE} -DDESKTOP_VALIDATE=OFF"
|
|
;;
|
|
|
|
--disable-documentation)
|
|
CMDLINE="${CMDLINE} -DTRANSLATE_HELP=OFF"
|
|
;;
|
|
|
|
VALAC) [ ! $value ] && abort $1
|
|
VALAC=$value
|
|
;;
|
|
|
|
*) abort $option
|
|
;;
|
|
esac
|
|
|
|
shift
|
|
done
|
|
|
|
# Verify use supplied vala executable
|
|
if [ -n "$VALAC" ]
|
|
then
|
|
VALA_EXECUTABLE=`type -p "$VALAC"`
|
|
|
|
if [ -z "$VALA_EXECUTABLE" ]
|
|
then
|
|
printf "$VALAC is not an executable program.\n"
|
|
exit 1
|
|
fi
|
|
|
|
CMDLINE="${CMDLINE} -DVALA_EXECUTABLE='$VALA_EXECUTABLE'"
|
|
fi
|
|
|
|
# Verify cmake is installed
|
|
# TODO: Check for minimum version number
|
|
if ! cmake --version
|
|
then
|
|
printf "cmake must be installed to configure and build.\n"
|
|
exit 1
|
|
fi
|
|
|
|
using_srcdir_ne_builddir=false
|
|
# Simple check to verify this script is running in the root of the source tree
|
|
if [ -e Makefile.in ]
|
|
then
|
|
using_srcdir_ne_builddir=true
|
|
# Remove existing Makefile so it's not left around if configure fails
|
|
rm -f Makefile
|
|
|
|
# Remove the build folder to force Cmake to update its cache.
|
|
rm -fr build
|
|
|
|
if ! mkdir -p build
|
|
then
|
|
printf "Unable to create build directory.\n"
|
|
exit 1
|
|
fi
|
|
|
|
cd build
|
|
fi
|
|
|
|
if ! (cmake $CMDLINE ${srcdir})
|
|
then
|
|
printf "Unable to prepare build directory.\n"
|
|
exit 1
|
|
fi
|
|
|
|
if ${using_srcdir_ne_builddir}
|
|
then
|
|
cd ..
|
|
|
|
if ! cp -f ${srcdir}/Makefile.in Makefile
|
|
then
|
|
printf "Unable to prepare Makefile.\n"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
printf "Configured. Type 'make' to build, 'make install' to install.\n"
|