Commit Graph

75 Commits

Author SHA1 Message Date
Abseil Team
e7ba8a7852 Add absl::SourceLocation
PiperOrigin-RevId: 881550268
Change-Id: I1add4438cecc44f41f01c0570c69bb85f706ecfc
2026-03-10 11:52:33 -07:00
Derek Mauro
7a03cdb4c0 Require C++17
Policy information:
https://opensource.google/documentation/policies/cplusplus-support#c_language_standard
https://github.com/google/oss-policies-info/blob/main/foundational-cxx-support-matrix.md

PiperOrigin-RevId: 723589409
Change-Id: Ia8665c052ed40f2a78308f7eb0c330191b0cf981
2025-02-05 11:33:01 -08:00
Derek Mauro
0c7c676f09 CMake: Change the default for ABSL_PROPAGATE_CXX_STD to ON
PiperOrigin-RevId: 694144866
Change-Id: I631221fa0fc64821cf328f9a6d65839a39839276
2024-11-07 09:26:34 -08:00
Florent Castelli
85c26befda Avoid installing options.h with the other headers
This install is conflicting with the manual one done after.
It causes spurious recompilations for users as the original file
is copied and then overwritten with each install.

Fixes #1769

PiperOrigin-RevId: 692919849
Change-Id: I2fb9c68f6e547212425d5b5ae7205bbf19b46bf4
2024-11-04 04:42:14 -08:00
Aaron Bray
eb85220775 PR #1699: Add option to build with MSVC static runtime
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1699

The correct CMake policy is set, but there is no option to switch the msvc runtime when configuring the project.

