blob: b5341cf6a7d2cdb85341669568a7fdf1114c4f8d [file] [log] [blame]
Bob Badour10017462021-02-12 18:20:34 -08001package {
2 default_applicable_licenses: ["external_fmtlib_license"],
3}
4
5// Added automatically by a large-scale-change that took the approach of
6// 'apply every license found to every target'. While this makes sure we respect
7// every license restriction, it may not be entirely correct.
8//
9// e.g. GPL in an MIT project might only apply to the contrib/ directory.
10//
11// Please consider splitting the single license below into multiple licenses,
12// taking care not to lose any license_kind information, and overriding the
13// default license using the 'licenses: [...]' property on targets as needed.
14//
15// For unused files, consider creating a 'fileGroup' with "//visibility:private"
16// to attach the license to, and including a comment whether the files may be
17// used in the current project.
18//
19// large-scale-change included anything that looked like it might be a license
20// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
21//
22// Please consider removing redundant or irrelevant files from 'license_text:'.
23// See: http://go/android-license-faq
24license {
25 name: "external_fmtlib_license",
26 visibility: [":__subpackages__"],
27 license_kinds: [
28 "SPDX-license-identifier-BSD",
29 "SPDX-license-identifier-CC0-1.0",
30 "SPDX-license-identifier-MIT",
31 "SPDX-license-identifier-PSF-2.0",
32 "legacy_unencumbered",
33 ],
34 license_text: [
35 "LICENSE.rst",
36 "NOTICE",
37 ],
38}
39
Jiyong Park990e7f42019-06-12 16:25:51 +090040cc_defaults {
Elliott Hughesc2c29c42020-11-03 12:18:33 -080041 name: "fmtlib-non-test-defaults",
Jiyong Park9a4ce482019-06-12 01:15:08 +090042 cflags: [
43 "-fno-exceptions",
Jiyong Park9a4ce482019-06-12 01:15:08 +090044 // If built without exceptions, libfmt uses assert.
Elliott Hughesc2c29c42020-11-03 12:18:33 -080045 // The tests *require* exceptions, so we can't win here.
46 // (This is also why we have two cc_defaults in this file.)
47 // Unless proven to be a bad idea, let's at least have some run-time
48 // checking.
Jiyong Park9a4ce482019-06-12 01:15:08 +090049 "-UNDEBUG",
50 ],
Elliott Hughesc2c29c42020-11-03 12:18:33 -080051 srcs: ["src/format.cc"],
Jiyong Parkb3dda442019-06-12 01:20:18 +090052 local_include_dirs: ["include"],
53 export_include_dirs: ["include"],
Elliott Hughesc2c29c42020-11-03 12:18:33 -080054 visibility: ["//system/libbase"],
Nikita Ioffe1a2a7fe2020-10-28 00:47:14 +000055 min_sdk_version: "29",
Jiyong Park9a4ce482019-06-12 01:15:08 +090056}
Jiyong Park990e7f42019-06-12 16:25:51 +090057
Tom Cherry17b3fc82019-06-14 11:14:42 -070058// This is built into libbase. If you want to use this library, link to libbase instead.
59cc_library_static {
Jiyong Park990e7f42019-06-12 16:25:51 +090060 name: "fmtlib",
Elliott Hughesc2c29c42020-11-03 12:18:33 -080061 defaults: ["fmtlib-non-test-defaults"],
62
Jiyong Park990e7f42019-06-12 16:25:51 +090063 vendor_available: true,
Justin Yund6904de2020-11-11 16:18:39 +090064 product_available: true,
Yifan Hongcd5c0382020-01-21 19:31:11 -080065 ramdisk_available: true,
Yifan Hongd0f3cdc2020-10-21 18:27:43 -070066 vendor_ramdisk_available: true,
Jiyong Park990e7f42019-06-12 16:25:51 +090067 recovery_available: true,
68 host_supported: true,
69 native_bridge_supported: true,
70 target: {
71 linux_bionic: {
72 enabled: true,
73 },
74 windows: {
75 enabled: true,
76 },
77 },
Przemyslaw Szczepaniak2a2cc702020-02-10 13:32:14 +000078 apex_available: [
Jiyong Parka9d18702020-03-07 16:37:23 +090079 "//apex_available:anyapex",
Przemyslaw Szczepaniak2a2cc702020-02-10 13:32:14 +000080 "//apex_available:platform",
Przemyslaw Szczepaniak2a2cc702020-02-10 13:32:14 +000081 ],
Jiyong Park990e7f42019-06-12 16:25:51 +090082}
83
84cc_library_static {
85 name: "fmtlib_ndk",
Elliott Hughesc2c29c42020-11-03 12:18:33 -080086 defaults: ["fmtlib-non-test-defaults"],
Jiyong Park990e7f42019-06-12 16:25:51 +090087 sdk_version: "current",
88 stl: "c++_static",
89}
Elliott Hughesc2c29c42020-11-03 12:18:33 -080090
91cc_defaults {
92 name: "fmtlib-test-defaults",
93 srcs: [
94 "src/format.cc",
95 "src/os.cc",
96 "test/gtest-extra.cc",
97 "test/util.cc",
98 ],
99 local_include_dirs: ["include"],
100 host_supported: true,
101 test_suites: ["general-tests"],
102 // The tests require exceptions and RTTI.
103 cflags: ["-fexceptions"],
104 rtti: true,
105 // The usual "gtest *and* gmock, please" dance...
106 gtest: false,
107 include_dirs: [
108 "external/googletest/googlemock/include/gmock",
109 "external/googletest/googletest/include/gtest",
110 ],
111 static_libs: [
112 "libgmock",
113 "libgtest",
114 "libgtest_main",
115 ],
116}
117
118// Most of the fmtlib tests.
119cc_test {
120 name: "fmtlib_test",
121 defaults: ["fmtlib-test-defaults"],
122 srcs: [
123 "test/chrono-test.cc",
124 "test/color-test.cc",
125 "test/core-test.cc",
126 "test/format-test.cc",
127 // Some of the os-test tests deliberately try to do bad things with
128 // file descriptors, but Android's fdsan won't let them.
129 // "test/os-test.cc",
130 "test/printf-test.cc",
131 "test/ranges-test.cc",
132 "test/scan-test.cc",
133 ],
134}
135
136// This one needs to be separate because some of the test names overlap with
137// other tests.
138cc_test {
139 name: "fmtlib_ostream_test",
140 defaults: ["fmtlib-test-defaults"],
141 srcs: ["test/ostream-test.cc"],
142}