1# 2# Copyright 2017 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 17find_library(LIBRT rt) 18 19# Internal-only target, do not depend on directly. 20absl_cc_library( 21 NAME 22 atomic_hook 23 HDRS 24 "internal/atomic_hook.h" 25 DEPS 26 absl::config 27 absl::core_headers 28 COPTS 29 ${ABSL_DEFAULT_COPTS} 30) 31 32# Internal-only target, do not depend on directly. 33absl_cc_library( 34 NAME 35 errno_saver 36 HDRS 37 "internal/errno_saver.h" 38 DEPS 39 absl::config 40 COPTS 41 ${ABSL_DEFAULT_COPTS} 42) 43 44absl_cc_library( 45 NAME 46 log_severity 47 HDRS 48 "log_severity.h" 49 SRCS 50 "log_severity.cc" 51 DEPS 52 absl::config 53 absl::core_headers 54 COPTS 55 ${ABSL_DEFAULT_COPTS} 56) 57 58absl_cc_library( 59 NAME 60 no_destructor 61 HDRS 62 "no_destructor.h" 63 DEPS 64 absl::config 65 absl::nullability 66 COPTS 67 ${ABSL_DEFAULT_COPTS} 68) 69 70absl_cc_library( 71 NAME 72 nullability 73 HDRS 74 "nullability.h" 75 SRCS 76 "internal/nullability_impl.h" 77 DEPS 78 absl::config 79 absl::core_headers 80 absl::type_traits 81 COPTS 82 ${ABSL_DEFAULT_COPTS} 83) 84 85absl_cc_test( 86 NAME 87 nullability_test 88 SRCS 89 "nullability_test.cc" 90 COPTS 91 ${ABSL_TEST_COPTS} 92 DEPS 93 absl::core_headers 94 absl::nullability 95 GTest::gtest_main 96) 97 98absl_cc_test( 99 NAME 100 nullability_default_nonnull_test 101 SRCS 102 "nullability_default_nonnull_test.cc" 103 COPTS 104 ${ABSL_TEST_COPTS} 105 DEPS 106 absl::nullability 107 GTest::gtest_main 108) 109 110# Internal-only target, do not depend on directly. 111absl_cc_library( 112 NAME 113 raw_logging_internal 114 HDRS 115 "internal/raw_logging.h" 116 SRCS 117 "internal/raw_logging.cc" 118 DEPS 119 absl::atomic_hook 120 absl::config 121 absl::core_headers 122 absl::errno_saver 123 absl::log_severity 124 COPTS 125 ${ABSL_DEFAULT_COPTS} 126) 127 128# Internal-only target, do not depend on directly. 129absl_cc_library( 130 NAME 131 spinlock_wait 132 HDRS 133 "internal/spinlock_wait.h" 134 SRCS 135 "internal/spinlock_akaros.inc" 136 "internal/spinlock_linux.inc" 137 "internal/spinlock_posix.inc" 138 "internal/spinlock_wait.cc" 139 "internal/spinlock_win32.inc" 140 COPTS 141 ${ABSL_DEFAULT_COPTS} 142 DEPS 143 absl::base_internal 144 absl::core_headers 145 absl::errno_saver 146) 147 148absl_cc_library( 149 NAME 150 config 151 HDRS 152 "config.h" 153 "options.h" 154 "policy_checks.h" 155 COPTS 156 ${ABSL_DEFAULT_COPTS} 157 PUBLIC 158) 159 160absl_cc_library( 161 NAME 162 dynamic_annotations 163 HDRS 164 "dynamic_annotations.h" 165 COPTS 166 ${ABSL_DEFAULT_COPTS} 167 DEPS 168 absl::config 169 PUBLIC 170) 171 172absl_cc_library( 173 NAME 174 core_headers 175 HDRS 176 "attributes.h" 177 "const_init.h" 178 "macros.h" 179 "optimization.h" 180 "port.h" 181 "thread_annotations.h" 182 COPTS 183 ${ABSL_DEFAULT_COPTS} 184 DEPS 185 absl::config 186 PUBLIC 187) 188 189# Internal-only target, do not depend on directly. 190absl_cc_library( 191 NAME 192 malloc_internal 193 HDRS 194 "internal/direct_mmap.h" 195 "internal/low_level_alloc.h" 196 SRCS 197 "internal/low_level_alloc.cc" 198 COPTS 199 ${ABSL_DEFAULT_COPTS} 200 DEPS 201 absl::base 202 absl::base_internal 203 absl::config 204 absl::core_headers 205 absl::dynamic_annotations 206 absl::raw_logging_internal 207 Threads::Threads 208) 209 210# Internal-only target, do not depend on directly. 211absl_cc_library( 212 NAME 213 base_internal 214 HDRS 215 "internal/hide_ptr.h" 216 "internal/identity.h" 217 "internal/inline_variable.h" 218 "internal/invoke.h" 219 "internal/scheduling_mode.h" 220 COPTS 221 ${ABSL_DEFAULT_COPTS} 222 DEPS 223 absl::config 224 absl::type_traits 225) 226 227absl_cc_library( 228 NAME 229 base 230 HDRS 231 "call_once.h" 232 "casts.h" 233 "internal/cycleclock.h" 234 "internal/cycleclock_config.h" 235 "internal/low_level_scheduling.h" 236 "internal/per_thread_tls.h" 237 "internal/spinlock.h" 238 "internal/sysinfo.h" 239 "internal/thread_identity.h" 240 "internal/tsan_mutex_interface.h" 241 "internal/unscaledcycleclock.h" 242 "internal/unscaledcycleclock_config.h" 243 SRCS 244 "internal/cycleclock.cc" 245 "internal/spinlock.cc" 246 "internal/sysinfo.cc" 247 "internal/thread_identity.cc" 248 "internal/unscaledcycleclock.cc" 249 COPTS 250 ${ABSL_DEFAULT_COPTS} 251 LINKOPTS 252 ${ABSL_DEFAULT_LINKOPTS} 253 $<$<BOOL:${LIBRT}>:-lrt> 254 $<$<BOOL:${MINGW}>:-ladvapi32> 255 DEPS 256 absl::atomic_hook 257 absl::base_internal 258 absl::config 259 absl::core_headers 260 absl::dynamic_annotations 261 absl::log_severity 262 absl::nullability 263 absl::raw_logging_internal 264 absl::spinlock_wait 265 absl::type_traits 266 Threads::Threads 267 PUBLIC 268) 269 270# Internal-only target, do not depend on directly. 271absl_cc_library( 272 NAME 273 throw_delegate 274 HDRS 275 "internal/throw_delegate.h" 276 SRCS 277 "internal/throw_delegate.cc" 278 COPTS 279 ${ABSL_DEFAULT_COPTS} 280 DEPS 281 absl::config 282 absl::raw_logging_internal 283) 284 285# Internal-only target, do not depend on directly. 286absl_cc_library( 287 NAME 288 exception_testing 289 HDRS 290 "internal/exception_testing.h" 291 COPTS 292 ${ABSL_DEFAULT_COPTS} 293 DEPS 294 absl::config 295 GTest::gtest 296 TESTONLY 297) 298 299# Internal-only target, do not depend on directly. 300absl_cc_library( 301 NAME 302 pretty_function 303 HDRS 304 "internal/pretty_function.h" 305 COPTS 306 ${ABSL_DEFAULT_COPTS} 307) 308 309# Internal-only target, do not depend on directly. 310absl_cc_library( 311 NAME 312 exception_safety_testing 313 HDRS 314 "internal/exception_safety_testing.h" 315 SRCS 316 "internal/exception_safety_testing.cc" 317 COPTS 318 ${ABSL_TEST_COPTS} 319 DEPS 320 absl::config 321 absl::pretty_function 322 absl::memory 323 absl::meta 324 absl::strings 325 absl::utility 326 GTest::gtest 327 TESTONLY 328) 329 330absl_cc_test( 331 NAME 332 absl_exception_safety_testing_test 333 SRCS 334 "exception_safety_testing_test.cc" 335 COPTS 336 ${ABSL_TEST_COPTS} 337 DEPS 338 absl::exception_safety_testing 339 absl::memory 340 GTest::gtest_main 341) 342 343# Internal-only target, do not depend on directly. 344absl_cc_library( 345 NAME 346 atomic_hook_test_helper 347 SRCS 348 "internal/atomic_hook_test_helper.cc" 349 COPTS 350 ${ABSL_TEST_COPTS} 351 DEPS 352 absl::atomic_hook 353 absl::core_headers 354 TESTONLY 355) 356 357absl_cc_test( 358 NAME 359 atomic_hook_test 360 SRCS 361 "internal/atomic_hook_test.cc" 362 COPTS 363 ${ABSL_TEST_COPTS} 364 DEPS 365 absl::atomic_hook_test_helper 366 absl::atomic_hook 367 absl::core_headers 368 GTest::gmock 369 GTest::gtest_main 370) 371 372absl_cc_test( 373 NAME 374 bit_cast_test 375 SRCS 376 "bit_cast_test.cc" 377 COPTS 378 ${ABSL_TEST_COPTS} 379 DEPS 380 absl::base 381 absl::core_headers 382 GTest::gtest_main 383) 384 385absl_cc_test( 386 NAME 387 errno_saver_test 388 SRCS 389 "internal/errno_saver_test.cc" 390 COPTS 391 ${ABSL_TEST_COPTS} 392 DEPS 393 absl::errno_saver 394 absl::strerror 395 GTest::gmock 396 GTest::gtest_main 397) 398 399absl_cc_test( 400 NAME 401 throw_delegate_test 402 SRCS 403 "throw_delegate_test.cc" 404 COPTS 405 ${ABSL_TEST_COPTS} 406 DEPS 407 absl::base 408 absl::config 409 absl::throw_delegate 410 GTest::gtest_main 411) 412 413absl_cc_test( 414 NAME 415 inline_variable_test 416 SRCS 417 "internal/inline_variable_testing.h" 418 "inline_variable_test.cc" 419 "inline_variable_test_a.cc" 420 "inline_variable_test_b.cc" 421 COPTS 422 ${ABSL_TEST_COPTS} 423 DEPS 424 absl::base_internal 425 GTest::gtest_main 426) 427 428absl_cc_test( 429 NAME 430 invoke_test 431 SRCS 432 "invoke_test.cc" 433 COPTS 434 ${ABSL_TEST_COPTS} 435 DEPS 436 absl::base_internal 437 absl::memory 438 absl::strings 439 GTest::gmock 440 GTest::gtest_main 441) 442 443# Internal-only target, do not depend on directly. 444absl_cc_library( 445 NAME 446 spinlock_test_common 447 SRCS 448 "spinlock_test_common.cc" 449 COPTS 450 ${ABSL_TEST_COPTS} 451 DEPS 452 absl::base 453 absl::config 454 absl::base_internal 455 absl::core_headers 456 absl::synchronization 457 GTest::gtest 458 TESTONLY 459) 460 461# On bazel BUILD this target use "alwayslink = 1" which is not implemented here 462absl_cc_test( 463 NAME 464 spinlock_test 465 SRCS 466 "spinlock_test_common.cc" 467 COPTS 468 ${ABSL_TEST_COPTS} 469 DEPS 470 absl::base 471 absl::base_internal 472 absl::config 473 absl::core_headers 474 absl::synchronization 475 GTest::gtest_main 476) 477 478# Internal-only target, do not depend on directly. 479absl_cc_library( 480 NAME 481 endian 482 HDRS 483 "internal/endian.h" 484 "internal/unaligned_access.h" 485 COPTS 486 ${ABSL_DEFAULT_COPTS} 487 DEPS 488 absl::base 489 absl::config 490 absl::core_headers 491 absl::nullability 492 PUBLIC 493) 494 495absl_cc_test( 496 NAME 497 endian_test 498 SRCS 499 "internal/endian_test.cc" 500 COPTS 501 ${ABSL_TEST_COPTS} 502 DEPS 503 absl::base 504 absl::config 505 absl::endian 506 GTest::gtest_main 507) 508 509absl_cc_test( 510 NAME 511 config_test 512 SRCS 513 "config_test.cc" 514 COPTS 515 ${ABSL_TEST_COPTS} 516 DEPS 517 absl::config 518 absl::synchronization 519 GTest::gtest_main 520) 521 522absl_cc_test( 523 NAME 524 call_once_test 525 SRCS 526 "call_once_test.cc" 527 COPTS 528 ${ABSL_TEST_COPTS} 529 DEPS 530 absl::base 531 absl::core_headers 532 absl::synchronization 533 GTest::gtest_main 534) 535 536absl_cc_test( 537 NAME 538 no_destructor_test 539 SRCS 540 "no_destructor_test.cc" 541 COPTS 542 ${ABSL_TEST_COPTS} 543 DEPS 544 absl::no_destructor 545 absl::config 546 absl::raw_logging_internal 547 GTest::gmock 548 GTest::gtest_main 549) 550 551absl_cc_test( 552 NAME 553 raw_logging_test 554 SRCS 555 "raw_logging_test.cc" 556 COPTS 557 ${ABSL_TEST_COPTS} 558 DEPS 559 absl::raw_logging_internal 560 absl::strings 561 GTest::gtest_main 562) 563 564absl_cc_test( 565 NAME 566 sysinfo_test 567 SRCS 568 "internal/sysinfo_test.cc" 569 COPTS 570 ${ABSL_TEST_COPTS} 571 DEPS 572 absl::base 573 absl::synchronization 574 GTest::gtest_main 575) 576 577absl_cc_test( 578 NAME 579 low_level_alloc_test 580 SRCS 581 "internal/low_level_alloc_test.cc" 582 COPTS 583 ${ABSL_TEST_COPTS} 584 DEPS 585 absl::malloc_internal 586 absl::node_hash_map 587 Threads::Threads 588) 589 590absl_cc_test( 591 NAME 592 thread_identity_test 593 SRCS 594 "internal/thread_identity_test.cc" 595 COPTS 596 ${ABSL_TEST_COPTS} 597 DEPS 598 absl::base 599 absl::core_headers 600 absl::synchronization 601 Threads::Threads 602 GTest::gtest_main 603) 604 605# Internal-only target, do not depend on directly. 606absl_cc_library( 607 NAME 608 scoped_set_env 609 SRCS 610 "internal/scoped_set_env.cc" 611 HDRS 612 "internal/scoped_set_env.h" 613 COPTS 614 ${ABSL_DEFAULT_COPTS} 615 DEPS 616 absl::config 617 absl::raw_logging_internal 618) 619 620absl_cc_test( 621 NAME 622 scoped_set_env_test 623 SRCS 624 "internal/scoped_set_env_test.cc" 625 COPTS 626 ${ABSL_TEST_COPTS} 627 DEPS 628 absl::scoped_set_env 629 GTest::gtest_main 630) 631 632absl_cc_test( 633 NAME 634 cmake_thread_test 635 SRCS 636 "internal/cmake_thread_test.cc" 637 COPTS 638 ${ABSL_TEST_COPTS} 639 DEPS 640 absl::base 641) 642 643absl_cc_test( 644 NAME 645 log_severity_test 646 SRCS 647 "log_severity_test.cc" 648 DEPS 649 absl::flags_internal 650 absl::flags_marshalling 651 absl::log_severity 652 absl::strings 653 GTest::gmock 654 GTest::gtest_main 655) 656 657# Internal-only target, do not depend on directly. 658absl_cc_library( 659 NAME 660 strerror 661 SRCS 662 "internal/strerror.cc" 663 HDRS 664 "internal/strerror.h" 665 COPTS 666 ${ABSL_DEFAULT_COPTS} 667 LINKOPTS 668 ${ABSL_DEFAULT_LINKOPTS} 669 DEPS 670 absl::config 671 absl::core_headers 672 absl::errno_saver 673) 674 675absl_cc_test( 676 NAME 677 strerror_test 678 SRCS 679 "internal/strerror_test.cc" 680 COPTS 681 ${ABSL_TEST_COPTS} 682 DEPS 683 absl::strerror 684 absl::strings 685 GTest::gmock 686 GTest::gtest_main 687) 688 689# Internal-only target, do not depend on directly. 690absl_cc_library( 691 NAME 692 fast_type_id 693 HDRS 694 "internal/fast_type_id.h" 695 COPTS 696 ${ABSL_DEFAULT_COPTS} 697 LINKOPTS 698 ${ABSL_DEFAULT_LINKOPTS} 699 DEPS 700 absl::config 701) 702 703absl_cc_test( 704 NAME 705 fast_type_id_test 706 SRCS 707 "internal/fast_type_id_test.cc" 708 COPTS 709 ${ABSL_TEST_COPTS} 710 DEPS 711 absl::fast_type_id 712 GTest::gtest_main 713) 714 715absl_cc_library( 716 NAME 717 prefetch 718 HDRS 719 "prefetch.h" 720 COPTS 721 ${ABSL_DEFAULT_COPTS} 722 LINKOPTS 723 ${ABSL_DEFAULT_LINKOPTS} 724 DEPS 725 absl::config 726 absl::core_headers 727) 728 729absl_cc_test( 730 NAME 731 prefetch_test 732 SRCS 733 "prefetch_test.cc" 734 COPTS 735 ${ABSL_TEST_COPTS} 736 DEPS 737 absl::prefetch 738 GTest::gtest_main 739) 740 741absl_cc_test( 742 NAME 743 optimization_test 744 SRCS 745 "optimization_test.cc" 746 COPTS 747 ${ABSL_TEST_COPTS} 748 DEPS 749 absl::core_headers 750 absl::optional 751 GTest::gtest_main 752) 753 754absl_cc_library( 755 NAME 756 poison 757 SRCS 758 "internal/poison.cc" 759 HDRS 760 "internal/poison.h" 761 COPTS 762 ${ABSL_DEFAULT_COPTS} 763 LINKOPTS 764 ${ABSL_DEFAULT_LINKOPTS} 765 DEPS 766 absl::config 767 absl::core_headers 768 absl::malloc_internal 769) 770 771absl_cc_test( 772 NAME 773 poison_test 774 SRCS 775 "internal/poison_test.cc" 776 COPTS 777 ${ABSL_TEST_COPTS} 778 DEPS 779 absl::config 780 absl::poison 781 GTest::gtest_main 782) 783 784absl_cc_library( 785 NAME 786 tracing_internal 787 HDRS 788 "internal/tracing.h" 789 SRCS 790 "internal/tracing.cc" 791 COPTS 792 ${ABSL_DEFAULT_COPTS} 793 DEPS 794 absl::base 795) 796 797absl_cc_test( 798 NAME 799 tracing_internal_weak_test 800 SRCS 801 "internal/tracing_weak_test.cc" 802 COPTS 803 ${ABSL_TEST_COPTS} 804 DEPS 805 absl::base 806 absl::tracing_internal 807 GTest::gtest_main 808) 809 810absl_cc_test( 811 NAME 812 tracing_internal_strong_test 813 SRCS 814 "internal/tracing_strong_test.cc" 815 COPTS 816 ${ABSL_TEST_COPTS} 817 DEPS 818 absl::base 819 absl::tracing_internal 820 GTest::gtest_main 821) 822