Removing make and automake. The only supported build systems are Bazel internally and CMake community supported
This commit is contained in:
		@@ -1,221 +0,0 @@
 | 
			
		||||
# Note: automake support is community-based. The maintainers do not use automake
 | 
			
		||||
# internally.
 | 
			
		||||
 | 
			
		||||
# Automake file
 | 
			
		||||
 | 
			
		||||
ACLOCAL_AMFLAGS = -I m4
 | 
			
		||||
 | 
			
		||||
# Nonstandard package files for distribution.
 | 
			
		||||
EXTRA_DIST = LICENSE
 | 
			
		||||
 | 
			
		||||
# We may need to build our internally packaged gtest. If so, it will be
 | 
			
		||||
# included in the 'subdirs' variable.
 | 
			
		||||
SUBDIRS = $(subdirs)
 | 
			
		||||
 | 
			
		||||
# This is generated by the configure script, so clean it for distribution.
 | 
			
		||||
DISTCLEANFILES = scripts/gmock-config
 | 
			
		||||
 | 
			
		||||
# We define the global AM_CPPFLAGS as everything we compile includes from these
 | 
			
		||||
# directories.
 | 
			
		||||
AM_CPPFLAGS = $(GTEST_CPPFLAGS) -I$(srcdir)/include
 | 
			
		||||
 | 
			
		||||
# Modifies compiler and linker flags for pthreads compatibility.
 | 
			
		||||
if HAVE_PTHREADS
 | 
			
		||||
  AM_CXXFLAGS = @PTHREAD_CFLAGS@ -DGTEST_HAS_PTHREAD=1
 | 
			
		||||
  AM_LIBS = @PTHREAD_LIBS@
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# Build rules for libraries.
 | 
			
		||||
lib_LTLIBRARIES = lib/libgmock.la lib/libgmock_main.la
 | 
			
		||||
 | 
			
		||||
lib_libgmock_la_SOURCES = src/gmock-all.cc
 | 
			
		||||
 | 
			
		||||
pkginclude_HEADERS = \
 | 
			
		||||
  include/gmock/gmock-actions.h \
 | 
			
		||||
  include/gmock/gmock-cardinalities.h \
 | 
			
		||||
  include/gmock/gmock-function-mocker.h \
 | 
			
		||||
  include/gmock/gmock-generated-actions.h \
 | 
			
		||||
  include/gmock/gmock-generated-function-mockers.h \
 | 
			
		||||
  include/gmock/gmock-generated-matchers.h \
 | 
			
		||||
  include/gmock/gmock-matchers.h \
 | 
			
		||||
  include/gmock/gmock-more-actions.h \
 | 
			
		||||
  include/gmock/gmock-more-matchers.h \
 | 
			
		||||
  include/gmock/gmock-nice-strict.h \
 | 
			
		||||
  include/gmock/gmock-spec-builders.h \
 | 
			
		||||
  include/gmock/gmock.h
 | 
			
		||||
 | 
			
		||||
pkginclude_internaldir = $(pkgincludedir)/internal
 | 
			
		||||
pkginclude_internal_HEADERS = \
 | 
			
		||||
  include/gmock/internal/gmock-internal-utils.h \
 | 
			
		||||
  include/gmock/internal/gmock-port.h \
 | 
			
		||||
  include/gmock/internal/gmock-pp.h \
 | 
			
		||||
  include/gmock/internal/custom/gmock-generated-actions.h \
 | 
			
		||||
  include/gmock/internal/custom/gmock-matchers.h \
 | 
			
		||||
  include/gmock/internal/custom/gmock-port.h
 | 
			
		||||
 | 
			
		||||
lib_libgmock_main_la_SOURCES = src/gmock_main.cc
 | 
			
		||||
lib_libgmock_main_la_LIBADD = lib/libgmock.la
 | 
			
		||||
 | 
			
		||||
# Build rules for tests. Automake's naming for some of these variables isn't
 | 
			
		||||
# terribly obvious, so this is a brief reference:
 | 
			
		||||
#
 | 
			
		||||
# TESTS -- Programs run automatically by "make check"
 | 
			
		||||
# check_PROGRAMS -- Programs built by "make check" but not necessarily run
 | 
			
		||||
 | 
			
		||||
