1fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville#!/bin/sh 2fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 3fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# These variables are automatically filled in by the configure script. 4fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savillename="@PACKAGE_TARNAME@" 5fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleversion="@PACKAGE_VERSION@" 6fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 7fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleshow_usage() 8fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville{ 9fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville echo "Usage: gtest-config [OPTIONS...]" 10fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville} 11fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 12fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleshow_help() 13fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville{ 14fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville show_usage 15fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville cat <<\EOF 16fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 17fbaaef999ba563838ebd00874ed8a1c01fbf286dWink SavilleThe `gtest-config' script provides access to the necessary compile and linking 18fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleflags to connect with Google C++ Testing Framework, both in a build prior to 19fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleinstallation, and on the system proper after installation. The installation 20fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleoverrides may be issued in combination with any other queries, but will only 21fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleaffect installation queries if called on a built but not installed gtest. The 22fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleinstallation queries may not be issued with any other types of queries, and 23fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleonly one installation query may be made at a time. The version queries and 24fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savillecompiler flag queries may be combined as desired but not mixed. Different 25fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleversion queries are always combined with logical "and" semantics, and only the 26fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savillelast of any particular query is used while all previous ones ignored. All 27fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleversions must be specified as a sequence of numbers separated by periods. 28fbaaef999ba563838ebd00874ed8a1c01fbf286dWink SavilleCompiler flag queries output the union of the sets of flags when combined. 29fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 30fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville Examples: 31fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville gtest-config --min-version=1.0 || echo "Insufficient Google Test version." 32fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 33fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville g++ $(gtest-config --cppflags --cxxflags) -o foo.o -c foo.cpp 34fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville g++ $(gtest-config --ldflags --libs) -o foo foo.o 35fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 36fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville # When using a built but not installed Google Test: 37fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville g++ $(../../my_gtest_build/scripts/gtest-config ...) ... 38fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 39fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville # When using an installed Google Test, but with installation overrides: 40fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville export GTEST_PREFIX="/opt" 41fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville g++ $(gtest-config --libdir="/opt/lib64" ...) ... 42fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 43fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville Help: 44fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --usage brief usage information 45fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --help display this help message 46fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 47fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville Installation Overrides: 48fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --prefix=<dir> overrides the installation prefix 49fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --exec-prefix=<dir> overrides the executable installation prefix 50fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --libdir=<dir> overrides the library installation prefix 51fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --includedir=<dir> overrides the header file installation prefix 52fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 53fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville Installation Queries: 54fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --prefix installation prefix 55fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --exec-prefix executable installation prefix 56fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --libdir library installation directory 57fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --includedir header file installation directory 58fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --version the version of the Google Test installation 59fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 60fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville Version Queries: 61fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --min-version=VERSION return 0 if the version is at least VERSION 62fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --exact-version=VERSION return 0 if the version is exactly VERSION 63fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --max-version=VERSION return 0 if the version is at most VERSION 64fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 65fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville Compilation Flag Queries: 66fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --cppflags compile flags specific to the C-like preprocessors 67fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --cxxflags compile flags appropriate for C++ programs 68fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --ldflags linker flags 69fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --libs libraries for linking 70fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 71fbaaef999ba563838ebd00874ed8a1c01fbf286dWink SavilleEOF 72fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville} 73fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 74fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# This function bounds our version with a min and a max. It uses some clever 75fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# POSIX-compliant variable expansion to portably do all the work in the shell 76fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# and avoid any dependency on a particular "sed" or "awk" implementation. 77fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# Notable is that it will only ever compare the first 3 components of versions. 78fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# Further components will be cleanly stripped off. All versions must be 79fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# unadorned, so "v1.0" will *not* work. The minimum version must be in $1, and 80fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# the max in $2. TODO(chandlerc@google.com): If this ever breaks, we should 81fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# investigate expanding this via autom4te from AS_VERSION_COMPARE rather than 82fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# continuing to maintain our own shell version. 83fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savillecheck_versions() 84fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville{ 85fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville major_version=${version%%.*} 86fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville minor_version="0" 87fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville point_version="0" 88fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville if test "${version#*.}" != "${version}"; then 89fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville minor_version=${version#*.} 90fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville minor_version=${minor_version%%.*} 91fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville fi 92fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville if test "${version#*.*.}" != "${version}"; then 93fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville point_version=${version#*.*.} 94fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville point_version=${point_version%%.*} 95fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville fi 96fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 97fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville min_version="$1" 98fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville min_major_version=${min_version%%.*} 99fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville min_minor_version="0" 100fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville min_point_version="0" 101fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville if test "${min_version#*.}" != "${min_version}"; then 102fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville min_minor_version=${min_version#*.} 103fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville min_minor_version=${min_minor_version%%.*} 104fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville fi 105fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville if test "${min_version#*.*.}" != "${min_version}"; then 106fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville min_point_version=${min_version#*.*.} 107fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville min_point_version=${min_point_version%%.*} 108fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville fi 109fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 110fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville max_version="$2" 111fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville max_major_version=${max_version%%.*} 112fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville max_minor_version="0" 113fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville max_point_version="0" 114fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville if test "${max_version#*.}" != "${max_version}"; then 115fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville max_minor_version=${max_version#*.} 116fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville max_minor_version=${max_minor_version%%.*} 117fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville fi 118fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville if test "${max_version#*.*.}" != "${max_version}"; then 119fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville max_point_version=${max_version#*.*.} 120fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville max_point_version=${max_point_version%%.*} 121fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville fi 122fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 123fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville test $(($major_version)) -lt $(($min_major_version)) && exit 1 124fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville if test $(($major_version)) -eq $(($min_major_version)); then 125fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville test $(($minor_version)) -lt $(($min_minor_version)) && exit 1 126fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville if test $(($minor_version)) -eq $(($min_minor_version)); then 127fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville test $(($point_version)) -lt $(($min_point_version)) && exit 1 128fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville fi 129fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville fi 130fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 131fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville test $(($major_version)) -gt $(($max_major_version)) && exit 1 132fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville if test $(($major_version)) -eq $(($max_major_version)); then 133fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville test $(($minor_version)) -gt $(($max_minor_version)) && exit 1 134fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville if test $(($minor_version)) -eq $(($max_minor_version)); then 135fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville test $(($point_version)) -gt $(($max_point_version)) && exit 1 136fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville fi 137fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville fi 138fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 139fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville exit 0 140fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville} 141fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 142fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# Show the usage line when no arguments are specified. 143fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleif test $# -eq 0; then 144fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville show_usage 145fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville exit 1 146fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savillefi 147fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 148fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savillewhile test $# -gt 0; do 149fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville case $1 in 150fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --usage) show_usage; exit 0;; 151fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --help) show_help; exit 0;; 152fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 153fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville # Installation overrides 154fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --prefix=*) GTEST_PREFIX=${1#--prefix=};; 155fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --exec-prefix=*) GTEST_EXEC_PREFIX=${1#--exec-prefix=};; 156fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --libdir=*) GTEST_LIBDIR=${1#--libdir=};; 157fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --includedir=*) GTEST_INCLUDEDIR=${1#--includedir=};; 158fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 159fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville # Installation queries 160fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --prefix|--exec-prefix|--libdir|--includedir|--version) 161fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville if test -n "${do_query}"; then 162fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville show_usage 163fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville exit 1 164fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville fi 165fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville do_query=${1#--} 166fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville ;; 167fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 168fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville # Version checking 169fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --min-version=*) 170fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville do_check_versions=yes 171fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville min_version=${1#--min-version=} 172fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville ;; 173fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --max-version=*) 174fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville do_check_versions=yes 175fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville max_version=${1#--max-version=} 176fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville ;; 177fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --exact-version=*) 178fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville do_check_versions=yes 179fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville exact_version=${1#--exact-version=} 180fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville ;; 181fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 182fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville # Compiler flag output 183fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --cppflags) echo_cppflags=yes;; 184fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --cxxflags) echo_cxxflags=yes;; 185fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --ldflags) echo_ldflags=yes;; 186fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville --libs) echo_libs=yes;; 187fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 188fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville # Everything else is an error 189fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville *) show_usage; exit 1;; 190fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville esac 191fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville shift 192fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilledone 193fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 194fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# These have defaults filled in by the configure script but can also be 195fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# overridden by environment variables or command line parameters. 196fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleprefix="${GTEST_PREFIX:-@prefix@}" 197fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleexec_prefix="${GTEST_EXEC_PREFIX:-@exec_prefix@}" 198fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savillelibdir="${GTEST_LIBDIR:-@libdir@}" 199fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleincludedir="${GTEST_INCLUDEDIR:-@includedir@}" 200fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 201fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# We try and detect if our binary is not located at its installed location. If 202fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# it's not, we provide variables pointing to the source and build tree rather 203fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# than to the install tree. This allows building against a just-built gtest 204fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# rather than an installed gtest. 205fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savillebindir="@bindir@" 206fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savillethis_relative_bindir=`dirname $0` 207fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savillethis_bindir=`cd ${this_relative_bindir}; pwd -P` 208fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleif test "${this_bindir}" = "${this_bindir%${bindir}}"; then 209fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville # The path to the script doesn't end in the bindir sequence from Autoconf, 210fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville # assume that we are in a build tree. 211fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville build_dir=`dirname ${this_bindir}` 212fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville src_dir=`cd ${this_bindir}/@top_srcdir@; pwd -P` 213fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 214fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville # TODO(chandlerc@google.com): This is a dangerous dependency on libtool, we 215fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville # should work to remove it, and/or remove libtool altogether, replacing it 216fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville # with direct references to the library and a link path. 217fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville gtest_libs="${build_dir}/lib/libgtest.la" 218fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville gtest_ldflags="" 219fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 220fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville # We provide hooks to include from either the source or build dir, where the 221fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville # build dir is always preferred. This will potentially allow us to write 222fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville # build rules for generated headers and have them automatically be preferred 223fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville # over provided versions. 224fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville gtest_cppflags="-I${build_dir}/include -I${src_dir}/include" 225fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville gtest_cxxflags="" 226fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleelse 227fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville # We're using an installed gtest, although it may be staged under some 228fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville # prefix. Assume (as our own libraries do) that we can resolve the prefix, 229fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville # and are present in the dynamic link paths. 230fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville gtest_ldflags="-L${libdir}" 231fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville gtest_libs="-l${name}" 232fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville gtest_cppflags="-I${includedir}" 233fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville gtest_cxxflags="" 234fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savillefi 235fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 236fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# Do an installation query if requested. 237fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleif test -n "$do_query"; then 238fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville case $do_query in 239fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville prefix) echo $prefix; exit 0;; 240fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville exec-prefix) echo $exec_prefix; exit 0;; 241fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville libdir) echo $libdir; exit 0;; 242fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville includedir) echo $includedir; exit 0;; 243fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville version) echo $version; exit 0;; 244fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville *) show_usage; exit 1;; 245fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville esac 246fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savillefi 247fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 248fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# Do a version check if requested. 249fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleif test "$do_check_versions" = "yes"; then 250fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville # Make sure we didn't receive a bad combination of parameters. 251fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville test "$echo_cppflags" = "yes" && show_usage && exit 1 252fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville test "$echo_cxxflags" = "yes" && show_usage && exit 1 253fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville test "$echo_ldflags" = "yes" && show_usage && exit 1 254fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville test "$echo_libs" = "yes" && show_usage && exit 1 255fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 256fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville if test "$exact_version" != ""; then 257fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville check_versions $exact_version $exact_version 258fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville # unreachable 259fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville else 260fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville check_versions ${min_version:-0.0.0} ${max_version:-9999.9999.9999} 261fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville # unreachable 262fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville fi 263fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savillefi 264fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 265fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# Do the output in the correct order so that these can be used in-line of 266fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# a compiler invocation. 267fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleoutput="" 268fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilletest "$echo_cppflags" = "yes" && output="$output $gtest_cppflags" 269fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilletest "$echo_cxxflags" = "yes" && output="$output $gtest_cxxflags" 270fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilletest "$echo_ldflags" = "yes" && output="$output $gtest_ldflags" 271fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilletest "$echo_libs" = "yes" && output="$output $gtest_libs" 272fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleecho $output 273fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville 274fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleexit 0 275