xref: /aosp_15_r20/external/capstone/Android.bp (revision 9a0e4156d50a75a99ec4f1653a0e9602a5d45c18)
1*9a0e4156SSadaf Ebrahimipackage {
2*9a0e4156SSadaf Ebrahimi    default_applicable_licenses: ["external_capstone_license"],
3*9a0e4156SSadaf Ebrahimi}
4*9a0e4156SSadaf Ebrahimi
5*9a0e4156SSadaf Ebrahimi// Added automatically by a large-scale-change that took the approach of
6*9a0e4156SSadaf Ebrahimi// 'apply every license found to every target'. While this makes sure we respect
7*9a0e4156SSadaf Ebrahimi// every license restriction, it may not be entirely correct.
8*9a0e4156SSadaf Ebrahimi//
9*9a0e4156SSadaf Ebrahimi// e.g. GPL in an MIT project might only apply to the contrib/ directory.
10*9a0e4156SSadaf Ebrahimi//
11*9a0e4156SSadaf Ebrahimi// Please consider splitting the single license below into multiple licenses,
12*9a0e4156SSadaf Ebrahimi// taking care not to lose any license_kind information, and overriding the
13*9a0e4156SSadaf Ebrahimi// default license using the 'licenses: [...]' property on targets as needed.
14*9a0e4156SSadaf Ebrahimi//
15*9a0e4156SSadaf Ebrahimi// For unused files, consider creating a 'fileGroup' with "//visibility:private"
16*9a0e4156SSadaf Ebrahimi// to attach the license to, and including a comment whether the files may be
17*9a0e4156SSadaf Ebrahimi// used in the current project.
18*9a0e4156SSadaf Ebrahimi//
19*9a0e4156SSadaf Ebrahimi// large-scale-change included anything that looked like it might be a license
20*9a0e4156SSadaf Ebrahimi// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
21*9a0e4156SSadaf Ebrahimi//
22*9a0e4156SSadaf Ebrahimi// Please consider removing redundant or irrelevant files from 'license_text:'.
23*9a0e4156SSadaf Ebrahimi// See: http://go/android-license-faq
24*9a0e4156SSadaf Ebrahimilicense {
25*9a0e4156SSadaf Ebrahimi    name: "external_capstone_license",
26*9a0e4156SSadaf Ebrahimi    visibility: [":__subpackages__"],
27*9a0e4156SSadaf Ebrahimi    license_kinds: [
28*9a0e4156SSadaf Ebrahimi        "SPDX-license-identifier-APSL-2.0",
29*9a0e4156SSadaf Ebrahimi        "SPDX-license-identifier-BSD",
30*9a0e4156SSadaf Ebrahimi        "SPDX-license-identifier-MIT",
31*9a0e4156SSadaf Ebrahimi        "SPDX-license-identifier-NCSA",
32*9a0e4156SSadaf Ebrahimi    ],
33*9a0e4156SSadaf Ebrahimi    license_text: [
34*9a0e4156SSadaf Ebrahimi        "LICENSE",
35*9a0e4156SSadaf Ebrahimi        "LICENSE.TXT",
36*9a0e4156SSadaf Ebrahimi        "LICENSE_LLVM.TXT",
37*9a0e4156SSadaf Ebrahimi    ],
38*9a0e4156SSadaf Ebrahimi}
39*9a0e4156SSadaf Ebrahimi
40*9a0e4156SSadaf Ebrahimiarm_flags = ["-DCAPSTONE_HAS_ARM"]
41*9a0e4156SSadaf Ebrahimiarm_srcs = [
42*9a0e4156SSadaf Ebrahimi    "arch/ARM/ARMDisassembler.c",
43*9a0e4156SSadaf Ebrahimi    "arch/ARM/ARMInstPrinter.c",
44*9a0e4156SSadaf Ebrahimi    "arch/ARM/ARMMapping.c",
45*9a0e4156SSadaf Ebrahimi    "arch/ARM/ARMModule.c",
46*9a0e4156SSadaf Ebrahimi]
47*9a0e4156SSadaf Ebrahimi
48*9a0e4156SSadaf Ebrahimiarm64_flags = ["-DCAPSTONE_HAS_ARM64"]
49*9a0e4156SSadaf Ebrahimiarm64_srcs = [
50*9a0e4156SSadaf Ebrahimi    "arch/AArch64/AArch64BaseInfo.c",
51*9a0e4156SSadaf Ebrahimi    "arch/AArch64/AArch64Disassembler.c",
52*9a0e4156SSadaf Ebrahimi    "arch/AArch64/AArch64InstPrinter.c",
53*9a0e4156SSadaf Ebrahimi    "arch/AArch64/AArch64Mapping.c",
54*9a0e4156SSadaf Ebrahimi    "arch/AArch64/AArch64Module.c",
55*9a0e4156SSadaf Ebrahimi]
56*9a0e4156SSadaf Ebrahimi
57*9a0e4156SSadaf Ebrahimix86_flags = ["-DCAPSTONE_HAS_X86"]
58*9a0e4156SSadaf Ebrahimix86_srcs = [
59*9a0e4156SSadaf Ebrahimi    "arch/X86/X86DisassemblerDecoder.c",
60*9a0e4156SSadaf Ebrahimi    "arch/X86/X86Disassembler.c",
61*9a0e4156SSadaf Ebrahimi    "arch/X86/X86IntelInstPrinter.c",
62*9a0e4156SSadaf Ebrahimi    "arch/X86/X86ATTInstPrinter.c",
63*9a0e4156SSadaf Ebrahimi    "arch/X86/X86Mapping.c",
64*9a0e4156SSadaf Ebrahimi    "arch/X86/X86Module.c",
65*9a0e4156SSadaf Ebrahimi]
66*9a0e4156SSadaf Ebrahimi
67*9a0e4156SSadaf Ebrahimicc_defaults {
68*9a0e4156SSadaf Ebrahimi    name: "capstone-defaults",
69*9a0e4156SSadaf Ebrahimi    srcs: [
70*9a0e4156SSadaf Ebrahimi        "cs.c",
71*9a0e4156SSadaf Ebrahimi        "utils.c",
72*9a0e4156SSadaf Ebrahimi        "SStream.c",
73*9a0e4156SSadaf Ebrahimi        "MCInstrDesc.c",
74*9a0e4156SSadaf Ebrahimi        "MCRegisterInfo.c",
75*9a0e4156SSadaf Ebrahimi        "MCInst.c",
76*9a0e4156SSadaf Ebrahimi    ],
77*9a0e4156SSadaf Ebrahimi    cflags: [
78*9a0e4156SSadaf Ebrahimi        "-Wall",
79*9a0e4156SSadaf Ebrahimi        "-Werror",
80*9a0e4156SSadaf Ebrahimi        "-Wno-unused-parameter",
81*9a0e4156SSadaf Ebrahimi        "-Wno-missing-field-initializers",
82*9a0e4156SSadaf Ebrahimi        "-DCAPSTONE_USE_SYS_DYN_MEM",
83*9a0e4156SSadaf Ebrahimi    ],
84*9a0e4156SSadaf Ebrahimi    export_include_dirs: [
85*9a0e4156SSadaf Ebrahimi        ".",
86*9a0e4156SSadaf Ebrahimi        "include",
87*9a0e4156SSadaf Ebrahimi    ],
88*9a0e4156SSadaf Ebrahimi
89*9a0e4156SSadaf Ebrahimi    arch: {
90*9a0e4156SSadaf Ebrahimi        arm: {
91*9a0e4156SSadaf Ebrahimi            cflags: arm_flags,
92*9a0e4156SSadaf Ebrahimi            srcs: arm_srcs,
93*9a0e4156SSadaf Ebrahimi        },
94*9a0e4156SSadaf Ebrahimi        x86: {
95*9a0e4156SSadaf Ebrahimi            cflags: arm_flags + arm64_flags + x86_flags,
96*9a0e4156SSadaf Ebrahimi            srcs: arm_srcs + arm64_srcs + x86_srcs,
97*9a0e4156SSadaf Ebrahimi        },
98*9a0e4156SSadaf Ebrahimi        x86_64: {
99*9a0e4156SSadaf Ebrahimi            cflags: arm_flags + arm64_flags + x86_flags,
100*9a0e4156SSadaf Ebrahimi            srcs: arm_srcs + arm64_srcs + x86_srcs,
101*9a0e4156SSadaf Ebrahimi        },
102*9a0e4156SSadaf Ebrahimi        arm64: {
103*9a0e4156SSadaf Ebrahimi            cflags: arm_flags + arm64_flags,
104*9a0e4156SSadaf Ebrahimi            srcs: arm_srcs + arm64_srcs,
105*9a0e4156SSadaf Ebrahimi        },
106*9a0e4156SSadaf Ebrahimi    },
107*9a0e4156SSadaf Ebrahimi}
108*9a0e4156SSadaf Ebrahimi
109*9a0e4156SSadaf Ebrahimi// For the host and device platform
110*9a0e4156SSadaf Ebrahimi// =====================================================
111*9a0e4156SSadaf Ebrahimi
112*9a0e4156SSadaf Ebrahimicc_library {
113*9a0e4156SSadaf Ebrahimi    name: "libcapstone",
114*9a0e4156SSadaf Ebrahimi    host_supported: true,
115*9a0e4156SSadaf Ebrahimi    defaults: ["capstone-defaults"],
116*9a0e4156SSadaf Ebrahimi}
117