TESTS=
 | 
			
		||||
check_PROGRAMS=
 | 
			
		||||
AM_LDFLAGS = $(GTEST_LDFLAGS)
 | 
			
		||||
 | 
			
		||||
# This exercises all major components of Google Mock.  It also
 | 
			
		||||
# verifies that libgmock works.
 | 
			
		||||
TESTS += test/gmock-spec-builders_test
 | 
			
		||||
check_PROGRAMS += test/gmock-spec-builders_test
 | 
			
		||||
test_gmock_spec_builders_test_SOURCES = test/gmock-spec-builders_test.cc
 | 
			
		||||
test_gmock_spec_builders_test_LDADD = $(GTEST_LIBS) lib/libgmock.la
 | 
			
		||||
 | 
			
		||||
# This tests using Google Mock in multiple translation units.  It also
 | 
			
		||||
# verifies that libgmock_main and libgmock work.
 | 
			
		||||
TESTS += test/gmock_link_test
 | 
			
		||||
check_PROGRAMS += test/gmock_link_test
 | 
			
		||||
test_gmock_link_test_SOURCES = \
 | 
			
		||||
  test/gmock_link2_test.cc \
 | 
			
		||||
  test/gmock_link_test.cc \
 | 
			
		||||
  test/gmock_link_test.h
 | 
			
		||||
test_gmock_link_test_LDADD = $(GTEST_LIBS) lib/libgmock_main.la  lib/libgmock.la
 | 
			
		||||
 | 
			
		||||
if HAVE_PYTHON
 | 
			
		||||
  # Tests that fused gmock files compile and work.
 | 
			
		||||
  TESTS += test/gmock_fused_test
 | 
			
		||||
  check_PROGRAMS += test/gmock_fused_test
 | 
			
		||||
  test_gmock_fused_test_SOURCES = \
 | 
			
		||||
    fused-src/gmock-gtest-all.cc \
 | 
			
		||||
    fused-src/gmock/gmock.h \
 | 
			
		||||
    fused-src/gmock_main.cc \
 | 
			
		||||
    fused-src/gtest/gtest.h \
 | 
			
		||||
    test/gmock_test.cc
 | 
			
		||||
  test_gmock_fused_test_CPPFLAGS = -I"$(srcdir)/fused-src"
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# Google Mock source files that we don't compile directly.
 | 
			
		||||
GMOCK_SOURCE_INGLUDES = \
 | 
			
		||||
  src/gmock-cardinalities.cc \
 | 
			
		||||
  src/gmock-internal-utils.cc \
 | 
			
		||||
  src/gmock-matchers.cc \
 | 
			
		||||
  src/gmock-spec-builders.cc \
 | 
			
		||||
  src/gmock.cc
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST += $(GMOCK_SOURCE_INGLUDES)
 | 
			
		||||
 | 
			
		||||
# C++ tests that we don't compile using autotools.
 | 
			
		||||
EXTRA_DIST += \
 | 
			
		||||
  test/gmock-actions_test.cc \
 | 
			
		||||
  test/gmock_all_test.cc \
 | 
			
		||||
  test/gmock-cardinalities_test.cc \
 | 
			
		||||
  test/gmock_ex_test.cc \
 | 
			
		||||
  test/gmock-generated-actions_test.cc \
 | 
			
		||||
  test/gmock-function-mocker_test.cc \
 | 
			
		||||
  test/gmock-generated-function-mockers_test.cc \
 | 
			
		||||
  test/gmock-generated-matchers_test.cc \
 | 
			
		||||
  test/gmock-internal-utils_test.cc \
 | 
			
		||||
  test/gmock-matchers_test.cc \
 | 
			
		||||
  test/gmock-more-actions_test.cc \
 | 
			
		||||
  test/gmock-nice-strict_test.cc \
 | 
			
		||||
  test/gmock-port_test.cc \
 | 
			
		||||
  test/gmock_stress_test.cc
 | 
			
		||||
 | 
			
		||||
# Python tests, which we don't run using autotools.
 | 
			
		||||
