A bazel build and regression harness for s2geometry#361
A bazel build and regression harness for s2geometry#361jmr merged 26 commits intogoogle:masterfrom spendres:bazel7
Conversation
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
src/README.md
Outdated
| @@ -0,0 +1,42 @@ | |||
|
|
|||
| # S2 Geometry Library | |||
There was a problem hiding this comment.
This seems like a shortened version of https://github.com/google/s2geometry/blob/master/README.md
better to combine with that
|
...logging.h was removed in most recent commit/push. |
|
I tested build times for a hierarchical library definition as compared to a single flat library definition for s2. The flat definition builds twice as fast (12 sec vs 25 sec) about 25% of the time – using a mac M1. This is counter to expectations, so I reverted to the flat definition. |
|
Thanks for the requested changes by mmorel-35 … made and pushed. |
* Replace S2Testing::Random, which was based on random(3), with new s2random:: namespace, based on abseil-cpp's random library. This removes the use of global state. * Use int64_t instead of int64, etc. * constexpr fixes * Reworked S2ClosestEdgeQuery
* Replace S2Testing::Random, which was based on random(3), with new s2random:: namespace, based on abseil-cpp's random library. This removes the use of global state. * Use int64_t instead of int64, etc. * constexpr fixes * Reworked S2ClosestEdgeQuery * Remove some old SWIG workarounds. Merge branch 'google3-update-2024-06-21' into update-2024-06-21
This SWIG macro controls whether `int64_t` is `long long` or `long`. Previously, this was defined for all 64-bit platforms. MacOS and Windows use `long long` for `int64_t`, while Linux and most other Unices use `long`. This has only been tested with Linux, but conditional definitions like this are what I'm finding in web searches.
* Replace S2Testing::Random, which was based on random(3), with new s2random:: namespace, based on abseil-cpp's random library. This removes the use of global state. * Use int64_t instead of int64, etc. * constexpr fixes * Reworked S2ClosestEdgeQuery * Remove some old SWIG workarounds.
PR #367 forgot to adjust a few types which are under the IS_BIG_ENDIAN define.
The code is structured like this:
```
class S2Polyline {
class OwningShape {
std::unique_ptr<S2Polyline> owned_polyline_;
};
};
```
libcxx 16 complains that S2Polyline is not defined at the point where
the dtor of the unique_ptr is called (which is OwningShape's implicitly
declared default destructor in the same header file) (also see [0]).
As a remedy, declare OwningShape's destructor in the source file where
the full declaration of S2Polyline is visible.
[0] https://stackoverflow.com/a/34073093/22422288
… upstream repo, updated absl version
|
Thank you! |
See issue #53.
This version relies on the bazel central repository for abseil-cpp, googletest, and boringssl and points to HEAD of s2geometry.