mirror of
https://github.com/google/googletest.git
synced 2024-12-28 02:53:16 +08:00
aea8580ecf
This is part (hopefully all) of the fixes for #776. The top-level configure.ac configures googletest first and then googlemock. With this changes it is possible to embed googletest into another project that uses autoconf. For an example (though it is WIP), see the commits (and soon PR) referenced from google/protobuf#236.
147 lines
6.1 KiB
Plaintext
147 lines
6.1 KiB
Plaintext
m4_include(../googletest/m4/acx_pthread.m4)
|
|
|
|
AC_INIT([Google C++ Mocking Framework],
|
|
[1.8.0],
|
|
[googlemock@googlegroups.com],
|
|
[gmock])
|
|
|
|
# Provide various options to initialize the Autoconf and configure processes.
|
|
AC_PREREQ([2.59])
|
|
AC_CONFIG_SRCDIR([./LICENSE])
|
|
AC_CONFIG_AUX_DIR([build-aux])
|
|
AC_CONFIG_HEADERS([build-aux/config.h])
|
|
AC_CONFIG_FILES([Makefile])
|
|
AC_CONFIG_FILES([scripts/gmock-config], [chmod +x scripts/gmock-config])
|
|
|
|
# Initialize Automake with various options. We require at least v1.9, prevent
|
|
# pedantic complaints about package files, and enable various distribution
|
|
# targets.
|
|
AM_INIT_AUTOMAKE([1.9 dist-bzip2 dist-zip foreign subdir-objects])
|
|
|
|
# Check for programs used in building Google Test.
|
|
AC_PROG_CC
|
|
AC_PROG_CXX
|
|
AC_LANG([C++])
|
|
AC_PROG_LIBTOOL
|
|
|
|
# TODO(chandlerc@google.com): Currently we aren't running the Python tests
|
|
# against the interpreter detected by AM_PATH_PYTHON, and so we condition
|
|
# HAVE_PYTHON by requiring "python" to be in the PATH, and that interpreter's
|
|
# version to be >= 2.3. This will allow the scripts to use a "/usr/bin/env"
|
|
# hashbang.
|
|
PYTHON= # We *do not* allow the user to specify a python interpreter
|
|
AC_PATH_PROG([PYTHON],[python],[:])
|
|
AS_IF([test "$PYTHON" != ":"],
|
|
[AM_PYTHON_CHECK_VERSION([$PYTHON],[2.3],[:],[PYTHON=":"])])
|
|
AM_CONDITIONAL([HAVE_PYTHON],[test "$PYTHON" != ":"])
|
|
|
|
# TODO(chandlerc@google.com) Check for the necessary system headers.
|
|
|
|
# Configure pthreads.
|
|
AC_ARG_WITH([pthreads],
|
|
[AS_HELP_STRING([--with-pthreads],
|
|
[use pthreads (default is yes)])],
|
|
[with_pthreads=$withval],
|
|
[with_pthreads=check])
|
|
|
|
have_pthreads=no
|
|
AS_IF([test "x$with_pthreads" != "xno"],
|
|
[ACX_PTHREAD(
|
|
[],
|
|
[AS_IF([test "x$with_pthreads" != "xcheck"],
|
|
[AC_MSG_FAILURE(
|
|
[--with-pthreads was specified, but unable to be used])])])
|
|
have_pthreads="$acx_pthread_ok"])
|
|
AM_CONDITIONAL([HAVE_PTHREADS],[test "x$have_pthreads" == "xyes"])
|
|
AC_SUBST(PTHREAD_CFLAGS)
|
|
AC_SUBST(PTHREAD_LIBS)
|
|
|
|
# GoogleMock currently has hard dependencies upon GoogleTest above and beyond
|
|
# running its own test suite, so we both provide our own version in
|
|
# a subdirectory and provide some logic to use a custom version or a system
|
|
# installed version.
|
|
AC_ARG_WITH([gtest],
|
|
[AS_HELP_STRING([--with-gtest],
|
|
[Specifies how to find the gtest package. If no
|
|
arguments are given, the default behavior, a
|
|
system installed gtest will be used if present,
|
|
and an internal version built otherwise. If a
|
|
path is provided, the gtest built or installed at
|
|
that prefix will be used.])],
|
|
[],
|
|
[with_gtest=yes])
|
|
AC_ARG_ENABLE([external-gtest],
|
|
[AS_HELP_STRING([--disable-external-gtest],
|
|
[Disables any detection or use of a system
|
|
installed or user provided gtest. Any option to
|
|
'--with-gtest' is ignored. (Default is enabled.)])
|
|
], [], [enable_external_gtest=yes])
|
|
AS_IF([test "x$with_gtest" == "xno"],
|
|
[AC_MSG_ERROR([dnl
|
|
Support for GoogleTest was explicitly disabled. Currently GoogleMock has a hard
|
|
dependency upon GoogleTest to build, please provide a version, or allow
|
|
GoogleMock to use any installed version and fall back upon its internal
|
|
version.])])
|
|
|
|
# Setup various GTEST variables. TODO(chandlerc@google.com): When these are
|
|
# used below, they should be used such that any pre-existing values always
|
|
# trump values we set them to, so that they can be used to selectively override
|
|
# details of the detection process.
|
|
AC_ARG_VAR([GTEST_CONFIG],
|
|
[The exact path of Google Test's 'gtest-config' script.])
|
|
AC_ARG_VAR([GTEST_CPPFLAGS],
|
|
[C-like preprocessor flags for Google Test.])
|
|
AC_ARG_VAR([GTEST_CXXFLAGS],
|
|
[C++ compile flags for Google Test.])
|
|
AC_ARG_VAR([GTEST_LDFLAGS],
|
|
[Linker path and option flags for Google Test.])
|
|
AC_ARG_VAR([GTEST_LIBS],
|
|
[Library linking flags for Google Test.])
|
|
AC_ARG_VAR([GTEST_VERSION],
|
|
[The version of Google Test available.])
|
|
HAVE_BUILT_GTEST="no"
|
|
|
|
GTEST_MIN_VERSION="1.8.0"
|
|
|
|
AS_IF([test "x${enable_external_gtest}" = "xyes"],
|
|
[# Begin filling in variables as we are able.
|
|
AS_IF([test "x${with_gtest}" != "xyes"],
|
|
[AS_IF([test -x "${with_gtest}/scripts/gtest-config"],
|
|
[GTEST_CONFIG="${with_gtest}/scripts/gtest-config"],
|
|
[GTEST_CONFIG="${with_gtest}/bin/gtest-config"])
|
|
AS_IF([test -x "${GTEST_CONFIG}"], [],
|
|
[AC_MSG_ERROR([dnl
|
|
Unable to locate either a built or installed Google Test at '${with_gtest}'.])
|
|
])])
|
|
|
|
AS_IF([test -x "${GTEST_CONFIG}"], [],
|
|
[AC_PATH_PROG([GTEST_CONFIG], [gtest-config])])
|
|
AS_IF([test -x "${GTEST_CONFIG}"],
|
|
[AC_MSG_CHECKING([for Google Test version >= ${GTEST_MIN_VERSION}])
|
|
AS_IF([${GTEST_CONFIG} --min-version=${GTEST_MIN_VERSION}],
|
|
[AC_MSG_RESULT([yes])
|
|
HAVE_BUILT_GTEST="yes"],
|
|
[AC_MSG_RESULT([no])])])])
|
|
|
|
AS_IF([test "x${HAVE_BUILT_GTEST}" = "xyes"],
|
|
[GTEST_CPPFLAGS=`${GTEST_CONFIG} --cppflags`
|
|
GTEST_CXXFLAGS=`${GTEST_CONFIG} --cxxflags`
|
|
GTEST_LDFLAGS=`${GTEST_CONFIG} --ldflags`
|
|
GTEST_LIBS=`${GTEST_CONFIG} --libs`
|
|
GTEST_VERSION=`${GTEST_CONFIG} --version`],
|
|
[
|
|
# GTEST_CONFIG needs to be executable both in a Makefile environment and
|
|
# in a shell script environment, so resolve an absolute path for it here.
|
|
GTEST_CONFIG="`pwd -P`/../googletest/scripts/gtest-config"
|
|
GTEST_CPPFLAGS='-I$(top_srcdir)/../googletest/include'
|
|
GTEST_CXXFLAGS='-g'
|
|
GTEST_LDFLAGS=''
|
|
GTEST_LIBS='$(top_builddir)/../googletest/lib/libgtest.la'
|
|
GTEST_VERSION="${GTEST_MIN_VERSION}"])
|
|
|
|
# TODO(chandlerc@google.com) Check the types, structures, and other compiler
|
|
# and architecture characteristics.
|
|
|
|
# Output the generated files. No further autoconf macros may be used.
|
|
AC_OUTPUT
|