EXTRA_DIST += \
 | 
			
		||||
  test/gmock_leak_test.py \
 | 
			
		||||
  test/gmock_leak_test_.cc \
 | 
			
		||||
  test/gmock_output_test.py \
 | 
			
		||||
  test/gmock_output_test_.cc \
 | 
			
		||||
  test/gmock_output_test_golden.txt \
 | 
			
		||||
  test/gmock_test_utils.py
 | 
			
		||||
 | 
			
		||||
# Nonstandard package files for distribution.
 | 
			
		||||
EXTRA_DIST += \
 | 
			
		||||
  CONTRIBUTORS \
 | 
			
		||||
  make/Makefile
 | 
			
		||||
 | 
			
		||||
# Pump scripts for generating Google Mock headers.
 | 
			
		||||
EXTRA_DIST += \
 | 
			
		||||
  include/gmock/gmock-generated-actions.h.pump \
 | 
			
		||||
  include/gmock/gmock-generated-function-mockers.h.pump \
 | 
			
		||||
  include/gmock/gmock-generated-matchers.h.pump \
 | 
			
		||||
  include/gmock/internal/custom/gmock-generated-actions.h.pump
 | 
			
		||||
 | 
			
		||||
# Script for fusing Google Mock and Google Test source files.
 | 
			
		||||
EXTRA_DIST += scripts/fuse_gmock_files.py
 | 
			
		||||
 | 
			
		||||
# The Google Mock Generator tool from the cppclean project.
 | 
			
		||||
EXTRA_DIST += \
 | 
			
		||||
  scripts/generator/LICENSE \
 | 
			
		||||
  scripts/generator/README \
 | 
			
		||||
  scripts/generator/README.cppclean \
 | 
			
		||||
  scripts/generator/cpp/__init__.py \
 | 
			
		||||
  scripts/generator/cpp/ast.py \
 | 
			
		||||
  scripts/generator/cpp/gmock_class.py \
 | 
			
		||||
  scripts/generator/cpp/keywords.py \
 | 
			
		||||
  scripts/generator/cpp/tokenize.py \
 | 
			
		||||
  scripts/generator/cpp/utils.py \
 | 
			
		||||
  scripts/generator/gmock_gen.py
 | 
			
		||||
 | 
			
		||||
# CMake scripts.
 | 
			
		||||
EXTRA_DIST += \
 | 
			
		||||
  CMakeLists.txt
 | 
			
		||||
 | 
			
		||||
# Microsoft Visual Studio 2005 projects.
 | 
			
		||||
EXTRA_DIST += \
 | 
			
		||||
  msvc/2005/gmock.sln \
 | 
			
		||||
  msvc/2005/gmock.vcproj \
 | 
			
		||||
  msvc/2005/gmock_config.vsprops \
 | 
			
		||||
  msvc/2005/gmock_main.vcproj \
 | 
			
		||||
  msvc/2005/gmock_test.vcproj
 | 
			
		||||
 | 
			
		||||
# Microsoft Visual Studio 2010 projects.
 | 
			
		||||
EXTRA_DIST += \
 | 
			
		||||
  msvc/2010/gmock.sln \
 | 
			
		||||
  msvc/2010/gmock.vcxproj \
 | 
			
		||||
  msvc/2010/gmock_config.props \
 | 
			
		||||
  msvc/2010/gmock_main.vcxproj \
 | 
			
		||||
  msvc/2010/gmock_test.vcxproj
 | 
			
		||||
 | 
			
		||||
if HAVE_PYTHON
 | 
			
		||||
# gmock_test.cc does not really depend on files generated by the
 | 
			
		||||
# fused-gmock-internal rule.  However, gmock_test.o does, and it is
 | 
			
		||||
# important to include test/gmock_test.cc as part of this rule in order to
 | 
			
		||||
# prevent compiling gmock_test.o until all dependent files have been
 | 
			
		||||
# generated.
 | 
			
		||||
$(test_gmock_fused_test_SOURCES): fused-gmock-internal
 | 
			
		||||
 | 
			
		||||
