| # |
| # Copyright 2017 The Abseil Authors. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| |
| list(APPEND TYPES_PUBLIC_HEADERS |
| "any.h" |
| "bad_any_cast.h" |
| "bad_optional_access.h" |
| "optional.h" |
| "span.h" |
| "variant.h" |
| ) |
| |
| |
| # any library |
| absl_header_library( |
| TARGET |
| absl_any |
| PUBLIC_LIBRARIES |
| absl::bad_any_cast |
| absl::base |
| absl::meta |
| 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 |
| EXPORT_NAME |
| bad_any_cast |
| ) |
| |
| |
| # optional library |
| list(APPEND OPTIONAL_SRC |
| "optional.cc" |
| ) |
| |
| absl_library( |
| TARGET |
| absl_optional |
| SOURCES |
| ${OPTIONAL_SRC} |
| PUBLIC_LIBRARIES |
| absl::bad_optional_access |
| absl::base |
| absl::memory |
| absl::meta |
| absl::utility |
| EXPORT_NAME |
| optional |
| ) |
| |
| |
| set(BAD_OPTIONAL_ACCESS_SRC "bad_optional_access.cc") |
| set(BAD_OPTIONAL_ACCESS_LIBRARIES absl::base) |
| |
| absl_library( |
| TARGET |
| absl_bad_optional_access |
| SOURCES |
| ${BAD_OPTIONAL_ACCESS_SRC} |
| PUBLIC_LIBRARIES |
| ${BAD_OPTIONAL_ACCESS_PUBLIC_LIBRARIES} |
| EXPORT_NAME |
| bad_optional_access |
| ) |
| |
| # variant library |
| absl_library( |
| TARGET |
| absl_variant |
| SOURCES |
| "bad_variant_access.h" "bad_variant_access.cc" "variant.h" "internal/variant.h" |
| PUBLIC_LIBRARIES |
| absl::base absl::meta absl::utility |
| PRIVATE_COMPILE_FLAGS |
| ${ABSL_EXCEPTIONS_FLAG} |
| EXPORT_NAME |
| variant |
| ) |
| |
| # |
| ## 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) |
| |
| absl_test( |
| TARGET |
| optional_test |
| SOURCES |
| ${OPTIONAL_TEST_SRC} |
| PUBLIC_LIBRARIES |
| ${OPTIONAL_TEST_PUBLIC_LIBRARIES} |
| ) |
| |
| |
| # test optional_exception_safety_test |
| set(OPTIONAL_EXCEPTION_SAFETY_TEST_SRC "optional_exception_safety_test.cc") |
| set(OPTIONAL_EXCEPTION_SAFETY_TEST_PUBLIC_LIBRARIES |
| absl::optional |
| absl_base_internal_exception_safety_testing |
| ) |
| |
| absl_test( |
| TARGET |
| optional_exception_safety_test |
| SOURCES |
| ${OPTIONAL_EXCEPTION_SAFETY_TEST_SRC} |
| PUBLIC_LIBRARIES |
| ${OPTIONAL_EXCEPTION_SAFETY_TEST_PUBLIC_LIBRARIES} |
| PRIVATE_COMPILE_FLAGS |
| ${ABSL_EXCEPTIONS_FLAG} |
| ) |