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