fused-gmock-internal: $(pkginclude_HEADERS) $(pkginclude_internal_HEADERS) \
 | 
			
		||||
                      $(lib_libgmock_la_SOURCES) $(GMOCK_SOURCE_INGLUDES) \
 | 
			
		||||
                      $(lib_libgmock_main_la_SOURCES) \
 | 
			
		||||
                      scripts/fuse_gmock_files.py
 | 
			
		||||
	mkdir -p "$(srcdir)/fused-src"
 | 
			
		||||
	chmod -R u+w "$(srcdir)/fused-src"
 | 
			
		||||
	rm -f "$(srcdir)/fused-src/gtest/gtest.h"
 | 
			
		||||
	rm -f "$(srcdir)/fused-src/gmock/gmock.h"
 | 
			
		||||
	rm -f "$(srcdir)/fused-src/gmock-gtest-all.cc"
 | 
			
		||||
	"$(srcdir)/scripts/fuse_gmock_files.py" "$(srcdir)/fused-src"
 | 
			
		||||
	cp -f "$(srcdir)/src/gmock_main.cc" "$(srcdir)/fused-src"
 | 
			
		||||
 | 
			
		||||
maintainer-clean-local:
 | 
			
		||||
	rm -rf "$(srcdir)/fused-src"
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# Death tests may produce core dumps in the build directory. In case
 | 
			
		||||
# this happens, clean them to keep distcleancheck happy.
 | 
			
		||||
CLEANFILES = core
 | 
			
		||||
 | 
			
		||||
# Disables 'make install' as installing a compiled version of Google
 | 
			
		||||
# Mock can lead to undefined behavior due to violation of the
 | 
			
		||||
# One-Definition Rule.
 | 
			
		||||
 | 
			
		||||
install-exec-local:
 | 
			
		||||
	echo "'make install' is dangerous and not supported. Instead, see README for how to integrate Google Mock into your build system."
 | 
			
		||||
	false
 | 
			
		||||
 | 
			
		||||
install-data-local:
 | 
			
		||||
	echo "'make install' is dangerous and not supported. Instead, see README for how to integrate Google Mock into your build system."
 | 
			
		||||
	false
 | 
			
		||||
@@ -145,93 +145,6 @@ to
 | 
			
		||||
 | 
			
		||||
This works because `gmock_main` library is compiled with Google Test.
 | 
			
		||||
 | 
			
		||||
#### Preparing to Build (Unix only) ####
 | 
			
		||||
 | 
			
		||||
If you are using a Unix system and plan to use the GNU Autotools build
 | 
			
		||||
system to build Google Mock (described below), you'll need to
 | 
			
		||||
configure it now.
 | 
			
		||||
 | 
			
		||||
To prepare the Autotools build system:
 | 
			
		||||
 | 
			
		||||
    cd googlemock
 | 
			
		||||
    autoreconf -fvi
 | 
			
		||||
 | 
			
		||||
To build Google Mock and your tests that use it, you need to tell your
 | 
			
		||||
build system where to find its headers and source files.  The exact
 | 
			
		||||
way to do it depends on which build system you use, and is usually
 | 
			
		||||
straightforward.
 | 
			
		||||
 | 
			
		||||
This section shows how you can integrate Google Mock into your
 | 
			
		||||
existing build system.
 | 
			
		||||
 | 
			
		||||
Suppose you put Google Mock in directory `${GMOCK_DIR}` and Google Test
 | 
			
		||||
in `${GTEST_DIR}` (the latter is `${GMOCK_DIR}/gtest` by default).  To
 | 
			
		||||
build Google Mock, create a library build target (or a project as
 | 
			
		||||
called by Visual Studio and Xcode) to compile
 | 
			
		||||
 | 
			
		||||
    ${GTEST_DIR}/src/gtest-all.cc and ${GMOCK_DIR}/src/gmock-all.cc
 | 
			
		||||
 | 
			
		||||
with
 | 
			
		||||
 | 
			
		||||
    ${GTEST_DIR}/include and ${GMOCK_DIR}/include
 | 
			
		||||
 | 
			
		||||
in the system header search path, and
 | 
			
		||||
 | 
			
		||||
    ${GTEST_DIR} and ${GMOCK_DIR}
 | 
			
		||||
 | 
			
		||||
in the normal header search path.  Assuming a Linux-like system and gcc,
 | 
			
		||||
