11be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania#!/bin/sh
21be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
31be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# These variables are automatically filled in by the configure script.
41be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catanianame="@PACKAGE_TARNAME@"
51be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniaversion="@PACKAGE_VERSION@"
61be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
71be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniashow_usage()
81be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania{
91be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  echo "Usage: gtest-config [OPTIONS...]"
101be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania}
111be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
121be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniashow_help()
131be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania{
141be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  show_usage
151be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  cat <<\EOF
161be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
171be2c9def7187e4e643c00a31dd9986395795d7dNicolas CataniaThe `gtest-config' script provides access to the necessary compile and linking
181be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniaflags to connect with Google C++ Testing Framework, both in a build prior to
191be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniainstallation, and on the system proper after installation. The installation
201be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniaoverrides may be issued in combination with any other queries, but will only
211be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniaaffect installation queries if called on a built but not installed gtest. The
221be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniainstallation queries may not be issued with any other types of queries, and
231be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniaonly one installation query may be made at a time. The version queries and
241be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniacompiler flag queries may be combined as desired but not mixed. Different
251be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniaversion queries are always combined with logical "and" semantics, and only the
261be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catanialast of any particular query is used while all previous ones ignored. All
271be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniaversions must be specified as a sequence of numbers separated by periods.
281be2c9def7187e4e643c00a31dd9986395795d7dNicolas CataniaCompiler flag queries output the union of the sets of flags when combined.
291be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
301be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania Examples:
311be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  gtest-config --min-version=1.0 || echo "Insufficient Google Test version."
321be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
331be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  g++ $(gtest-config --cppflags --cxxflags) -o foo.o -c foo.cpp
341be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  g++ $(gtest-config --ldflags --libs) -o foo foo.o
351be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
361be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  # When using a built but not installed Google Test:
371be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  g++ $(../../my_gtest_build/scripts/gtest-config ...) ...
381be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
391be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  # When using an installed Google Test, but with installation overrides:
401be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  export GTEST_PREFIX="/opt"
411be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  g++ $(gtest-config --libdir="/opt/lib64" ...) ...
421be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
431be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania Help:
441be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  --usage                    brief usage information
451be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  --help                     display this help message
461be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
471be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania Installation Overrides:
481be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  --prefix=<dir>             overrides the installation prefix
491be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  --exec-prefix=<dir>        overrides the executable installation prefix
501be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  --libdir=<dir>             overrides the library installation prefix
511be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  --includedir=<dir>         overrides the header file installation prefix
521be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
531be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania Installation Queries:
541be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  --prefix                   installation prefix
551be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  --exec-prefix              executable installation prefix
561be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  --libdir                   library installation directory
571be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  --includedir               header file installation directory
581be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  --version                  the version of the Google Test installation
591be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
601be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania Version Queries:
611be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  --min-version=VERSION      return 0 if the version is at least VERSION
621be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  --exact-version=VERSION    return 0 if the version is exactly VERSION
631be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  --max-version=VERSION      return 0 if the version is at most VERSION
641be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
651be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania Compilation Flag Queries:
661be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  --cppflags                 compile flags specific to the C-like preprocessors
671be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  --cxxflags                 compile flags appropriate for C++ programs
681be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  --ldflags                  linker flags
691be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  --libs                     libraries for linking
701be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
711be2c9def7187e4e643c00a31dd9986395795d7dNicolas CataniaEOF
721be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania}
731be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
741be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# This function bounds our version with a min and a max. It uses some clever
751be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# POSIX-compliant variable expansion to portably do all the work in the shell
761be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# and avoid any dependency on a particular "sed" or "awk" implementation.
771be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# Notable is that it will only ever compare the first 3 components of versions.
781be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# Further components will be cleanly stripped off. All versions must be
791be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# unadorned, so "v1.0" will *not* work. The minimum version must be in $1, and
801be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# the max in $2. TODO(chandlerc@google.com): If this ever breaks, we should
811be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# investigate expanding this via autom4te from AS_VERSION_COMPARE rather than
821be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# continuing to maintain our own shell version.
831be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniacheck_versions()
841be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania{
851be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  major_version=${version%%.*}
861be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  minor_version="0"
871be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  point_version="0"
881be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  if test "${version#*.}" != "${version}"; then
891be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    minor_version=${version#*.}
901be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    minor_version=${minor_version%%.*}
911be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  fi
921be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  if test "${version#*.*.}" != "${version}"; then
931be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    point_version=${version#*.*.}
941be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    point_version=${point_version%%.*}
951be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  fi
961be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
971be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  min_version="$1"
981be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  min_major_version=${min_version%%.*}
991be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  min_minor_version="0"
1001be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  min_point_version="0"
1011be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  if test "${min_version#*.}" != "${min_version}"; then
1021be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    min_minor_version=${min_version#*.}
1031be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    min_minor_version=${min_minor_version%%.*}
1041be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  fi
1051be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  if test "${min_version#*.*.}" != "${min_version}"; then
1061be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    min_point_version=${min_version#*.*.}
1071be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    min_point_version=${min_point_version%%.*}
1081be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  fi
1091be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
1101be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  max_version="$2"
1111be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  max_major_version=${max_version%%.*}
1121be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  max_minor_version="0"
1131be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  max_point_version="0"
1141be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  if test "${max_version#*.}" != "${max_version}"; then
1151be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    max_minor_version=${max_version#*.}
1161be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    max_minor_version=${max_minor_version%%.*}
1171be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  fi
1181be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  if test "${max_version#*.*.}" != "${max_version}"; then
1191be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    max_point_version=${max_version#*.*.}
1201be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    max_point_version=${max_point_version%%.*}
1211be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  fi
1221be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
1231be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  test $(($major_version)) -lt $(($min_major_version)) && exit 1
1241be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  if test $(($major_version)) -eq $(($min_major_version)); then
1251be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    test $(($minor_version)) -lt $(($min_minor_version)) && exit 1
1261be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    if test $(($minor_version)) -eq $(($min_minor_version)); then
1271be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania      test $(($point_version)) -lt $(($min_point_version)) && exit 1
1281be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    fi
1291be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  fi
1301be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
1311be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  test $(($major_version)) -gt $(($max_major_version)) && exit 1
1321be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  if test $(($major_version)) -eq $(($max_major_version)); then
1331be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    test $(($minor_version)) -gt $(($max_minor_version)) && exit 1
1341be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    if test $(($minor_version)) -eq $(($max_minor_version)); then
1351be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania      test $(($point_version)) -gt $(($max_point_version)) && exit 1
1361be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    fi
1371be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  fi
1381be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
1391be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  exit 0
1401be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania}
1411be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
1421be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# Show the usage line when no arguments are specified.
1431be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniaif test $# -eq 0; then
1441be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  show_usage
1451be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  exit 1
1461be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniafi
1471be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
1481be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniawhile test $# -gt 0; do
1491be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  case $1 in
1501be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    --usage)          show_usage;         exit 0;;
1511be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    --help)           show_help;          exit 0;;
1521be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
1531be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    # Installation overrides
1541be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    --prefix=*)       GTEST_PREFIX=${1#--prefix=};;
1551be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    --exec-prefix=*)  GTEST_EXEC_PREFIX=${1#--exec-prefix=};;
1561be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    --libdir=*)       GTEST_LIBDIR=${1#--libdir=};;
1571be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    --includedir=*)   GTEST_INCLUDEDIR=${1#--includedir=};;
1581be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
1591be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    # Installation queries
1601be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    --prefix|--exec-prefix|--libdir|--includedir|--version)
1611be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania      if test -n "${do_query}"; then
1621be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania        show_usage
1631be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania        exit 1
1641be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania      fi
1651be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania      do_query=${1#--}
1661be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania      ;;
1671be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
1681be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    # Version checking
1691be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    --min-version=*)
1701be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania      do_check_versions=yes
1711be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania      min_version=${1#--min-version=}
1721be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania      ;;
1731be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    --max-version=*)
1741be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania      do_check_versions=yes
1751be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania      max_version=${1#--max-version=}
1761be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania      ;;
1771be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    --exact-version=*)
1781be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania      do_check_versions=yes
1791be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania      exact_version=${1#--exact-version=}
1801be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania      ;;
1811be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
1821be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    # Compiler flag output
1831be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    --cppflags)       echo_cppflags=yes;;
1841be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    --cxxflags)       echo_cxxflags=yes;;
1851be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    --ldflags)        echo_ldflags=yes;;
1861be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    --libs)           echo_libs=yes;;
1871be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
1881be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    # Everything else is an error
1891be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    *)                show_usage;         exit 1;;
1901be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  esac
1911be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  shift
1921be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniadone
1931be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
1941be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# These have defaults filled in by the configure script but can also be
1951be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# overridden by environment variables or command line parameters.
1961be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniaprefix="${GTEST_PREFIX:-@prefix@}"
1971be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniaexec_prefix="${GTEST_EXEC_PREFIX:-@exec_prefix@}"
1981be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catanialibdir="${GTEST_LIBDIR:-@libdir@}"
1991be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniaincludedir="${GTEST_INCLUDEDIR:-@includedir@}"
2001be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
2011be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# We try and detect if our binary is not located at its installed location. If
2021be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# it's not, we provide variables pointing to the source and build tree rather
2031be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# than to the install tree. This allows building against a just-built gtest
2041be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# rather than an installed gtest.
2051be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniabindir="@bindir@"
2061be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniathis_relative_bindir=`dirname $0`
2071be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniathis_bindir=`cd ${this_relative_bindir}; pwd -P`
2081be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniaif test "${this_bindir}" = "${this_bindir%${bindir}}"; then
2091be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  # The path to the script doesn't end in the bindir sequence from Autoconf,
2101be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  # assume that we are in a build tree.
2111be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  build_dir=`dirname ${this_bindir}`
2121be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  src_dir=`cd ${this_bindir}/@top_srcdir@; pwd -P`
2131be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
2141be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  # TODO(chandlerc@google.com): This is a dangerous dependency on libtool, we
2151be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  # should work to remove it, and/or remove libtool altogether, replacing it
2161be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  # with direct references to the library and a link path.
21741d0579e8de9ef4ff178fc4991043c61a19943f7Brett Chabot  gtest_libs="${build_dir}/lib/libgtest.la @PTHREAD_CFLAGS@ @PTHREAD_LIBS@"
2181be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  gtest_ldflags=""
2191be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
2201be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  # We provide hooks to include from either the source or build dir, where the
2211be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  # build dir is always preferred. This will potentially allow us to write
2221be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  # build rules for generated headers and have them automatically be preferred
2231be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  # over provided versions.
2241be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  gtest_cppflags="-I${build_dir}/include -I${src_dir}/include"
22541d0579e8de9ef4ff178fc4991043c61a19943f7Brett Chabot  gtest_cxxflags="@PTHREAD_CFLAGS@"
2261be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniaelse
2271be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  # We're using an installed gtest, although it may be staged under some
2281be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  # prefix. Assume (as our own libraries do) that we can resolve the prefix,
2291be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  # and are present in the dynamic link paths.
2301be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  gtest_ldflags="-L${libdir}"
23141d0579e8de9ef4ff178fc4991043c61a19943f7Brett Chabot  gtest_libs="-l${name} @PTHREAD_CFLAGS@ @PTHREAD_LIBS@"
2321be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  gtest_cppflags="-I${includedir}"
23341d0579e8de9ef4ff178fc4991043c61a19943f7Brett Chabot  gtest_cxxflags="@PTHREAD_CFLAGS@"
2341be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniafi
2351be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
2361be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# Do an installation query if requested.
2371be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniaif test -n "$do_query"; then
2381be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  case $do_query in
2391be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    prefix)           echo $prefix;       exit 0;;
2401be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    exec-prefix)      echo $exec_prefix;  exit 0;;
2411be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    libdir)           echo $libdir;       exit 0;;
2421be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    includedir)       echo $includedir;   exit 0;;
2431be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    version)          echo $version;      exit 0;;
2441be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    *)                show_usage;         exit 1;;
2451be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  esac
2461be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniafi
2471be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
2481be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# Do a version check if requested.
2491be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniaif test "$do_check_versions" = "yes"; then
2501be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  # Make sure we didn't receive a bad combination of parameters.
2511be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  test "$echo_cppflags" = "yes" && show_usage && exit 1
2521be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  test "$echo_cxxflags" = "yes" && show_usage && exit 1
2531be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  test "$echo_ldflags" = "yes"  && show_usage && exit 1
2541be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  test "$echo_libs" = "yes"     && show_usage && exit 1
2551be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
2561be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  if test "$exact_version" != ""; then
2571be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    check_versions $exact_version $exact_version
2581be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    # unreachable
2591be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  else
2601be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    check_versions ${min_version:-0.0.0} ${max_version:-9999.9999.9999}
2611be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania    # unreachable
2621be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania  fi
2631be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniafi
2641be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
2651be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# Do the output in the correct order so that these can be used in-line of
2661be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania# a compiler invocation.
2671be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniaoutput=""
2681be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniatest "$echo_cppflags" = "yes" && output="$output $gtest_cppflags"
2691be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniatest "$echo_cxxflags" = "yes" && output="$output $gtest_cxxflags"
2701be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniatest "$echo_ldflags" = "yes"  && output="$output $gtest_ldflags"
2711be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniatest "$echo_libs" = "yes"     && output="$output $gtest_libs"
2721be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniaecho $output
2731be2c9def7187e4e643c00a31dd9986395795d7dNicolas Catania
2741be2c9def7187e4e643c00a31dd9986395795d7dNicolas Cataniaexit 0
275