OSDN Git Service

Merge "Disable sniff in link policy before a2dp streaming" into sc-v2-dev
[android-x86/system-bt.git] / BUILD.gn
1 #
2 #  Copyright 2015 Google, Inc.
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
17 # This is the root build file for GN. GN will start processing by loading this
18 # file, and recursively load all dependencies until all dependencies are either
19 # resolved or known not to exist (which will cause the build to fail). So if
20 # you add a new build file, there must be some path of dependencies from this
21 # file to your new one or GN won't know about it.
22
23 group("all") {
24   deps = [ ":bluetooth" ]
25
26   if (use.test) {
27     deps += [ ":bluetooth_tests" ]
28   }
29 }
30
31 # This pulls in main/BUILD.gn and all of its dependencies.
32 group("bluetooth") {
33   deps = [
34     "//bt/main:bluetooth",
35     "//bt/main:bluetooth-static",
36     #"//bt/service:bluetoothtbd",
37   ]
38 }
39
40 if (use.test) {
41   group("bluetooth_tests") {
42     deps = [
43       "//bt/btcore:net_test_btcore",
44       "//bt/common:bluetooth_test_common",
45       "//bt/profile/avrcp:net_test_avrcp",
46       "//bt/service:bluetoothtbd_test",
47       "//bt/stack:net_test_btm_iso",
48       "//bt/types:net_test_types",
49
50       #"//bt/packet:net_test_btpackets",
51     ]
52   }
53 }
54
55 if (host_cpu == target_cpu && host_os == target_os) {
56   group("tools") {
57     deps = [
58       "//bt/gd/dumpsys/bundler:bluetooth_flatbuffer_bundler",
59       "//bt/gd/packet/parser:bluetooth_packetgen",
60     ]
61   }
62 }
63
64 if (defined(use.android) && use.android) {
65   group("android_bluetooth_tests") {
66     deps = [
67       "//bt/device:net_test_device",
68       "//bt/hci:net_test_hci",
69       "//bt/osi:net_test_osi",
70       "//bt/test/suite:net_test_bluetooth",
71     ]
72   }
73 }
74
75 config("target_defaults") {
76   include_dirs = [
77     "//bt",
78     "//bt/linux_include",
79     "//bt/types",
80     "//bt/include",
81
82     # For flatbuffer generated headers
83     "${root_gen_dir}/bt/gd/",
84     "${root_gen_dir}/bt/gd/dumpsys/bundler",
85   ]
86
87   cflags = [
88     "-fPIC",
89     "-Wno-non-c-typedef-for-linkage",
90     "-Wno-unreachable-code-return",
91     "-Wno-defaulted-function-deleted",
92     "-Wno-gnu-variable-sized-type-not-at-end",
93     "-Wno-format-nonliteral",
94     "-Wno-inconsistent-missing-override",
95     "-Wno-unreachable-code",
96     "-Wno-range-loop-construct",
97     "-Wno-reorder-init-list",
98     "-Wno-unused-function",
99     "-Wno-unused-result",
100     "-Wno-unused-variable",
101     "-Wno-unused-const-variable",
102     "-Wno-format",
103     "-Wno-pessimizing-move",
104     "-Wno-unknown-warning-option",
105     "-Wno-final-dtor-non-final-class",
106   ]
107
108   cflags_cc = [
109     "-std=c++17",
110   ]
111
112   defines = [
113     "HAS_NO_BDROID_BUILDCFG",
114     "OS_GENERIC",
115     "OS_LINUX_GENERIC",
116     "TARGET_FLOSS",
117     "USE_LINUX_HCI_SOCKET",
118     "EXPORT_SYMBOL=__attribute__((visibility(\"default\")))",
119     "FALLTHROUGH_INTENDED=[[clang::fallthrough]]",
120   ]
121
122   # If not configured as a dynamic library, default to static library
123   if (!(defined(use.bt_dynlib) && use.bt_dynlib)) {
124     defines += [
125       "STATIC_LIBBLUETOOTH",
126     ]
127   }
128
129   if (!(defined(use.bt_nonstandard_codecs) && use.bt_nonstandard_codecs)) {
130     defines += [ "EXCLUDE_NONSTANDARD_CODECS" ]
131   }
132
133   configs = [ ":external_libchrome" ]
134 }
135
136 group("libbt-platform-protos-lite") {
137   deps = [
138     "//external/proto_logging/stats/enums/bluetooth:libbt-platform-protos-lite",
139   ]
140 }
141
142 # Configurations to use as dependencies for GN build
143 config("external_gtest") {
144   configs = [
145     ":pkg_gtest",
146     ":pkg_gmock",
147   ]
148 }
149
150 config("external_gtest_main") {
151   configs = [ ":pkg_gtest_main" ]
152 }
153
154 config("external_gmock_main") {
155   configs = [ ":pkg_gmock_main" ]
156 }
157
158 config("external_libchrome") {
159   configs = [ ":pkg_libchrome" ]
160 }
161
162 config("external_modp_b64") {
163   configs = [ ":pkg_modp_b64" ]
164 }
165
166 config("external_tinyxml2") {
167   configs = [ ":pkg_tinyxml2" ]
168 }
169
170 config("external_flatbuffers") {
171   lib_dirs = [ "${libdir}" ]
172
173   libs = [ "flatbuffers" ]
174 }
175
176 # Package configurations to extract dependencies from env
177 pkg_config("pkg_gtest") {
178   pkg_deps = [ "gtest" ]
179 }
180
181 pkg_config("pkg_gtest_main") {
182   pkg_deps = [ "gtest_main" ]
183 }
184
185 pkg_config("pkg_gmock") {
186   pkg_deps = [ "gmock" ]
187 }
188
189 pkg_config("pkg_gmock_main") {
190   pkg_deps = [ "gmock_main" ]
191 }
192
193 pkg_config("pkg_libchrome") {
194   pkg_deps = [ "libchrome" ]
195 }
196
197 pkg_config("pkg_modp_b64") {
198   pkg_deps = [ "libmodp_b64" ]
199 }
200
201 pkg_config("pkg_tinyxml2") {
202   pkg_deps = [ "tinyxml2" ]
203 }
204
205 # To use non-standard codecs (i.e. ldac, aac, aptx), set this use flag when
206 # building. These codecs may have licensing issues that need to be resolved
207 # first.
208 if (defined(use.bt_nonstandard_codecs) && use.bt_nonstandard_codecs) {
209   config("external_aac") {
210     configs = [ ":pkg_aac" ]
211   }
212
213   pkg_config("pkg_aac") {
214     pkg_deps = [ "fdk-aac" ]
215   }
216
217   config("external_libldac") {
218     configs = [
219       ":pkg_libldacBT_enc",
220       ":pkg_libldacBT_abr",
221     ]
222   }
223
224   pkg_config("pkg_libldacBT_enc") {
225     pkg_deps = [ "ldacBT-enc" ]
226   }
227
228   pkg_config("pkg_libldacBT_abr") {
229     pkg_deps = [ "ldacBT-abr" ]
230   }
231 }