something like the following will do:
 | 
			
		||||
 | 
			
		||||
    g++ -isystem ${GTEST_DIR}/include -I${GTEST_DIR} \
 | 
			
		||||
        -isystem ${GMOCK_DIR}/include -I${GMOCK_DIR} \
 | 
			
		||||
        -pthread -c ${GTEST_DIR}/src/gtest-all.cc
 | 
			
		||||
    g++ -isystem ${GTEST_DIR}/include -I${GTEST_DIR} \
 | 
			
		||||
        -isystem ${GMOCK_DIR}/include -I${GMOCK_DIR} \
 | 
			
		||||
        -pthread -c ${GMOCK_DIR}/src/gmock-all.cc
 | 
			
		||||
    ar -rv libgmock.a gtest-all.o gmock-all.o
 | 
			
		||||
 | 
			
		||||
(We need -pthread as Google Test and Google Mock use threads.)
 | 
			
		||||
 | 
			
		||||
Next, you should compile your test source file with
 | 
			
		||||
${GTEST\_DIR}/include and ${GMOCK\_DIR}/include in the header search
 | 
			
		||||
path, and link it with gmock and any other necessary libraries:
 | 
			
		||||
 | 
			
		||||
    g++ -isystem ${GTEST_DIR}/include -isystem ${GMOCK_DIR}/include \
 | 
			
		||||
        -pthread path/to/your_test.cc libgmock.a -o your_test
 | 
			
		||||
 | 
			
		||||
As an example, the make/ directory contains a Makefile that you can
 | 
			
		||||
use to build Google Mock on systems where GNU make is available
 | 
			
		||||
(e.g. Linux, Mac OS X, and Cygwin).  It doesn't try to build Google
 | 
			
		||||
Mock's own tests.  Instead, it just builds the Google Mock library and
 | 
			
		||||
a sample test.  You can use it as a starting point for your own build
 | 
			
		||||
script.
 | 
			
		||||
 | 
			
		||||
If the default settings are correct for your environment, the
 | 
			
		||||
following commands should succeed:
 | 
			
		||||
 | 
			
		||||
    cd ${GMOCK_DIR}/make
 | 
			
		||||
    make
 | 
			
		||||
    ./gmock_test
 | 
			
		||||
 | 
			
		||||
If you see errors, try to tweak the contents of
 | 
			
		||||
[make/Makefile](make/Makefile) to make them go away.
 | 
			
		||||
 | 
			
		||||
### Windows ###
 | 
			
		||||
 | 
			
		||||
The msvc/2005 directory contains VC++ 2005 projects and the msvc/2010
 | 
			
		||||
directory contains VC++ 2010 projects for building Google Mock and
 | 
			
		||||
selected tests.
 | 
			
		||||
 | 
			
		||||
Change to the appropriate directory and run "msbuild gmock.sln" to
 | 
			
		||||
build the library and tests (or open the gmock.sln in the MSVC IDE).
 | 
			
		||||
If you want to create your own project to use with Google Mock, you'll
 | 
			
		||||
have to configure it to use the `gmock_config` propety sheet.  For that:
 | 
			
		||||
 | 
			
		||||
 * Open the Property Manager window (View | Other Windows | Property Manager)
 | 
			
		||||
 * Right-click on your project and select "Add Existing Property Sheet..."
 | 
			
		||||
 * Navigate to `gmock_config.vsprops` or `gmock_config.props` and select it.
 | 
			
		||||
 * In Project Properties | Configuration Properties | General | Additional
 | 
			
		||||
   Include Directories, type <path to Google Mock>/include.
 | 
			
		||||
 | 
			
		||||
### Tweaking Google Mock ###
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,137 +0,0 @@
 | 
			
		||||
# Note: automake support is community-based. The maintainers do not use automake
 | 
			
		||||
# internally.
 | 
			
		||||
 | 
			
		||||
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_MACRO_DIRS([m4])
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
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" != ":"])
 | 
			
		||||
 | 
			
		||||
# 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.
 | 
			
		||||
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}"])
 | 
			
		||||
 | 
			
		||||
# Output the generated files. No further autoconf macros may be used.
 | 
			
		||||
AC_OUTPUT
 | 
			
		||||
@@ -2820,9 +2820,7 @@ and you should see an `OUTPUT_DIR` directory being created with files
 | 
			
		||||
`gtest/gtest.h`, `gmock/gmock.h`, and `gmock-gtest-all.cc` in it.
 | 
			
		||||
