about summary refs log blame commit diff
path: root/absl/types/CMakeLists.txt
blob: 95b19fec3a39b008f08e3ab9208e772e1d887933 (plain) (tree)
























































































































































                                                                                                                        
#
# 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"
)



list(APPEND BAD_ANY_CAST_SRC
  "bad_any_cast.cc"
  ${TYPES_PUBLIC_HEADERS}
)
set(BAD_ANY_CAST_PUBLIC_LIBRARIES absl::base)

absl_library(
  TARGET
    absl_bad_any_cast
  SOURCES
    ${BAD_ANY_CAST_SRC}
  PUBLIC_LIBRARIES
    ${BAD_ANY_CAST_PUBLIC_LIBRARIES}
)



set(OPTIONAL_SRC "optional.cc")
set(OPTIONAL_PUBLIC_LIBRARIES absl::base)

absl_library(
  TARGET
    absl_optional
  SOURCES
    ${OPTIONAL_SRC}
  PUBLIC_LIBRARIES
    ${OPTIONAL_PUBLIC_LIBRARIES}
)


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}
)



absl_header_library(
  TARGET
    absl_types
  PUBLIC_LIBRARIES
    absl_optional absl_bad_any_cast absl_bad_optional_access
  EXPORT_NAME
    types
)

#
## TESTS
#


# test any_test
set(ANY_TEST_SRC "any_test.cc")
set(ANY_TEST_PUBLIC_LIBRARIES absl::base absl_throw_delegate 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 span_test
set(SPAN_TEST_SRC "span_test.cc")
set(SPAN_TEST_PUBLIC_LIBRARIES absl::base absl::strings absl_throw_delegate absl_bad_any_cast 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 bad_optional_access)

absl_test(
  TARGET
    optional_test
  SOURCES
    ${OPTIONAL_TEST_SRC}
  PUBLIC_LIBRARIES
    ${OPTIONAL_TEST_PUBLIC_LIBRARIES}
)