aboutsummaryrefslogtreecommitdiff
path: root/CMake/AbseilDll.cmake
Commit message (Collapse)AuthorAgeFilesLines
* Decoder for Rust-style Punycode encodings of bounded length.Chris Mihelich2024-06-261-0/+2
| | | | | PiperOrigin-RevId: 647093624 Change-Id: Ic76bfa4aa8fb616cb23095ce7bfa30c3812dcb21
* Add an internal API to get a poisoned pointer.Evan Brown2024-06-241-0/+2
| | | | | | | 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.Chris Mihelich2024-06-121-0/+1
| | | | | PiperOrigin-RevId: 642696557 Change-Id: Ia6b8e174ddb55e44bd082bf0d81d2f9c53c94016
* UTF-8 encoding library to support Rust Punycode decoding.Chris Mihelich2024-06-101-0/+2
| | | | | PiperOrigin-RevId: 641983507 Change-Id: Iad7933884aef6bfd90d159c049a1d698d19456c6
* Move SOVERSION to global CMakeLists, apply SOVERSION to DLLAbseil Team2024-05-311-1/+4
| | | | | | | So that multiple LTS builds can co-exist. PiperOrigin-RevId: 639154515 Change-Id: Id34d6fbef823151a4f3c73cf7b9b340257eadd63
* Include flags in DLL build (non-Windows only)Abseil Team2024-05-291-0/+57
| | | | | | | 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.Abseil Team2024-05-291-1/+6
| | | | | PiperOrigin-RevId: 638284938 Change-Id: I4189215d85862a8eeaff5c477ff2e47252fa52d3
* Add missing targets to ABSL_INTERNAL_DLL_TARGETSAbseil Team2024-05-261-0/+3
| | | | | | | Include targets that are already included in ABSL_INTERNAL_DLL_FILES. PiperOrigin-RevId: 637498166 Change-Id: I7c5714a962b515a96b6e9e55bb8854b9f303180c
* Use IN_LIST to replace list(FIND) + > -1Abseil Team2024-05-241-12/+2
| | | | | PiperOrigin-RevId: 636945786 Change-Id: I2ea027baab08c05c213648b24a1a59ecdacfcf32
* Recognize some simple Rust mangled names in Demangle.Chris Mihelich2024-05-061-0/+2
| | | | | PiperOrigin-RevId: 631018414 Change-Id: Ice8efa0af4cb1f72b5d62fbbea4cb12cbead8634
* Add GoogleTest matchers for absl::StatusZie Weaver2024-05-021-0/+4
| | | | | PiperOrigin-RevId: 630072639 Change-Id: Ibbb166cc3c0479617c8e48abe8134b59a67a578f
* Add public aliases for default hash/eq types in hash-based containersDennis Kormalev2024-04-241-0/+1
| | | | | | | | | | | | | | | 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 ↵Evan Brown2024-03-131-4/+0
| | | | | | | increases in shared libraries. PiperOrigin-RevId: 615497725 Change-Id: Ic29db8923ea4ea7cd0b01b396896fa9fff8c74b0
* Add extern templates for common swisstable types.Evan Brown2024-03-121-0/+4
| | | | | | | | 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
* Fix CMake compiled ABI options after f845e60acd880dbf07788a5a2c0dbad0f9c57231.Derek Mauro2024-01-101-5/+20
| | | | | | | | | | | 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 unblockDerek Mauro2024-01-091-0/+1
| | | | | | | | | | | | | | | 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.hDerek Mauro2023-12-061-0/+1
| | | | | | | | | | 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 VLogSiteDerek Mauro2023-12-061-2/+2
| | | | | PiperOrigin-RevId: 588403935 Change-Id: I6a3af3c044b887ec65b19390d316cfb3ccdcc853
* Add VLOG and friendsDerek Mauro2023-12-051-0/+3
| | | | | | | These are methods for configurable verbose logging PiperOrigin-RevId: 588059727 Change-Id: Ib3703edd2493050a5da8b30e88b21adc643b1f7f
* Add absl::NoDestructor<T>Derek Mauro2023-11-081-0/+1
| | | | | | | | | 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.Zie Weaver2023-10-181-0/+1
| | | | | | | | | | 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`.Abseil Team2023-10-121-1/+0
| | | | | | | Users should use `absl::HasAbslStringify` instead. PiperOrigin-RevId: 572916854 Change-Id: Ie67e076e0335b108d23f886a28074f7557ba045a
* `absl::Overload()` which returns a functor that provides overloads based on ↵Abseil Team2023-09-261-0/+1
| | | | | | | the functors passed to it. PiperOrigin-RevId: 568476251 Change-Id: Ic625c9b5300d1db496979c178ca1e655581f9276
* Change absl::Status implementation to be amenable to [[clang:trivial_abi]] ↵Abseil Team2023-09-171-0/+1
| | | | | | | | | | | 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 ↵Evan Brown2023-09-151-1/+0
| | | | | | | that can be shared between different container tests. PiperOrigin-RevId: 565693736 Change-Id: I59af987e30da03a805ce59ff0fb7eeae3fc08293
* Make `HasAbslStringify` public.Abseil Team2023-09-131-0/+1
| | | | | PiperOrigin-RevId: 565050503 Change-Id: I8f4c463be4ef513a2788745d1b454a7ede489152
* Remove CordRepRing experiment.Martijn Vels2023-09-081-3/+0
| | | | | | | 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_memcpyAbseil Team2023-09-071-1/+1
| | | | | | | | | | | | | | | | | | | 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 intrinsicsAbseil Team2023-09-051-1/+1
| | | | | | | | 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_memcpyAbseil Team2023-09-051-1/+1
| | | | | | | | | | | | 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.hDerek Mauro2023-08-311-1/+0
| | | | | | | Public functions are now available in //absl/base/prefetch.h PiperOrigin-RevId: 561649346 Change-Id: Ic377ad5f21c9a44ea1f213dec17f5cf97795ebde
* Remove the legacy thread annotation spellingsDerek Mauro2023-08-281-1/+0
| | | | | | | | | | | | | | | | 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.Derek Mauro2023-08-231-5/+0
| | | | | | | This project was never completed. PiperOrigin-RevId: 559492534 Change-Id: Ie4e9661e25731418979ad10669ac946e1c4d60c2
* Add absl::CharSet.Abseil Team2023-08-231-1/+1
| | | | | PiperOrigin-RevId: 559415517 Change-Id: I5bbc744bf00be2fd15ec7544b725d699e0d982fb
* An FNMatch helper for upcoming functionality.Andy Getzendanner2023-08-141-0/+2
| | | | | PiperOrigin-RevId: 556898736 Change-Id: Ic310bab090d6a92036034058520ed6641be86fbc
* PR #1498: Fix order of link options in pkg-config filesStan Hu2023-07-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | 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.Abseil Team2023-06-201-0/+2
| | | | | PiperOrigin-RevId: 541915097 Change-Id: I7ebfbafc36db38b59b30ab5b312cd7e22082a805
* Merge pull request #1466 from traversaro:patch-2Copybara-Service2023-06-071-0/+2
|\ | | | | | | | | PiperOrigin-RevId: 538534137 Change-Id: Ifb2e59c36ffce183d3c93081d9300201757f82d4
| * CMake: Add absl::abseil_dll ALIAS target for abseil_dllSilvio Traversaro2023-06-041-0/+2
|/
* fix some missing ABSL_INTERNAL_DLL_TARGETS for shared buildsH. Vetinari2023-05-131-0/+10
|
* Fixed Windows DLL builds of test targetsDerek Mauro2023-05-121-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | 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 ↵Evan Brown2023-04-281-0/+1
| | | | | | | | | implementation. These functions are meant to allow for avoiding complex SFINAE pre-C++17. PiperOrigin-RevId: 527968428 Change-Id: I6524206c9dc50663d7c38abf6d0e8080ca93fc30
* Add an implementation of Waiter that uses std::mutex/std::condition_variableDerek Mauro2023-03-211-0/+2
| | | | | | | | | | | | | | | 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 testsDerek Mauro2023-03-201-1/+10
| | | | | | | | | | | | | 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
* cleanup: remove pre-CMake 3.8 workaroundsAbseil Team2023-02-231-20/+1
| | | | | | | Since Abseil requires CMake >= 3.10, we can remove some workarounds. PiperOrigin-RevId: 511856584 Change-Id: I0385fa87b51147b69df7e2dd18b317cf6cde83c2
* fix(CMake): correct target variable for DLLsAbseil Team2023-02-171-3/+3
| | | | | | | | | | The `_dll` variable contains the target name. The code was trying to use `_NAME` when handling ABSL_PROPAGATE_CXX_STD. Probably a cut&paste error from the other places where we handle that option. PiperOrigin-RevId: 510551097 Change-Id: I006435978333dd7a72a300503389a7bf48fb6d0d
* Rewrite KernelTimeout to support both absolute and relative timeoutsDerek Mauro2023-02-091-0/+1
| | | | | | | | | | | | | | APIs that take KernelTimeout as a parameter can now query if an absolute or relative timeout was requested. If the underlying API can only use one type of timeout, the code will do a reasonable conversion. The goal is to eventually enable the possibility of using wait times that are based on monotonic clocks that are safe against system clock steps. PiperOrigin-RevId: 508541507 Change-Id: Id08bf13515f3e1bfd78d88393cde98a6fd3ef72c
* Introduce Abseil Prefetch APIMartijn Vels2023-01-261-0/+1
| | | | | PiperOrigin-RevId: 504941246 Change-Id: I94c1e85afd254e84948477b511d41eeb8285fdae
* Separate DLL export/import for test helpers dll, and fix typo.Mike Kruskal2023-01-251-8/+12
| | | | | | | The DLL export issue isn't a problem currently, since we don't explicitly export any symbols from the test dll. This will be an issue in the future though. Additionally, there was a typo in absl_internal_test_dll_contains that caused abseil_test_dll to be empty (and therefore not create a lib file). PiperOrigin-RevId: 504555797 Change-Id: Ic7b50bcbe704f7c8fd44028071abcf5d6babb2cf
* Fix typo in previous AbseilDLL changes, and enable testing.Mike Kruskal2023-01-241-1/+1
| | | | | | | This broke builds of abseil_test_dll, since CMake can't find the file we incorrectly specified. PiperOrigin-RevId: 504372451 Change-Id: I6cd5a44f12bb2f473fae2ac920e047e782ae9524