aboutsummaryrefslogtreecommitdiffhomepage
path: root/absl/types/CMakeLists.txt
blob: 95b19fec3a39b008f08e3ab9208e772e1d887933 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#
# 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}
)