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