These three files contain everything you need to use Google Mock (and
 | 
			
		||||
Google Test).  Just copy them to anywhere you want and you are ready
 | 
			
		||||
to write tests and use mocks.  You can use the
 | 
			
		||||
[make/Makefile](../make/Makefile) file as an example on how to compile your tests
 | 
			
		||||
against them.
 | 
			
		||||
to write tests and use mocks.
 | 
			
		||||
 | 
			
		||||
# Extending Google Mock #
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,117 +0,0 @@
 | 
			
		||||
# A sample Makefile for building both Google Mock and Google Test and
 | 
			
		||||
# using them in user tests.  This file is self-contained, so you don't
 | 
			
		||||
# need to use the Makefile in Google Test's source tree.  Please tweak
 | 
			
		||||
# it to suit your environment and project.  You may want to move it to
 | 
			
		||||
# your project's root directory.
 | 
			
		||||
#
 | 
			
		||||
# SYNOPSIS:
 | 
			
		||||
#
 | 
			
		||||
#   make [all]  - makes everything.
 | 
			
		||||
#   make TARGET - makes the given target.
 | 
			
		||||
#   make clean  - removes all files generated by make.
 | 
			
		||||
 | 
			
		||||
# Please tweak the following variable definitions as needed by your
 | 
			
		||||
# project, except GMOCK_HEADERS and GTEST_HEADERS, which you can use
 | 
			
		||||
# in your own targets but shouldn't modify.
 | 
			
		||||
 | 
			
		||||
# Points to the root of Google Test, relative to where this file is.
 | 
			
		||||
# Remember to tweak this if you move this file, or if you want to use
 | 
			
		||||
# a copy of Google Test at a different location.
 | 
			
		||||
GTEST_DIR = ../../googletest
 | 
			
		||||
 | 
			
		||||
# Points to the location of the Google Test libraries
 | 
			
		||||
GTEST_LIB_DIR = .
 | 
			
		||||
 | 
			
		||||
# Points to the root of Google Mock, relative to where this file is.
 | 
			
		||||
# Remember to tweak this if you move this file.
 | 
			
		||||
GMOCK_DIR = ..
 | 
			
		||||
 | 
			
		||||
# Where to find user code.
 | 
			
		||||
USER_DIR = ../test
 | 
			
		||||
 | 
			
		||||
# Flags passed to the preprocessor.
 | 
			
		||||
# Set Google Test and Google Mock's header directories as system
 | 
			
		||||
# directories, such that the compiler doesn't generate warnings in
 | 
			
		||||
# these headers.
 | 
			
		||||
CPPFLAGS += -isystem $(GTEST_DIR)/include -isystem $(GMOCK_DIR)/include
 | 
			
		||||
 | 
			
		||||
# Flags passed to the C++ compiler.
 | 
			
		||||
CXXFLAGS += -g -Wall -Wextra -pthread -std=c++11
 | 
			
		||||
 | 
			
		||||
# Google Test libraries
 | 
			
		||||
GTEST_LIBS = libgtest.a libgtest_main.a libgmock.a libgmock_main.a
 | 
			
		||||
 | 
			
		||||
# All tests produced by this Makefile.  Remember to add new tests you
 | 
			
		||||
# created to the list.
 | 
			
		||||
TESTS = gmock_test
 | 
			
		||||
 | 
			
		||||
# All Google Test headers.  Usually you shouldn't change this
 | 
			
		||||
# definition.
 | 
			
		||||