Since MSVC is a multiconfiguration build tool, we need to set this CMake variable internal to the project to ensure that all of the supported build configurations get properly set (i.e. `Release` builds use `/MT` or `/MD` and `Debug` builds use `/MTd` or `/MDd`).
I tried to explictly set these flags (i.e. -DCMAKE_CXX_FLAGS_XXX) when configuring the project, but these flags were being overwritten due to [explicitly setting compiler flags](https://github.com/abseil/abseil-cpp/blob/master/CMake/AbseilHelpers.cmake#L285).

Merge 4fbe3ae469 into b86d574c5a

Merging this change closes #1699

COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1699 from aaron-bray:msvc_runtime_library 4fbe3ae469
PiperOrigin-RevId: 652581337
Change-Id: I64b24127cda68b681a1cd327052150508df2c4a0
2024-07-15 13:25:22 -07:00
Arnaud Botella
646126a4e1 PR #1715: Generate options.h using CMake only once
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1715

Using abseil via CMake ExternalProject, for each compilation abseil is reconfigured. This leads to a new options-pinned.h generated and then a new options.h installed. Because of that new options.h file, all projects depending on abseil recompile entirely.

Using file(GENERATE ...) instead of file(WRITE ...) allows generating options-pinned.h only when the content is new or changed.

Merge b3b53860d1 into cd75cb4ae3

Merging this change closes #1715

COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1715 from BotellaA:patch-1 b3b53860d1
PiperOrigin-RevId: 652495570
Change-Id: Ib14bd9a78f80a540aae73d7a94cb46e2c05e8509
2024-07-15 08:49:48 -07:00
Arnaud Botella
cd75cb4ae3 PR #1709: Handle RPATH CMake configuration
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1709

When depending on a compiled abseil code, abseil libraries cannot find each other even if they are all located in the same directory.

One fix is to edit the LD_LIBRARY_PATH, but it is not always that simple in a development environment.

Another way is to add the current location into the RPATH so all libraries can find each other. CMake provides simple command to control this at project scale.
Merge caa92e6742 into cd7f66cab5

Merging this change closes #1709

COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1709 from Geode-solutions:master caa92e6742
PiperOrigin-RevId: 651476097
Change-Id: Ib3f214ac17adabefedfb562127f2b1de413ce437
2024-07-11 11:24:24 -07:00
Christoph Grüninger
f46495ea96 PR #1706: Require CMake version 3.16
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1706

Follow Google OSS policy.
Merge 2ba42b9e5a into af4c589ed6

Merging this change closes #1706

COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1706 from gruenich:feature/cmake-3-16 2ba42b9e5a
PiperOrigin-RevId: 650646746
Change-Id: Ib600608fbc727161c8b8e69cda9a09637188fef8
2024-07-09 09:00:35 -07:00
Abseil Team
d06b82773e Move SOVERSION to global CMakeLists, apply SOVERSION to DLL
So that multiple LTS builds can co-exist.

PiperOrigin-RevId: 639154515
Change-Id: Id34d6fbef823151a4f3c73cf7b9b340257eadd63
2024-05-31 14:32:29 -07:00
Abseil Team
7ce797f217 Enable building monolithic shared library on macOS and Linux.
PiperOrigin-RevId: 638284938
Change-Id: I4189215d85862a8eeaff5c477ff2e47252fa52d3
2024-05-29 07:58:29 -07:00
Derek Mauro
bcce85ef8d Fix CMake compiled ABI options after f845e60acd.
f845e60acd added an option to use C++20's
<ordering> header but the CMake install configured this as an alias
in C++17 when it is not available.

Fixes #1597

PiperOrigin-RevId: 597258569
Change-Id: I40277d55702601e1686370bee6af9b7491fd2000
2024-01-10 08:33:52 -08:00
Daniel Richard G
b87875aa07 PR #1546: CMake: Enable CMP0074 so that GTest_ROOT can be specified
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1546

I am building Abseil with tests enabled and an external GTest build, i.e.
```
-DABSL_BUILD_TESTING=ON
-DABSL_USE_EXTERNAL_GOOGLETEST=ON
-DABSL_FIND_GOOGLETEST=ON
-DGTest_ROOT=/path/to/googletest/1.14.0
```

However, CMake (3.20.2) configuration yielded this result:
```
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
CMake Warning (dev) at CMakeLists.txt:150 (find_package):
  Policy CMP0074 is not set: find_package uses <PackageName>_ROOT variables.
  Run "cmake --help-policy CMP0074" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.

  CMake variable GTest_ROOT is set to:

    /path/to/googletest/1.14.0

  For compatibility, CMake is ignoring the variable.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find GTest (missing: GTEST_LIBRARY GTEST_INCLUDE_DIR
  GTEST_MAIN_LIBRARY)
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake/Modules/FindGTest.cmake:255 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:150 (find_package)

-- Configuring incomplete, errors occurred!
See also "/tmp/abseil-build/CMakeFiles/CMakeOutput.log".
See also "/tmp/abseil-build/CMakeFiles/CMakeError.log".
```

This PR sets `CMP0074=NEW` so that the GTest install location can be specified via `GTest_ROOT`.
Merge 4e4f035aff into 2a18ba753b

Merging this change closes #1546

COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1546 from iskunk:feature/fix-gtest-root 4e4f035aff
PiperOrigin-RevId: 574159856
Change-Id: Ifc796500c3a6403d28a027375116437bc743205a
2023-10-17 08:32:18 -07:00
Benjamin Buch
c3db833081 enable CMP0141 to allow user CMAKE_MSVC_DEBUG_INFORMATION_FORMAT 2023-07-07 14:14:41 +02:00
Abseil Team
6d16237574 cleanup: remove pre-CMake 3.8 workarounds
Since Abseil requires CMake >= 3.10, we can remove some workarounds.

PiperOrigin-RevId: 511856584
Change-Id: I0385fa87b51147b69df7e2dd18b317cf6cde83c2
2023-02-23 12:30:51 -08:00
Abseil Team
2ed6963f2b CMake: Remove check_target calls which can be problematic in case of dependency cycle
Also renames `_target_compile_features_if_available` CMake function to
`_absl_target_compile_features_if_available` since CMake's function
namespace is global.

The dependency cycle can occur if absl is configured with test helpers
enabled, and googletest is configured to use absl.

In the case that both projects are being built from source via
FetchContent with OVERRIDE_FIND_PACKAGE, depending on the order in
which the two projects are added to the build, the check_target calls
may fail even though the build would have otherwise succeeded.

The existing `check_target` calls seem to have been originally added
to detect missing gtest targets when the `GTest::` prefix was not yet
in use.  For target names without "::", CMake does not warn if they
are undefined, and just assumes they refer to system library names.
However, CMake does fail during build generation if a target name with
"::" is missing; thus the check_taget calls are redundant.

PiperOrigin-RevId: 480140797
Change-Id: Ic51631e4a36dd8b6f569ad6424bea15a4af0b875
2022-10-10 11:50:46 -07:00
Derek Mauro
ea9c8ff578 CMake: Require at least CMake 3.10
This is the current minimum according to
https://github.com/google/oss-policies-info/blob/main/foundational-cxx-support-matrix.md

PiperOrigin-RevId: 472714045
Change-Id: I5930bbbc4eec4644d22bba703957d1764c2e76be
2022-09-07 06:59:16 -07:00
Abseil Team
308bbf300f CMake: install artifacts reflect the compiled ABI
Change `absl/base/options.h` at install time to reflect the ABI used
to compile the libraries, i.e., if Abseil was compiled with
C++ >= 17 then the `ABSL_OPTION_USE_STD_*` macros are set to `1`,
because then the C++ 17 types are embedded in the ABI of the installed
artifacts.

Likewise, set the `target_compile_features()` of Abseil libraries
to reflect the C++ version used to compile them. If they the Abseil
libraries are compiled with C++ >= 17, then all downstream
dependencies must also be compiled with C++ >= 17.

Fixes #696

PiperOrigin-RevId: 472538165
Change-Id: Ic9e346ebe277c882a18ad96e1918c9e3511c91c3
2022-09-06 13:12:23 -07:00
Derek Mauro
277ce1ddc2 CMake: Add an option to build the libraries that are used for writing
tests without requiring Abseil's tests be built (default=OFF)

This disables building libraries that are only used for writing tests
by default.

The logging library releases some libraries used for writing tests
that themselves depend on GoogleTest. This allows Abseil to build by
default without requiring GoogleTest.

Fixes #1262

PiperOrigin-RevId: 470847215
Change-Id: I296f41aa06d6f302853af3f32e1f762649504afc
2022-08-29 16:52:55 -07:00
Copybara-Service
252bb88f1b Merge pull request #1249 from evanacox:master
PiperOrigin-RevId: 467204807
Change-Id: Id7949726d67a16bf2daead7503f84e8b862fdb5f
2022-08-12 07:25:40 -07:00
Evan Cox
436f267ca3 change explanation message in ABSL_USE_SYSTEM_INCLUDES option 2022-08-11 16:42:31 -04:00
Evan Cox
6f6886156d add new CMake option ABSL_USE_SYSTEM_INCLUDES
When using Abseil as a dependency with CMake, files that include Abseil headers and have incompatible warning settings can emit compiler warnings. CMake allows you to mark include directories as `SYSTEM` includes, which causes compilers to ignore warnings from those headers. 

This adds the new option `ABSL_USE_SYSTEM_INCLUDES`, which makes Abseil's include directories be marked with `SYSTEM`.
2022-08-11 14:55:04 -04:00
Derek Mauro
97ab3dcfd6 Move Abseil to C++14 minimum
Adds policy checks the raise the minimum C++ version to C++14
and the minimum GCC version to GCC 5

Updates the docs to indicate the C++14 minimum.

PiperOrigin-RevId: 459401288
Change-Id: I18878f0e13001c57e97e26ad7c9a9c9c12c39265
2022-07-06 19:09:41 -07:00
Abseil Team
7c6608d0db Export of internal Abseil changes
--
6d4e969ad240d248bfeb644b3b76fffae0f07882 by Christian Blichmann <cblichmann@google.com>:

cmake: Fix description of `ABSL_USE_EXTERNAL_GOOGLETEST` option

There is no `add_subproject()` in CMake.

PiperOrigin-RevId: 443087953
Change-Id: I30c2118638f99ad1389ae197e2c81d1e5f298882
GitOrigin-RevId: 6d4e969ad240d248bfeb644b3b76fffae0f07882
2022-04-21 12:18:26 -04:00
Andrei Polushin
294166fcbe cmake: use target aliases from local Google Test checkout. (#1083)
* cmake: use target aliases from local Google Test checkout.

`ABSL_FIND_GOOGLETEST` is a dependent option, it is always `OFF` when
`ABSL_USE_EXTERNAL_GOOGLETEST` is `OFF` (i.e. when Google Test is
checked out locally).

`GTest::` target aliases are to be added only if `find_package(GTest)`
has been actually used.

* cmake: clarify adding GTest:: aliases.
2022-01-07 09:42:54 -05:00
Matt Armstrong
fb7dd24b18 cmake: add ABSL_BUILD_TESTING option (#1057)
Abseil's own tests now are disabled if either BUILD_TESTING
or a new option called ABSL_BUILD_TESTING is false.
Additionally, Abseil's CMakeLists.txt no longer re-declares
the BUILD_TESTING option with a value of false.

Abseil had been using just the BUILD_TESTING option, since
the fix for #901.  Because setting BUILD_TESTING false still
works to disable Abseil's tests, this change preserves the
behavior asked for in that issue.

Previous to that, Abseil had a project specific flag for
this, as is the typical idiom used in other projects.

The issue with BUILD_TESTING is that it is an all-or-nothing
policy.  When Abseil is incorporated as a subproject, the
encompasing project has no convenient way to enable its own
tests while disabling Abseil's.

Fixes #1056
2021-12-10 13:50:53 -05:00
Federico Scrinzi
9b924cedb6 Fix googletest URL in CMakeLists.txt (#1062)
The git branch was renamed from "master" to "main".
2021-11-16 13:32:20 -05:00
Abseil Team
a2f52e1177 Export of internal Abseil changes
--
b008f3aaab60f1f0eb5987b50336543cca7151be by Martijn Vels <mvels@google.com>:

Enable Cord Btree as the default Cord implementation.

The Cord Btree implementation has been extensively tested by google. This changes makes the Cord Btree implementation the default implementation. This change should have no impact on current use cases and does not effect any public API or behavior.

PiperOrigin-RevId: 403966449

--
3d82052b5819d1244942c59d5cb4e51d75ada287 by Derek Mauro <dmauro@google.com>:

Add missing CMake alias for gmock_main.
Remove unused variable ABSL_TEST_COMMON_LIBRARIES

Fixes #709
Fixes #1043

PiperOrigin-RevId: 403950358

--
86695f6d06915b56d807303c37ee81487998cd58 by Abseil Team <absl-team@google.com>:

FunctionRef is cheaper to construct than a std::function, and the argument is only used during the call, so this is safe. This has the added advantage of allowing the caller to provide a non-movable callable, which can't be converted to a std::function.

PiperOrigin-RevId: 403457615

--
196c1109ba519d4ff00c856bbb4bff754468359f by Abseil Team <absl-team@google.com>:

Internal optimization.

PiperOrigin-RevId: 403413291
GitOrigin-RevId: b008f3aaab60f1f0eb5987b50336543cca7151be
Change-Id: I1665f0efd484f53e0ed22d8940ef2fa60b03cc5b
2021-10-18 15:06:33 -04:00
Eric Barndollar
ee0ebdae4a CMake: option to use cxx_std_11 (minimum) that propagates. (#986)
See https://github.com/abseil/abseil-cpp/issues/259 for context.

This change introduces the ABSL_PROPAGATE_CXX_STD option (default to OFF for now, though it prints a warning in CMake 2.8+ builds that a future Abseil release will default to ON). When enabled, all Abseil CMake targets will set the cxx_std_11 target meta feature (which will then propagate to targets that depend upon Abseil) rather than setting the target-level CXX_STANDARD property to CMAKE_CXX_STANDARD (which is the default value anyway), which doesn't propagate.

Updates README documentation to clarify behavior and with a different example recommendation for library projects (which should generally leave CMAKE_CXX_STANDARD to the root application project).

See https://crascit.com/2015/03/28/enabling-cxx11-in-cmake/ for a useful overview of these different CMake features surrounding C++ standard version configuration.
2021-07-29 21:33:51 -04:00
Florin Crișan
8f92175783 CMake: add option to use Google Test already installed on system (#969)
As of this change, you can use `-DABSL_USE_EXTERNAL_GOOGLETEST=ON -DABSL_FIND_GOOGLETEST=ON` to have Abseil use the standard CMake find_package(GTest) mechanism.
2021-06-09 19:26:40 -04:00
WolverinDEV
2d418976ef Allowing to change the MSVC runtime (#921)
* Allowing to change the MSVC runtime with the CMake option CMAKE_MSVC_RUNTIME_LIBRARY introduced in 3.15

* Update CMakeLists.txt

Capitalize MSVC

Co-authored-by: Derek Mauro <761129+derekmauro@users.noreply.github.com>
2021-03-30 12:44:11 -04:00
Abseil Team
dcf4899377 Export of internal Abseil changes
--
8e75347c10d85112296811be6ef35761744ad9bc by Derek Mauro <dmauro@google.com>:

Big update to LTS release process
  * Add create_lts.py script to to the LTS modification
    This is simpler than copybara since very few changes are needed
  * Use the default installation paths instead of a versioned path.
    If a versioned path is needed, this is easy to change on the commandline.
  * Make the integration test use the LTS transformed version
  * Test both static and dynamic linking (fixes pkg-config dynamic linking)

PiperOrigin-RevId: 363566934

--
e00e971a2de3138861f5e1900201c9cc7788f714 by Laramie Leavitt <lar@google.com>:

Add a non-compile test to absl::BitGenRef for temporaries.

PiperOrigin-RevId: 363437284

--
3685644ec115d99789de32aceb76c32a00756fea by Derek Mauro <dmauro@google.com>:

Make OSS code consistent with internal code by using the forward
declaration of absl::Status that contains ABSL_MUST_USE_RESULT.

PiperOrigin-RevId: 363426906

--
b85fec142c3aa3f632fa985f9f8f73a253819723 by Evan Brown <ezb@google.com>:

Move raw_hash_set::infoz_ into raw_hash_set::settings_. This reduces the size of raw_hash_sets by alignof(size_t) bytes when hashtablez is disabled.

PiperOrigin-RevId: 363034264

--
c6fde3b17e5845191eb8b2bfc1760c8bfb9573ff by Mark Barolak <mbar@google.com>:

Internal change

PiperOrigin-RevId: 362990378

--
81713cf964905b43d1cbe32ce5fed97539029625 by Abseil Team <absl-team@google.com>:

Fix typo in comment (execeptions -> exceptions).

PiperOrigin-RevId: 362946191

--
3ee92ca470feca44da417b03ee45a915c6eb5155 by Abseil Team <absl-team@google.com>:

Add absl::FindAndReportLeaks and routes it to the corresponding
__lsan_do_recoverable_leak_check.

PiperOrigin-RevId: 362622199

--
b95b7194b20e02c20d72289fbc79a0d35b82e256 by Abseil Team <absl-team@google.com>:

Add `kWithEverything` to StatusToStringMode

PiperOrigin-RevId: 362595218

--
0a960d96a0014eab7e1c55b479269450ed8e98d7 by Abseil Team <absl-team@google.com>:

Accept e.g. ".__uniq" as a valid clone name.  Further, bring the implementation
on par with libiberty's demangler grammar.

Clang introduced option -funique-internal-linkage-names that adds the suffix
".__uniq.[0-9]+" to internal linkage functions to give them a globally unique
identifier.  The suffix was designed to work with existing demanglers which do
recognize a "_" along with the alphanumeric string. This change enhances the
demangler to allow "_" with the alphanumeric string.

Please refer to libiberty's cp-demangle.c where function d_clone_suffix
implements the demangling of clone suffixes :

1.  '_' is accepted as a valid character with the alphanumeric sequence.
2.  The alphanumberic sequence is optional.
3.  The digit sequence is optional.

PiperOrigin-RevId: 362557420

--
2ac5ea212c150afd2f58025a5cab8c45d16949c6 by Abseil Team <absl-team@google.com>:

Change variable name 'slots' to 'slot_count' to avoid name-clash with Qt builds.

PiperOrigin-RevId: 362556289

--
934f0f409c9c548716a46363d6e243406fad4028 by Mark Barolak <mbar@google.com>:

Clarify the comment on ABSL_CACHELINE_SIZE to indicate that the macro definition itself shouldn't change, but rather that call sites should change when possible.

This addresses the request for improved documentation in https://github.com/abseil/abseil-cpp/pull/842.

PiperOrigin-RevId: 362354288
GitOrigin-RevId: 8e75347c10d85112296811be6ef35761744ad9bc
Change-Id: I33ec8561d8d645c3353e9d2dd447501d0e1825a7
2021-03-18 08:44:23 -07:00
Abseil Team
a50ae369a3 Export of internal Abseil changes
--
4ceae78ecef025a331985958bba12ce12d4d0a68 by Derek Mauro <dmauro@google.com>:

Internal change

PiperOrigin-RevId: 358888936

--
48f69b0b46e2041bb321e8af7374d7e0b45efc25 by Derek Mauro <dmauro@google.com>:

Use the standard CTest mechanism BUILD_TESTING for enabling/disabling tests
in CMake

Fixes #901

PiperOrigin-RevId: 358822190
GitOrigin-RevId: 4ceae78ecef025a331985958bba12ce12d4d0a68
Change-Id: Ib1ca69a42355f2a4cd4c7f5a47184c4fd8441f35
2021-02-22 16:20:19 -05:00
Abseil Team
22771d4719 Export of internal Abseil changes
--
642ab296a2c9629c44f3f2ce6911cd2488bcf416 by Derek Mauro <dmauro@google.com>:

Remove an obsolete check in CMakeLists.txt

PiperOrigin-RevId: 352852564

--
ce78cb96bcfd162737dbcf35005da3d1d6a3486b by Abseil Team <absl-team@google.com>:

Clarify that the calling *thread* must have locked the mutex in order to unlock
it.

PiperOrigin-RevId: 352801804

--
24e1f5f72756046f5265abf618e951c341f09b8d by Derek Mauro <dmauro@google.com>:

Fixes failing CMake string comparisons
https://cmake.org/cmake/help/latest/policy/CMP0054.html

Fixes #791

PiperOrigin-RevId: 352791054

--
0ac10bc3f4dca2c4c4b51d7b8196a2eaee9537a1 by Abseil Team <absl-team@google.com>:

Introduce CordRepRing class

This change introduces the CordRepRing class that implements all the lower level / internal implementation for upcoming CordRepRing ring buffer support in cord.

PiperOrigin-RevId: 352771994

--
4bd36dda61760785844f0f29f26d90cc18046f75 by Abseil Team <absl-team@google.com>:

Optimize InlineData representation for cord sampling (cordz)

This CL changes InlineData to allow us to store a (future) Cordz Info pointer directly into the inline representation:

- make InlineData a class that provides a public API to set the active union members (tree or chars) and safely access that data.
- change 'tree' and 'profiled' bits to be the 2 least significant bits, allowing us 62 continquous bits for storing a Cordz Info pointer.

PiperOrigin-RevId: 352642411

--
dc55ba71bbce0e6a83e05a453990c51ac3d68426 by Mark Barolak <mbar@google.com>:

Add unit test coverage for the mutating overload of absl::AsciiStrToLower.

PiperOrigin-RevId: 352626006
GitOrigin-RevId: 642ab296a2c9629c44f3f2ce6911cd2488bcf416
Change-Id: I6c5929dd830d3c630e14e7fd5387fc3e25a69100
2021-01-20 16:43:33 -05:00
Abseil Team
eb317a701b Export of internal Abseil changes
--
d09230db053c544c2dc7fd7d95d1ebe4302071e9 by Abseil Team <absl-team@google.com>:

Move testonly_uses_linear_node_search to BtreeNodePeer

PiperOrigin-RevId: 338210523

--
7b11c945dbba7a354103c194877eba240f7f0cbc by Derek Mauro <dmauro@google.com>:

Allow pinning to a GoogleTest commit to make the build reproducible
Allow using a cached copy of the commit to avoid depending on GitHub

PiperOrigin-RevId: 338115715

--
8414f496c570a6398744da8324e158b39a2e3d92 by Andy Getzendanner <durandal@google.com>:

Generate a pkg-config file per absl_cc_library.

PiperOrigin-RevId: 337986219
GitOrigin-RevId: d09230db053c544c2dc7fd7d95d1ebe4302071e9
Change-Id: Iae398ab8ad5c0c6833abd01aa5198315f5b6fa99
2020-10-22 02:21:05 -04:00
Abseil Team
3c2bed2e77 Export of internal Abseil changes
--
763b4755cc65db94fb1d6c09655f77deee685698 by Evan Brown <ezb@google.com>:

Rollback change getting rid of recursion in clear_and_delete().

PiperOrigin-RevId: 322156175

--
e430ae6970ae2e76357876449878033e3c72e734 by Greg Falcon <gfalcon@google.com>:

fix build on P9

Import of https://github.com/abseil/abseil-cpp/pull/739

PiperOrigin-RevId: 321855200

--
3076c5bf811a950e7f7914023434d4aa9c0fbbb0 by Derek Mauro <dmauro@google.com>:

Check for the existence of CMake policies before using them
Fixes #742

PiperOrigin-RevId: 321798698
GitOrigin-RevId: 763b4755cc65db94fb1d6c09655f77deee685698
Change-Id: I641e42f8bebe236b75f1bf1116a129c2ad9b2571
2020-07-20 15:16:45 -04:00
Abseil Team
f624790b7f Export of internal Abseil changes
--
4fc38390e66394e51ef4637ca0778f929017b4c8 by Gennadiy Rozental <rogeeff@google.com>:

Internal Change

PiperOrigin-RevId: 321020681

--
880d1c1cb7590e7265e21afe32edde473ef830d4 by Derek Mauro <dmauro@google.com>:

Decrease number of threads in thread_identity_test to hopefully
prevent test timeouts

PiperOrigin-RevId: 321019403
GitOrigin-RevId: 4fc38390e66394e51ef4637ca0778f929017b4c8
Change-Id: Id8175bae6e490277d663d76fff9c06353b8c7f05
2020-07-15 14:12:16 -04:00
Mizux
4b5b25a285 cmake: remove unneeded enable_testing() cmd (#736)
It is already performed by CTest module
ref: 43372d5ba3/Modules/CTest.cmake (L83-L84)
2020-07-09 12:42:55 -04:00
Abseil Team
da3a87690c Export of internal Abseil changes
--
b2b94b9f533e4f9ae2a2df9de56ccb3b18f31d0d by Gennadiy Rozental <rogeeff@google.com>:

Internal change

PiperOrigin-RevId: 314366138

--
7a5ac6be82741aec5b327d7b67efd14d69deed6a by Gennadiy Rozental <rogeeff@google.com>:

Introduce Abseil prefixed dynamic annotation macros.

PiperOrigin-RevId: 314228914

--
33e7c605cb1be9bd48bd3590b1eedccd68d3bd1b by Gennadiy Rozental <rogeeff@google.com>:

Fixing missing includes and remove unnecessary ones.

PiperOrigin-RevId: 314217909

--
6a3c5c26bfa13317bf0a880f13d0e4be0b971b76 by Gennadiy Rozental <rogeeff@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 314209576

--
f7795aa68020af4a6b4905531ba951e04b88966a by Abseil Team <absl-team@google.com>:

absl::FormatTime() and absl::ParseTime() format specifiers:
- %EZ now accepts 'z' in addition to 'Z' as a synonym for +00:00.
- %ET is introduced, producing 'T' on output, and accepting 'T'
  or 't' on input.  This is for the RFC3339 date-time separator.

PiperOrigin-RevId: 313945137

--
87c437ce3aab3f59a7546e44a28cd1c8aaa152c3 by Laramie Leavitt <lar@google.com>:

Rollback

PiperOrigin-RevId: 313868206

--
8049b74349486a0026932b86d29c380b195e1cba by Laramie Leavitt <lar@google.com>:

Remove the MockingBitGenBase base class in favor of type-erasure in BitGenRef.

In Abseil random, mocking was split across two different classes,
MockingBitGenBase and MockingBitGen. This split existed because Google Mock is a
test-only library that we don't link into production, so MockingBitGenBase
provided a low-overhead scaffold used to lookup mocks when in test code, but
which is unused in production code.

That has been replaced by type-erasure which looks for a method named
CallImpl with the correct signature.

Weaken the coupling between MockingBitGen, DistributionCaller, and MockOverloadSet.

Rename CallImpl to InvokeMock()

Previously, the implementation of DistributionCaller was also split across different files using explicit instantiation of the DistributionCaller struct and some details in the Mocking classes. Now Distribution caller uses the presence of the InvokeMock() method to choose whether to use the mockable call path or the default call path.

PiperOrigin-RevId: 313848695

--
1741d80e08050e1939605f70ca6ff64809785c85 by Gennadiy Rozental <rogeeff@google.com>:

Introduce public interface to access reflection handle corresponding the flag.

This interface will be the only official way to access flag reflection information from the flag object. The other internal methods will eventually disappear.

PiperOrigin-RevId: 313734006

--
c375bead457de29d9c29595d16c66d3e5125b585 by Abseil Team <absl-team@google.com>:

Improve documentation of absl::c_partial_sort_copy.

This function takes no middle parameter, instead using the size of the result
container to determine the size of the partial sort.

PiperOrigin-RevId: 313656062

--
bbc759d43656b1b996ad558f23c852a9f14129d2 by Gennadiy Rozental <rogeeff@google.com>:

Eliminate dynamic annotation symbols in the library.

PiperOrigin-RevId: 313650817
GitOrigin-RevId: b2b94b9f533e4f9ae2a2df9de56ccb3b18f31d0d
Change-Id: Ic7a11bbcb723f3ff6a7e2f214bff0a92c6f8ab4d
2020-06-02 14:26:36 -04:00
Po-Chuan Hsieh
8faf20461f Exclude empty directories (#697)
install(DIRECTORY...) creates all directories. If there's is no matching
files, it becomes an empty directory. The three empty directories are
absl/copts, absl/strings/testdata and absl/time/internal/cctz/testdata.
It is a workaround as cmake does not have an option to exclude empty
directories.

Reference:	https://gitlab.kitware.com/cmake/cmake/-/issues/19189
2020-06-02 14:18:31 -04:00
Abseil Team
2069dc796a Export of internal Abseil changes
--
cb68208c1ae9ca45ce48bf2b7e6cc46592a3b22d by Derek Mauro <dmauro@google.com>:

Update GoogleTest dependency and use it to mark a parameterized test
as possibly unused.

PiperOrigin-RevId: 313643136

--
24f61fe25e943e78f8a1fd014c89516776943170 by Derek Mauro <dmauro@google.com>:

Internal change

PiperOrigin-RevId: 313636155

--
36c453ddf04791f8cf3d14673bacd7bbd98911fd by Gennadiy Rozental <rogeeff@google.com>:

Address sanitizer should not use DYNAMIC_ANNOTATIONS_ENABLED=1

PiperOrigin-RevId: 313635651

--
7a7a3e3888ac8ae366572ea0a2a1c62dc669cec7 by Abseil Team <absl-team@google.com>:

CMake: don't attempt to use googletest unless ABSL_RUN_TESTS==true.

Fixes: https://github.com/abseil/abseil-cpp/issues/690
PiperOrigin-RevId: 313477705
GitOrigin-RevId: cb68208c1ae9ca45ce48bf2b7e6cc46592a3b22d
Change-Id: Ief7b31b53cdf3f79518b767d882960c1636aad23
2020-05-28 15:58:09 -04:00
Abseil Team
73ea9a9572 Export of internal Abseil changes
--
87cdfd6aa40941e116cd79ef70f9a7a8271db163 by Abseil Team <absl-team@google.com>:

Fix a typo in random.h API documentation.

PiperOrigin-RevId: 305176308

--
8a38e1df49a18a954daca3ce617fd69045ff4c19 by Derek Mauro <dmauro@google.com>:

Import GitHub #647: Allow external add_subdirectory for using GoogleTest

PiperOrigin-RevId: 305156797

--
b1a2441536d4964fbe4e2329e74c322e6c41a4e6 by Gennadiy Rozental <rogeeff@google.com>:

temporary roll back.

PiperOrigin-RevId: 305149619

--
c78767577264348d2f881893f9407aadfe73ab75 by CJ Johnson <johnsoncj@google.com>:

Rollback update to linux_clang-latest container while investigating
a compiler bug.

PiperOrigin-RevId: 304897689

--
3c6fd38f53d2e982569fdba4043f75271c7b5de4 by Derek Mauro <dmauro@google.com>:

Update linux_clang-latest container to one based on Ubuntu 18.04,
which has libstdc++-8.

PiperOrigin-RevId: 304885120
GitOrigin-RevId: 87cdfd6aa40941e116cd79ef70f9a7a8271db163
Change-Id: Iefa6efee93907ec0eecb8add804c5cc2f052b64d
2020-04-07 00:10:49 -04:00
Adrian Imboden
c01b9916e7 Add option to use an externally provided GoogleTest target (for usage of abseil as add_subdirectory target) (#647) 2020-04-06 20:50:57 -04:00
Abseil Team
a877af1f29 Export of internal Abseil changes
--
ea0cfebeb69b25bec343652bbe1a203f5476c51a by Mark Barolak <mbar@google.com>:

Change "std::string" to "string" in places where a "std::" qualification was incorrectly inserted by automation.

PiperOrigin-RevId: 300108520
GitOrigin-RevId: ea0cfebeb69b25bec343652bbe1a203f5476c51a
Change-Id: Ie3621e63a6ebad67b9fe56a3ebe33e1d50dac602
2020-03-10 13:59:49 -04:00
Abseil Team
bcefbdcdf6 Export of internal Abseil changes
--
09c1e7877210fe85c43631538303af801c233e89 by Gennadiy Rozental <rogeeff@google.com>:

Change CordRep::length to size_t to be compatible with ChunkIterator.

PiperOrigin-RevId: 297901255

--
226d5e79fb4e20fb09d75f034624d5be770f4ece by Derek Mauro <dmauro@google.com>:

Makes absl::string_view::substr constexpr for std::string_view compatibility
Fixes #627

PiperOrigin-RevId: 297872778

--
851aa24a22d0ba5552098bf7e5735c95e4a8d4f7 by Abseil Team <absl-team@google.com>:

Reformat one line.

PiperOrigin-RevId: 297839574

--
4f449c462583797455375fa6f1365a6b2cfa7e0a by Benjamin Barenblat <bbaren@google.com>:

Internal change

PiperOrigin-RevId: 297677173

--
2d41a250e9a8f272946bc3262463e4025d88fba3 by Abseil Team <absl-team@google.com>:

Internal change

PiperOrigin-RevId: 297537076

--
6e7fbe1e90999a58556d41955bef44033c61876c by Gennadiy Rozental <rogeeff@google.com>:

Internal change

PiperOrigin-RevId: 297376994

--
5acf79338191b31cec158b06cd96ca8dfa3e81fe by Derek Mauro <dmauro@google.com>:

Add a debug-mode bounds-check on absl::Span::operator[].

PiperOrigin-RevId: 297355826

--
1c540d06a56c7e92bb07b90f16b4e00b014ef18f by CJ Johnson <johnsoncj@google.com>:

Adding new LTS to the list

PiperOrigin-RevId: 297235265

--
696ce48bea6927436ff89f59b887e5869b1b0f38 by Derek Mauro <dmauro@google.com>:

Fix build on FreeBSD/powerpc (implement UnscaledCycleClock)

Merges/Fixes GitHub #616

PiperOrigin-RevId: 297188640
GitOrigin-RevId: 09c1e7877210fe85c43631538303af801c233e89
Change-Id: I5d97b16bb6378792d2fcf7d29080cca18aa7729a
2020-02-28 16:01:26 -05:00
Abseil Team
37dd2562ec Export of internal Abseil changes
--
8bdb2020150ed0fd4a4e520e454dc5f54e33f776 by Eric Fiselier <ericwf@google.com>:

Workaround bug in GCC 9.2 and after.

PiperOrigin-RevId: 291982551

--
47ff4820e595f96c082a90d733725f6882d83e3b by Abseil Team <absl-team@google.com>:

Improve ABSL_ATTRIBUTE_PACKED documentation

Recommend to apply ABSL_ATTRIBUTE_PACKED to structure members instead of to an entire structure because applying this attribute to an entire structure may cause the compiler to generate suboptimal code. It reduces the alignment of the data structure from a value larger than one to one. When applied to a structure, ABSL_ATTRIBUTE_PACKED reduces the alignment of a structure (alignof()) to 1. As a result, the compiler can no longer assume that e.g. uint32 members are aligned on a four byte boundary and hence is forced to use single-byte load and store instructions on CPU architectures that do not support non-aligned loads or stores.

PiperOrigin-RevId: 291977920

--
902b7a86f860da699d3a2e5c738be5ef73ede3b4 by Mark Barolak <mbar@google.com>:

Internal change

PiperOrigin-RevId: 291963048

--
bb3bd3247e376d53a3080b105f13ec7566d3ae50 by Abseil Team <absl-team@google.com>:

Support the C++17 insert_or_assign() API in btree_map.

PiperOrigin-RevId: 291945474

--
ff3b3cfcbbc64f086f95501f48d49426bcde356f by Gennadiy Rozental <rogeeff@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 291861110

--
fd465cd9cbbacd3962f67a7346d6462edaddd809 by Derek Mauro <dmauro@google.com>:

Add flaky=1 to beta_distribution_test.

PiperOrigin-RevId: 291757364

--
3603adfb59c4128c542b670952cce250d59e1f67 by Derek Mauro <dmauro@google.com>:

Separate the initialization of NumCPUs() and NominalCPUFrequency()

The OSS version of Abseil never needs to call NominalCPUFrequency().
In some configurations, initializing NominalCPUFrequency() requires
spending at least 3ms measuring the CPU frequency. By separating the
initialization from NumCPUs(), which is called in most configurations,
we can save at least 3ms of program startup time.

PiperOrigin-RevId: 291737273

--
bea9e4a6bff5a0351d340deab966641867e08c4d by Abseil Team <absl-team@google.com>:

Change the cmake library names not to have a redundant `absl_` prefix.

PiperOrigin-RevId: 291640501

--
501b602ef260cd7c8c527342581ceffb3c5b6d4c by Gennadiy Rozental <rogeeff@google.com>:

Introducing benchmark for absl::GetFlag.

PiperOrigin-RevId: 291433394

--
4eeaddc788da4b91c272a8adca77ca6dbbbc1d44 by Xiaoyi Zhang <zhangxy@google.com>:

fix: Add support for more ARM processors detection

Import of https://github.com/abseil/abseil-cpp/pull/608

PiperOrigin-RevId: 291420397

--
a3087a8e883c5d71de7d9bd4ec8f4db5142dfcf5 by Derek Mauro <dmauro@google.com>:

Removes the flaky raw_hash_set prefetch test

PiperOrigin-RevId: 291197079

--
aad6c2121c102ac36216e771c83227cf3e3bfd66 by Andy Soffer <asoffer@google.com>:

Enable building Abseil as a DLL.
This is currently experimental and unsupported.

This CL does a few things:
1. Adds the ABSL_DLL macro to any class holding a static data member, or to global constants in headers.
2. Adds a whitelist of all files in the DLL and all the build targets that are conglomerated into the DLL.
3. When BUILD_SHARED_LIBS is specified, any build target that would be in the DLL still exists, but we swap out all of it's dependencies so it just depends on abseil_dll

PiperOrigin-RevId: 291192055

--
5e888cd6f2a7722805d41f872108a03a84e421c7 by Mark Barolak <mbar@google.com>:

Move absl/strings/internal/escaping.{cc,h} into internal build targets.

This puts absl/strings/internal/escaping.h behind a whitelist and it also resolves https://github.com/abseil/abseil-cpp/issues/604.

PiperOrigin-RevId: 291173320

--
166836d24970da87587c1728036f53f05a28f0af by Eric Fiselier <ericwf@google.com>:

Internal Change.

PiperOrigin-RevId: 291012718

--
996ddb3dffda02440fa93f30ca5d71b14b688875 by Abseil Team <absl-team@google.com>:

Fix shared libraries log spam for built-in types in absl::GetFlag

PiperOrigin-RevId: 290772743
GitOrigin-RevId: 8bdb2020150ed0fd4a4e520e454dc5f54e33f776
Change-Id: I8bf2265dd14ebbace220a1b6b982bb5040ad2a26
2020-01-28 16:07:41 -05:00
Abseil Team
2f76a9bf50 Export of internal Abseil changes.
--
0925eb11f7730d5a1e538b9e6c2d1f8239f5fdc0 by Abseil Team <absl-team@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 250694613

--
4e1690e492a8399da1b1450ff5f21adf435fcef5 by Greg Falcon <gfalcon@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 250684222

--
c7281b44eb005c21d45bdc0b437e47c7787275bc by Derek Mauro <dmauro@google.com>:

Fix warnings on Xcode/clang.

PiperOrigin-RevId: 250552120

--
5ea3b1cfa759a7e6c70e7558f27c762baf818f7d by CJ Johnson <johnsoncj@google.com>:

Minor edits to InlinedVector benchmarks: Adds DoNotOptimize to the member functions of NontrivialType, removes unused template parameter for InlVec typeder

PiperOrigin-RevId: 250505482

--
7fe9c02b49121936c5b47034f20272a916111174 by Matt Kulukundis <kfm@google.com>:

Internal change.

PiperOrigin-RevId: 250376825

--
ad348c9c0eb37449874648e8544c56343c1dfaef by CJ Johnson <johnsoncj@google.com>:

Minor edits to InlinedVector benchmark

PiperOrigin-RevId: 250361830

--
55e8b411431e982059af73b160fa6bcef90e87f7 by CJ Johnson <johnsoncj@google.com>:

Switches use of allocator_traits to the Abseil backport to leverage existing bug fixes and workarounds

PiperOrigin-RevId: 250359321

--
b0edbe3218940128523e36388a31ff90df01a364 by CJ Johnson <johnsoncj@google.com>:

Updates exception safety test for InlinedVector to use TYPED_TEST (with fixtures) which increases the coverage without complicating the code.

PiperOrigin-RevId: 250359198

--
8ab55c9a8c191aabcb562cf1789f360eba0b1a81 by Abseil Team <absl-team@google.com>:

Internal change.

PiperOrigin-RevId: 250281509

--
dd8a67f4f9e5e8930457203c18205183b8306b5a by Abseil Team <absl-team@google.com>:

Change the suggestions for the non-strict Next/PrevWeekday() calls.

Previously we suggested `PrevWeekday(d, Weekday::thursday) + 7`
to get the _following_ Thursday if d is not already a Thursday,
but `NextWeekday(d - 1, Weekday::thursday)` is more intuitive,
and probably even a little faster.

Similarly for the _previous_ Thursday if d is not already a
Thursday, suggest `PrevWeekday(d + 1, Weekday::thursday)`
instead of `NextWeekday(d, Weekday::thursday) - 7`.

PiperOrigin-RevId: 249840844

--
4775dce26cdb0560011a5d1ecdc8e0c20f856911 by Abseil Team <absl-team@google.com>:

Change the DbgHelp lib pragma to use lowercase and an extension.

This matches the conventions used in the Windows SDK.

PiperOrigin-RevId: 249826229

--
cbc49e865f3715ebe1983307d4f02e50998b2958 by Abseil Team <absl-team@google.com>:

Introduce Abseil prefixed thread annotation macros.

PiperOrigin-RevId: 249825200

--
8e97c8dfbadb78743c2421b494398be25f632cb1 by Abseil Team <absl-team@google.com>:

Internal change.

PiperOrigin-RevId: 249737936

--
0d720538bc6af3e77ac19def27a4a0514c2800d2 by Abseil Team <absl-team@google.com>:

Tell CMake Abseil is a C++ project.

PiperOrigin-RevId: 249726509

--
20651845edf236757b3ffb3eaeff330af81be40a by Abseil Team <absl-team@google.com>:

Internal change.

PiperOrigin-RevId: 249726377
GitOrigin-RevId: 0925eb11f7730d5a1e538b9e6c2d1f8239f5fdc0
Change-Id: I05d18d30ad4e9ace6b60a17d2dc6fd699643fe30
2019-05-30 13:42:15 -04:00
Abseil Team
666fc1266b Export of internal Abseil changes.
--
bc89d3221e3927d08881d75eeee0e8db862300fa by Benjamin Barenblat <bbaren@google.com>:

Clean up C-style casts in `ABSL_ASSERT`

PiperOrigin-RevId: 241932756

--
17482daae4b3e2fc725b759586590ac466b72a1e by Jon Cohen <cohenjon@google.com>:

Move Gtest-specific CMake code to its own directory

PiperOrigin-RevId: 241920192

--
9ae52b4f665625352c0a789cff884bde492c28f5 by CJ Johnson <johnsoncj@google.com>:

Moves private data methods from InlinedVector to InlinedVector Storage in anticipation of migrating the Rep union type

PiperOrigin-RevId: 241794144

--
95315bc50a61a0aae4f171b44c2312158a43e72e by Jon Cohen <cohenjon@google.com>:

Use /DNOMINMAX in Abseil tests.  This offsets inlcudes of <windows.h> from gtest.

PiperOrigin-RevId: 241790584

--
ee505c7f2ab99d29c165ea21a07190474f64053d by CJ Johnson <johnsoncj@google.com>:

Adds inlined_vector_internal to the deps of inlined_vector in CMakeLists.txt

PiperOrigin-RevId: 241775332

--
94eb5165b49bab59ce7de143be38a4581d5658da by CJ Johnson <johnsoncj@google.com>:

Migrates InlinedVector Storage to class Metadata for compatibility with the eventual member-wise migration to the new exception safe implementation

PiperOrigin-RevId: 241633420

--
f99e172caad1ec8b35bf7bbabaf2833d55a6f055 by Abseil Team <absl-team@google.com>:

Add MSVC specific linker flags only to MSVC builds.

PiperOrigin-RevId: 241615711

--
3ad19d2779281e945bdf56643dc5cee3f730eb4f by Abseil Team <absl-team@google.com>:

Add a comment about per-process randomization of absl::Hash.

PiperOrigin-RevId: 241583697

--
8dfb02d725fee3528351b2da4ed32a7455f9858a by Tom Manshreck <shreck@google.com>:

Internal change

PiperOrigin-RevId: 241564734
GitOrigin-RevId: bc89d3221e3927d08881d75eeee0e8db862300fa
Change-Id: Ibad3da416d08a96ec1f8313f8b519b4270b7e01a
2019-04-04 16:07:58 -04:00
Abseil Team
2c8421e1c6 Export of internal Abseil changes.
--
fcf9d3facb12451964ad1850073cbfb6f9739379 by CJ Johnson <johnsoncj@google.com>:

Makes it obvious to readers that the comparison operators do not branch more than needed

PiperOrigin-RevId: 240811527

--
680c586f81f805be68e96caffb28d5f46b6a6511 by Jon Cohen <cohenjon@google.com>:

Consistently use "if(" instead of "if (" in CMake files

PiperOrigin-RevId: 240621819

--
c4acc506648622389f33f564fd94f8dda08cb61a by Tom Manshreck <shreck@google.com>:

Internal change

PiperOrigin-RevId: 240619556

--
ddbc1894944aae96767c876a1ae8696ddaba42a2 by Jon Cohen <cohenjon@google.com>:

Remove the warning about install prefixes when we aren't installing abseil

PiperOrigin-RevId: 240614750

--
086c4fad213d99e875038bc8a1c7268e28a7ebf3 by Abseil Team <absl-team@google.com>:

Adjust some tests and test cases which fail on WebAssembly

PiperOrigin-RevId: 240592367

--
46c2c09723a37ef4911ae3c64aab92e3f0fdba79 by Abseil Team <absl-team@google.com>:

CMake install target update
- Add prefix absl_ to each target when install rule are disabled.
- Disable all install commands when absl is used as subdirectory (Fix #287)

PiperOrigin-RevId: 240575083

--
8d88063ed5b16f982a91950693d37ca18fdd46d8 by Jon Cohen <cohenjon@google.com>:

Correctly link to Threads::Threads for a few cmake targets which were missing it.

PiperOrigin-RevId: 240574513
GitOrigin-RevId: fcf9d3facb12451964ad1850073cbfb6f9739379
Change-Id: I031c57de8cd88554348eb8bd1371d01d15ff1fc7
2019-03-28 16:54:11 -04:00
Abseil Team
5b65c4af51 Export of internal Abseil changes.
--
f6c627ce4470a814adc377947b58346eef69a4c9 by Jon Cohen <cohenjon@google.com>:

Don't create install rules when Abseil is used as a subdirectory.

Fix #287

PiperOrigin-RevId: 240559825

--
a5d9b06fe736143068997988b654b5f66ec3266a by Matt Calabrese <calabrese@google.com>:

Make absl::nullopt an inline constexpr variable, as specified in the standard (with a workaround for pre-c++17 compilers).

PiperOrigin-RevId: 240552286

--
d7bee50cff745fbb8d1cdf56a200d9073d311c80 by Abseil Team <absl-team@google.com>:

Internal Change

PiperOrigin-RevId: 240425622

--
828dd49d392d83dbeecd9d3e9cb14551ab265905 by Jon Cohen <cohenjon@google.com>:

Add default link options to absl builds.

Currently all this does is add -ignore:4221 to Abseil msvc builds, but the structure is all in place to add more link options when necessary

Fix #277

Note: This CL changes tact for us in that it puts the default options in the helper function as opposed to the invocations of absl_cc_blah.  The original intent of keeping these out of the helper functions was to make generating the CMakeLists.txt files have a smaller diff, but looking now that is a problem for the future, and small compared to making maintenance and use of our CMake buildsystem easier
PiperOrigin-RevId: 240409463

--
4aa120e9dcf76d29e9ca0008d0f6d4d9fa8abe8c by Matt Kulukundis <kfm@google.com>:

Reduce flake rate for non-determistic test to < 1/10,000

PiperOrigin-RevId: 240370938

--
bc30e219531827bfbf90915b2067c7fb8160bb6d by Derek Mauro <dmauro@google.com>:

Add Bazel caching on Kokoro for new linux targets.

PiperOrigin-RevId: 240356556

--
c4e06d79a50d7bb211312b7845c4bd92c0761747 by Jon Cohen <cohenjon@google.com>:

include AbseilInstallDirs instead of GNUInstallDirs.  It worked before because global_CMakeLists.txt also included AbseilInstallDirs

PiperOrigin-RevId: 240206409

--
c254dc6cade8a263f3f97fb1417d92fe5235ff32 by Jon Cohen <cohenjon@google.com>:

Fix logic for when we create the variant_exception_safety_test in CMake.  Currently we are only running in on gcc > 4.9, when we want it run on every compiler except gcc <= 4.8

PiperOrigin-RevId: 240194174

--
01518006b351d3670ba1d349cfbcb7dd6f3a8b84 by CJ Johnson <johnsoncj@google.com>:

Removes old implementation warning comment now that InlinedVector has an implementation detail file

PiperOrigin-RevId: 240167265

--
eb05355ae8c7397752ab7a65afc9e0a99472ba9d by Jon Cohen <cohenjon@google.com>:

Remove the forward declaration of Span

PiperOrigin-RevId: 240156660

--
b7e75aa3933d6e79dd086821cf58d15e72f476f4 by Jon Cohen <cohenjon@google.com>:

Prepare CMake install rule for LTS releases:
  * Remove the warning against installing in system install locations
  * Insert versioning to keep different LTS installs from colliding.  Headers are installed in <prefix>/absl_$version/include, .a files in <prefix>/absl_$version/lib, and config files in <prefix>/absl_$version/lib/cmake

PiperOrigin-RevId: 240153986

--
de63488ab6236e041f08260794b0b634a2b8ed16 by CJ Johnson <johnsoncj@google.com>:

Reduce reader confusion by using std::addressof(...) even when the type is known to not overload operator&(...)

PiperOrigin-RevId: 240131902
GitOrigin-RevId: f6c627ce4470a814adc377947b58346eef69a4c9
Change-Id: I95dbbacaaf65aceeeca9e9bee5fd9ea456225f62
2019-03-27 12:14:39 -04:00
Abseil Team
e75672f6af Export of internal Abseil changes.
--
61a5128b3b3db9db7df219b7ef737b78f7743e54 by Abseil Team <absl-team@google.com>:

Internal change

PiperOrigin-RevId: 239413069

--
fd47ba5c2243523cc579239a220254cbc47376af by Jon Cohen <cohenjon@google.com>:

Internal change.

PiperOrigin-RevId: 239404848

--
bece0ae2b391351feb27547a4693f4e654b1b4ab by Eric Fiselier <ericwf@google.com>:

Unconditionally include memory.h in optional.

PiperOrigin-RevId: 239298731
GitOrigin-RevId: 61a5128b3b3db9db7df219b7ef737b78f7743e54
Change-Id: I09c1268154f1c8ea2b653d3e907f709e09025817
2019-03-20 15:38:56 -04:00