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::algorithm_container 283 absl::config 284 absl::core_headers 285 absl::flags_config 286 absl::flags 287 absl::flags_commandlineflag 288 absl::flags_commandlineflag_internal 289 absl::flags_internal 290 absl::flags_private_handle_accessor 291 absl::flags_program_name 292 absl::flags_reflection 293 absl::flags_usage 294 absl::strings 295 absl::synchronization 296) 297 298############################################################################ 299# Unit tests in alpahabetical order. 300 301absl_cc_test( 302 NAME 303 flags_commandlineflag_test 304 SRCS 305 "commandlineflag_test.cc" 306 COPTS 307 ${ABSL_TEST_COPTS} 308 DEPS 309 absl::flags 310 absl::flags_commandlineflag 311 absl::flags_commandlineflag_internal 312 absl::flags_config 313 absl::flags_private_handle_accessor 314 absl::flags_reflection 315 absl::memory 316 absl::strings 317 GTest::gtest_main 318) 319 320absl_cc_test( 321 NAME 322 flags_config_test 323 SRCS 324 "config_test.cc" 325 COPTS 326 ${ABSL_TEST_COPTS} 327 DEPS 328 absl::flags_config 329 GTest::gtest_main 330) 331 332absl_cc_test( 333 NAME 334 flags_flag_test 335 SRCS 336 "flag_test.cc" 337 "flag_test_defs.cc" 338 COPTS 339 ${ABSL_TEST_COPTS} 340 DEPS 341 absl::core_headers 342 absl::flags 343 absl::flags_config 344 absl::flags_internal 345 absl::flags_marshalling 346 absl::flags_reflection 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::raw_logging_internal 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