Commit Graph

49 Commits

Author SHA1 Message Date
Adam Badura
1be5ce0907 Correct CMake to cover Cygwin 2019-07-27 22:25:32 +02:00
Enji Cooper
699943fe40 Fix typo introduced in 63be3dcc24 (maintaners -> maintainers)
Signed-off-by: Enji Cooper <yaneurabeya@gmail.com>
2019-05-19 23:31:04 -07:00
misterg
63be3dcc24 Googletest export
Clarify build system support - CMake and automake community supported

PiperOrigin-RevId: 245821927
2019-05-03 15:11:22 -04:00
Sylvestre Gallon
9037e9bda1 Fix compilation on CentOS 7 2019-04-26 13:48:37 +02:00
Gennadiy Civil
1f3b098ef3 Merge pull request #2203 from ngie-eign:issue-2189
PiperOrigin-RevId: 241803437
2019-04-03 17:15:16 -04:00
Enji Cooper
67c75ff8ba Handle GTEST_SKIP() when calling Environment::SetUp()
gtest prior to this change would completely ignore `GTEST_SKIP()` if
called in `Environment::SetUp()`, instead of bailing out early, unlike
`Test::SetUp()`, which would cause the tests themselves to be skipped.
The only way (prior to this change) to skip the tests would be to
trigger a fatal error via `GTEST_FAIL()`.

Desirable behavior, in this case, when dealing with
`Environment::SetUp()` is to check for prerequisites on a system
(example, kernel supports a particular featureset, e.g., capsicum), and
skip the tests. The alternatives prior to this change would be
undesirable:

- Failing sends the wrong message to the test user, as the result of the
  tests is indeterminate, not failed.
- Having to add per-test class abstractions that override `SetUp()` to
  test for the capsicum feature set, then skip all of the tests in their
  respective SetUp fixtures, would be a lot of human and computational
  work; checking for the feature would need to be done for all of the
  tests, instead of once for all of the tests.

For those reasons, making `Environment::SetUp()` handle `GTEST_SKIP()`,
by not executing the testcases, is the most desirable solution.

In order to properly diagnose what happened when running the tests if
they are skipped, print out the diagnostics in an ad hoc manner.

Update the documentation to note this change and integrate a new test,
gtest_skip_in_environment_setup_test, into the test suite.

This change addresses #2189.

Signed-off-by: Enji Cooper <yaneurabeya@gmail.com>
2019-03-30 11:38:03 -07:00
Knut Omang
60cf03313d Set gtest version correctly for older cmake versions
Signed-off-by: Knut Omang <knut.omang@oracle.com>
2019-02-11 20:19:58 +01:00
misterg
80b43d900b Googletest export
Remove linked_ptr and use std::shared_ptr instead

PiperOrigin-RevId: 219129336
2018-10-29 13:46:16 -04:00
Abseil Team
b57c703963 Googletest export
Remove linked_ptr and use std::shared_ptr instead

PiperOrigin-RevId: 218618184
2018-10-26 14:19:59 -04:00
misterg
a50e4f05b3 Googletest export
Remove linked_ptr and use std::shared_ptr instead

PiperOrigin-RevId: 218571466
2018-10-26 14:19:51 -04:00
Abseil Team
7d3b73c85a Unconditionally use std::tuple.
Remove all mention of TR1 tuple and our own implementation of tuple.

PiperOrigin-RevId: 216395043
2018-10-09 16:25:58 -04:00
Matthieu
f5260ae757 Merge c798e39a4f into e93da23920
Closes #1836

PiperOrigin-RevId: 215461025
2018-10-02 17:41:16 -04:00
Arseny Aprelev
00938b2b22 Merge 2ce0685f76 into 75e834700d
Closes #1544
With refinements and changes

PiperOrigin-RevId: 215273083
2018-10-02 13:03:28 -04:00
Dakota Hawkins
b19292e6b6
Use $<INSTALL_PREFIX> in target_include_directories
To make sure packages are relocatable, use `$<INSTALL_PREFIX>` in
`$<INSTALL_INTERFACE:...>` `target_include_directories`.

`$<INSTALL_PREFIX>` was introduced in CMake 2.8.11, which is already
being checked for locally.

References:

- https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#id19
- https://github.com/robotology/how-to-export-cpp-library/blob/claudio/headeronly/src/LibTemplateCMake/CMakeLists.txt#L42

Signed-off-by: Dakota Hawkins <dakotahawkins@gmail.com>
2018-08-24 16:51:55 -04:00
Stefano Soffia
aff0379441 Install CMake export files
Rework of the closed pull request #768
2018-08-22 17:27:11 +02:00
Dakota Hawkins
759ef7c4e9
Improve CMake exported targets.
I _think_ this represents some of the "best practices" for exporting
targets. They'll be available in a `googletest::` namespace (e.g.
`googletest::gmock`) with non-namespaced `ALIAS` targets.

- Added GOOGLETEST_VERSION variable
- Use `CMakePackageConfigHelpers`, bump minimum CMake version to 2.8.8

