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::optional 91 absl::strings 92 absl::str_format 93) 94 95# Internal-only target, do not depend on directly. 96absl_cc_library( 97 NAME 98 flags_commandlineflag_internal 99 SRCS 100 "internal/commandlineflag.cc" 101 HDRS 102 "internal/commandlineflag.h" 103 COPTS 104 ${ABSL_DEFAULT_COPTS} 105 LINKOPTS 106 ${ABSL_DEFAULT_LINKOPTS} 107 DEPS 108 absl::config 109 absl::dynamic_annotations 110 absl::fast_type_id 111) 112 113absl_cc_library( 114 NAME 115 flags_commandlineflag 116 SRCS 117 "commandlineflag.cc" 118 HDRS 119 "commandlineflag.h" 120 COPTS 121 ${ABSL_DEFAULT_COPTS} 122 LINKOPTS 123 ${ABSL_DEFAULT_LINKOPTS} 124 DEPS 125 absl::config 126 absl::fast_type_id 127 absl::flags_commandlineflag_internal 128 absl::optional 129 absl::strings 130) 131 132# Internal-only target, do not depend on directly. 133absl_cc_library( 134 NAME 135 flags_private_handle_accessor 136 SRCS 137 "internal/private_handle_accessor.cc" 138 HDRS 139 "internal/private_handle_accessor.h" 140 COPTS 141 ${ABSL_DEFAULT_COPTS} 142 LINKOPTS 143 ${ABSL_DEFAULT_LINKOPTS} 144 DEPS 145 absl::config 146 absl::flags_commandlineflag 147 absl::flags_commandlineflag_internal 148 absl::strings 149) 150 151absl_cc_library( 152 NAME 153 flags_reflection 154 SRCS 155 "reflection.cc" 156 HDRS 157 "reflection.h" 158 "internal/registry.h" 159 COPTS 160 ${ABSL_DEFAULT_COPTS} 161 LINKOPTS 162 ${ABSL_DEFAULT_LINKOPTS} 163 DEPS 164 absl::config 165 absl::flags_commandlineflag 166 absl::flags_private_handle_accessor 167 absl::flags_config 168 absl::strings 169 absl::synchronization 170 absl::flat_hash_map 171) 172 173# Internal-only target, do not depend on directly. 174absl_cc_library( 175 NAME 176 flags_internal 177 SRCS 178 "internal/flag.cc" 179 HDRS 180 "internal/flag.h" 181 "internal/sequence_lock.h" 182 COPTS 183 ${ABSL_DEFAULT_COPTS} 184 LINKOPTS 185 ${ABSL_DEFAULT_LINKOPTS} 186 DEPS 187 absl::base 188 absl::config 189 absl::flags_commandlineflag 190 absl::flags_commandlineflag_internal 191 absl::flags_config 192 absl::flags_marshalling 193 absl::synchronization 194 absl::meta 195 absl::utility 196 PUBLIC 197) 198 199absl_cc_library( 200 NAME 201 flags 202 SRCS 203 "flag.cc" 204 HDRS 205 "declare.h" 206 "flag.h" 207 "internal/flag_msvc.inc" 208 COPTS 209 ${ABSL_DEFAULT_COPTS} 210 LINKOPTS 211 ${ABSL_DEFAULT_LINKOPTS} 212 DEPS 213 absl::config 214 absl::flags_commandlineflag 215 absl::flags_config 216 absl::flags_internal 217 absl::flags_reflection 218 absl::base 219 absl::core_headers 220 absl::strings 221) 222 223# Internal-only target, do not depend on directly. 224absl_cc_library( 225 NAME 226 flags_usage_internal 227 SRCS 228 "internal/usage.cc" 229 HDRS 230 "internal/usage.h" 231 COPTS 232 ${ABSL_DEFAULT_COPTS} 233 LINKOPTS 234 ${ABSL_DEFAULT_LINKOPTS} 235 DEPS 236 absl::config 237 absl::flags_config 238 absl::flags 239 absl::flags_commandlineflag 240 absl::flags_internal 241 absl::flags_path_util 242 absl::flags_private_handle_accessor 243 absl::flags_program_name 244 absl::flags_reflection 245 absl::flat_hash_map 246 absl::strings 247 absl::synchronization 248) 249 250absl_cc_library( 251 NAME 252 flags_usage 253 SRCS 254 "usage.cc" 255 HDRS 256 "usage.h" 257 COPTS 258 ${ABSL_DEFAULT_COPTS} 259 LINKOPTS 260 ${ABSL_DEFAULT_LINKOPTS} 261 DEPS 262 absl::config 263 absl::core_headers 264 absl::flags_usage_internal 265 absl::strings 266 absl::synchronization 267) 268 269absl_cc_library( 270 NAME 271 flags_parse 272 SRCS 273 "parse.cc" 274 HDRS 275 "internal/parse.h" 276 "parse.h" 277 COPTS 278 ${ABSL_DEFAULT_COPTS} 279 LINKOPTS 280 ${ABSL_DEFAULT_LINKOPTS} 281 DEPS 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 alpahabetical 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::strings 347 absl::time 348 GTest::gtest_main 349) 350 351absl_cc_test( 352 NAME 353 flags_marshalling_test 354 SRCS 355 "marshalling_test.cc" 356 COPTS 357 ${ABSL_TEST_COPTS} 358 DEPS 359 absl::flags_marshalling 360 GTest::gtest_main 361) 362 363absl_cc_test( 364 NAME 365 flags_parse_test 366 SRCS 367 "parse_test.cc" 368 COPTS 369 ${ABSL_TEST_COPTS} 370 DEPS 371 absl::flags 372 absl::flags_parse 373 absl::flags_reflection 374 absl::flags_usage_internal 375 absl::raw_logging_internal 376 absl::scoped_set_env 377 absl::span 378 absl::strings 379 GTest::gmock_main 380) 381 382absl_cc_test( 383 NAME 384 flags_path_util_test 385 SRCS 386 "internal/path_util_test.cc" 387 COPTS 388 ${ABSL_TEST_COPTS} 389 DEPS 390 absl::flags_path_util 391 GTest::gtest_main 392) 393 394absl_cc_test( 395 NAME 396 flags_program_name_test 397 SRCS 398 "internal/program_name_test.cc" 399 COPTS 400 ${ABSL_TEST_COPTS} 401 DEPS 402 absl::flags_program_name 403 absl::strings 404 GTest::gtest_main 405) 406 407absl_cc_test( 408 NAME 409 flags_reflection_test 410 SRCS 411 "reflection_test.cc" 412 COPTS 413 ${ABSL_TEST_COPTS} 414 DEPS 415 absl::flags_commandlineflag_internal 416 absl::flags 417 absl::flags_reflection 418 absl::flags_usage 419 absl::memory 420 absl::strings 421 GTest::gmock_main 422) 423 424absl_cc_test( 425 NAME 426 flags_sequence_lock_test 427 SRCS 428 "internal/sequence_lock_test.cc" 429 COPTS 430 ${ABSL_TEST_COPTS} 431 DEPS 432 absl::base 433 absl::flags_internal 434 absl::time 435 GTest::gmock_main 436) 437 438absl_cc_test( 439 NAME 440 flags_usage_config_test 441 SRCS 442 "usage_config_test.cc" 443 COPTS 444 ${ABSL_TEST_COPTS} 445 DEPS 446 absl::flags_config 447 absl::flags_path_util 448 absl::flags_program_name 449 absl::strings 450 GTest::gtest_main 451) 452 453absl_cc_test( 454 NAME 455 flags_usage_test 456 SRCS 457 "internal/usage_test.cc" 458 COPTS 459 ${ABSL_TEST_COPTS} 460 DEPS 461 absl::flags_config 462 absl::flags 463 absl::flags_path_util 464 absl::flags_program_name 465 absl::flags_parse 466 absl::flags_reflection 467 absl::flags_usage 468 absl::strings 469 GTest::gmock 470) 471