summaryrefslogtreecommitdiff
path: root/CMake
Commit message (Collapse)AuthorAge
* Rollback new poisoned pointer APIGravatar Derek Mauro2024-07-01
| | | | | | | | | This breaks Chromium due to global constructor and incorrectly assumes page size. https://github.com/abseil/abseil-cpp/pull/1697 PiperOrigin-RevId: 648377066 Change-Id: I19f8b2655971a0c314091e26e62e10a5a9c46e94
* Decoder for Rust-style Punycode encodings of bounded length.Gravatar Chris Mihelich2024-06-26
| | | | | PiperOrigin-RevId: 647093624 Change-Id: Ic76bfa4aa8fb616cb23095ce7bfa30c3812dcb21
* Add an internal API to get a poisoned pointer.Gravatar Evan Brown2024-06-24
| | | | | | | The motivation is to make destroyed/moved-from objects cause crashes when they are accessed. PiperOrigin-RevId: 646229564 Change-Id: I68d9c189b542df0933af08f5ad63dc1f5764d856
* Sequence of 1-to-4 values with prefix sum to support Punycode decoding.Gravatar Chris Mihelich2024-06-12
| | | | | PiperOrigin-RevId: 642696557 Change-Id: Ia6b8e174ddb55e44bd082bf0d81d2f9c53c94016
* UTF-8 encoding library to support Rust Punycode decoding.Gravatar Chris Mihelich2024-06-10
| | | | | PiperOrigin-RevId: 641983507 Change-Id: Iad7933884aef6bfd90d159c049a1d698d19456c6
* Move SOVERSION to global CMakeLists, apply SOVERSION to DLLGravatar Abseil Team2024-05-31
| | | | | | | So that multiple LTS builds can co-exist. PiperOrigin-RevId: 639154515 Change-Id: Id34d6fbef823151a4f3c73cf7b9b340257eadd63
* Include flags in DLL build (non-Windows only)Gravatar Abseil Team2024-05-29
| | | | | | | On Windows flags will likely never be compatible due to the typeid issues. PiperOrigin-RevId: 638326696 Change-Id: If605d612af2efa4d60483ca4a03daf58511eda51
* Enable building monolithic shared library on macOS and Linux.Gravatar Abseil Team2024-05-29
| | | | | PiperOrigin-RevId: 638284938 Change-Id: I4189215d85862a8eeaff5c477ff2e47252fa52d3
* Add missing targets to ABSL_INTERNAL_DLL_TARGETSGravatar Abseil Team2024-05-26
| | | | | | | Include targets that are already included in ABSL_INTERNAL_DLL_FILES. PiperOrigin-RevId: 637498166 Change-Id: I7c5714a962b515a96b6e9e55bb8854b9f303180c
* Use IN_LIST to replace list(FIND) + > -1Gravatar Abseil Team2024-05-24
| | | | | PiperOrigin-RevId: 636945786 Change-Id: I2ea027baab08c05c213648b24a1a59ecdacfcf32
* Recognize some simple Rust mangled names in Demangle.Gravatar Chris Mihelich2024-05-06
| | | | | PiperOrigin-RevId: 631018414 Change-Id: Ice8efa0af4cb1f72b5d62fbbea4cb12cbead8634
* Add GoogleTest matchers for absl::StatusGravatar Zie Weaver2024-05-02
| | | | | PiperOrigin-RevId: 630072639 Change-Id: Ibbb166cc3c0479617c8e48abe8134b59a67a578f
* Add public aliases for default hash/eq types in hash-based containersGravatar Dennis Kormalev2024-04-24
| | | | | | | | | | | | | | | Generic user code sometimes wants to provide more flexibility for its own users and provide type arguments that are used as Hash/Eq in underlying containers. However, there is no sensible publicly available default value for it yet. This CL fixes this issue and provides publicly visible aliases that such user code can use. PiperOrigin-RevId: 627844757 Change-Id: I4c393007244ad8d998da02883c623eae1715c0df
* Roll back extern template instatiations in swisstable due to binary size ↵Gravatar Evan Brown2024-03-13
| | | | | | | increases in shared libraries. PiperOrigin-RevId: 615497725 Change-Id: Ic29db8923ea4ea7cd0b01b396896fa9fff8c74b0
* Add extern templates for common swisstable types.Gravatar Evan Brown2024-03-12
| | | | | | | | Motivation: mitigate linker input size increase from swisstable optimizations. Note: the changes in raw_hash_set.h are fixing build errors that happened when adding the explicit instantiations. The change in unchecked_deref is because set iterators have const reference access whereas map iterators have mutable reference access and the function is never actually called for sets (it's used in raw_hash_map) so it wasn't needed before. I'm not sure why the soo_slot/soo_iterator problems didn't cause compile errors earlier. PiperOrigin-RevId: 615174043 Change-Id: Iac5eb2332a76e9b70021156fbb2b8def47a5391d
* PR #1412: Filter out `-Xarch_` flags from pkg-config filesGravatar Ruoyu Zhong2024-02-13
| | | | | | | | | | | | | | | | | | | Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1412 In Clang, an `-Xarch_` compiler flag indicates that its successor only applies to the specified platform (e.g., `-Xarch_x86_64 -maes`). This is used in `absl/copts/AbseilConfigureCopts.cmake` to selectively enable hardware AES support on Apple platforms. However, when generating pkg-config files, those `-m` flags are filtered out, while the `-Xarch_` flags that precede them are left untouched. This led to the error reported in #1408. Fix that by filtering out each `-Xarch_` flag with its successor at once. Fixes #1408. Merge 89d20ab816b7cead56f05d5a6bc5146d1c4f4335 into 34604d5b1f6ae14c65b3992478b59f7108051979 Merging this change closes #1412 COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1412 from ZhongRuoyu:xarch-pkgconfig 89d20ab816b7cead56f05d5a6bc5146d1c4f4335 PiperOrigin-RevId: 606730193 Change-Id: I3e177a56721acd3145fd03c64102741898afd2a5
* Add a note about how to link absl::log_flags under CMake to workaroundGravatar Derek Mauro2024-01-16
| | | | | | | the lack of a feature equivalent to Bazel's alwayslink=True PiperOrigin-RevId: 598855446 Change-Id: I0bb3bc40005908106eb7a7252572e3af153a7f5c
* Fix CMake compiled ABI options after f845e60acd880dbf07788a5a2c0dbad0f9c57231.Gravatar Derek Mauro2024-01-10
| | | | | | | | | | | f845e60acd880dbf07788a5a2c0dbad0f9c57231 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
* Re-add the internal file //absl/string/internal/has_absl_stringify.h to unblockGravatar Derek Mauro2024-01-09
| | | | | | | | | | | | | | | releasing Abseil and GoogleTest. GoogleTest referenced this internal file and this internal trait. Since simultaneous releases are not possible since once release must reference another, we will temporarily add this back. https://github.com/google/googletest/blob/v1.14.x/googletest/include/gtest/gtest-printers.h#L119 https://github.com/google/googletest/pull/4368#issuecomment-1717699895 https://github.com/google/googletest/pull/4368#issuecomment-1717699895 PiperOrigin-RevId: 597073935 Change-Id: I7c2697a212dc477fd25770777445c64cfee73745
* Avoid leaking an unprefixed VLOG_IS_ON transitively though absl_log.hGravatar Derek Mauro2023-12-06
| | | | | | | | | | absl_log.h is supposed to be a mirror of log.h that only uses ABSL_ prefixed macros. This change adds ABSL_VLOG_IS_ON to absl_vlog_is_on.h and uses it in the implementation of VLOG. VLOG_IS_ON is then only exported though vlog_is_on.h. PiperOrigin-RevId: 588435577 Change-Id: Ifa9193afa0b782194b64447f4fedfaf24b72c95a
* Move vlog_config to the internal directory and change the namespace of VLogSiteGravatar Derek Mauro2023-12-06
| | | | | PiperOrigin-RevId: 588403935 Change-Id: I6a3af3c044b887ec65b19390d316cfb3ccdcc853
* Add VLOG and friendsGravatar Derek Mauro2023-12-05
| | | | | | | These are methods for configurable verbose logging PiperOrigin-RevId: 588059727 Change-Id: Ib3703edd2493050a5da8b30e88b21adc643b1f7f
* Add absl::NoDestructor<T>Gravatar Derek Mauro2023-11-08
| | | | | | | | | absl::NoDestructor<T> wraps an existing type and is used for defining a static type that does not need to be destructed upon program exit. Instead, such an object survives during program exit, and can be safely accessed at any time after construction. PiperOrigin-RevId: 580566259 Change-Id: I2cbb4cd9f6b50b98a793acd2ef0a4befd541f17f
* Add a template gadget to detect whether a type supports the ostream operator.Gravatar Zie Weaver2023-10-18
| | | | | | | | | | I.e. for a type `Example`, if ``` std::ostream& operator<<(std::ostream&, const Example&); ``` is declared, `absl::HasOstreamOperator<Example>::value` is `true`. PiperOrigin-RevId: 574637891 Change-Id: I123d8f35a6e3ea894745133f7d81b1610fb475d5
* Delete `absl::strings_internal::HasAbslStringify`.Gravatar Abseil Team2023-10-12
| | | | | | | Users should use `absl::HasAbslStringify` instead. PiperOrigin-RevId: 572916854 Change-Id: Ie67e076e0335b108d23f886a28074f7557ba045a
* `absl::Overload()` which returns a functor that provides overloads based on ↵Gravatar Abseil Team2023-09-26
| | | | | | | the functors passed to it. PiperOrigin-RevId: 568476251 Change-Id: Ic625c9b5300d1db496979c178ca1e655581f9276
* Change absl::Status implementation to be amenable to [[clang:trivial_abi]] ↵Gravatar Abseil Team2023-09-17
| | | | | | | | | | | annotation. This moves the implementation of most methods from absl::Status to absl::status_internal::StatusRep, and ensures that no calls to absl::Status methods are in a cc file. Stub implementations checking only inlined rep properties and calling no-op (RepToPointer) or out of line methods exist in status.h PiperOrigin-RevId: 566187430 Change-Id: I356ec29c0970ffe82eac2a5d98850e647fcd5ea5
* Move CountingAllocator into test_allocator.h and add some other allocators ↵Gravatar Evan Brown2023-09-15
| | | | | | | that can be shared between different container tests. PiperOrigin-RevId: 565693736 Change-Id: I59af987e30da03a805ce59ff0fb7eeae3fc08293
* Make `HasAbslStringify` public.Gravatar Abseil Team2023-09-13
| | | | | PiperOrigin-RevId: 565050503 Change-Id: I8f4c463be4ef513a2788745d1b454a7ede489152
* Remove CordRepRing experiment.Gravatar Martijn Vels2023-09-08
| | | | | | | We have no intention to use it instead of the CordRepBtree implementation, so cleanup up and remove all code and references. PiperOrigin-RevId: 563803813 Change-Id: I95a67318d0f722f3eb7ecdcc7b6c87e28f2e26dd
* Roll forward support for ARM intrinsics in crc_memcpyGravatar Abseil Team2023-09-07
| | | | | | | | | | | | | | | | | | | This CL rolls forward a previous change which we rolled back temporarily due to compilation errors on x86 when PCLMUL intrinsics were unavailable. *** Original change description *** This change replaces inline x86 intrinsics with generic versions that compile for both x86 and ARM depending on the target arch. This change does not enable the accelerated crc memcpy engine on ARM. That will be done in a subsequent change after the optimal number of vector and integer regions for different CPUs is determined. *** PiperOrigin-RevId: 563416413 Change-Id: Iee630a15ed83c26659adb0e8a03d3f3d3a46d688
* Rollback adding support for ARM intrinsicsGravatar Abseil Team2023-09-05
| | | | | | | | In some configurations this change causes compilation errors. We will roll this forward again after those issue are addressed. PiperOrigin-RevId: 562810916 Change-Id: I45b2a8d456273e9eff188f36da8f11323c4dfe66
* Add support for ARM intrinsics in crc_memcpyGravatar Abseil Team2023-09-05
| | | | | | | | | | | | This change replaces inline x86 intrinsics with generic versions that compile for both x86 and ARM depending on the target arch. This change does not enable the accelerated crc memcpy engine on ARM. That will be done in a subsequent change after the optimal number of vector and integer regions for different CPUs is determined. PiperOrigin-RevId: 562785420 Change-Id: I8ba4aa8de17587cedd92532f03767059a481f159
* Delete //absl/base/internal/prefetch.hGravatar Derek Mauro2023-08-31
| | | | | | | Public functions are now available in //absl/base/prefetch.h PiperOrigin-RevId: 561649346 Change-Id: Ic377ad5f21c9a44ea1f213dec17f5cf97795ebde
* Remove the legacy thread annotation spellingsGravatar Derek Mauro2023-08-28
| | | | | | | | | | | | | | | | The legacy thread annotations were spellings that were not prefixed with ABSL_ and caused conflicts with other libraries. These spellings have been removed by default for a while, but could have been added back with the temporary compile flag -DABSL_LEGACY_THREAD_ANNOTATIONS. This change completely removes the legacy spellings. If you were relying on the legacy spellings, the fix is straightforward. Simply add the ABSL_ prefix. For example, GUARDED_BY() becomes ABSL_GUARDED_BY(). PiperOrigin-RevId: 560874026 Change-Id: Id072e67435472220ea4f43ccbf267028c13feba7
* Delete the experimental conformance testing code.Gravatar Derek Mauro2023-08-23
| | | | | | | This project was never completed. PiperOrigin-RevId: 559492534 Change-Id: Ie4e9661e25731418979ad10669ac946e1c4d60c2
* Add absl::CharSet.Gravatar Abseil Team2023-08-23
| | | | | PiperOrigin-RevId: 559415517 Change-Id: I5bbc744bf00be2fd15ec7544b725d699e0d982fb
* An FNMatch helper for upcoming functionality.Gravatar Andy Getzendanner2023-08-14
| | | | | PiperOrigin-RevId: 556898736 Change-Id: Ic310bab090d6a92036034058520ed6641be86fbc
* PR #1498: Fix order of link options in pkg-config filesGravatar Stan Hu2023-07-31
| | | | | | | | | | | | | | | | | | | | | | | Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1498 In Windows, a few libraries (`dbghelp`, `advapi32`, and `bcrypt`) are added via link options. However, the .pc files produced for pkg-config erroneously include them before the abseil libraries. This can cause undefined references when trying to build against abseil. This commit swaps the order and adds the custom link options after the abseil dependencies. The following is a list of `.pc` files affected by this and the additional link options used: * all: `-L${libdir}` * `absl_base.pc`: `-ladvapi32` * `absl_random_internal_seed_material.pc`: `-lbcrypt` * `absl_symbolize.pc`: `-ldbghelp` Closes https://github.com/abseil/abseil-cpp/issues/1497 Merge af61f6d5d5fa7b390fc2e009652cd6da68b0fd38 into c9c0fd5185067208e1cc4227d16122571762af39 Merging this change closes #1498 COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1498 from stanhu:sh-fix-pc-link-order af61f6d5d5fa7b390fc2e009652cd6da68b0fd38 PiperOrigin-RevId: 552564626 Change-Id: I9d2a6ab99993bb4315dc94eade2cd419f1109c13
* Add Nullability annotations to Abseil.Gravatar Abseil Team2023-06-20
| | | | | PiperOrigin-RevId: 541915097 Change-Id: I7ebfbafc36db38b59b30ab5b312cd7e22082a805
* Merge pull request #1466 from traversaro:patch-2Gravatar Copybara-Service2023-06-07
|\ | | | | | | | | PiperOrigin-RevId: 538534137 Change-Id: Ifb2e59c36ffce183d3c93081d9300201757f82d4
| * CMake: Add absl::abseil_dll ALIAS target for abseil_dllGravatar Silvio Traversaro2023-06-04
|/
* fix some missing ABSL_INTERNAL_DLL_TARGETS for shared buildsGravatar H. Vetinari2023-05-13
|
* Fixed Windows DLL builds of test targetsGravatar Derek Mauro2023-05-12
| | | | | | | | | | | | | | | | | | | | | | | | | | This is a heavily modified version of https://github.com/abseil/abseil-cpp/pull/1445, which adds some missing test libraries to the test DLL. Unlike #1445, this change moves several global variables out of headers that did not need to be in headers. For instance, cord_btree_exhaustive_validation was a global defined/declared in cord_internal, but only used in cord_rep_btree and its test. cordz_handle defined a queue in its header even though it wasn't needed, which also led to ODR problems. The Spinlock used in CordzHandle is replaced with a Mutex. This was originally a Mutex, but Chromium asked us to change it to a Spinlock to avoid a static initializer. After this change, the static initializer is no longer an issue. #1407 PiperOrigin-RevId: 531516991 Change-Id: I0e431a193698b20ba03fac6e414c26f153f330a7
* Introduce IfConstexpr(Else) utilities for use internally in abseil library ↵Gravatar Evan Brown2023-04-28
| | | | | | | | | implementation. These functions are meant to allow for avoiding complex SFINAE pre-C++17. PiperOrigin-RevId: 527968428 Change-Id: I6524206c9dc50663d7c38abf6d0e8080ca93fc30
* Fix some spelling mistakesGravatar Vertexwahn2023-04-24
|
* Add an implementation of Waiter that uses std::mutex/std::condition_variableGravatar Derek Mauro2023-03-21
| | | | | | | | | | | | | | | This implementation may at some point become the default on some platforms. Currently not all platforms have widespread support for both real absolute timeouts or real relative timeouts (here "real" means without converting to the other timeout type which is the only one supported by the underlying APIs). In this case we can defer to their standard library to implement correct support. This is not currently the default on any platform Note: The size of WaiterState had to increase to fit the new implementation PiperOrigin-RevId: 518266646 Change-Id: I7f246646a960d6e1b155f9de0bf2f681c5d3d245
* Synchronization: Refactor Waiter to allow us to write testsGravatar Derek Mauro2023-03-20
| | | | | | | | | | | | | Instead of being only able to test the platform Waiter implementation, this allows us to be able to test all Waiter implementations that build on a specific platform. A unittest is added that tests all implementations that work for the platform, and allows us to check that the expected one is being used by printing the name of the selected implementation. PiperOrigin-RevId: 518072415 Change-Id: Ie9e6fcd9d8283b4038e6f4e68a304d2adcc04b19
* CMake: Install TESTONLY libraries and their dependencies whenGravatar Derek Mauro2023-03-02
| | | | | | | | | they are built https://github.com/abseil/abseil-cpp/issues/1407 PiperOrigin-RevId: 513684529 Change-Id: Ie0a164eea32becfef8f8e4a112aee158fd93dd7e
* cleanup: remove pre-CMake 3.8 workaroundsGravatar Abseil Team2023-02-23
| | | | | | | Since Abseil requires CMake >= 3.10, we can remove some workarounds. PiperOrigin-RevId: 511856584 Change-Id: I0385fa87b51147b69df7e2dd18b317cf6cde83c2