CMakeLists.txt 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640
  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. find_library(LIBRT rt)
  17. absl_cc_library(
  18. NAME
  19. atomic_hook
  20. HDRS
  21. "internal/atomic_hook.h"
  22. DEPS
  23. absl::config
  24. absl::core_headers
  25. COPTS
  26. ${ABSL_DEFAULT_COPTS}
  27. )
  28. absl_cc_library(
  29. NAME
  30. errno_saver
  31. HDRS
  32. "internal/errno_saver.h"
  33. DEPS
  34. absl::config
  35. COPTS
  36. ${ABSL_DEFAULT_COPTS}
  37. )
  38. absl_cc_library(
  39. NAME
  40. log_severity
  41. HDRS
  42. "log_severity.h"
  43. SRCS
  44. "log_severity.cc"
  45. DEPS
  46. absl::core_headers
  47. COPTS
  48. ${ABSL_DEFAULT_COPTS}
  49. )
  50. absl_cc_library(
  51. NAME
  52. raw_logging_internal
  53. HDRS
  54. "internal/raw_logging.h"
  55. SRCS
  56. "internal/raw_logging.cc"
  57. DEPS
  58. absl::atomic_hook
  59. absl::config
  60. absl::core_headers
  61. absl::log_severity
  62. COPTS
  63. ${ABSL_DEFAULT_COPTS}
  64. )
  65. absl_cc_library(
  66. NAME
  67. spinlock_wait
  68. HDRS
  69. "internal/spinlock_wait.h"
  70. SRCS
  71. "internal/spinlock_akaros.inc"
  72. "internal/spinlock_linux.inc"
  73. "internal/spinlock_posix.inc"
  74. "internal/spinlock_wait.cc"
  75. "internal/spinlock_win32.inc"
  76. COPTS
  77. ${ABSL_DEFAULT_COPTS}
  78. DEPS
  79. absl::base_internal
  80. absl::core_headers
  81. absl::errno_saver
  82. )
  83. absl_cc_library(
  84. NAME
  85. config
  86. HDRS
  87. "config.h"
  88. "options.h"
  89. "policy_checks.h"
  90. COPTS
  91. ${ABSL_DEFAULT_COPTS}
  92. PUBLIC
  93. )
  94. absl_cc_library(
  95. NAME
  96. dynamic_annotations
  97. HDRS
  98. "dynamic_annotations.h"
  99. SRCS
  100. "internal/dynamic_annotations.h"
  101. COPTS
  102. ${ABSL_DEFAULT_COPTS}
  103. DEPS
  104. absl::config
  105. PUBLIC
  106. )
  107. absl_cc_library(
  108. NAME
  109. core_headers
  110. HDRS
  111. "attributes.h"
  112. "const_init.h"
  113. "macros.h"
  114. "optimization.h"
  115. "port.h"
  116. "thread_annotations.h"
  117. "internal/thread_annotations.h"
  118. COPTS
  119. ${ABSL_DEFAULT_COPTS}
  120. DEPS
  121. absl::config
  122. PUBLIC
  123. )
  124. absl_cc_library(
  125. NAME
  126. malloc_internal
  127. HDRS
  128. "internal/direct_mmap.h"
  129. "internal/low_level_alloc.h"
  130. SRCS
  131. "internal/low_level_alloc.cc"
  132. COPTS
  133. ${ABSL_DEFAULT_COPTS}
  134. DEPS
  135. absl::base
  136. absl::base_internal
  137. absl::config
  138. absl::core_headers
  139. absl::dynamic_annotations
  140. absl::raw_logging_internal
  141. Threads::Threads
  142. )
  143. absl_cc_library(
  144. NAME
  145. base_internal
  146. HDRS
  147. "internal/hide_ptr.h"
  148. "internal/identity.h"
  149. "internal/inline_variable.h"
  150. "internal/invoke.h"
  151. "internal/scheduling_mode.h"
  152. COPTS
  153. ${ABSL_DEFAULT_COPTS}
  154. DEPS
  155. absl::config
  156. absl::type_traits
  157. )
  158. absl_cc_library(
  159. NAME
  160. base
  161. HDRS
  162. "call_once.h"
  163. "casts.h"
  164. "internal/cycleclock.h"
  165. "internal/low_level_scheduling.h"
  166. "internal/per_thread_tls.h"
  167. "internal/spinlock.h"
  168. "internal/sysinfo.h"
  169. "internal/thread_identity.h"
  170. "internal/tsan_mutex_interface.h"
  171. "internal/unscaledcycleclock.h"
  172. SRCS
  173. "internal/cycleclock.cc"
  174. "internal/spinlock.cc"
  175. "internal/sysinfo.cc"
  176. "internal/thread_identity.cc"
  177. "internal/unscaledcycleclock.cc"
  178. COPTS
  179. ${ABSL_DEFAULT_COPTS}
  180. LINKOPTS
  181. ${ABSL_DEFAULT_LINKOPTS}
  182. $<$<BOOL:${LIBRT}>:-lrt>
  183. $<$<BOOL:${MINGW}>:"advapi32">
  184. DEPS
  185. absl::atomic_hook
  186. absl::base_internal
  187. absl::config
  188. absl::core_headers
  189. absl::dynamic_annotations
  190. absl::log_severity
  191. absl::raw_logging_internal
  192. absl::spinlock_wait
  193. absl::type_traits
  194. Threads::Threads
  195. PUBLIC
  196. )
  197. absl_cc_library(
  198. NAME
  199. throw_delegate
  200. HDRS
  201. "internal/throw_delegate.h"
  202. SRCS
  203. "internal/throw_delegate.cc"
  204. COPTS
  205. ${ABSL_DEFAULT_COPTS}
  206. DEPS
  207. absl::config
  208. absl::raw_logging_internal
  209. )
  210. absl_cc_library(
  211. NAME
  212. exception_testing
  213. HDRS
  214. "internal/exception_testing.h"
  215. COPTS
  216. ${ABSL_DEFAULT_COPTS}
  217. DEPS
  218. absl::config
  219. GTest::gtest
  220. TESTONLY
  221. )
  222. absl_cc_library(
  223. NAME
  224. pretty_function
  225. HDRS
  226. "internal/pretty_function.h"
  227. COPTS
  228. ${ABSL_DEFAULT_COPTS}
  229. )
  230. absl_cc_library(
  231. NAME
  232. exception_safety_testing
  233. HDRS
  234. "internal/exception_safety_testing.h"
  235. SRCS
  236. "internal/exception_safety_testing.cc"
  237. COPTS
  238. ${ABSL_TEST_COPTS}
  239. DEPS
  240. absl::config
  241. absl::pretty_function
  242. absl::memory
  243. absl::meta
  244. absl::strings
  245. absl::utility
  246. GTest::gtest
  247. TESTONLY
  248. )
  249. absl_cc_test(
  250. NAME
  251. absl_exception_safety_testing_test
  252. SRCS
  253. "exception_safety_testing_test.cc"
  254. COPTS
  255. ${ABSL_TEST_COPTS}
  256. DEPS
  257. absl::exception_safety_testing
  258. absl::memory
  259. GTest::gtest_main
  260. )
  261. absl_cc_library(
  262. NAME
  263. atomic_hook_test_helper
  264. SRCS
  265. "internal/atomic_hook_test_helper.cc"
  266. COPTS
  267. ${ABSL_TEST_COPTS}
  268. DEPS
  269. absl::atomic_hook
  270. absl::core_headers
  271. TESTONLY
  272. )
  273. absl_cc_test(
  274. NAME
  275. atomic_hook_test
  276. SRCS
  277. "internal/atomic_hook_test.cc"
  278. COPTS
  279. ${ABSL_TEST_COPTS}
  280. DEPS
  281. absl::atomic_hook_test_helper
  282. absl::atomic_hook
  283. absl::core_headers
  284. GTest::gmock
  285. GTest::gtest_main
  286. )
  287. absl_cc_test(
  288. NAME
  289. bit_cast_test
  290. SRCS
  291. "bit_cast_test.cc"
  292. COPTS
  293. ${ABSL_TEST_COPTS}
  294. DEPS
  295. absl::base
  296. absl::core_headers
  297. GTest::gtest_main
  298. )
  299. absl_cc_test(
  300. NAME
  301. errno_saver_test
  302. SRCS
  303. "internal/errno_saver_test.cc"
  304. COPTS
  305. ${ABSL_TEST_COPTS}
  306. DEPS
  307. absl::errno_saver
  308. absl::strerror
  309. GTest::gmock
  310. GTest::gtest_main
  311. )
  312. absl_cc_test(
  313. NAME
  314. throw_delegate_test
  315. SRCS
  316. "throw_delegate_test.cc"
  317. COPTS
  318. ${ABSL_TEST_COPTS}
  319. DEPS
  320. absl::base
  321. absl::config
  322. absl::throw_delegate
  323. GTest::gtest_main
  324. )
  325. absl_cc_test(
  326. NAME
  327. inline_variable_test
  328. SRCS
  329. "internal/inline_variable_testing.h"
  330. "inline_variable_test.cc"
  331. "inline_variable_test_a.cc"
  332. "inline_variable_test_b.cc"
  333. COPTS
  334. ${ABSL_TEST_COPTS}
  335. DEPS
  336. absl::base_internal
  337. GTest::gtest_main
  338. )
  339. absl_cc_test(
  340. NAME
  341. invoke_test
  342. SRCS
  343. "invoke_test.cc"
  344. COPTS
  345. ${ABSL_TEST_COPTS}
  346. DEPS
  347. absl::base_internal
  348. absl::memory
  349. absl::strings
  350. GTest::gmock
  351. GTest::gtest_main
  352. )
  353. absl_cc_library(
  354. NAME
  355. spinlock_test_common
  356. SRCS
  357. "spinlock_test_common.cc"
  358. COPTS
  359. ${ABSL_TEST_COPTS}
  360. DEPS
  361. absl::base
  362. absl::config
  363. absl::base_internal
  364. absl::core_headers
  365. absl::synchronization
  366. GTest::gtest
  367. TESTONLY
  368. )
  369. # On bazel BUILD this target use "alwayslink = 1" which is not implemented here
  370. absl_cc_test(
  371. NAME
  372. spinlock_test
  373. SRCS
  374. "spinlock_test_common.cc"
  375. COPTS
  376. ${ABSL_TEST_COPTS}
  377. DEPS
  378. absl::base
  379. absl::base_internal
  380. absl::config
  381. absl::core_headers
  382. absl::synchronization
  383. GTest::gtest_main
  384. )
  385. absl_cc_library(
  386. NAME
  387. endian
  388. HDRS
  389. "internal/endian.h"
  390. "internal/unaligned_access.h"
  391. COPTS
  392. ${ABSL_DEFAULT_COPTS}
  393. DEPS
  394. absl::base
  395. absl::config
  396. absl::core_headers
  397. PUBLIC
  398. )
  399. absl_cc_test(
  400. NAME
  401. endian_test
  402. SRCS
  403. "internal/endian_test.cc"
  404. COPTS
  405. ${ABSL_TEST_COPTS}
  406. DEPS
  407. absl::base
  408. absl::config
  409. absl::endian
  410. GTest::gtest_main
  411. )
  412. absl_cc_test(
  413. NAME
  414. config_test
  415. SRCS
  416. "config_test.cc"
  417. COPTS
  418. ${ABSL_TEST_COPTS}
  419. DEPS
  420. absl::config
  421. absl::synchronization
  422. GTest::gtest_main
  423. )
  424. absl_cc_test(
  425. NAME
  426. call_once_test
  427. SRCS
  428. "call_once_test.cc"
  429. COPTS
  430. ${ABSL_TEST_COPTS}
  431. DEPS
  432. absl::base
  433. absl::core_headers
  434. absl::synchronization
  435. GTest::gtest_main
  436. )
  437. absl_cc_test(
  438. NAME
  439. raw_logging_test
  440. SRCS
  441. "raw_logging_test.cc"
  442. COPTS
  443. ${ABSL_TEST_COPTS}
  444. DEPS
  445. absl::raw_logging_internal
  446. absl::strings
  447. GTest::gtest_main
  448. )
  449. absl_cc_test(
  450. NAME
  451. sysinfo_test
  452. SRCS
  453. "internal/sysinfo_test.cc"
  454. COPTS
  455. ${ABSL_TEST_COPTS}
  456. DEPS
  457. absl::base
  458. absl::synchronization
  459. GTest::gtest_main
  460. )
  461. absl_cc_test(
  462. NAME
  463. low_level_alloc_test
  464. SRCS
  465. "internal/low_level_alloc_test.cc"
  466. COPTS
  467. ${ABSL_TEST_COPTS}
  468. DEPS
  469. absl::malloc_internal
  470. absl::node_hash_map
  471. Threads::Threads
  472. )
  473. absl_cc_test(
  474. NAME
  475. thread_identity_test
  476. SRCS
  477. "internal/thread_identity_test.cc"
  478. COPTS
  479. ${ABSL_TEST_COPTS}
  480. DEPS
  481. absl::base
  482. absl::core_headers
  483. absl::synchronization
  484. Threads::Threads
  485. GTest::gtest_main
  486. )
  487. absl_cc_library(
  488. NAME
  489. scoped_set_env
  490. SRCS
  491. "internal/scoped_set_env.cc"
  492. HDRS
  493. "internal/scoped_set_env.h"
  494. COPTS
  495. ${ABSL_DEFAULT_COPTS}
  496. DEPS
  497. absl::config
  498. absl::raw_logging_internal
  499. )
  500. absl_cc_test(
  501. NAME
  502. scoped_set_env_test
  503. SRCS
  504. "internal/scoped_set_env_test.cc"
  505. COPTS
  506. ${ABSL_TEST_COPTS}
  507. DEPS
  508. absl::scoped_set_env
  509. GTest::gtest_main
  510. )
  511. absl_cc_test(
  512. NAME
  513. cmake_thread_test
  514. SRCS
  515. "internal/cmake_thread_test.cc"
  516. COPTS
  517. ${ABSL_TEST_COPTS}
  518. DEPS
  519. absl::base
  520. )
  521. absl_cc_test(
  522. NAME
  523. log_severity_test
  524. SRCS
  525. "log_severity_test.cc"
  526. DEPS
  527. absl::flags_internal
  528. absl::flags_marshalling
  529. absl::log_severity
  530. absl::strings
  531. GTest::gmock
  532. GTest::gtest_main
  533. )
  534. absl_cc_library(
  535. NAME
  536. strerror
  537. SRCS
  538. "internal/strerror.cc"
  539. HDRS
  540. "internal/strerror.h"
  541. COPTS
  542. ${ABSL_DEFAULT_COPTS}
  543. LINKOPTS
  544. ${ABSL_DEFAULT_LINKOPTS}
  545. DEPS
  546. absl::config
  547. absl::core_headers
  548. absl::errno_saver
  549. )
  550. absl_cc_test(
  551. NAME
  552. strerror_test
  553. SRCS
  554. "internal/strerror_test.cc"
  555. COPTS
  556. ${ABSL_TEST_COPTS}
  557. DEPS
  558. absl::strerror
  559. absl::strings
  560. GTest::gmock
  561. GTest::gtest_main
  562. )
  563. absl_cc_library(
  564. NAME
  565. fast_type_id
  566. HDRS
  567. "internal/fast_type_id.h"
  568. COPTS
  569. ${ABSL_DEFAULT_COPTS}
  570. LINKOPTS
  571. ${ABSL_DEFAULT_LINKOPTS}
  572. DEPS
  573. absl::config
  574. )
  575. absl_cc_test(
  576. NAME
  577. fast_type_id_test
  578. SRCS
  579. "internal/fast_type_id_test.cc"
  580. COPTS
  581. ${ABSL_TEST_COPTS}
  582. DEPS
  583. absl::fast_type_id
  584. GTest::gtest_main
  585. )
  586. absl_cc_test(
  587. NAME
  588. optimization_test
  589. SRCS
  590. "optimization_test.cc"
  591. COPTS
  592. ${ABSL_TEST_COPTS}
  593. DEPS
  594. absl::core_headers
  595. absl::optional
  596. GTest::gtest_main
  597. )