Signed-off-by: Dakota Hawkins <dakotahawkins@gmail.com>
2018-08-21 13:02:09 -04:00
Gennadiy Civil
1246e5807a
Merge branch 'master' into cleanup-cmake 2018-08-15 13:02:54 -07:00
Elias Daler
9ca399ae05 Change location of generated pkg-config files from CMAKE_BINARY_DIR to gmock/gtest_BINARY_DIR (#1717) 2018-08-13 23:01:09 +03:00
Gennadiy Civil
2a7077fa24 one more fix 2018-08-02 20:03:26 -07:00
Gennadiy Civil
0d29f9702d more fixes 2018-08-02 17:32:43 -04:00
Gennadiy Civil
95c313e685 add --no_stacktrace_support for json-output-unittest 2018-08-02 16:58:11 -04:00
Gennadiy Civil
677df883ec cmake test fixes 2018-08-02 16:24:09 -04:00
Gennadiy Civil
b7244ff37c cmake fixes 2018-08-02 16:01:00 -04:00
Gennadiy Civil
930f0f86e3 cmake tests changes 2018-08-02 15:45:23 -04:00
Gennadiy Civil
f3511bf1c7 cleaning up and adding test changes to CMake 2018-08-02 14:56:33 -04:00
Gennadiy Civil
5b9b39ff21 Corresponding CMake Changes 2018-08-01 17:25:56 -04:00
Derek Mauro
d772e2039b Pass the --no_stacktrace_support argument to the CMake tests
This does the same thing to the CMake tests that is done to the
Bazel tests, and now makes the CMake tests pass.
2018-07-10 15:39:23 -04:00
Henry Fredrick Schreiner
b22e8dec40 Clean up cache non-advanced variable for subproject 2018-04-05 13:40:26 +02:00
Gennadiy Civil
3817871beb
Merge branch 'master' into json 2018-02-28 14:39:17 -05:00
Petr Hosek
6baf17e9d1 Support JSON output format in addition to XML
This change allows emitting output in JSON format in addition to the
already supported XML format. The implementation as well as the file
structure is intentionally modelled after the XML one.
2018-02-28 00:48:41 -08:00
David Neto
20074be19a Use DEBUG_POSTFIX instead of CMAKE_DEBUG_POSTFIX
CMAKE_DEBUG_POSTFIX is a global configuration parameter, and
changing it pollutes the configuration space for other projects
that enclose this project.

DEBUG_POSTFIX is better to use since it is a target-specific poperty.

Fixes #1334
Fixes #1268
2018-02-26 15:58:49 -05:00
Bryan Zimmerman
3ea06317cd remove implicit casts 2017-12-11 12:19:56 -05:00
bryanzim
f98c20baa8
Merge branch 'master' into master 2017-12-11 09:37:55 -05:00
Gennadiy Civil
10ef1d9a1e
Merge branch 'master' into use-system-includes 2017-12-08 15:11:13 -05:00
bryanzim
4aae1600d0
Merge branch 'master' into master 2017-12-08 11:31:31 -05:00
Wojciech Mamrak
8d9d6bb0a3
Improved description of VS std::tuple support 2017-12-07 18:17:43 +01:00
Sam Lunt
f46bd00e36 make includes system 2017-11-27 17:31:07 -06:00
Bryan Zimmerman
1ae4096b9c fix for VS2017 deprecation of ::tr1::tuple
change static_cast to ImplicitCast_ for consitency
fixes for building with path names containing spaces
2017-10-27 14:01:16 -04:00
ly2048
9681b4c8e6 Add explicit CMAKE_DEBUG_POSTFIX option
Enable generating different library name to be compatible with CMake's `FindGTest`.
2017-09-14 13:22:04 +08:00
Herbert Thielen
e8c6942ac1 remove obsolete link_directories command
It's not necessary, as the target_link_libraries command contains an
absolute path already, and the path given doesn't exist anymore,
leading only to linker warnings like:
ld: warning: directory not found for option
'-L/Users/travis/build/google/googletest/build/googlemock/gtest/src'
2017-09-05 12:01:14 +02:00
Henry Schreiner
5518a1d350 Adding CMake visibility policy setting
This policy setting will silence a warning when using with a visibility settings on targets. Due to the forced `cmake_minimum_version`, policy settings in CMakeLists calling this one (including the main CMakeLists) are lost, forcing the change to be made here.
2017-08-18 15:18:58 -04:00
David Seifert
8604c4adac Add support for pkgconfig 2017-08-14 13:45:56 +02:00
Gennadiy Civil
e3bd4cbeae Merge pull request #1160 from mwoehlke-kitware/honor-lib_suffix
Fix library install destinations
2017-08-11 09:14:49 -04:00
Matthew Woehlke
0e8e0e07d6 Fix library install destinations
Modify library install destinations to install .dll's to the correct
location (`bin`, not `lib`), and to install other artifacts to the
correct platform-dependent location by using GNUInstallDirs. This is
required for some distributions (e.g. Fedora) and will fix an issue that
otherwise requires those distributions to patch the upstream sources.
Also, add options to suppress installation, which may be useful for
projects that embed Google Test.

Since Google Test is trying to support archaic versions of CMake, a
brain-dead fallback (which requires that the user set either LIB_SUFFIX
or CMAKE_INSTALL_LIBDIR themselves) is included for versions that
predate GNUInstallDirs.

Fixes #1161.

Co-Authored-By: d3x0r <d3x0r@users.noreply.github.com>
2017-08-09 15:29:36 -04:00
Craig Scott
c0059a79f8 2.6.4 is the minimum CMake version, so enforce it (#656) 2016-12-17 19:15:04 -05:00
Craig Scott
f601ee162e Add include dirs to targets if CMake version supports it 2015-12-06 16:31:21 +11:00
Taylor Braun-Jones
98d988deac Add CMake install rules for gtest libraries and headers 2015-11-23 16:53:09 -05:00
Dominic Meiser
580378d522 Add an option to enable building with -fvisibility=hidden.
When this option is set gtest itself is built with -fvisibility=hidden
with gcc and clang.  This replicates MSVC's default behaviour with gcc
and clang.
2015-10-29 21:56:02 -06:00
Billy Donahue
1f87a0970d Move everything in googletest into googletest/googletest 2015-08-25 16:18:00 -04:00