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