GTEST_HEADERS = $(GTEST_DIR)/include/gtest/*.h \
 | 
			
		||||
                $(GTEST_DIR)/include/gtest/internal/*.h
 | 
			
		||||
 | 
			
		||||
# All Google Mock headers. Note that all Google Test headers are
 | 
			
		||||
# included here too, as they are #included by Google Mock headers.
 | 
			
		||||
# Usually you shouldn't change this definition.	
 | 
			
		||||
GMOCK_HEADERS = $(GMOCK_DIR)/include/gmock/*.h \
 | 
			
		||||
                $(GMOCK_DIR)/include/gmock/internal/*.h \
 | 
			
		||||
                $(GTEST_HEADERS)
 | 
			
		||||
 | 
			
		||||
# House-keeping build targets.
 | 
			
		||||
 | 
			
		||||
all : $(GTEST_LIBS) $(TESTS)
 | 
			
		||||
 | 
			
		||||
clean :
 | 
			
		||||
	rm -f $(GTEST_LIBS) $(TESTS) *.o
 | 
			
		||||
 | 
			
		||||
# Builds gmock.a and gmock_main.a.  These libraries contain both
 | 
			
		||||
# Google Mock and Google Test.  A test should link with either gmock.a
 | 
			
		||||
# or gmock_main.a, depending on whether it defines its own main()
 | 
			
		||||
# function.  It's fine if your test only uses features from Google
 | 
			
		||||
# Test (and not Google Mock).
 | 
			
		||||
 | 
			
		||||
# Usually you shouldn't tweak such internal variables, indicated by a
 | 
			
		||||
# trailing _.
 | 
			
		||||
GTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $(GTEST_HEADERS)
 | 
			
		||||
GMOCK_SRCS_ = $(GMOCK_DIR)/src/*.cc $(GMOCK_HEADERS)
 | 
			
		||||
 | 
			
		||||
# For simplicity and to avoid depending on implementation details of
 | 
			
		||||
# Google Mock and Google Test, the dependencies specified below are
 | 
			
		||||
# conservative and not optimized.  This is fine as Google Mock and
 | 
			
		||||
# Google Test compile fast and for ordinary users their source rarely
 | 
			
		||||
# changes.
 | 
			
		||||
gtest-all.o : $(GTEST_SRCS_)
 | 
			
		||||
	$(CXX) $(CPPFLAGS) -I$(GTEST_DIR) -I$(GMOCK_DIR) $(CXXFLAGS) \
 | 
			
		||||
            -c $(GTEST_DIR)/src/gtest-all.cc
 | 
			
		||||
 | 
			
		||||
gtest_main.o : $(GTEST_SRCS_)
 | 
			
		||||
	$(CXX) $(CPPFLAGS) -I$(GTEST_DIR) -I$(GMOCK_DIR) $(CXXFLAGS) \
 | 
			
		||||
            -c $(GTEST_DIR)/src/gtest_main.cc
 | 
			
		||||
 | 
			
		||||
gmock-all.o : $(GMOCK_SRCS_)
 | 
			
		||||
	$(CXX) $(CPPFLAGS) -I$(GTEST_DIR) -I$(GMOCK_DIR) $(CXXFLAGS) \
 | 
			
		||||
            -c $(GMOCK_DIR)/src/gmock-all.cc
 | 
			
		||||
 | 
			
		||||
gmock_main.o : $(GMOCK_SRCS_)
 | 
			
		||||
	$(CXX) $(CPPFLAGS) -I$(GTEST_DIR) -I$(GMOCK_DIR) $(CXXFLAGS) \
 | 
			
		||||
            -c $(GMOCK_DIR)/src/gmock_main.cc
 | 
			
		||||
 | 
			
		||||
libgtest.a : gtest-all.o
 | 
			
		||||
	$(AR) $(ARFLAGS) $@ $^
 | 
			
		||||
 | 
			
		||||
libgtest_main.a : gtest_main.o
 | 
			
		||||
	$(AR) $(ARFLAGS) $@ $^
 | 
			
		||||
 | 
			
		||||
libgmock.a : gmock-all.o
 | 
			
		||||
	$(AR) $(ARFLAGS) $@ $^
 | 
			
		||||
 | 
			
		||||
libgmock_main.a : gmock_main.o
 | 
			
		||||
	$(AR) $(ARFLAGS) $@ $^
 | 
			
		||||
 | 
			
		||||
# Builds a sample test.
 | 
			
		||||
 | 
			
		||||
gmock_test.o : $(USER_DIR)/gmock_test.cc $(GMOCK_HEADERS)
 | 
			
		||||
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(USER_DIR)/gmock_test.cc
 | 
			
		||||
 | 
			
		||||
gmock_test : gmock_test.o $(GTEST_LIBS)
 | 
			
		||||
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) -L$(GTEST_LIB_DIR) -lgmock -lpthread $^ -o $@
 | 
			
		||||
		Reference in New Issue
	
	Block a user