# # Copyright 2015 Google, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # This is the root build file for GN. GN will start processing by loading this # file, and recursively load all dependencies until all dependencies are either # resolved or known not to exist (which will cause the build to fail). So if # you add a new build file, there must be some path of dependencies from this # file to your new one or GN won't know about it. group("all") { deps = [ ":bluetooth" ] if (use.test) { deps += [ ":bluetooth_tests" ] } } # This pulls in main/BUILD.gn and all of its dependencies. group("bluetooth") { deps = [ "//bt/main:bluetooth", "//bt/main:bluetooth-static", #"//bt/service:bluetoothtbd", ] } if (use.test) { group("bluetooth_tests") { deps = [ "//bt/btcore:net_test_btcore", "//bt/common:bluetooth_test_common", "//bt/profile/avrcp:net_test_avrcp", "//bt/service:bluetoothtbd_test", "//bt/stack:net_test_btm_iso", "//bt/types:net_test_types", #"//bt/packet:net_test_btpackets", ] } } if (host_cpu == target_cpu && host_os == target_os) { group("tools") { deps = [ "//bt/gd/dumpsys/bundler:bluetooth_flatbuffer_bundler", "//bt/gd/packet/parser:bluetooth_packetgen", ] } } if (defined(use.android) && use.android) { group("android_bluetooth_tests") { deps = [ "//bt/device:net_test_device", "//bt/hci:net_test_hci", "//bt/osi:net_test_osi", "//bt/test/suite:net_test_bluetooth", ] } } config("target_defaults") { include_dirs = [ "//bt", "//bt/linux_include", "//bt/types", "//bt/include", # For flatbuffer generated headers "${root_gen_dir}/bt/gd/", "${root_gen_dir}/bt/gd/dumpsys/bundler", ] cflags = [ "-fPIC", "-Wno-non-c-typedef-for-linkage", "-Wno-unreachable-code-return", "-Wno-defaulted-function-deleted", "-Wno-gnu-variable-sized-type-not-at-end", "-Wno-format-nonliteral", "-Wno-inconsistent-missing-override", "-Wno-unreachable-code", "-Wno-range-loop-construct", "-Wno-reorder-init-list", "-Wno-unused-function", "-Wno-unused-result", "-Wno-unused-variable", "-Wno-unused-const-variable", "-Wno-format", "-Wno-pessimizing-move", "-Wno-unknown-warning-option", "-Wno-final-dtor-non-final-class", ] cflags_cc = [ "-std=c++17", ] defines = [ "HAS_NO_BDROID_BUILDCFG", "OS_GENERIC", "OS_LINUX_GENERIC", "TARGET_FLOSS", "USE_LINUX_HCI_SOCKET", "EXPORT_SYMBOL=__attribute__((visibility(\"default\")))", "FALLTHROUGH_INTENDED=[[clang::fallthrough]]", ] # If not configured as a dynamic library, default to static library if (!(defined(use.bt_dynlib) && use.bt_dynlib)) { defines += [ "STATIC_LIBBLUETOOTH", ] } if (!(defined(use.bt_nonstandard_codecs) && use.bt_nonstandard_codecs)) { defines += [ "EXCLUDE_NONSTANDARD_CODECS" ] } configs = [ ":external_libchrome" ] } group("libbt-platform-protos-lite") { deps = [ "//external/proto_logging/stats/enums/bluetooth:libbt-platform-protos-lite", ] } # Configurations to use as dependencies for GN build config("external_gtest") { configs = [ ":pkg_gtest", ":pkg_gmock", ] } config("external_gtest_main") { configs = [ ":pkg_gtest_main" ] } config("external_gmock_main") { configs = [ ":pkg_gmock_main" ] } config("external_libchrome") { configs = [ ":pkg_libchrome" ] } config("external_modp_b64") { configs = [ ":pkg_modp_b64" ] } config("external_tinyxml2") { configs = [ ":pkg_tinyxml2" ] } config("external_flatbuffers") { lib_dirs = [ "${libdir}" ] libs = [ "flatbuffers" ] } # Package configurations to extract dependencies from env pkg_config("pkg_gtest") { pkg_deps = [ "gtest" ] } pkg_config("pkg_gtest_main") { pkg_deps = [ "gtest_main" ] } pkg_config("pkg_gmock") { pkg_deps = [ "gmock" ] } pkg_config("pkg_gmock_main") { pkg_deps = [ "gmock_main" ] } pkg_config("pkg_libchrome") { pkg_deps = [ "libchrome" ] } pkg_config("pkg_modp_b64") { pkg_deps = [ "libmodp_b64" ] } pkg_config("pkg_tinyxml2") { pkg_deps = [ "tinyxml2" ] } # To use non-standard codecs (i.e. ldac, aac, aptx), set this use flag when # building. These codecs may have licensing issues that need to be resolved # first. if (defined(use.bt_nonstandard_codecs) && use.bt_nonstandard_codecs) { config("external_aac") { configs = [ ":pkg_aac" ] } pkg_config("pkg_aac") { pkg_deps = [ "fdk-aac" ] } config("external_libldac") { configs = [ ":pkg_libldacBT_enc", ":pkg_libldacBT_abr", ] } pkg_config("pkg_libldacBT_enc") { pkg_deps = [ "ldacBT-enc" ] } pkg_config("pkg_libldacBT_abr") { pkg_deps = [ "ldacBT-abr" ] } }