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 absl::no_destructor 173) 174 175# Internal-only target, do not depend on directly. 176absl_cc_library( 177 NAME 178 flags_internal 179 SRCS 180 "internal/flag.cc" 181 HDRS 182 "internal/flag.h" 183 "internal/sequence_lock.h" 184 COPTS 185 ${ABSL_DEFAULT_COPTS} 186 LINKOPTS 187 ${ABSL_DEFAULT_LINKOPTS} 188 DEPS 189 absl::base 190 absl::config 191 absl::flags_commandlineflag 192 absl::flags_commandlineflag_internal 193 absl::flags_config 194 absl::flags_marshalling 195 absl::synchronization 196 absl::meta 197 absl::utility 198 PUBLIC 199) 200 201absl_cc_library( 202 NAME 203 flags 204 HDRS 205 "declare.h" 206 "flag.h" 207 COPTS 208 ${ABSL_DEFAULT_COPTS} 209 LINKOPTS 210 ${ABSL_DEFAULT_LINKOPTS} 211 DEPS 212 absl::config 213 absl::flags_commandlineflag 214 absl::flags_config 215 absl::flags_internal 216 absl::flags_reflection 217 absl::core_headers 218 absl::strings 219) 220 221# Internal-only target, do not depend on directly. 222absl_cc_library( 223 NAME 224 flags_usage_internal 225 SRCS 226 "internal/usage.cc" 227 HDRS 228 "internal/usage.h" 229 COPTS 230 ${ABSL_DEFAULT_COPTS} 231 LINKOPTS 232 ${ABSL_DEFAULT_LINKOPTS} 233 DEPS 234 absl::config 235 absl::flags_config 236 absl::flags 237 absl::flags_commandlineflag 238 absl::flags_internal 239 absl::flags_path_util 240 absl::flags_private_handle_accessor 241 absl::flags_program_name 242 absl::flags_reflection 243 absl::strings 244 absl::synchronization 245) 246 247absl_cc_library( 248 NAME 249 flags_usage 250 SRCS 251 "usage.cc" 252 HDRS 253 "usage.h" 254 COPTS 255 ${ABSL_DEFAULT_COPTS} 256 LINKOPTS 257 ${ABSL_DEFAULT_LINKOPTS} 258 DEPS 259 absl::config 260 absl::core_headers 261 absl::flags_usage_internal 262 absl::raw_logging_internal 263 absl::strings 264 absl::synchronization 265) 266 267absl_cc_library( 268 NAME 269 flags_parse 270 SRCS 271 "parse.cc" 272 HDRS 273 "internal/parse.h" 274 "parse.h" 275 COPTS 276 ${ABSL_DEFAULT_COPTS} 277 LINKOPTS 278 ${ABSL_DEFAULT_LINKOPTS} 279 DEPS 280 absl::algorithm_container 281 absl::config 282 absl::core_headers 283 absl::flags_config 284 absl::flags 285 absl::flags_commandlineflag 286 absl::flags_commandlineflag_internal 287 absl::flags_internal 288 absl::flags_private_handle_accessor 289 absl::flags_program_name 290 absl::flags_reflection 291 absl::flags_usage 292 absl::strings 293 absl::synchronization 294) 295 296############################################################################ 297# Unit tests in alphabetical order. 298 299absl_cc_test( 300 NAME 301 flags_commandlineflag_test 302 SRCS 303 "commandlineflag_test.cc" 304 COPTS 305 ${ABSL_TEST_COPTS} 306 DEPS 307 absl::flags 308 absl::flags_commandlineflag 309 absl::flags_config 310 absl::flags_private_handle_accessor 311 absl::flags_reflection 312 absl::memory 313 absl::strings 314 GTest::gtest_main 315) 316 317absl_cc_test( 318 NAME 319 flags_config_test 320 SRCS 321 "config_test.cc" 322 COPTS 323 ${ABSL_TEST_COPTS} 324 DEPS 325 absl::flags_config 326 GTest::gtest_main 327) 328 329absl_cc_test( 330 NAME 331 flags_flag_test 332 SRCS 333 "flag_test.cc" 334 "flag_test_defs.cc" 335 COPTS 336 ${ABSL_TEST_COPTS} 337 DEPS 338 absl::core_headers 339 absl::flags 340 absl::flags_config 341 absl::flags_internal 342 absl::flags_marshalling 343 absl::flags_parse 344 absl::flags_reflection 345 absl::int128 346 absl::optional 347 absl::raw_logging_internal 348 absl::strings 349 absl::time 350 GTest::gtest_main 351) 352 353absl_cc_test( 354 NAME 355 flags_marshalling_test 356 SRCS 357 "marshalling_test.cc" 358 COPTS 359 ${ABSL_TEST_COPTS} 360 DEPS 361 absl::flags_marshalling 362 GTest::gtest_main 363) 364 365absl_cc_test( 366 NAME 367 flags_parse_test 368 SRCS 369 "parse_test.cc" 370 COPTS 371 ${ABSL_TEST_COPTS} 372 DEPS 373 absl::flags 374 absl::flags_config 375 absl::flags_parse 376 absl::flags_reflection 377 absl::flags_usage_internal 378 absl::log 379 absl::scoped_set_env 380 absl::span 381 absl::strings 382 GTest::gmock_main 383) 384 385absl_cc_test( 386 NAME 387 flags_path_util_test 388 SRCS 389 "internal/path_util_test.cc" 390 COPTS 391 ${ABSL_TEST_COPTS} 392 DEPS 393 absl::flags_path_util 394 GTest::gtest_main 395) 396 397absl_cc_test( 398 NAME 399 flags_program_name_test 400 SRCS 401 "internal/program_name_test.cc" 402 COPTS 403 ${ABSL_TEST_COPTS} 404 DEPS 405 absl::flags_program_name 406 absl::strings 407 GTest::gtest_main 408) 409 410absl_cc_test( 411 NAME 412 flags_reflection_test 413 SRCS 414 "reflection_test.cc" 415 COPTS 416 ${ABSL_TEST_COPTS} 417 DEPS 418 absl::flags 419 absl::flags_config 420 absl::flags_reflection 421 absl::flags_usage 422 absl::memory 423 absl::strings 424 GTest::gmock_main 425) 426 427absl_cc_test( 428 NAME 429 flags_sequence_lock_test 430 SRCS 431 "internal/sequence_lock_test.cc" 432 COPTS 433 ${ABSL_TEST_COPTS} 434 DEPS 435 absl::base 436 absl::flags_internal 437 absl::time 438 GTest::gmock_main 439) 440 441absl_cc_test( 442 NAME 443 flags_usage_config_test 444 SRCS 445 "usage_config_test.cc" 446 COPTS 447 ${ABSL_TEST_COPTS} 448 DEPS 449 absl::flags_config 450 absl::flags_path_util 451 absl::flags_program_name 452 absl::strings 453 GTest::gtest_main 454) 455 456absl_cc_test( 457 NAME 458 flags_usage_test 459 SRCS 460 "internal/usage_test.cc" 461 COPTS 462 ${ABSL_TEST_COPTS} 463 DEPS 464 absl::flags_config 465 absl::flags 466 absl::flags_path_util 467 absl::flags_program_name 468 absl::flags_parse 469 absl::flags_reflection 470 absl::flags_usage 471 absl::strings 472 GTest::gmock 473) 474