commit
2f42d769ad
19 changed files with 36 additions and 1976 deletions
@ -1,16 +0,0 @@ |
||||
# Note: automake support is community-based. The maintainers do not use automake
|
||||
# internally.
|
||||
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign
|
||||
|
||||
# Build . before src so that our all-local and clean-local hooks kicks in at
|
||||
# the right time.
|
||||
SUBDIRS = googletest googlemock
|
||||
|
||||
EXTRA_DIST = \
|
||||
BUILD.bazel \
|
||||
CMakeLists.txt \
|
||||
README.md \
|
||||
WORKSPACE
|
@ -1,44 +0,0 @@ |
||||
#!/usr/bin/env bash |
||||
# Copyright 2017 Google Inc. |
||||
# All Rights Reserved. |
||||
# |
||||
# |
||||
# Redistribution and use in source and binary forms, with or without |
||||
# modification, are permitted provided that the following conditions are |
||||
# met: |
||||
# |
||||
# * Redistributions of source code must retain the above copyright |
||||
# notice, this list of conditions and the following disclaimer. |
||||
# * Redistributions in binary form must reproduce the above |
||||
# copyright notice, this list of conditions and the following disclaimer |
||||
# in the documentation and/or other materials provided with the |
||||
# distribution. |
||||
# * Neither the name of Google Inc. nor the names of its |
||||
# contributors may be used to endorse or promote products derived from |
||||
# this software without specific prior written permission. |
||||
# |
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
|
||||
set -e |
||||
|
||||
. ci/get-nprocessors.sh |
||||
|
||||
# Create the configuration script |
||||
autoreconf -i |
||||
|
||||
# Run in a subdirectory to keep the sources clean |
||||
mkdir build || true |
||||
cd build |
||||
../configure |
||||
|
||||
make -j ${NPROCESSORS:-2} |
@ -1,19 +0,0 @@ |
||||
# Note: automake support is community-based. The maintainers do not use automake |
||||
# internally. |
||||
|
||||
AC_INIT([Google C++ Mocking and Testing Frameworks], |
||||
[1.9.0], |
||||
[googlemock@googlegroups.com], |
||||
[googletest]) |
||||
|
||||
# Provide various options to initialize the Autoconf and configure processes. |
||||
AC_PREREQ([2.59]) |
||||
AC_CONFIG_SRCDIR([./README.md]) |
||||
AC_CONFIG_AUX_DIR([build-aux]) |
||||
AC_CONFIG_FILES([Makefile]) |
||||
AC_CONFIG_SUBDIRS([googletest googlemock]) |
||||
|
||||
AM_INIT_AUTOMAKE |
||||
|
||||
# Output the generated files. No further autoconf macros may be used. |
||||
AC_OUTPUT |
@ -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
|
@ -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 |
@ -1,126 +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.
|
||||
|
||||
ifndef GOOGLETEST_UNSUPPORTED_MAKEFILE_BUILD_SYSTEM_WORKAROUND |
||||
.PHONY all: |
||||
$(info "The Make buildsystem is no longer supported")
|
||||
$(info "You can temporarily set GOOGLETEST_UNSUPPORTED_MAKEFILE_BUILD_SYSTEM_WORKAROUND=1")
|
||||
$(info "i.e make GOOGLETEST_UNSUPPORTED_MAKEFILE_BUILD_SYSTEM_WORKAROUND=1 all")
|
||||
$(info "But this is going away very soon. ")
|
||||
$(exit 1)
|
||||
else |
||||
all: $(GTEST_LIBS) $(TESTS) |
||||
endif |
||||
|
||||
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 $@
|
@ -1,303 +0,0 @@ |
||||
#!/bin/sh |
||||
|
||||
# These variables are automatically filled in by the configure script. |
||||
name="@PACKAGE_TARNAME@" |
||||
version="@PACKAGE_VERSION@" |
||||
|
||||
show_usage() |
||||
{ |
||||
echo "Usage: gmock-config [OPTIONS...]" |
||||
} |
||||
|
||||
show_help() |
||||
{ |
||||
show_usage |
||||
cat <<\EOF |
||||
|
||||
The `gmock-config' script provides access to the necessary compile and linking |
||||
flags to connect with Google C++ Mocking Framework, both in a build prior to |
||||
installation, and on the system proper after installation. The installation |
||||
overrides may be issued in combination with any other queries, but will only |
||||
affect installation queries if called on a built but not installed gmock. The |
||||
installation queries may not be issued with any other types of queries, and |
||||
only one installation query may be made at a time. The version queries and |
||||
compiler flag queries may be combined as desired but not mixed. Different |
||||
version queries are always combined with logical "and" semantics, and only the |
||||
last of any particular query is used while all previous ones ignored. All |
||||
versions must be specified as a sequence of numbers separated by periods. |
||||
Compiler flag queries output the union of the sets of flags when combined. |
||||
|
||||
Examples: |
||||
gmock-config --min-version=1.0 || echo "Insufficient Google Mock version." |
||||
|
||||
g++ $(gmock-config --cppflags --cxxflags) -o foo.o -c foo.cpp |
||||
g++ $(gmock-config --ldflags --libs) -o foo foo.o |
||||
|
||||
# When using a built but not installed Google Mock: |
||||
g++ $(../../my_gmock_build/scripts/gmock-config ...) ... |
||||
|
||||
# When using an installed Google Mock, but with installation overrides: |
||||
export GMOCK_PREFIX="/opt" |
||||
g++ $(gmock-config --libdir="/opt/lib64" ...) ... |
||||
|
||||
Help: |
||||
--usage brief usage information |
||||
--help display this help message |
||||
|
||||
Installation Overrides: |
||||
--prefix=<dir> overrides the installation prefix |
||||
--exec-prefix=<dir> overrides the executable installation prefix |
||||
--libdir=<dir> overrides the library installation prefix |
||||
--includedir=<dir> overrides the header file installation prefix |
||||
|
||||
Installation Queries: |
||||
--prefix installation prefix |
||||
--exec-prefix executable installation prefix |
||||
--libdir library installation directory |
||||
--includedir header file installation directory |
||||
--version the version of the Google Mock installation |
||||
|
||||
Version Queries: |
||||
--min-version=VERSION return 0 if the version is at least VERSION |
||||
--exact-version=VERSION return 0 if the version is exactly VERSION |
||||
--max-version=VERSION return 0 if the version is at most VERSION |
||||
|
||||
Compilation Flag Queries: |
||||
--cppflags compile flags specific to the C-like preprocessors |
||||
--cxxflags compile flags appropriate for C++ programs |
||||
--ldflags linker flags |
||||
--libs libraries for linking |
||||
|
||||
EOF |
||||
} |
||||
|
||||
# This function bounds our version with a min and a max. It uses some clever |
||||
# POSIX-compliant variable expansion to portably do all the work in the shell |
||||
# and avoid any dependency on a particular "sed" or "awk" implementation. |
||||
# Notable is that it will only ever compare the first 3 components of versions. |
||||
# Further components will be cleanly stripped off. All versions must be |
||||
# unadorned, so "v1.0" will *not* work. The minimum version must be in $1, and |
||||
# the max in $2. TODO(chandlerc@google.com): If this ever breaks, we should |
||||
# investigate expanding this via autom4te from AS_VERSION_COMPARE rather than |
||||
# continuing to maintain our own shell version. |
||||
check_versions() |
||||
{ |
||||
major_version=${version%%.*} |
||||
minor_version="0" |
||||
point_version="0" |
||||
if test "${version#*.}" != "${version}"; then |
||||
minor_version=${version#*.} |
||||
minor_version=${minor_version%%.*} |
||||
fi |
||||
if test "${version#*.*.}" != "${version}"; then |
||||
point_version=${version#*.*.} |
||||
point_version=${point_version%%.*} |
||||
fi |
||||
|
||||
min_version="$1" |
||||
min_major_version=${min_version%%.*} |
||||
min_minor_version="0" |
||||
min_point_version="0" |
||||
if test "${min_version#*.}" != "${min_version}"; then |
||||
min_minor_version=${min_version#*.} |
||||
min_minor_version=${min_minor_version%%.*} |
||||
fi |
||||
if test "${min_version#*.*.}" != "${min_version}"; then |
||||
min_point_version=${min_version#*.*.} |
||||
min_point_version=${min_point_version%%.*} |
||||
fi |
||||
|
||||
max_version="$2" |
||||
max_major_version=${max_version%%.*} |
||||
max_minor_version="0" |
||||
max_point_version="0" |
||||
if test "${max_version#*.}" != "${max_version}"; then |
||||
max_minor_version=${max_version#*.} |
||||
max_minor_version=${max_minor_version%%.*} |
||||
fi |
||||
if test "${max_version#*.*.}" != "${max_version}"; then |
||||
max_point_version=${max_version#*.*.} |
||||
max_point_version=${max_point_version%%.*} |
||||
fi |
||||
|
||||
test $(($major_version)) -lt $(($min_major_version)) && exit 1 |
||||
if test $(($major_version)) -eq $(($min_major_version)); then |
||||
test $(($minor_version)) -lt $(($min_minor_version)) && exit 1 |
||||
if test $(($minor_version)) -eq $(($min_minor_version)); then |
||||
test $(($point_version)) -lt $(($min_point_version)) && exit 1 |
||||
fi |
||||
fi |
||||
|
||||
test $(($major_version)) -gt $(($max_major_version)) && exit 1 |
||||
if test $(($major_version)) -eq $(($max_major_version)); then |
||||
test $(($minor_version)) -gt $(($max_minor_version)) && exit 1 |
||||
if test $(($minor_version)) -eq $(($max_minor_version)); then |
||||
test $(($point_version)) -gt $(($max_point_version)) && exit 1 |
||||
fi |
||||
fi |
||||
|
||||
exit 0 |
||||
} |
||||
|
||||
# Show the usage line when no arguments are specified. |
||||
if test $# -eq 0; then |
||||
show_usage |
||||
exit 1 |
||||
fi |
||||
|
||||
while test $# -gt 0; do |
||||
case $1 in |
||||
--usage) show_usage; exit 0;; |
||||
--help) show_help; exit 0;; |
||||
|
||||
# Installation overrides |
||||
--prefix=*) GMOCK_PREFIX=${1#--prefix=};; |
||||
--exec-prefix=*) GMOCK_EXEC_PREFIX=${1#--exec-prefix=};; |
||||
--libdir=*) GMOCK_LIBDIR=${1#--libdir=};; |
||||
--includedir=*) GMOCK_INCLUDEDIR=${1#--includedir=};; |
||||
|
||||
# Installation queries |
||||
--prefix|--exec-prefix|--libdir|--includedir|--version) |
||||
if test -n "${do_query}"; then |
||||
show_usage |
||||
exit 1 |
||||
fi |
||||
do_query=${1#--} |
||||
;; |
||||
|
||||
# Version checking |
||||
--min-version=*) |
||||
do_check_versions=yes |
||||
min_version=${1#--min-version=} |
||||
;; |
||||
--max-version=*) |
||||
do_check_versions=yes |
||||
max_version=${1#--max-version=} |
||||
;; |
||||
--exact-version=*) |
||||
do_check_versions=yes |
||||
exact_version=${1#--exact-version=} |
||||
;; |
||||
|
||||
# Compiler flag output |
||||
--cppflags) echo_cppflags=yes;; |
||||
--cxxflags) echo_cxxflags=yes;; |
||||
--ldflags) echo_ldflags=yes;; |
||||
--libs) echo_libs=yes;; |
||||
|
||||
# Everything else is an error |
||||
*) show_usage; exit 1;; |
||||
esac |
||||
shift |
||||
done |
||||
|
||||
# These have defaults filled in by the configure script but can also be |
||||
# overridden by environment variables or command line parameters. |
||||
prefix="${GMOCK_PREFIX:-@prefix@}" |
||||
exec_prefix="${GMOCK_EXEC_PREFIX:-@exec_prefix@}" |
||||
libdir="${GMOCK_LIBDIR:-@libdir@}" |
||||
includedir="${GMOCK_INCLUDEDIR:-@includedir@}" |
||||
|
||||
# We try and detect if our binary is not located at its installed location. If |
||||
# it's not, we provide variables pointing to the source and build tree rather |
||||
# than to the install tree. We also locate Google Test using the configured |
||||
# gtest-config script rather than searching the PATH and our bindir for one. |
||||
# This allows building against a just-built gmock rather than an installed |
||||
# gmock. |
||||
bindir="@bindir@" |
||||
this_relative_bindir=`dirname $0` |
||||
this_bindir=`cd ${this_relative_bindir}; pwd -P` |
||||
if test "${this_bindir}" = "${this_bindir%${bindir}}"; then |
||||
# The path to the script doesn't end in the bindir sequence from Autoconf, |
||||
# assume that we are in a build tree. |
||||
build_dir=`dirname ${this_bindir}` |
||||
src_dir=`cd ${this_bindir}/@top_srcdir@; pwd -P` |
||||
|
||||
# TODO(chandlerc@google.com): This is a dangerous dependency on libtool, we |
||||
# should work to remove it, and/or remove libtool altogether, replacing it |
||||
# with direct references to the library and a link path. |
||||
gmock_libs="${build_dir}/lib/libgmock.la" |
||||
gmock_ldflags="" |
||||
|
||||
# We provide hooks to include from either the source or build dir, where the |
||||
# build dir is always preferred. This will potentially allow us to write |
||||
# build rules for generated headers and have them automatically be preferred |
||||
# over provided versions. |
||||
gmock_cppflags="-I${build_dir}/include -I${src_dir}/include" |
||||
gmock_cxxflags="" |
||||
|
||||
# Directly invoke the gtest-config script used during the build process. |
||||
gtest_config="@GTEST_CONFIG@" |
||||
else |
||||
# We're using an installed gmock, although it may be staged under some |
||||
# prefix. Assume (as our own libraries do) that we can resolve the prefix, |
||||
# and are present in the dynamic link paths. |
||||
gmock_ldflags="-L${libdir}" |
||||
gmock_libs="-l${name}" |
||||
gmock_cppflags="-I${includedir}" |
||||
gmock_cxxflags="" |
||||
|
||||
# We also prefer any gtest-config script installed in our prefix. Lacking |
||||
# one, we look in the PATH for one. |
||||
gtest_config="${bindir}/gtest-config" |
||||
if test ! -x "${gtest_config}"; then |
||||
gtest_config=`which gtest-config` |
||||
fi |
||||
fi |
||||
|
||||
# Ensure that we have located a Google Test to link against. |
||||
if ! test -x "${gtest_config}"; then |
||||
echo "Unable to locate Google Test, check your Google Mock configuration" \ |
||||
"and installation" >&2 |
||||
exit 1 |
||||
elif ! "${gtest_config}" "--exact-version=@GTEST_VERSION@"; then |
||||
echo "The Google Test found is not the same version as Google Mock was " \ |
||||
"built against" >&2 |
||||
exit 1 |
||||
fi |
||||
|
||||
# Add the necessary Google Test bits into the various flag variables |
||||
gmock_cppflags="${gmock_cppflags} `${gtest_config} --cppflags`" |
||||
gmock_cxxflags="${gmock_cxxflags} `${gtest_config} --cxxflags`" |
||||
gmock_ldflags="${gmock_ldflags} `${gtest_config} --ldflags`" |
||||
gmock_libs="${gmock_libs} `${gtest_config} --libs`" |
||||
|
||||
# Do an installation query if requested. |
||||
if test -n "$do_query"; then |
||||
case $do_query in |
||||
prefix) echo $prefix; exit 0;; |
||||
exec-prefix) echo $exec_prefix; exit 0;; |
||||
libdir) echo $libdir; exit 0;; |
||||
includedir) echo $includedir; exit 0;; |
||||
version) echo $version; exit 0;; |
||||
*) show_usage; exit 1;; |
||||
esac |
||||
fi |
||||
|
||||
# Do a version check if requested. |
||||
if test "$do_check_versions" = "yes"; then |
||||
# Make sure we didn't receive a bad combination of parameters. |
||||
test "$echo_cppflags" = "yes" && show_usage && exit 1 |
||||
test "$echo_cxxflags" = "yes" && show_usage && exit 1 |
||||
test "$echo_ldflags" = "yes" && show_usage && exit 1 |
||||
test "$echo_libs" = "yes" && show_usage && exit 1 |
||||
|
||||
if test "$exact_version" != ""; then |
||||
check_versions $exact_version $exact_version |
||||
# unreachable |
||||
else |
||||
check_versions ${min_version:-0.0.0} ${max_version:-9999.9999.9999} |
||||
# unreachable |
||||
fi |
||||
fi |
||||
|
||||
# Do the output in the correct order so that these can be used in-line of |
||||
# a compiler invocation. |
||||
output="" |
||||
test "$echo_cppflags" = "yes" && output="$output $gmock_cppflags" |
||||
test "$echo_cxxflags" = "yes" && output="$output $gmock_cxxflags" |
||||
test "$echo_ldflags" = "yes" && output="$output $gmock_ldflags" |
||||
test "$echo_libs" = "yes" && output="$output $gmock_libs" |
||||
echo $output |
||||
|
||||
exit 0 |
@ -1,341 +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 = \
|
||||
CONTRIBUTORS \
|
||||
LICENSE \
|
||||
include/gtest/internal/gtest-type-util.h.pump \
|
||||
make/Makefile \
|
||||
scripts/fuse_gtest_files.py \
|
||||
scripts/gen_gtest_pred_impl.py \
|
||||
scripts/pump.py \
|
||||
scripts/test/Makefile
|
||||
|
||||
# gtest source files that we don't compile directly. They are
|
||||
# #included by gtest-all.cc.
|
||||
GTEST_SRC = \
|
||||
src/gtest-death-test.cc \
|
||||
src/gtest-filepath.cc \
|
||||
src/gtest-internal-inl.h \
|
||||
src/gtest-matchers.cc \
|
||||
src/gtest-port.cc \
|
||||
src/gtest-printers.cc \
|
||||
src/gtest-test-part.cc \
|
||||
src/gtest-typed-test.cc \
|
||||
src/gtest.cc
|
||||
|
||||
EXTRA_DIST += $(GTEST_SRC)
|
||||
|
||||
# Sample files that we don't compile.
|
||||
EXTRA_DIST += \
|
||||
samples/prime_tables.h \
|
||||
samples/sample1_unittest.cc \
|
||||
samples/sample2_unittest.cc \
|
||||
samples/sample3_unittest.cc \
|
||||
samples/sample4_unittest.cc \
|
||||
samples/sample5_unittest.cc \
|
||||
samples/sample6_unittest.cc \
|
||||
samples/sample7_unittest.cc \
|
||||
samples/sample8_unittest.cc \
|
||||
samples/sample9_unittest.cc
|
||||
|
||||
# C++ test files that we don't compile directly.
|
||||
EXTRA_DIST += \
|
||||
test/googletest-death-test_ex_test.cc \
|
||||
test/googletest-death-test-test.cc \
|
||||
test/googletest-filepath-test.cc \
|
||||
test/googletest-listener-test.cc \
|
||||
test/googletest-message-test.cc \
|
||||
test/googletest-options-test.cc \
|
||||
test/googletest-param-test2-test.cc \
|
||||
test/googletest-param-test2-test.cc \
|
||||
test/googletest-param-test-test.cc \
|
||||
test/googletest-param-test-test.cc \
|
||||
test/googletest-param-test-test.h \
|
||||
test/googletest-port-test.cc \
|
||||
test/gtest_premature_exit_test.cc \
|
||||
test/googletest-printers-test.cc \
|
||||
test/googletest-test-part-test.cc \
|
||||
test/gtest-typed-test2_test.cc \
|
||||
test/gtest-typed-test_test.cc \
|
||||
test/gtest-typed-test_test.h \
|
||||
test/gtest-unittest-api_test.cc \
|
||||
test/googletest-break-on-failure-unittest_.cc \
|
||||
test/googletest-catch-exceptions-test_.cc \
|
||||
test/googletest-color-test_.cc \
|
||||
test/googletest-env-var-test_.cc \
|
||||
test/gtest_environment_test.cc \
|
||||
test/googletest-filter-unittest_.cc \
|
||||
test/gtest_help_test_.cc \
|
||||
test/googletest-list-tests-unittest_.cc \
|
||||
test/gtest_main_unittest.cc \
|
||||
test/gtest_no_test_unittest.cc \
|
||||
test/googletest-output-test_.cc \
|
||||
test/gtest_pred_impl_unittest.cc \
|
||||
test/gtest_prod_test.cc \
|
||||
test/gtest_repeat_test.cc \
|
||||
test/googletest-shuffle-test_.cc \
|
||||
test/gtest_sole_header_test.cc \
|
||||
test/gtest_stress_test.cc \
|
||||
test/gtest_throw_on_failure_ex_test.cc \
|
||||
test/googletest-throw-on-failure-test_.cc \
|
||||
test/googletest-uninitialized-test_.cc \
|
||||
test/gtest_unittest.cc \
|
||||
test/gtest_unittest.cc \
|
||||
test/gtest_xml_outfile1_test_.cc \
|
||||
test/gtest_xml_outfile2_test_.cc \
|
||||
test/gtest_xml_output_unittest_.cc \
|
||||
test/production.cc \
|
||||
test/production.h
|
||||
|
||||
# Python tests that we don't run.
|
||||
EXTRA_DIST += \
|
||||
test/googletest-break-on-failure-unittest.py \
|
||||
test/googletest-catch-exceptions-test.py \
|
||||
test/googletest-color-test.py \
|
||||
test/googletest-env-var-test.py \
|
||||
test/googletest-filter-unittest.py \
|
||||
test/gtest_help_test.py \
|
||||
test/googletest-list-tests-unittest.py \
|
||||
test/googletest-output-test.py \
|
||||
test/googletest-output-test-golden-lin.txt \
|
||||
test/googletest-shuffle-test.py \
|
||||
test/gtest_test_utils.py \
|
||||
test/googletest-throw-on-failure-test.py \
|
||||
test/googletest-uninitialized-test.py \
|
||||
test/gtest_xml_outfiles_test.py \
|
||||
test/gtest_xml_output_unittest.py \
|
||||
test/gtest_xml_test_utils.py
|
||||
|
||||
# CMake script
|
||||
EXTRA_DIST += \
|
||||
CMakeLists.txt \
|
||||
cmake/internal_utils.cmake
|
||||
|
||||
# MSVC project files
|
||||
EXTRA_DIST += \
|
||||
msvc/2010/gtest-md.sln \
|
||||
msvc/2010/gtest-md.vcxproj \
|
||||
msvc/2010/gtest.sln \
|
||||
msvc/2010/gtest.vcxproj \
|
||||
msvc/2010/gtest_main-md.vcxproj \
|
||||
msvc/2010/gtest_main.vcxproj \
|
||||
msvc/2010/gtest_prod_test-md.vcxproj \
|
||||
msvc/2010/gtest_prod_test.vcxproj \
|
||||
msvc/2010/gtest_unittest-md.vcxproj \
|
||||
msvc/2010/gtest_unittest.vcxproj
|
||||
|
||||
# xcode project files
|
||||
EXTRA_DIST += \
|
||||
xcode/Config/DebugProject.xcconfig \
|
||||
xcode/Config/FrameworkTarget.xcconfig \
|
||||
xcode/Config/General.xcconfig \
|
||||
xcode/Config/ReleaseProject.xcconfig \
|
||||
xcode/Config/StaticLibraryTarget.xcconfig \
|
||||
xcode/Config/TestTarget.xcconfig \
|
||||
xcode/Resources/Info.plist \
|
||||
xcode/Scripts/runtests.sh \
|
||||
xcode/Scripts/versiongenerate.py \
|
||||
xcode/gtest.xcodeproj/project.pbxproj
|
||||
|
||||
# xcode sample files
|
||||
EXTRA_DIST += \
|
||||
xcode/Samples/FrameworkSample/Info.plist \
|
||||
xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj \
|
||||
xcode/Samples/FrameworkSample/runtests.sh \
|
||||
xcode/Samples/FrameworkSample/widget.cc \
|
||||
xcode/Samples/FrameworkSample/widget.h \
|
||||
xcode/Samples/FrameworkSample/widget_test.cc
|
||||
|
||||
# C++Builder project files
|
||||
EXTRA_DIST += \
|
||||
codegear/gtest.cbproj \
|
||||
codegear/gtest.groupproj \
|
||||
codegear/gtest_all.cc \
|
||||
codegear/gtest_link.cc \
|
||||
codegear/gtest_main.cbproj \
|
||||
codegear/gtest_unittest.cbproj
|
||||
|
||||
# Distribute and install M4 macro
|
||||
m4datadir = $(datadir)/aclocal
|
||||
m4data_DATA = m4/gtest.m4
|
||||
EXTRA_DIST += $(m4data_DATA)
|
||||
|
||||
# We define the global AM_CPPFLAGS as everything we compile includes from these
|
||||
# directories.
|
||||
AM_CPPFLAGS = -I$(srcdir) -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@
|
||||
else |
||||
AM_CXXFLAGS = -DGTEST_HAS_PTHREAD=0
|
||||
endif |
||||
|
||||
# Build rules for libraries.
|
||||
lib_LTLIBRARIES = lib/libgtest.la lib/libgtest_main.la
|
||||
|
||||
lib_libgtest_la_SOURCES = src/gtest-all.cc
|
||||
|
||||
pkginclude_HEADERS = \
|
||||
include/gtest/gtest-death-test.h \
|
||||
include/gtest/gtest-matchers.h \
|
||||
include/gtest/gtest-message.h \
|
||||
include/gtest/gtest-param-test.h \
|
||||
include/gtest/gtest-printers.h \
|
||||
include/gtest/gtest-spi.h \
|
||||
include/gtest/gtest-test-part.h \
|
||||
include/gtest/gtest-typed-test.h \
|
||||
include/gtest/gtest.h \
|
||||
include/gtest/gtest_pred_impl.h \
|
||||
include/gtest/gtest_prod.h
|
||||
|
||||
pkginclude_internaldir = $(pkgincludedir)/internal
|
||||
pkginclude_internal_HEADERS = \
|
||||
include/gtest/internal/gtest-death-test-internal.h \
|
||||
include/gtest/internal/gtest-filepath.h \
|
||||
include/gtest/internal/gtest-internal.h \
|
||||
include/gtest/internal/gtest-param-util.h \
|
||||
include/gtest/internal/gtest-port.h \
|
||||
include/gtest/internal/gtest-port-arch.h \
|
||||
include/gtest/internal/gtest-string.h \
|
||||
include/gtest/internal/gtest-type-util.h \
|
||||
include/gtest/internal/custom/gtest.h \
|
||||
include/gtest/internal/custom/gtest-port.h \
|
||||
include/gtest/internal/custom/gtest-printers.h
|
||||
|
||||
lib_libgtest_main_la_SOURCES = src/gtest_main.cc
|
||||
lib_libgtest_main_la_LIBADD = lib/libgtest.la
|
||||
|
||||
# Build rules for samples and 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=
|
||||
TESTS_ENVIRONMENT = GTEST_SOURCE_DIR="$(srcdir)/test" \
|
||||
GTEST_BUILD_DIR="$(top_builddir)/test"
|
||||
check_PROGRAMS=
|
||||
|
||||
# A simple sample on using gtest.
|
||||
TESTS += samples/sample1_unittest \
|
||||
samples/sample2_unittest \
|
||||
samples/sample3_unittest \
|
||||
samples/sample4_unittest \
|
||||
samples/sample5_unittest \
|
||||
samples/sample6_unittest \
|
||||
samples/sample7_unittest \
|
||||
samples/sample8_unittest \
|
||||
samples/sample9_unittest \
|
||||
samples/sample10_unittest
|
||||
check_PROGRAMS += samples/sample1_unittest \
|
||||
samples/sample2_unittest \
|
||||
samples/sample3_unittest \
|
||||
samples/sample4_unittest \
|
||||
samples/sample5_unittest \
|
||||
samples/sample6_unittest \
|
||||
samples/sample7_unittest \
|
||||
samples/sample8_unittest \
|
||||
samples/sample9_unittest \
|
||||
samples/sample10_unittest
|
||||
|
||||
samples_sample1_unittest_SOURCES = samples/sample1_unittest.cc samples/sample1.cc
|
||||
samples_sample1_unittest_LDADD = lib/libgtest_main.la \
|
||||
lib/libgtest.la
|
||||
samples_sample2_unittest_SOURCES = samples/sample2_unittest.cc samples/sample2.cc
|
||||
samples_sample2_unittest_LDADD = lib/libgtest_main.la \
|
||||
lib/libgtest.la
|
||||
samples_sample3_unittest_SOURCES = samples/sample3_unittest.cc
|
||||
samples_sample3_unittest_LDADD = lib/libgtest_main.la \
|
||||
lib/libgtest.la
|
||||
samples_sample4_unittest_SOURCES = samples/sample4_unittest.cc samples/sample4.cc
|
||||
samples_sample4_unittest_LDADD = lib/libgtest_main.la \
|
||||
lib/libgtest.la
|
||||
samples_sample5_unittest_SOURCES = samples/sample5_unittest.cc samples/sample1.cc
|
||||
samples_sample5_unittest_LDADD = lib/libgtest_main.la \
|
||||
lib/libgtest.la
|
||||
samples_sample6_unittest_SOURCES = samples/sample6_unittest.cc
|
||||
samples_sample6_unittest_LDADD = lib/libgtest_main.la \
|
||||
lib/libgtest.la
|
||||
samples_sample7_unittest_SOURCES = samples/sample7_unittest.cc
|
||||
samples_sample7_unittest_LDADD = lib/libgtest_main.la \
|
||||
lib/libgtest.la
|
||||
samples_sample8_unittest_SOURCES = samples/sample8_unittest.cc
|
||||
samples_sample8_unittest_LDADD = lib/libgtest_main.la \
|
||||
lib/libgtest.la
|
||||
|
||||
# Also verify that libgtest works by itself.
|
||||
samples_sample9_unittest_SOURCES = samples/sample9_unittest.cc
|
||||
samples_sample9_unittest_LDADD = lib/libgtest.la
|
||||
samples_sample10_unittest_SOURCES = samples/sample10_unittest.cc
|
||||
samples_sample10_unittest_LDADD = lib/libgtest.la
|
||||
|
||||
# This tests most constructs of gtest and verifies that libgtest_main
|
||||
# and libgtest work.
|
||||
TESTS += test/gtest_all_test
|
||||
check_PROGRAMS += test/gtest_all_test
|
||||
test_gtest_all_test_SOURCES = test/gtest_all_test.cc
|
||||
test_gtest_all_test_LDADD = lib/libgtest_main.la \
|
||||
lib/libgtest.la
|
||||
|
||||
TESTS += test/gtest_skip_in_environment_setup_test
|
||||
check_PROGRAMS += test/gtest_skip_in_environment_setup_test
|
||||
test_gtest_skip_in_environment_setup_test_SOURCES = test/gtest_skip_in_environment_setup_test.cc
|
||||
test_gtest_skip_in_environment_setup_test_LDADD= lib/libgtest_main.la \
|
||||
lib/libgtest.la
|
||||
|
||||
# Tests that fused gtest files compile and work.
|
||||
FUSED_GTEST_SRC = \
|
||||
fused-src/gtest/gtest-all.cc \
|
||||
fused-src/gtest/gtest.h \
|
||||
fused-src/gtest/gtest_main.cc
|
||||
|
||||
if HAVE_PYTHON |
||||
TESTS += test/fused_gtest_test
|
||||
check_PROGRAMS += test/fused_gtest_test
|
||||
test_fused_gtest_test_SOURCES = $(FUSED_GTEST_SRC) \
|
||||
samples/sample1.cc samples/sample1_unittest.cc
|
||||
test_fused_gtest_test_CPPFLAGS = -I"$(srcdir)/fused-src"
|
||||
|
||||
# Build rules for putting fused Google Test files into the distribution
|
||||
# package. The user can also create those files by manually running
|
||||
# scripts/fuse_gtest_files.py.
|
||||
$(test_fused_gtest_test_SOURCES): fused-gtest |
||||
|
||||
fused-gtest: $(pkginclude_HEADERS) $(pkginclude_internal_HEADERS) \
|
||||
$(GTEST_SRC) src/gtest-all.cc src/gtest_main.cc \
|
||||
scripts/fuse_gtest_files.py
|
||||
mkdir -p "$(srcdir)/fused-src"
|
||||
chmod -R u+w "$(srcdir)/fused-src"
|
||||
rm -f "$(srcdir)/fused-src/gtest/gtest-all.cc"
|
||||
rm -f "$(srcdir)/fused-src/gtest/gtest.h"
|
||||
"$(srcdir)/scripts/fuse_gtest_files.py" "$(srcdir)/fused-src"
|
||||
cp -f "$(srcdir)/src/gtest_main.cc" "$(srcdir)/fused-src/gtest/"
|
||||
|
||||
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
|
||||
# Test 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 Test into your build system."
|
||||
false
|
||||
|
||||
install-data-local: |
||||
echo "'make install' is dangerous and not supported. Instead, see README for how to integrate Google Test into your build system."
|
||||
false
|
@ -1,61 +0,0 @@ |
||||
# Note: automake support is community-based. The maintainers do not use automake |
||||
# internally. |
||||
|
||||
m4_include(m4/acx_pthread.m4) |
||||
|
||||
# At this point, the Xcode project assumes the version string will be three |
||||
# integers separated by periods and surrounded by square brackets (e.g. |
||||
# "[1.0.1]"). It also asumes that there won't be any closing parenthesis |
||||
# between "AC_INIT(" and the closing ")" including comments and strings. |
||||
AC_INIT([Google C++ Testing Framework], |
||||
[1.8.0], |
||||
[googletestframework@googlegroups.com], |
||||
[gtest]) |
||||
|
||||
# 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/gtest-config], [chmod +x scripts/gtest-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) |
||||
|
||||
# Output the generated files. No further autoconf macros may be used. |
||||
AC_OUTPUT |
@ -1,363 +0,0 @@ |
||||
# This was retrieved from |
||||
# http://svn.0pointer.de/viewvc/trunk/common/acx_pthread.m4?revision=1277&root=avahi |
||||
# See also (perhaps for new versions?) |
||||
# http://svn.0pointer.de/viewvc/trunk/common/acx_pthread.m4?root=avahi |
||||
# |
||||
# We've rewritten the inconsistency check code (from avahi), to work |
||||
# more broadly. In particular, it no longer assumes ld accepts -zdefs. |
||||
# This caused a restructing of the code, but the functionality has only |
||||
# changed a little. |
||||
|
||||
dnl @synopsis ACX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) |
||||
dnl |
||||
dnl @summary figure out how to build C programs using POSIX threads |
||||
dnl |
||||
dnl This macro figures out how to build C programs using POSIX threads. |
||||
dnl It sets the PTHREAD_LIBS output variable to the threads library and |
||||
dnl linker flags, and the PTHREAD_CFLAGS output variable to any special |
||||
dnl C compiler flags that are needed. (The user can also force certain |
||||
dnl compiler flags/libs to be tested by setting these environment |
||||
dnl variables.) |
||||
dnl |
||||
dnl Also sets PTHREAD_CC to any special C compiler that is needed for |
||||
dnl multi-threaded programs (defaults to the value of CC otherwise). |
||||
dnl (This is necessary on AIX to use the special cc_r compiler alias.) |
||||
dnl |
||||
dnl NOTE: You are assumed to not only compile your program with these |
||||
dnl flags, but also link it with them as well. e.g. you should link |
||||
dnl with $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS |
||||
dnl $LIBS |
||||
dnl |
||||
dnl If you are only building threads programs, you may wish to use |
||||
dnl these variables in your default LIBS, CFLAGS, and CC: |
||||
dnl |
||||
dnl LIBS="$PTHREAD_LIBS $LIBS" |
||||
dnl CFLAGS="$CFLAGS $PTHREAD_CFLAGS" |
||||
dnl CC="$PTHREAD_CC" |
||||
dnl |
||||
dnl In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute |
||||
dnl constant has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to |
||||
dnl that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX). |
||||
dnl |
||||
dnl ACTION-IF-FOUND is a list of shell commands to run if a threads |
||||
dnl library is found, and ACTION-IF-NOT-FOUND is a list of commands to |
||||
dnl run it if it is not found. If ACTION-IF-FOUND is not specified, the |
||||
dnl default action will define HAVE_PTHREAD. |
||||
dnl |
||||
dnl Please let the authors know if this macro fails on any platform, or |
||||
dnl if you have any other suggestions or comments. This macro was based |
||||
dnl on work by SGJ on autoconf scripts for FFTW (www.fftw.org) (with |
||||
dnl help from M. Frigo), as well as ac_pthread and hb_pthread macros |
||||
dnl posted by Alejandro Forero Cuervo to the autoconf macro repository. |
||||
dnl We are also grateful for the helpful feedback of numerous users. |
||||
dnl |
||||
dnl @category InstalledPackages |
||||
dnl @author Steven G. Johnson <stevenj@alum.mit.edu> |
||||
dnl @version 2006-05-29 |
||||
dnl @license GPLWithACException |
||||
dnl |
||||
dnl Checks for GCC shared/pthread inconsistency based on work by |
||||
dnl Marcin Owsiany <marcin@owsiany.pl> |
||||
|
||||
|
||||
AC_DEFUN([ACX_PTHREAD], [ |
||||
AC_REQUIRE([AC_CANONICAL_HOST]) |
||||
AC_LANG_SAVE |
||||
AC_LANG_C |
||||
acx_pthread_ok=no |
||||
|
||||
# We used to check for pthread.h first, but this fails if pthread.h |
||||
# requires special compiler flags (e.g. on True64 or Sequent). |
||||
# It gets checked for in the link test anyway. |
||||
|
||||
# First of all, check if the user has set any of the PTHREAD_LIBS, |
||||
# etcetera environment variables, and if threads linking works using |
||||
# them: |
||||
if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then |
||||
save_CFLAGS="$CFLAGS" |
||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS" |
||||
save_LIBS="$LIBS" |
||||
LIBS="$PTHREAD_LIBS $LIBS" |
||||
AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) |
||||
AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes) |
||||
AC_MSG_RESULT($acx_pthread_ok) |
||||
if test x"$acx_pthread_ok" = xno; then |
||||
PTHREAD_LIBS="" |
||||
PTHREAD_CFLAGS="" |
||||
fi |
||||
LIBS="$save_LIBS" |
||||
CFLAGS="$save_CFLAGS" |
||||
fi |
||||
|
||||
# We must check for the threads library under a number of different |
||||
# names; the ordering is very important because some systems |
||||
# (e.g. DEC) have both -lpthread and -lpthreads, where one of the |
||||
# libraries is broken (non-POSIX). |
||||
|
||||
# Create a list of thread flags to try. Items starting with a "-" are |
||||
# C compiler flags, and other items are library names, except for "none" |
||||
# which indicates that we try without any flags at all, and "pthread-config" |
||||
# which is a program returning the flags for the Pth emulation library. |
||||
|
||||
acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" |
||||
|
||||
# The ordering *is* (sometimes) important. Some notes on the |
||||
# individual items follow: |
||||
|
||||
# pthreads: AIX (must check this before -lpthread) |
||||
# none: in case threads are in libc; should be tried before -Kthread and |
||||
# other compiler flags to prevent continual compiler warnings |
||||
# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) |
||||
# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) |
||||
# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) |
||||
# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) |
||||
# -pthreads: Solaris/gcc |
||||
# -mthreads: Mingw32/gcc, Lynx/gcc |
||||
# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it |
||||
# doesn't hurt to check since this sometimes defines pthreads too; |
||||
# also defines -D_REENTRANT) |
||||
# ... -mt is also the pthreads flag for HP/aCC |
||||
# pthread: Linux, etcetera |
||||
# --thread-safe: KAI C++ |
||||
# pthread-config: use pthread-config program (for GNU Pth library) |
||||
|
||||
case "${host_cpu}-${host_os}" in |
||||
*solaris*) |
||||
|
||||
# On Solaris (at least, for some versions), libc contains stubbed |
||||
# (non-functional) versions of the pthreads routines, so link-based |
||||
# tests will erroneously succeed. (We need to link with -pthreads/-mt/ |
||||
# -lpthread.) (The stubs are missing pthread_cleanup_push, or rather |
||||
# a function called by this macro, so we could check for that, but |
||||
# who knows whether they'll stub that too in a future libc.) So, |
||||
# we'll just look for -pthreads and -lpthread first: |
||||
|
||||
acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags" |
||||
;; |
||||
esac |
||||
|
||||
if test x"$acx_pthread_ok" = xno; then |
||||
for flag in $acx_pthread_flags; do |
||||
|
||||
case $flag in |
||||
none) |
||||
AC_MSG_CHECKING([whether pthreads work without any flags]) |
||||
;; |
||||
|
||||
-*) |
||||
AC_MSG_CHECKING([whether pthreads work with $flag]) |
||||
PTHREAD_CFLAGS="$flag" |
||||
;; |
||||
|
||||
pthread-config) |
||||
AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no) |
||||
if test x"$acx_pthread_config" = xno; then continue; fi |
||||
PTHREAD_CFLAGS="`pthread-config --cflags`" |
||||
PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" |
||||
;; |
||||
|
||||
*) |
||||
AC_MSG_CHECKING([for the pthreads library -l$flag]) |
||||
PTHREAD_LIBS="-l$flag" |
||||
;; |
||||
esac |
||||
|
||||
save_LIBS="$LIBS" |
||||
save_CFLAGS="$CFLAGS" |
||||
LIBS="$PTHREAD_LIBS $LIBS" |
||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS" |
||||
|
||||
# Check for various functions. We must include pthread.h, |
||||
# since some functions may be macros. (On the Sequent, we |
||||
# need a special flag -Kthread to make this header compile.) |
||||
# We check for pthread_join because it is in -lpthread on IRIX |
||||
# while pthread_create is in libc. We check for pthread_attr_init |
||||
# due to DEC craziness with -lpthreads. We check for |
||||
# pthread_cleanup_push because it is one of the few pthread |
||||
# functions on Solaris that doesn't have a non-functional libc stub. |
||||
# We try pthread_create on general principles. |
||||
AC_TRY_LINK([#include <pthread.h>], |
||||
[pthread_t th; pthread_join(th, 0); |
||||
pthread_attr_init(0); pthread_cleanup_push(0, 0); |
||||
pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], |
||||
[acx_pthread_ok=yes]) |
||||
|
||||
LIBS="$save_LIBS" |
||||
CFLAGS="$save_CFLAGS" |
||||
|
||||
AC_MSG_RESULT($acx_pthread_ok) |
||||
if test "x$acx_pthread_ok" = xyes; then |
||||
break; |
||||
fi |
||||
|
||||
PTHREAD_LIBS="" |
||||
PTHREAD_CFLAGS="" |
||||
done |
||||
fi |
||||
|
||||
# Various other checks: |
||||
if test "x$acx_pthread_ok" = xyes; then |
||||
save_LIBS="$LIBS" |
||||
LIBS="$PTHREAD_LIBS $LIBS" |
||||
save_CFLAGS="$CFLAGS" |
||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS" |
||||
|
||||
# Detect AIX lossage: JOINABLE attribute is called UNDETACHED. |
||||
AC_MSG_CHECKING([for joinable pthread attribute]) |
||||
attr_name=unknown |
||||
for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do |
||||
AC_TRY_LINK([#include <pthread.h>], [int attr=$attr; return attr;], |
||||
[attr_name=$attr; break]) |
||||
done |
||||
AC_MSG_RESULT($attr_name) |
||||
if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then |
||||
AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name, |
||||
[Define to necessary symbol if this constant |
||||
uses a non-standard name on your system.]) |
||||
fi |
||||
|
||||
AC_MSG_CHECKING([if more special flags are required for pthreads]) |
||||
flag=no |
||||
case "${host_cpu}-${host_os}" in |
||||
*-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; |
||||
*solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; |
||||
esac |
||||
AC_MSG_RESULT(${flag}) |
||||
if test "x$flag" != xno; then |
||||
PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" |
||||
fi |
||||
|
||||
LIBS="$save_LIBS" |
||||
CFLAGS="$save_CFLAGS" |
||||
# More AIX lossage: must compile with xlc_r or cc_r |
||||
if test x"$GCC" != xyes; then |
||||
AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC}) |
||||
else |
||||
PTHREAD_CC=$CC |
||||
fi |
||||
|
||||
# The next part tries to detect GCC inconsistency with -shared on some |
||||
# architectures and systems. The problem is that in certain |
||||
# configurations, when -shared is specified, GCC "forgets" to |
||||
# internally use various flags which are still necessary. |
||||
|
||||
# |
||||
# Prepare the flags |
||||
# |
||||
save_CFLAGS="$CFLAGS" |
||||
save_LIBS="$LIBS" |
||||
save_CC="$CC" |
||||
|
||||
# Try with the flags determined by the earlier checks. |
||||
# |
||||
# -Wl,-z,defs forces link-time symbol resolution, so that the |
||||
# linking checks with -shared actually have any value |
||||
# |
||||
# FIXME: -fPIC is required for -shared on many architectures, |
||||
# so we specify it here, but the right way would probably be to |
||||
# properly detect whether it is actually required. |
||||
CFLAGS="-shared -fPIC -Wl,-z,defs $CFLAGS $PTHREAD_CFLAGS" |
||||
LIBS="$PTHREAD_LIBS $LIBS" |
||||
CC="$PTHREAD_CC" |
||||
|
||||
# In order not to create several levels of indentation, we test |
||||
# the value of "$done" until we find the cure or run out of ideas. |
||||
done="no" |
||||
|
||||
# First, make sure the CFLAGS we added are actually accepted by our |
||||
# compiler. If not (and OS X's ld, for instance, does not accept -z), |
||||
# then we can't do this test. |
||||
if test x"$done" = xno; then |
||||
AC_MSG_CHECKING([whether to check for GCC pthread/shared inconsistencies]) |
||||
AC_TRY_LINK(,, , [done=yes]) |
||||
|
||||
if test "x$done" = xyes ; then |
||||
AC_MSG_RESULT([no]) |
||||
else |
||||
AC_MSG_RESULT([yes]) |
||||
fi |
||||
fi |
||||
|
||||
if test x"$done" = xno; then |
||||
AC_MSG_CHECKING([whether -pthread is sufficient with -shared]) |
||||
AC_TRY_LINK([#include <pthread.h>], |
||||
[pthread_t th; pthread_join(th, 0); |
||||
pthread_attr_init(0); pthread_cleanup_push(0, 0); |
||||
pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], |
||||
[done=yes]) |
||||
|
||||
if test "x$done" = xyes; then |
||||
AC_MSG_RESULT([yes]) |
||||
else |
||||
AC_MSG_RESULT([no]) |
||||
fi |
||||
fi |
||||
|
||||
# |
||||
# Linux gcc on some architectures such as mips/mipsel forgets |
||||
# about -lpthread |
||||
# |
||||
if test x"$done" = xno; then |
||||
AC_MSG_CHECKING([whether -lpthread fixes that]) |
||||
LIBS="-lpthread $PTHREAD_LIBS $save_LIBS" |
||||
AC_TRY_LINK([#include <pthread.h>], |
||||
[pthread_t th; pthread_join(th, 0); |
||||
pthread_attr_init(0); pthread_cleanup_push(0, 0); |
||||
pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], |
||||
[done=yes]) |
||||
|
||||
if test "x$done" = xyes; then |
||||
AC_MSG_RESULT([yes]) |
||||
PTHREAD_LIBS="-lpthread $PTHREAD_LIBS" |
||||
else |
||||
AC_MSG_RESULT([no]) |
||||
fi |
||||
fi |
||||
# |
||||
# FreeBSD 4.10 gcc forgets to use -lc_r instead of -lc |
||||
# |
||||
if test x"$done" = xno; then |
||||
AC_MSG_CHECKING([whether -lc_r fixes that]) |
||||
LIBS="-lc_r $PTHREAD_LIBS $save_LIBS" |
||||
AC_TRY_LINK([#include <pthread.h>], |
||||
[pthread_t th; pthread_join(th, 0); |
||||
pthread_attr_init(0); pthread_cleanup_push(0, 0); |
||||
pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], |
||||
[done=yes]) |
||||
|
||||
if test "x$done" = xyes; then |
||||
AC_MSG_RESULT([yes]) |
||||
PTHREAD_LIBS="-lc_r $PTHREAD_LIBS" |
||||
else |
||||
AC_MSG_RESULT([no]) |
||||
fi |
||||
fi |
||||
if test x"$done" = xno; then |
||||
# OK, we have run out of ideas |
||||
AC_MSG_WARN([Impossible to determine how to use pthreads with shared libraries]) |
||||
|
||||
# so it's not safe to assume that we may use pthreads |
||||
acx_pthread_ok=no |
||||
fi |
||||
|
||||
CFLAGS="$save_CFLAGS" |
||||
LIBS="$save_LIBS" |
||||
CC="$save_CC" |
||||
else |
||||
PTHREAD_CC="$CC" |
||||
fi |
||||
|
||||
AC_SUBST(PTHREAD_LIBS) |
||||
AC_SUBST(PTHREAD_CFLAGS) |
||||
AC_SUBST(PTHREAD_CC) |
||||
|
||||
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: |
||||
if test x"$acx_pthread_ok" = xyes; then |
||||
ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) |
||||
: |
||||
else |
||||
acx_pthread_ok=no |
||||
$2 |
||||
fi |
||||
AC_LANG_RESTORE |
||||
])dnl ACX_PTHREAD |
@ -1,74 +0,0 @@ |
||||
dnl GTEST_LIB_CHECK([minimum version [, |
||||
dnl action if found [,action if not found]]]) |
||||
dnl |
||||
dnl Check for the presence of the Google Test library, optionally at a minimum |
||||
dnl version, and indicate a viable version with the HAVE_GTEST flag. It defines |
||||
dnl standard variables for substitution including GTEST_CPPFLAGS, |
||||
dnl GTEST_CXXFLAGS, GTEST_LDFLAGS, and GTEST_LIBS. It also defines |
||||
dnl GTEST_VERSION as the version of Google Test found. Finally, it provides |
||||
dnl optional custom action slots in the event GTEST is found or not. |
||||
AC_DEFUN([GTEST_LIB_CHECK], |
||||
[ |
||||
dnl Provide a flag to enable or disable Google Test usage. |
||||
AC_ARG_ENABLE([gtest], |
||||
[AS_HELP_STRING([--enable-gtest], |
||||
[Enable tests using the Google C++ Testing Framework. |
||||
(Default is enabled.)])], |
||||
[], |
||||
[enable_gtest=]) |
||||
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_GTEST="no" |
||||
AS_IF([test "x${enable_gtest}" != "xno"], |
||||
[AC_MSG_CHECKING([for 'gtest-config']) |
||||
AS_IF([test "x${enable_gtest}" != "xyes"], |
||||
[AS_IF([test -x "${enable_gtest}/scripts/gtest-config"], |
||||
[GTEST_CONFIG="${enable_gtest}/scripts/gtest-config"], |
||||
[GTEST_CONFIG="${enable_gtest}/bin/gtest-config"]) |
||||
AS_IF([test -x "${GTEST_CONFIG}"], [], |
||||
[AC_MSG_RESULT([no]) |
||||
AC_MSG_ERROR([dnl |
||||
Unable to locate either a built or installed Google Test. |
||||
The specific location '${enable_gtest}' was provided for a built or installed |
||||
Google Test, but no 'gtest-config' script could be found at this location.]) |
||||
])], |
||||
[AC_PATH_PROG([GTEST_CONFIG], [gtest-config])]) |
||||
AS_IF([test -x "${GTEST_CONFIG}"], |
||||
[AC_MSG_RESULT([${GTEST_CONFIG}]) |
||||
m4_ifval([$1], |
||||
[_gtest_min_version="--min-version=$1" |
||||
AC_MSG_CHECKING([for Google Test at least version >= $1])], |
||||
[_gtest_min_version="--min-version=0" |
||||
AC_MSG_CHECKING([for Google Test])]) |
||||
AS_IF([${GTEST_CONFIG} ${_gtest_min_version}], |
||||
[AC_MSG_RESULT([yes]) |
||||
HAVE_GTEST='yes'], |
||||
[AC_MSG_RESULT([no])])], |
||||
[AC_MSG_RESULT([no])]) |
||||
AS_IF([test "x${HAVE_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` |
||||
AC_DEFINE([HAVE_GTEST],[1],[Defined when Google Test is available.])], |
||||
[AS_IF([test "x${enable_gtest}" = "xyes"], |
||||
[AC_MSG_ERROR([dnl |
||||
Google Test was enabled, but no viable version could be found.]) |
||||
])])]) |
||||
AC_SUBST([HAVE_GTEST]) |
||||
AM_CONDITIONAL([HAVE_GTEST],[test "x$HAVE_GTEST" = "xyes"]) |
||||
AS_IF([test "x$HAVE_GTEST" = "xyes"], |
||||
[m4_ifval([$2], [$2])], |
||||
[m4_ifval([$3], [$3])]) |
||||
]) |
@ -1,97 +0,0 @@ |
||||
# A sample Makefile for building Google Test and using it in user
|
||||
# tests. 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 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.
|
||||
GTEST_DIR = ..
|
||||
|
||||
# Points to the location of the Google Test libraries
|
||||
GTEST_LIB_DIR = .
|
||||
|
||||
# Where to find user code.
|
||||
USER_DIR = ../samples
|
||||
|
||||
# Flags passed to the preprocessor.
|
||||
# Set Google Test's header directory as a system directory, such that
|
||||
# the compiler doesn't generate warnings in Google Test headers.
|
||||
CPPFLAGS += -isystem $(GTEST_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
|
||||
|
||||
# All tests produced by this Makefile. Remember to add new tests you
|
||||
# created to the list.
|
||||
TESTS = sample1_unittest
|
||||
|
||||
# All Google Test headers. Usually you shouldn't change this
|
||||
# definition.
|
||||
GTEST_HEADERS = $(GTEST_DIR)/include/gtest/*.h \
|
||||
$(GTEST_DIR)/include/gtest/internal/*.h
|
||||
|
||||
# House-keeping build targets.
|
||||
|
||||
ifndef GOOGLETEST_UNSUPPORTED_MAKEFILE_BUILD_SYSTEM_WORKAROUND |
||||
.PHONY all: |
||||
$(info "The Make buildsystem is no longer supported")
|
||||
$(info "You can temporarily set GOOGLETEST_UNSUPPORTED_MAKEFILE_BUILD_SYSTEM_WORKAROUND=1")
|
||||
$(info "i.e make GOOGLETEST_UNSUPPORTED_MAKEFILE_BUILD_SYSTEM_WORKAROUND=1 all")
|
||||
$(info "But this is going away very soon. ")
|
||||
$(exit 1)
|
||||
else |
||||
all: $(GTEST_LIBS) $(TESTS) |
||||
endif |
||||
|
||||
clean : |
||||
rm -f $(GTEST_LIBS) $(TESTS) *.o
|
||||
|
||||
# Builds gtest.a and gtest_main.a.
|
||||
|
||||
# Usually you shouldn't tweak such internal variables, indicated by a
|
||||
# trailing _.
|
||||
GTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $(GTEST_HEADERS)
|
||||
|
||||
# For simplicity and to avoid depending on Google Test's
|
||||
# implementation details, the dependencies specified below are
|
||||
# conservative and not optimized. This is fine as Google Test
|
||||
# compiles fast and for ordinary users its source rarely changes.
|
||||
gtest-all.o : $(GTEST_SRCS_) |
||||
$(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c \
|
||||
$(GTEST_DIR)/src/gtest-all.cc
|
||||
|
||||
gtest_main.o : $(GTEST_SRCS_) |
||||
$(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c \
|
||||
$(GTEST_DIR)/src/gtest_main.cc
|
||||
|
||||
libgtest.a : gtest-all.o |
||||
$(AR) $(ARFLAGS) $@ $^
|
||||
|
||||
libgtest_main.a : gtest-all.o gtest_main.o |
||||
$(AR) $(ARFLAGS) $@ $^
|
||||
|
||||
# Builds a sample test. A test should link with either gtest.a or
|
||||
# gtest_main.a, depending on whether it defines its own main()
|
||||
# function.
|
||||
|
||||
sample1.o : $(USER_DIR)/sample1.cc $(USER_DIR)/sample1.h $(GTEST_HEADERS) |
||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(USER_DIR)/sample1.cc
|
||||
|
||||
sample1_unittest.o : $(USER_DIR)/sample1_unittest.cc \
|
||||
$(USER_DIR)/sample1.h $(GTEST_HEADERS)
|
||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(USER_DIR)/sample1_unittest.cc
|
||||
|
||||
sample1_unittest : sample1.o sample1_unittest.o $(GTEST_LIBS) |
||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -L$(GTEST_LIB_DIR) -lgtest_main -lpthread $^ -o $@
|
Loading…
Reference in new issue