The global variable gtest_SOURCE_DIR is replaced by CMake when fetch-content is used with the name "GTest" and points to the root directory. The include directories from the gtest target are always valid.
From the CMake 3.27 release notes:
Compatibility with versions of CMake older than 3.5 is now
deprecated and will be removed from a future version. Calls to
cmake_minimum_required() or cmake_policy() that set the policy
version to an older value now issue a deprecation diagnostic.
This PR also removes manually setting policy CMP0048. This is
redundant since the CMake min is already 3.X
The one large test does not link in limited memory environments
Closes#3653
PiperOrigin-RevId: 436753193
Change-Id: Idd59b6509994fc642147b88279ee791cd1d7bdd0
Replace semicolon by `$<SEMICOLON>` in generator-expressions of target
property `INTERFACE_INCLUDE_DIRECTORIES` of CMake targets `gtest`,
`gtest_main`, `gmock` and `gmock_main`.
Fixes: #3616
Signed-off-by: Deniz Bahadir <deniz@code.bahadir.email>
Bump `cmake_minimum_required` to 3.5.
Delete conditional branches exclusive to older versions.
Notable dependents:
- github.com/grpc/grpc >= 3.5.1
- github.com/abseil/abseil-cpp >= 3.5
- github.com/googleapis/google-cloud-cpp >= 3.5
On the other hand, github.com/protocolbuffers/protobuf is >= 3.1.3, but it only depends on GoogleTest 1.10.
Fixes#3523
PiperOrigin-RevId: 392073834
Rollback change from
https://github.com/google/googletest/pull/1836. This change generates
a script on Windows to actually run each test, but the script itself
doesn't correctly report if the test passed.
This change will "break tests" that were already broken on Windows,
but weren't being reported as such.
PiperOrigin-RevId: 341850671
When building packaged shared libraries for use, having the version
set makes it so that the soname is set correctly for parallel installation.
This change is derived from the one used for the Fedora gtest package.
Signed-off-by: Neal Gompa <ngompa13@gmail.com>
Get rid of gmock-generated-function-mockers.h and
gmock-generated-function-mockers.h.pump.
Stop using pump for GMOCK_METHOD* macroses generation.
PiperOrigin-RevId: 293454519
Building all test binaries under their respective subtrees makes
building the project via cmake easier to grok without additional hacks.
In particular, when dealing with the conversion I proposed in
https://reviews.freebsd.org/D19430 (switching from autotools to cmake),
I ran into unexpected gtest prefixing under the googlemock directory, as
opposed to the googletest directory. Example:
Before: `googlemock/gtest/googletest-break-on-failure-unittest_`
After: `googletest/googletest-break-on-failure-unittest_`
The latter form is easier to translate to packaging manifests when
building googlemock is disabled, as well as enabled, as the path remains
consistent when the feature flag is disabled.
Signed-off-by: Enji Cooper <yaneurabeya@gmail.com>
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>
If the user's cmakelists.txt first look for threads using
find_package(Threads), then set(gtest_disable_pthreads ON),
and then include googletest. GoogleTest will not look for
threads. But since they have already been found before in
user's cmakelists, it will use them regardless.
This helped me fix build issue in darktable-org/rawspeed
on windows/MSYS2, even though there are threads, and they
are usable, googletest build was failing with issues
about AutoHandle. I was first looking for threads, and only
then including googletest, so no matter the value of
gtest_disable_pthreads, it failed.
The other obvious solution is for user to first include
googletest, and only then look for threads by himself.
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>