blob: 121da4214cdd9eea8cded01c5e1f630f4da28a07 [file] [log] [blame]
Colin Crossfc06bd02016-07-11 14:15:31 -07001//
2// Copyright (C) 2015 The Android Open Source Project
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// http://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
17libbase_cppflags = [
18 "-Wall",
19 "-Wextra",
20 "-Werror",
21]
22
23cc_library {
24 name: "libbase",
25 clang: true,
26 host_supported: true,
27 srcs: [
28 "file.cpp",
29 "logging.cpp",
30 "parsenetaddress.cpp",
Josh Gao0c442562016-09-13 14:50:57 -070031 "quick_exit.cpp",
Colin Crossfc06bd02016-07-11 14:15:31 -070032 "stringprintf.cpp",
33 "strings.cpp",
34 "test_utils.cpp",
35 ],
36 local_include_dirs: ["include"],
37 cppflags: libbase_cppflags,
38 export_include_dirs: ["include"],
39 shared_libs: ["liblog"],
40 target: {
41 android: {
Elliott Hughes1e88c8c2016-09-21 16:53:15 -070042 srcs: [
43 "errors_unix.cpp",
44 "properties.cpp",
James Hawkinse78ea772017-03-24 11:43:02 -070045 "chrono_utils.cpp",
Elliott Hughes1e88c8c2016-09-21 16:53:15 -070046 ],
Colin Crossfc06bd02016-07-11 14:15:31 -070047 cppflags: ["-Wexit-time-destructors"],
Elliott Hughesec46f4e2017-02-14 15:46:33 -080048 sanitize: {
49 misc_undefined: ["integer"],
50 },
James Hawkinse78ea772017-03-24 11:43:02 -070051
Colin Crossfc06bd02016-07-11 14:15:31 -070052 },
53 darwin: {
James Hawkinse78ea772017-03-24 11:43:02 -070054 srcs: [
55 "chrono_utils.cpp",
56 "errors_unix.cpp",
57 ],
Colin Crossfc06bd02016-07-11 14:15:31 -070058 cppflags: ["-Wexit-time-destructors"],
59 },
Dan Willemsenab34b472016-11-29 13:32:55 -080060 linux_bionic: {
James Hawkinse78ea772017-03-24 11:43:02 -070061 srcs: [
62 "chrono_utils.cpp",
63 "errors_unix.cpp",
64 ],
Dan Willemsenab34b472016-11-29 13:32:55 -080065 cppflags: ["-Wexit-time-destructors"],
66 enabled: true,
67 },
Colin Crossfc06bd02016-07-11 14:15:31 -070068 linux: {
James Hawkinse78ea772017-03-24 11:43:02 -070069 srcs: [
70 "chrono_utils.cpp",
71 "errors_unix.cpp",
72 ],
Colin Crossfc06bd02016-07-11 14:15:31 -070073 cppflags: ["-Wexit-time-destructors"],
James Hawkinse78ea772017-03-24 11:43:02 -070074 host_ldlibs: ["-lrt"],
Colin Crossfc06bd02016-07-11 14:15:31 -070075 },
76 windows: {
77 srcs: [
78 "errors_windows.cpp",
79 "utf8.cpp",
80 ],
81 enabled: true,
82 },
83 },
84}
85
86// Tests
87// ------------------------------------------------------------------------------
88cc_test {
89 name: "libbase_test",
90 host_supported: true,
91 clang: true,
92 srcs: [
Elliott Hughes1dbd9762017-02-24 14:02:05 -080093 "endian_test.cpp",
Colin Crossfc06bd02016-07-11 14:15:31 -070094 "errors_test.cpp",
95 "file_test.cpp",
96 "logging_test.cpp",
Yabin Cui997cba42016-10-05 10:54:35 -070097 "parsedouble_test.cpp",
Colin Crossfc06bd02016-07-11 14:15:31 -070098 "parseint_test.cpp",
99 "parsenetaddress_test.cpp",
Josh Gao0c442562016-09-13 14:50:57 -0700100 "quick_exit_test.cpp",
Colin Crossfc06bd02016-07-11 14:15:31 -0700101 "stringprintf_test.cpp",
102 "strings_test.cpp",
103 "test_main.cpp",
104 ],
105 target: {
Elliott Hughes1e88c8c2016-09-21 16:53:15 -0700106 android: {
James Hawkinse78ea772017-03-24 11:43:02 -0700107 srcs: [
108 "chrono_utils_test.cpp",
109 "properties_test.cpp"
110 ],
Elliott Hughesec46f4e2017-02-14 15:46:33 -0800111 sanitize: {
112 misc_undefined: ["integer"],
113 },
Elliott Hughes1e88c8c2016-09-21 16:53:15 -0700114 },
James Hawkinse78ea772017-03-24 11:43:02 -0700115 linux: {
116 srcs: ["chrono_utils_test.cpp"],
117 host_ldlibs: ["-lrt"],
118 },
Colin Crossfc06bd02016-07-11 14:15:31 -0700119 windows: {
120 srcs: ["utf8_test.cpp"],
121 enabled: true,
122 },
123 },
124 local_include_dirs: ["."],
125 cppflags: libbase_cppflags,
126 shared_libs: ["libbase"],
127 compile_multilib: "both",
128 multilib: {
129 lib32: {
130 suffix: "32",
131 },
132 lib64: {
133 suffix: "64",
134 },
135 },
136}