1# 2# Copyright 2019 The Abseil Authors. 3# 4# Licensed under the Apache License, Version 2.0 (the "License"); 5# you may not use this file except in compliance with the License. 6# You may obtain a copy of the License at 7# 8# https://www.apache.org/licenses/LICENSE-2.0 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an "AS IS" BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15# 16 17# Internal-only target, do not depend on directly. 18absl_cc_library( 19 NAME 20 flags_path_util 21 HDRS 22 "internal/path_util.h" 23 COPTS 24 ${ABSL_DEFAULT_COPTS} 25 LINKOPTS 26 ${ABSL_DEFAULT_LINKOPTS} 27 DEPS 28 absl::config 29 absl::strings 30 PUBLIC 31) 32 33# Internal-only target, do not depend on directly. 34absl_cc_library( 35 NAME 36 flags_program_name 37 SRCS 38 "internal/program_name.cc" 39 HDRS 40 "internal/program_name.h" 41 COPTS 42 ${ABSL_DEFAULT_COPTS} 43 LINKOPTS 44 ${ABSL_DEFAULT_LINKOPTS} 45 DEPS 46 absl::config 47 absl::core_headers 48 absl::flags_path_util 49 absl::strings 50 absl::synchronization 51 PUBLIC 52) 53 54absl_cc_library( 55 NAME 56 flags_config 57 SRCS 58 "usage_config.cc" 59 HDRS 60 "config.h" 61 "usage_config.h" 62 COPTS 63 ${ABSL_DEFAULT_COPTS} 64 LINKOPTS 65 ${ABSL_DEFAULT_LINKOPTS} 66 DEPS 67 absl::config 68 absl::flags_path_util 69 absl::flags_program_name 70 absl::core_headers 71 absl::strings 72 absl::synchronization 73) 74 75absl_cc_library( 76 NAME 77 flags_marshalling 78 SRCS 79 "marshalling.cc" 80 HDRS 81 "marshalling.h" 82 COPTS 83 ${ABSL_DEFAULT_COPTS} 84 LINKOPTS 85 ${ABSL_DEFAULT_LINKOPTS} 86 DEPS 87 absl::config 88 absl::core_headers 89 absl::log_severity 90 absl::int128 91 absl::optional 92 absl::strings 93 absl::str_format 94) 95 96# Internal-only target, do not depend on directly. 97absl_cc_library( 98 NAME 99 flags_commandlineflag_internal 100 SRCS 101 "internal/commandlineflag.cc" 102 HDRS 103 "internal/commandlineflag.h" 104 COPTS 105 ${ABSL_DEFAULT_COPTS} 106 LINKOPTS 107 ${ABSL_DEFAULT_LINKOPTS} 108 DEPS 109 absl::config 110 absl::dynamic_annotations 111 absl::fast_type_id 112) 113 114absl_cc_library( 115 NAME 116 flags_commandlineflag 117 SRCS 118 "commandlineflag.cc" 119 HDRS 120 "commandlineflag.h" 121 COPTS 122 ${ABSL_DEFAULT_COPTS} 123 LINKOPTS 124 ${ABSL_DEFAULT_LINKOPTS} 125 DEPS 126 absl::config 127 absl::fast_type_id 128 absl::flags_commandlineflag_internal 129 absl::optional 130 absl::strings 131) 132 133# Internal-only target, do not depend on directly. 134absl_cc_library( 135 NAME 136 flags_private_handle_accessor 137 SRCS 138 "internal/private_handle_accessor.cc" 139 HDRS 140 "internal/private_handle_accessor.h" 141 COPTS 142 ${ABSL_DEFAULT_COPTS} 143 LINKOPTS 144 ${ABSL_DEFAULT_LINKOPTS} 145 DEPS 146 absl::config 147 absl::flags_commandlineflag 148 absl::flags_commandlineflag_internal 149 absl::strings 150) 151 152absl_cc_library( 153 NAME 154 flags_reflection 155 SRCS 156 "reflection.cc" 157 HDRS 158 "reflection.h" 159 "internal/registry.h" 160 COPTS 161 ${ABSL_DEFAULT_COPTS} 162 LINKOPTS 163 ${ABSL_DEFAULT_LINKOPTS} 164 DEPS 165 absl::config 166 absl::flags_commandlineflag 167 absl::flags_private_handle_accessor 168 absl::flags_config 169 absl::strings 170 absl::synchronization 171 absl::flat_hash_map 172) 173 174# Internal-only target, do not depend on directly. 175absl_cc_library( 176 NAME 177 flags_internal 178 SRCS 179 "internal/flag.cc" 180 HDRS 181 "internal/flag.h" 182 "internal/sequence_lock.h" 183 COPTS 184 ${ABSL_DEFAULT_COPTS} 185 LINKOPTS 186 ${ABSL_DEFAULT_LINKOPTS} 187 DEPS 188 absl::base 189 absl::config 190 absl::flags_commandlineflag 191 absl::flags_commandlineflag_internal 192 absl::flags_config 193 absl::flags_marshalling 194 absl::synchronization 195 absl::meta 196 absl::utility 197 PUBLIC 198) 199 200absl_cc_library( 201 NAME 202 flags 203 SRCS 204 "flag.cc" 205 HDRS 206 "declare.h" 207 "flag.h" 208 "internal/flag_msvc.inc" 209 COPTS 210 ${ABSL_DEFAULT_COPTS} 211 LINKOPTS 212 ${ABSL_DEFAULT_LINKOPTS} 213 DEPS 214 absl::config 215 absl::flags_commandlineflag 216 absl::flags_config 217 absl::flags_internal 218 absl::flags_reflection 219 absl::base 220 absl::core_headers 221 absl::strings 222) 223 224# Internal-only target, do not depend on directly. 225absl_cc_library( 226 NAME 227 flags_usage_internal 228 SRCS 229 "internal/usage.cc" 230 HDRS 231 "internal/usage.h" 232 COPTS 233 ${ABSL_DEFAULT_COPTS} 234 LINKOPTS 235 ${ABSL_DEFAULT_LINKOPTS} 236 DEPS 237 absl::config 238 absl::flags_config 239 absl::flags 240 absl::flags_commandlineflag 241 absl::flags_internal 242 absl::flags_path_util 243 absl::flags_private_handle_accessor 244 absl::flags_program_name 245 absl::flags_reflection 246 absl::flat_hash_map 247 absl::strings 248 absl::synchronization 249) 250 251absl_cc_library( 252 NAME 253 flags_usage 254 SRCS 255 "usage.cc" 256 HDRS 257 "usage.h" 258 COPTS 259 ${ABSL_DEFAULT_COPTS} 260 LINKOPTS 261 ${ABSL_DEFAULT_LINKOPTS} 262 DEPS 263 absl::config 264 absl::core_headers 265 absl::flags_usage_internal 266 absl::raw_logging_internal 267 absl::strings 268 absl::synchronization 269) 270 271absl_cc_library( 272 NAME 273 flags_parse 274 SRCS 275 "parse.cc" 276 HDRS 277 "internal/parse.h" 278 "parse.h" 279 COPTS 280 ${ABSL_DEFAULT_COPTS} 281 LINKOPTS 282 ${ABSL_DEFAULT_LINKOPTS} 283 DEPS 284 absl::algorithm_container 285 absl::config 286 absl::core_headers 287 absl::flags_config 288 absl::flags 289 absl::flags_commandlineflag 290 absl::flags_commandlineflag_internal 291 absl::flags_internal 292 absl::flags_private_handle_accessor 293 absl::flags_program_name 294 absl::flags_reflection 295 absl::flags_usage 296 absl::strings 297 absl::synchronization 298) 299 300############################################################################ 301# Unit tests in alphabetical order. 302 303absl_cc_test( 304 NAME 305 flags_commandlineflag_test 306 SRCS 307 "commandlineflag_test.cc" 308 COPTS 309 ${ABSL_TEST_COPTS} 310 DEPS 311 absl::flags 312 absl::flags_commandlineflag 313 absl::flags_commandlineflag_internal 314 absl::flags_config 315 absl::flags_private_handle_accessor 316 absl::flags_reflection 317 absl::memory 318 absl::strings 319 GTest::gtest_main 320) 321 322absl_cc_test( 323 NAME 324 flags_config_test 325 SRCS 326 "config_test.cc" 327 COPTS 328 ${ABSL_TEST_COPTS} 329 DEPS 330 absl::flags_config 331 GTest::gtest_main 332) 333 334absl_cc_test( 335 NAME 336 flags_flag_test 337 SRCS 338 "flag_test.cc" 339 "flag_test_defs.cc" 340 COPTS 341 ${ABSL_TEST_COPTS} 342 DEPS 343 absl::core_headers 344 absl::flags 345 absl::flags_config 346 absl::flags_internal 347 absl::flags_marshalling 348 absl::flags_reflection 349 absl::int128 350 absl::strings 351 absl::time 352 GTest::gtest_main 353) 354 355absl_cc_test( 356 NAME 357 flags_marshalling_test 358 SRCS 359 "marshalling_test.cc" 360 COPTS 361 ${ABSL_TEST_COPTS} 362 DEPS 363 absl::flags_marshalling 364 GTest::gtest_main 365) 366 367absl_cc_test( 368 NAME 369 flags_parse_test 370 SRCS 371 "parse_test.cc" 372 COPTS 373 ${ABSL_TEST_COPTS} 374 DEPS 375 absl::flags 376 absl::flags_parse 377 absl::flags_reflection 378 absl::flags_usage_internal 379 absl::log 380 absl::scoped_set_env 381 absl::span 382 absl::strings 383 GTest::gmock_main 384) 385 386absl_cc_test( 387 NAME 388 flags_path_util_test 389 SRCS 390 "internal/path_util_test.cc" 391 COPTS 392 ${ABSL_TEST_COPTS} 393 DEPS 394 absl::flags_path_util 395 GTest::gtest_main 396) 397 398absl_cc_test( 399 NAME 400 flags_program_name_test 401 SRCS 402 "internal/program_name_test.cc" 403 COPTS 404 ${ABSL_TEST_COPTS} 405 DEPS 406 absl::flags_program_name 407 absl::strings 408 GTest::gtest_main 409) 410 411absl_cc_test( 412 NAME 413 flags_reflection_test 414 SRCS 415 "reflection_test.cc" 416 COPTS 417 ${ABSL_TEST_COPTS} 418 DEPS 419 absl::flags_commandlineflag_internal 420 absl::flags 421 absl::flags_reflection 422 absl::flags_usage 423 absl::memory 424 absl::strings 425 GTest::gmock_main 426) 427 428absl_cc_test( 429 NAME 430 flags_sequence_lock_test 431 SRCS 432 "internal/sequence_lock_test.cc" 433 COPTS 434 ${ABSL_TEST_COPTS} 435 DEPS 436 absl::base 437 absl::flags_internal 438 absl::time 439 GTest::gmock_main 440) 441 442absl_cc_test( 443 NAME 444 flags_usage_config_test 445 SRCS 446 "usage_config_test.cc" 447 COPTS 448 ${ABSL_TEST_COPTS} 449 DEPS 450 absl::flags_config 451 absl::flags_path_util 452 absl::flags_program_name 453 absl::strings 454 GTest::gtest_main 455) 456 457absl_cc_test( 458 NAME 459 flags_usage_test 460 SRCS 461 "internal/usage_test.cc" 462 COPTS 463 ${ABSL_TEST_COPTS} 464 DEPS 465 absl::flags_config 466 absl::flags 467 absl::flags_path_util 468 absl::flags_program_name 469 absl::flags_parse 470 absl::flags_reflection 471 absl::flags_usage 472 absl::strings 473 GTest::gmock 474) 475