From 37ad4f6991aa599ecbce433262a0f3dfceb7738a Mon Sep 17 00:00:00 2001 From: Marek Gilbert Date: Sun, 15 Apr 2018 16:50:15 -0700 Subject: Make abseil-cpp buildable on master --- .../third_party/abseil-cpp/absl/CMakeLists.txt | 2 + .../abseil-cpp/absl/strings/escaping_test.cc | 1 - .../abseil-cpp/absl/types/CMakeLists.txt | 117 -------------- .../abseil-cpp/absl/utility/CMakeLists.txt | 12 -- .../third_party/abseil-cpp/absl/utility/utility.h | 168 --------------------- 5 files changed, 2 insertions(+), 298 deletions(-) (limited to 'Firestore/third_party') diff --git a/Firestore/third_party/abseil-cpp/absl/CMakeLists.txt b/Firestore/third_party/abseil-cpp/absl/CMakeLists.txt index e7b5139..ff03f3c 100644 --- a/Firestore/third_party/abseil-cpp/absl/CMakeLists.txt +++ b/Firestore/third_party/abseil-cpp/absl/CMakeLists.txt @@ -21,3 +21,5 @@ add_subdirectory(memory) add_subdirectory(meta) add_subdirectory(numeric) add_subdirectory(strings) +add_subdirectory(types) +add_subdirectory(utility) diff --git a/Firestore/third_party/abseil-cpp/absl/strings/escaping_test.cc b/Firestore/third_party/abseil-cpp/absl/strings/escaping_test.cc index 982989b..e87f101 100644 --- a/Firestore/third_party/abseil-cpp/absl/strings/escaping_test.cc +++ b/Firestore/third_party/abseil-cpp/absl/strings/escaping_test.cc @@ -22,7 +22,6 @@ #include "gmock/gmock.h" #include "gtest/gtest.h" -#include "absl/container/fixed_array.h" #include "absl/strings/str_cat.h" #include "absl/strings/internal/escaping_test_common.inc" diff --git a/Firestore/third_party/abseil-cpp/absl/types/CMakeLists.txt b/Firestore/third_party/abseil-cpp/absl/types/CMakeLists.txt index fd71f38..2763cfe 100644 --- a/Firestore/third_party/abseil-cpp/absl/types/CMakeLists.txt +++ b/Firestore/third_party/abseil-cpp/absl/types/CMakeLists.txt @@ -15,55 +15,10 @@ # list(APPEND TYPES_PUBLIC_HEADERS - "any.h" - "bad_any_cast.h" "bad_optional_access.h" "optional.h" - "span.h" ) - -# any library -absl_header_library( - TARGET - absl_any - PUBLIC_LIBRARIES - absl::utility - PRIVATE_COMPILE_FLAGS - ${ABSL_EXCEPTIONS_FLAG} - EXPORT_NAME - any -) - -# span library -absl_header_library( - TARGET - absl_span - PUBLIC_LIBRARIES - absl::utility - EXPORT_NAME - span -) - - -# bad_any_cast library -list(APPEND BAD_ANY_CAST_SRC - "bad_any_cast.cc" - ${TYPES_PUBLIC_HEADERS} -) - -absl_library( - TARGET - absl_bad_any_cast - SOURCES - ${BAD_ANY_CAST_SRC} - PUBLIC_LIBRARIES - absl::base absl::any - EXPORT_NAME - bad_any_cast -) - - # optional library list(APPEND OPTIONAL_SRC "optional.cc" @@ -96,82 +51,10 @@ absl_library( ) - # ## TESTS # - -# test any_test -set(ANY_TEST_SRC "any_test.cc") -set(ANY_TEST_PUBLIC_LIBRARIES absl::base absl::throw_delegate absl::any absl::bad_any_cast test_instance_tracker_lib) - -absl_test( - TARGET - any_test - SOURCES - ${ANY_TEST_SRC} - PUBLIC_LIBRARIES - ${ANY_TEST_PUBLIC_LIBRARIES} - PRIVATE_COMPILE_FLAGS - ${ABSL_EXCEPTIONS_FLAG} -) - - -# test any_test_noexceptions -absl_test( - TARGET - any_test_noexceptions - SOURCES - ${ANY_TEST_SRC} - PUBLIC_LIBRARIES - ${ANY_TEST_PUBLIC_LIBRARIES} -) - -# test any_exception_safety_test -set(ANY_EXCEPTION_SAFETY_TEST_SRC "any_exception_safety_test.cc") -set(ANY_EXCEPTION_SAFETY_TEST_PUBLIC_LIBRARIES absl::any absl::base absl::base_internal_exception_safety_testing) - -absl_test( - TARGET - any_exception_safety_test - SOURCES - ${ANY_EXCEPTION_SAFETY_TEST_SRC} - PUBLIC_LIBRARIES - ${ANY_EXCEPTION_SAFETY_TEST_PUBLIC_LIBRARIES} - PRIVATE_COMPILE_FLAGS - ${ABSL_EXCEPTIONS_FLAG} -) - - -# test span_test -set(SPAN_TEST_SRC "span_test.cc") -set(SPAN_TEST_PUBLIC_LIBRARIES absl::base absl::strings absl::throw_delegate absl::span test_instance_tracker_lib) - -absl_test( - TARGET - span_test - SOURCES - ${SPAN_TEST_SRC} - PUBLIC_LIBRARIES - ${SPAN_TEST_PUBLIC_LIBRARIES} - PRIVATE_COMPILE_FLAGS - ${ABSL_EXCEPTIONS_FLAG} -) - - -# test span_test_noexceptions -absl_test( - TARGET - span_test_noexceptions - SOURCES - ${SPAN_TEST_SRC} - PUBLIC_LIBRARIES - ${SPAN_TEST_PUBLIC_LIBRARIES} -) - - - # test optional_test set(OPTIONAL_TEST_SRC "optional_test.cc") set(OPTIONAL_TEST_PUBLIC_LIBRARIES absl::base absl::throw_delegate absl::optional absl_bad_optional_access) diff --git a/Firestore/third_party/abseil-cpp/absl/utility/CMakeLists.txt b/Firestore/third_party/abseil-cpp/absl/utility/CMakeLists.txt index df21b85..76e67d1 100644 --- a/Firestore/third_party/abseil-cpp/absl/utility/CMakeLists.txt +++ b/Firestore/third_party/abseil-cpp/absl/utility/CMakeLists.txt @@ -31,15 +31,3 @@ absl_header_library( ## TESTS # -# test utility_test -set(UTILITY_TEST_SRC "utility_test.cc") -set(UTILITY_TEST_PUBLIC_LIBRARIES absl::utility) - -absl_test( - TARGET - utility_test - SOURCES - ${UTILITY_TEST_SRC} - PUBLIC_LIBRARIES - ${UTILITY_TEST_PUBLIC_LIBRARIES} -) diff --git a/Firestore/third_party/abseil-cpp/absl/utility/utility.h b/Firestore/third_party/abseil-cpp/absl/utility/utility.h index 1943c4a..595be19 100644 --- a/Firestore/third_party/abseil-cpp/absl/utility/utility.h +++ b/Firestore/third_party/abseil-cpp/absl/utility/utility.h @@ -46,101 +46,10 @@ #include "absl/base/config.h" #include "absl/base/internal/inline_variable.h" -#include "absl/base/internal/invoke.h" #include "absl/meta/type_traits.h" namespace absl { -// integer_sequence -// -// Class template representing a compile-time integer sequence. An instantiation -// of `integer_sequence` has a sequence of integers encoded in its -// type through its template arguments (which is a common need when -// working with C++11 variadic templates). `absl::integer_sequence` is designed -// to be a drop-in replacement for C++14's `std::integer_sequence`. -// -// Example: -// -// template< class T, T... Ints > -// void user_function(integer_sequence); -// -// int main() -// { -// // user_function's `T` will be deduced to `int` and `Ints...` -// // will be deduced to `0, 1, 2, 3, 4`. -// user_function(make_integer_sequence()); -// } -template -struct integer_sequence { - using value_type = T; - static constexpr size_t size() noexcept { return sizeof...(Ints); } -}; - -// index_sequence -// -// A helper template for an `integer_sequence` of `size_t`, -// `absl::index_sequence` is designed to be a drop-in replacement for C++14's -// `std::index_sequence`. -template -using index_sequence = integer_sequence; - -namespace utility_internal { - -template -struct Extend; - -// Note that SeqSize == sizeof...(Ints). It's passed explicitly for efficiency. -template -struct Extend, SeqSize, 0> { - using type = integer_sequence; -}; - -template -struct Extend, SeqSize, 1> { - using type = integer_sequence; -}; - -// Recursion helper for 'make_integer_sequence'. -// 'Gen::type' is an alias for 'integer_sequence'. -template -struct Gen { - using type = - typename Extend::type, N / 2, N % 2>::type; -}; - -template -struct Gen { - using type = integer_sequence; -}; - -} // namespace utility_internal - -// Compile-time sequences of integers - -// make_integer_sequence -// -// This template alias is equivalent to -// `integer_sequence`, and is designed to be a drop-in -// replacement for C++14's `std::make_integer_sequence`. -template -using make_integer_sequence = typename utility_internal::Gen::type; - -// make_index_sequence -// -// This template alias is equivalent to `index_sequence<0, 1, ..., N-1>`, -// and is designed to be a drop-in replacement for C++14's -// `std::make_index_sequence`. -template -using make_index_sequence = make_integer_sequence; - -// index_sequence_for -// -// Converts a typename pack into an index sequence of the same length, and -// is designed to be a drop-in replacement for C++14's -// `std::index_sequence_for()` -template -using index_sequence_for = make_index_sequence; - // Tag types #ifdef ABSL_HAVE_STD_OPTIONAL @@ -161,27 +70,6 @@ ABSL_INTERNAL_INLINE_CONSTEXPR(in_place_t, in_place, {}); #endif // ABSL_HAVE_STD_OPTIONAL -#ifdef ABSL_HAVE_STD_ANY -using std::in_place_type_t; -#else - -// in_place_type_t -// -// Tag type used for in-place construction when the type to construct needs to -// be specified, such as with `absl::any`, designed to be a drop-in replacement -// for C++17's `std::in_place_type_t`. -template -struct in_place_type_t {}; -#endif // ABSL_HAVE_STD_ANY - -// in_place_index_t -// -// Tag type used for in-place construction when the type to construct needs to -// be specified, such as with `absl::any`, designed to be a drop-in replacement -// for C++17's `std::in_place_index_t`. -template -struct in_place_index_t {}; - // Constexpr move and forward // move() @@ -203,62 +91,6 @@ constexpr T&& forward( return static_cast(t); } -namespace utility_internal { -// Helper method for expanding tuple into a called method. -template -auto apply_helper(Functor&& functor, Tuple&& t, index_sequence) - -> decltype(absl::base_internal::Invoke( - absl::forward(functor), - std::get(absl::forward(t))...)) { - return absl::base_internal::Invoke( - absl::forward(functor), - std::get(absl::forward(t))...); -} - -} // namespace utility_internal - -// apply -// -// Invokes a Callable using elements of a tuple as its arguments. -// Each element of the tuple corresponds to an argument of the call (in order). -// Both the Callable argument and the tuple argument are perfect-forwarded. -// For member-function Callables, the first tuple element acts as the `this` -// pointer. `absl::apply` is designed to be a drop-in replacement for C++17's -// `std::apply`. Unlike C++17's `std::apply`, this is not currently `constexpr`. -// -// Example: -// -// class Foo{void Bar(int);}; -// void user_function(int, std::string); -// void user_function(std::unique_ptr); -// -// int main() -// { -// std::tuple tuple1(42, "bar"); -// // Invokes the user function overload on int, std::string. -// absl::apply(&user_function, tuple1); -// -// auto foo = absl::make_unique(); -// std::tuple tuple2(foo.get(), 42); -// // Invokes the method Bar on foo with one argument 42. -// absl::apply(&Foo::Bar, foo.get(), 42); -// -// std::tuple> tuple3(absl::make_unique()); -// // Invokes the user function that takes ownership of the unique -// // pointer. -// absl::apply(&user_function, std::move(tuple)); -// } -template -auto apply(Functor&& functor, Tuple&& t) - -> decltype(utility_internal::apply_helper( - absl::forward(functor), absl::forward(t), - absl::make_index_sequence::type>::value>{})) { - return utility_internal::apply_helper( - absl::forward(functor), absl::forward(t), - absl::make_index_sequence::type>::value>{}); -} } // namespace absl #endif // ABSL_UTILITY_UTILITY_H_ -- cgit v1.2.3