CMakeLists.txt 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468
  1. #
  2. # Copyright 2019 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. # Internal-only target, do not depend on directly.
  17. absl_cc_library(
  18. NAME
  19. flags_path_util
  20. HDRS
  21. "internal/path_util.h"
  22. COPTS
  23. ${ABSL_DEFAULT_COPTS}
  24. LINKOPTS
  25. ${ABSL_DEFAULT_LINKOPTS}
  26. DEPS
  27. absl::config
  28. absl::strings
  29. PUBLIC
  30. )
  31. # Internal-only target, do not depend on directly.
  32. absl_cc_library(
  33. NAME
  34. flags_program_name
  35. SRCS
  36. "internal/program_name.cc"
  37. HDRS
  38. "internal/program_name.h"
  39. COPTS
  40. ${ABSL_DEFAULT_COPTS}
  41. LINKOPTS
  42. ${ABSL_DEFAULT_LINKOPTS}
  43. DEPS
  44. absl::config
  45. absl::core_headers
  46. absl::flags_path_util
  47. absl::strings
  48. absl::synchronization
  49. PUBLIC
  50. )
  51. absl_cc_library(
  52. NAME
  53. flags_config
  54. SRCS
  55. "usage_config.cc"
  56. HDRS
  57. "config.h"
  58. "usage_config.h"
  59. COPTS
  60. ${ABSL_DEFAULT_COPTS}
  61. LINKOPTS
  62. ${ABSL_DEFAULT_LINKOPTS}
  63. DEPS
  64. absl::config
  65. absl::flags_path_util
  66. absl::flags_program_name
  67. absl::core_headers
  68. absl::strings
  69. absl::synchronization
  70. )
  71. absl_cc_library(
  72. NAME
  73. flags_marshalling
  74. SRCS
  75. "marshalling.cc"
  76. HDRS
  77. "marshalling.h"
  78. COPTS
  79. ${ABSL_DEFAULT_COPTS}
  80. LINKOPTS
  81. ${ABSL_DEFAULT_LINKOPTS}
  82. DEPS
  83. absl::config
  84. absl::core_headers
  85. absl::log_severity
  86. absl::strings
  87. absl::str_format
  88. )
  89. # Internal-only target, do not depend on directly.
  90. absl_cc_library(
  91. NAME
  92. flags_commandlineflag_internal
  93. SRCS
  94. "internal/commandlineflag.cc"
  95. HDRS
  96. "internal/commandlineflag.h"
  97. COPTS
  98. ${ABSL_DEFAULT_COPTS}
  99. LINKOPTS
  100. ${ABSL_DEFAULT_LINKOPTS}
  101. DEPS
  102. absl::config
  103. absl::fast_type_id
  104. )
  105. absl_cc_library(
  106. NAME
  107. flags_commandlineflag
  108. SRCS
  109. "commandlineflag.cc"
  110. HDRS
  111. "commandlineflag.h"
  112. COPTS
  113. ${ABSL_DEFAULT_COPTS}
  114. LINKOPTS
  115. ${ABSL_DEFAULT_LINKOPTS}
  116. DEPS
  117. absl::config
  118. absl::fast_type_id
  119. absl::flags_commandlineflag_internal
  120. absl::optional
  121. absl::strings
  122. )
  123. # Internal-only target, do not depend on directly.
  124. absl_cc_library(
  125. NAME
  126. flags_private_handle_accessor
  127. SRCS
  128. "internal/private_handle_accessor.cc"
  129. HDRS
  130. "internal/private_handle_accessor.h"
  131. COPTS
  132. ${ABSL_DEFAULT_COPTS}
  133. LINKOPTS
  134. ${ABSL_DEFAULT_LINKOPTS}
  135. DEPS
  136. absl::config
  137. absl::flags_commandlineflag
  138. absl::flags_commandlineflag_internal
  139. absl::strings
  140. )
  141. absl_cc_library(
  142. NAME
  143. flags_reflection
  144. SRCS
  145. "reflection.cc"
  146. HDRS
  147. "reflection.h"
  148. "internal/registry.h"
  149. COPTS
  150. ${ABSL_DEFAULT_COPTS}
  151. LINKOPTS
  152. ${ABSL_DEFAULT_LINKOPTS}
  153. DEPS
  154. absl::config
  155. absl::flags_commandlineflag
  156. absl::flags_private_handle_accessor
  157. absl::flags_config
  158. absl::strings
  159. absl::synchronization
  160. absl::flat_hash_map
  161. )
  162. # Internal-only target, do not depend on directly.
  163. absl_cc_library(
  164. NAME
  165. flags_internal
  166. SRCS
  167. "internal/flag.cc"
  168. HDRS
  169. "internal/flag.h"
  170. "internal/sequence_lock.h"
  171. COPTS
  172. ${ABSL_DEFAULT_COPTS}
  173. LINKOPTS
  174. ${ABSL_DEFAULT_LINKOPTS}
  175. DEPS
  176. absl::base
  177. absl::config
  178. absl::flags_commandlineflag
  179. absl::flags_commandlineflag_internal
  180. absl::flags_config
  181. absl::flags_marshalling
  182. absl::synchronization
  183. absl::meta
  184. absl::utility
  185. PUBLIC
  186. )
  187. absl_cc_library(
  188. NAME
  189. flags
  190. SRCS
  191. "flag.cc"
  192. HDRS
  193. "declare.h"
  194. "flag.h"
  195. "internal/flag_msvc.inc"
  196. COPTS
  197. ${ABSL_DEFAULT_COPTS}
  198. LINKOPTS
  199. ${ABSL_DEFAULT_LINKOPTS}
  200. DEPS
  201. absl::config
  202. absl::flags_commandlineflag
  203. absl::flags_config
  204. absl::flags_internal
  205. absl::flags_reflection
  206. absl::base
  207. absl::core_headers
  208. absl::strings
  209. )
  210. # Internal-only target, do not depend on directly.
  211. absl_cc_library(
  212. NAME
  213. flags_usage_internal
  214. SRCS
  215. "internal/usage.cc"
  216. HDRS
  217. "internal/usage.h"
  218. COPTS
  219. ${ABSL_DEFAULT_COPTS}
  220. LINKOPTS
  221. ${ABSL_DEFAULT_LINKOPTS}
  222. DEPS
  223. absl::config
  224. absl::flags_config
  225. absl::flags
  226. absl::flags_commandlineflag
  227. absl::flags_internal
  228. absl::flags_path_util
  229. absl::flags_private_handle_accessor
  230. absl::flags_program_name
  231. absl::flags_reflection
  232. absl::flat_hash_map
  233. absl::strings
  234. absl::synchronization
  235. )
  236. absl_cc_library(
  237. NAME
  238. flags_usage
  239. SRCS
  240. "usage.cc"
  241. HDRS
  242. "usage.h"
  243. COPTS
  244. ${ABSL_DEFAULT_COPTS}
  245. LINKOPTS
  246. ${ABSL_DEFAULT_LINKOPTS}
  247. DEPS
  248. absl::config
  249. absl::core_headers
  250. absl::flags_usage_internal
  251. absl::strings
  252. absl::synchronization
  253. )
  254. absl_cc_library(
  255. NAME
  256. flags_parse
  257. SRCS
  258. "parse.cc"
  259. HDRS
  260. "internal/parse.h"
  261. "parse.h"
  262. COPTS
  263. ${ABSL_DEFAULT_COPTS}
  264. LINKOPTS
  265. ${ABSL_DEFAULT_LINKOPTS}
  266. DEPS
  267. absl::config
  268. absl::core_headers
  269. absl::flags_config
  270. absl::flags
  271. absl::flags_commandlineflag
  272. absl::flags_commandlineflag_internal
  273. absl::flags_internal
  274. absl::flags_private_handle_accessor
  275. absl::flags_program_name
  276. absl::flags_reflection
  277. absl::flags_usage
  278. absl::strings
  279. absl::synchronization
  280. )
  281. ############################################################################
  282. # Unit tests in alpahabetical order.
  283. absl_cc_test(
  284. NAME
  285. flags_commandlineflag_test
  286. SRCS
  287. "commandlineflag_test.cc"
  288. COPTS
  289. ${ABSL_TEST_COPTS}
  290. DEPS
  291. absl::flags
  292. absl::flags_commandlineflag
  293. absl::flags_commandlineflag_internal
  294. absl::flags_config
  295. absl::flags_private_handle_accessor
  296. absl::flags_reflection
  297. absl::memory
  298. absl::strings
  299. GTest::gtest_main
  300. )
  301. absl_cc_test(
  302. NAME
  303. flags_config_test
  304. SRCS
  305. "config_test.cc"
  306. COPTS
  307. ${ABSL_TEST_COPTS}
  308. DEPS
  309. absl::flags_config
  310. GTest::gtest_main
  311. )
  312. absl_cc_test(
  313. NAME
  314. flags_flag_test
  315. SRCS
  316. "flag_test.cc"
  317. "flag_test_defs.cc"
  318. COPTS
  319. ${ABSL_TEST_COPTS}
  320. DEPS
  321. absl::core_headers
  322. absl::flags
  323. absl::flags_config
  324. absl::flags_internal
  325. absl::flags_marshalling
  326. absl::flags_reflection
  327. absl::strings
  328. absl::time
  329. GTest::gtest_main
  330. )
  331. absl_cc_test(
  332. NAME
  333. flags_marshalling_test
  334. SRCS
  335. "marshalling_test.cc"
  336. COPTS
  337. ${ABSL_TEST_COPTS}
  338. DEPS
  339. absl::flags_marshalling
  340. GTest::gtest_main
  341. )
  342. absl_cc_test(
  343. NAME
  344. flags_parse_test
  345. SRCS
  346. "parse_test.cc"
  347. COPTS
  348. ${ABSL_TEST_COPTS}
  349. DEPS
  350. absl::flags
  351. absl::flags_parse
  352. absl::flags_reflection
  353. absl::flags_usage_internal
  354. absl::raw_logging_internal
  355. absl::scoped_set_env
  356. absl::span
  357. absl::strings
  358. GTest::gmock_main
  359. )
  360. absl_cc_test(
  361. NAME
  362. flags_path_util_test
  363. SRCS
  364. "internal/path_util_test.cc"
  365. COPTS
  366. ${ABSL_TEST_COPTS}
  367. DEPS
  368. absl::flags_path_util
  369. GTest::gtest_main
  370. )
  371. absl_cc_test(
  372. NAME
  373. flags_program_name_test
  374. SRCS
  375. "internal/program_name_test.cc"
  376. COPTS
  377. ${ABSL_TEST_COPTS}
  378. DEPS
  379. absl::flags_program_name
  380. absl::strings
  381. GTest::gtest_main
  382. )
  383. absl_cc_test(
  384. NAME
  385. flags_reflection_test
  386. SRCS
  387. "reflection_test.cc"
  388. COPTS
  389. ${ABSL_TEST_COPTS}
  390. DEPS
  391. absl::flags_commandlineflag_internal
  392. absl::flags
  393. absl::flags_reflection
  394. absl::flags_usage
  395. absl::memory
  396. absl::strings
  397. GTest::gmock_main
  398. )
  399. absl_cc_test(
  400. NAME
  401. flags_sequence_lock_test
  402. SRCS
  403. "internal/sequence_lock_test.cc"
  404. COPTS
  405. ${ABSL_TEST_COPTS}
  406. DEPS
  407. absl::base
  408. absl::flags_internal
  409. absl::time
  410. GTest::gmock_main
  411. )
  412. absl_cc_test(
  413. NAME
  414. flags_usage_config_test
  415. SRCS
  416. "usage_config_test.cc"
  417. COPTS
  418. ${ABSL_TEST_COPTS}
  419. DEPS
  420. absl::flags_config
  421. absl::flags_path_util
  422. absl::flags_program_name
  423. absl::strings
  424. GTest::gtest_main
  425. )
  426. absl_cc_test(
  427. NAME
  428. flags_usage_test
  429. SRCS
  430. "internal/usage_test.cc"
  431. COPTS
  432. ${ABSL_TEST_COPTS}
  433. DEPS
  434. absl::flags_config
  435. absl::flags
  436. absl::flags_path_util
  437. absl::flags_program_name
  438. absl::flags_parse
  439. absl::flags_reflection
  440. absl::flags_usage
  441. absl::strings
  442. GTest::gtest
  443. )