2 # Copyright 2015 Google, Inc.
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:
8 # http://www.apache.org/licenses/LICENSE-2.0
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.
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.
24 deps = [ ":bluetooth" ]
27 deps += [ ":bluetooth_tests" ]
31 # This pulls in main/BUILD.gn and all of its dependencies.
34 "//bt/main:bluetooth",
35 "//bt/main:bluetooth-static",
36 #"//bt/service:bluetoothtbd",
41 group("bluetooth_tests") {
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",
50 #"//bt/packet:net_test_btpackets",
55 if (host_cpu == target_cpu && host_os == target_os) {
58 "//bt/gd/dumpsys/bundler:bluetooth_flatbuffer_bundler",
59 "//bt/gd/packet/parser:bluetooth_packetgen",
64 if (defined(use.android) && use.android) {
65 group("android_bluetooth_tests") {
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",
75 config("target_defaults") {
82 # For flatbuffer generated headers
83 "${root_gen_dir}/bt/gd/",
84 "${root_gen_dir}/bt/gd/dumpsys/bundler",
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",
100 "-Wno-unused-variable",
101 "-Wno-unused-const-variable",
103 "-Wno-pessimizing-move",
104 "-Wno-unknown-warning-option",
105 "-Wno-final-dtor-non-final-class",
113 "HAS_NO_BDROID_BUILDCFG",
117 "USE_LINUX_HCI_SOCKET",
118 "EXPORT_SYMBOL=__attribute__((visibility(\"default\")))",
119 "FALLTHROUGH_INTENDED=[[clang::fallthrough]]",
122 # If not configured as a dynamic library, default to static library
123 if (!(defined(use.bt_dynlib) && use.bt_dynlib)) {
125 "STATIC_LIBBLUETOOTH",
129 if (!(defined(use.bt_nonstandard_codecs) && use.bt_nonstandard_codecs)) {
130 defines += [ "EXCLUDE_NONSTANDARD_CODECS" ]
133 configs = [ ":external_libchrome" ]
136 group("libbt-platform-protos-lite") {
138 "//external/proto_logging/stats/enums/bluetooth:libbt-platform-protos-lite",
142 # Configurations to use as dependencies for GN build
143 config("external_gtest") {
150 config("external_gtest_main") {
151 configs = [ ":pkg_gtest_main" ]
154 config("external_gmock_main") {
155 configs = [ ":pkg_gmock_main" ]
158 config("external_libchrome") {
159 configs = [ ":pkg_libchrome" ]
162 config("external_modp_b64") {
163 configs = [ ":pkg_modp_b64" ]
166 config("external_tinyxml2") {
167 configs = [ ":pkg_tinyxml2" ]
170 config("external_flatbuffers") {
171 lib_dirs = [ "${libdir}" ]
173 libs = [ "flatbuffers" ]
176 # Package configurations to extract dependencies from env
177 pkg_config("pkg_gtest") {
178 pkg_deps = [ "gtest" ]
181 pkg_config("pkg_gtest_main") {
182 pkg_deps = [ "gtest_main" ]
185 pkg_config("pkg_gmock") {
186 pkg_deps = [ "gmock" ]
189 pkg_config("pkg_gmock_main") {
190 pkg_deps = [ "gmock_main" ]
193 pkg_config("pkg_libchrome") {
194 pkg_deps = [ "libchrome" ]
197 pkg_config("pkg_modp_b64") {
198 pkg_deps = [ "libmodp_b64" ]
201 pkg_config("pkg_tinyxml2") {
202 pkg_deps = [ "tinyxml2" ]
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
208 if (defined(use.bt_nonstandard_codecs) && use.bt_nonstandard_codecs) {
209 config("external_aac") {
210 configs = [ ":pkg_aac" ]
213 pkg_config("pkg_aac") {
214 pkg_deps = [ "fdk-aac" ]
217 config("external_libldac") {
219 ":pkg_libldacBT_enc",
220 ":pkg_libldacBT_abr",
224 pkg_config("pkg_libldacBT_enc") {
225 pkg_deps = [ "ldacBT-enc" ]
228 pkg_config("pkg_libldacBT_abr") {
229 pkg_deps = [ "ldacBT-abr" ]