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