aboutsummaryrefslogtreecommitdiff
path: root/build/Android.bp
blob: ed2bdeb961c2f1bc9757cd80eb3bd662abe4f0f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
bootstrap_go_package {
    name: "soong-fluoride",
    pkgPath: "android/soong/fluoride",
    deps: [
        "blueprint",
        "blueprint-pathtools",
        "soong",
        "soong-android",
        "soong-cc",
    ],
    srcs: [
        "fluoride.go",
    ],
    pluginFor: ["soong_build"],
}

fluoride_defaults {
    name: "libchrome_support_defaults",
    shared_libs: ["libchrome"],
    cflags: [
        "-Wall",
        "-Wextra",
        "-Werror",
    ],
    target: {
        darwin: {
            enabled: false,
        },
    },
}

// Fuzzable defaults are the subset of defaults that are used in fuzzing, which
// requires no shared libraries, and no explicit sanitization.
fluoride_defaults {
    name: "fluoride_types_defaults_fuzzable",
    cflags: [
        "-DEXPORT_SYMBOL=__attribute__((visibility(\"default\")))",
        "-fvisibility=hidden",
        // struct BT_HDR is defined as a variable-size header in a struct.
        "-Wno-gnu-variable-sized-type-not-at-end",
        // there are too many unused parameters in all the code.
        "-Wno-unused-parameter",
        "-DLOG_NDEBUG=1",
    ],
    conlyflags: [
        "-std=c99",
    ],
    product_variables: {
        debuggable: {
            cflags: [
                "-DBLUEDROID_DEBUG",
            ],
        },
    },
}

fluoride_defaults {
    name: "fluoride_types_defaults",
    defaults: [
        "fluoride_types_defaults_fuzzable",
        "libchrome_support_defaults"
    ],
}

fluoride_defaults {
    name: "fluoride_defaults_fuzzable",
    target: {
        android: {
            test_config_template: ":BluetoothTestConfigTemplate",
        },
    },
    defaults: ["fluoride_types_defaults_fuzzable"],
    header_libs: ["libbluetooth_headers"],
    static_libs: [
        "libbluetooth-types",
        "libbt-platform-protos-lite",
    ],
    cpp_std: "c++17",
    sanitize: {
        misc_undefined: ["bounds"],
    },
}

fluoride_defaults {
    name: "fluoride_defaults",
    defaults: ["fluoride_defaults_fuzzable", "fluoride_types_defaults"],
    shared_libs: ["libstatslog"],
    sanitize: {
        misc_undefined: ["bounds"],
    },
    static_libs: [
        "libbluetooth_gd",
        "libbluetooth_rust_interop",
        "libbt_shim_ffi",
        "libcxxbridge05",
    ],
    target: {
        darwin: {
            // libstatslog -> libbinder doesn't build on mac
            enabled: false,
        },
    },
}

// Enables code coverage for a set of source files. Must be combined with
// "clang_coverage_bin" in order to work. See //test/gen_coverage.py for more information
// on generating code coverage.
cc_defaults {
    name: "clang_file_coverage",
    target: {
        host: {
            clang_cflags: [
                "-fprofile-instr-generate",
                "-fcoverage-mapping",
            ],
        },
    },
}

// Enabled code coverage on a binary. These flags allow libraries that were
// compiled with "clang_file_coverage" to be properly linked together in
// order to create a binary that will create a profraw file when ran. Note
// these flags themselves don't enable code coverage for the source files
// compiled in the binary. See //test/gen_coverage.py for more information
// on generating code coverage.
cc_defaults {
    name: "clang_coverage_bin",
    target: {
        host: {
            ldflags: [
                "-fprofile-instr-generate",
                "-fcoverage-mapping",
            ],
        },
    },
}