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