xref: /aosp_15_r20/frameworks/rs/support.bp (revision e1eccf28f96817838ad6867f7f39d2351ec11f56)
1*e1eccf28SAndroid Build Coastguard Workercc_defaults {
2*e1eccf28SAndroid Build Coastguard Worker    name: "rs_support_defaults",
3*e1eccf28SAndroid Build Coastguard Worker    product_variables: {
4*e1eccf28SAndroid Build Coastguard Worker        unbundled_build: {
5*e1eccf28SAndroid Build Coastguard Worker            // Unbundled builds use prebuilts in prebuilts/sdk/renderscript instead
6*e1eccf28SAndroid Build Coastguard Worker            enabled: false,
7*e1eccf28SAndroid Build Coastguard Worker        },
8*e1eccf28SAndroid Build Coastguard Worker    },
9*e1eccf28SAndroid Build Coastguard Worker    cflags: [
10*e1eccf28SAndroid Build Coastguard Worker        "-Wno-deprecated-declarations",
11*e1eccf28SAndroid Build Coastguard Worker    ],
12*e1eccf28SAndroid Build Coastguard Worker}
13*e1eccf28SAndroid Build Coastguard Worker
14*e1eccf28SAndroid Build Coastguard Worker// Generate custom headers
15*e1eccf28SAndroid Build Coastguard Workergensrcs {
16*e1eccf28SAndroid Build Coastguard Worker    name: "rs_generated_headers_support",
17*e1eccf28SAndroid Build Coastguard Worker    tools: ["rsg-generator"],
18*e1eccf28SAndroid Build Coastguard Worker    tool_files: [
19*e1eccf28SAndroid Build Coastguard Worker        "rs.spec",
20*e1eccf28SAndroid Build Coastguard Worker        "rs_compat.spec",
21*e1eccf28SAndroid Build Coastguard Worker    ],
22*e1eccf28SAndroid Build Coastguard Worker    cmd: "cat $(location rs.spec) $(location rs_compat.spec) | $(location rsg-generator) $(in) $(out)",
23*e1eccf28SAndroid Build Coastguard Worker    output_extension: "h",
24*e1eccf28SAndroid Build Coastguard Worker    srcs: [
25*e1eccf28SAndroid Build Coastguard Worker        "rsgApiStructs.h_rsg",
26*e1eccf28SAndroid Build Coastguard Worker        "rsgApiFuncDecl.h_rsg",
27*e1eccf28SAndroid Build Coastguard Worker    ],
28*e1eccf28SAndroid Build Coastguard Worker    export_include_dirs: ["."],
29*e1eccf28SAndroid Build Coastguard Worker}
30*e1eccf28SAndroid Build Coastguard Worker
31*e1eccf28SAndroid Build Coastguard Workergensrcs {
32*e1eccf28SAndroid Build Coastguard Worker    name: "rs_generated_sources_support",
33*e1eccf28SAndroid Build Coastguard Worker    tools: ["rsg-generator"],
34*e1eccf28SAndroid Build Coastguard Worker    tool_files: [
35*e1eccf28SAndroid Build Coastguard Worker        "rs.spec",
36*e1eccf28SAndroid Build Coastguard Worker        "rs_compat.spec",
37*e1eccf28SAndroid Build Coastguard Worker    ],
38*e1eccf28SAndroid Build Coastguard Worker    cmd: "cat $(location rs.spec) $(location rs_compat.spec) | $(location rsg-generator) $(in) $(out)",
39*e1eccf28SAndroid Build Coastguard Worker    output_extension: "cpp",
40*e1eccf28SAndroid Build Coastguard Worker    srcs: [
41*e1eccf28SAndroid Build Coastguard Worker        "rsgApi.cpp_rsg",
42*e1eccf28SAndroid Build Coastguard Worker        "rsgApiReplay.cpp_rsg",
43*e1eccf28SAndroid Build Coastguard Worker    ],
44*e1eccf28SAndroid Build Coastguard Worker}
45*e1eccf28SAndroid Build Coastguard Worker
46*e1eccf28SAndroid Build Coastguard Workercc_defaults {
47*e1eccf28SAndroid Build Coastguard Worker    name: "libRSSupport_defaults",
48*e1eccf28SAndroid Build Coastguard Worker    defaults: ["rs_support_defaults"],
49*e1eccf28SAndroid Build Coastguard Worker    srcs: [
50*e1eccf28SAndroid Build Coastguard Worker        "rsAllocation.cpp",
51*e1eccf28SAndroid Build Coastguard Worker        "rsApiAllocation.cpp",
52*e1eccf28SAndroid Build Coastguard Worker        "rsApiContext.cpp",
53*e1eccf28SAndroid Build Coastguard Worker        "rsApiDevice.cpp",
54*e1eccf28SAndroid Build Coastguard Worker        "rsApiElement.cpp",
55*e1eccf28SAndroid Build Coastguard Worker        "rsApiType.cpp",
56*e1eccf28SAndroid Build Coastguard Worker        "rsClosure.cpp",
57*e1eccf28SAndroid Build Coastguard Worker        "rsComponent.cpp",
58*e1eccf28SAndroid Build Coastguard Worker        "rsContext.cpp",
59*e1eccf28SAndroid Build Coastguard Worker        "rsCppUtils.cpp",
60*e1eccf28SAndroid Build Coastguard Worker        "rsDevice.cpp",
61*e1eccf28SAndroid Build Coastguard Worker        "rsDriverLoader.cpp",
62*e1eccf28SAndroid Build Coastguard Worker        "rsElement.cpp",
63*e1eccf28SAndroid Build Coastguard Worker        "rsFifoSocket.cpp",
64*e1eccf28SAndroid Build Coastguard Worker        "rsObjectBase.cpp",
65*e1eccf28SAndroid Build Coastguard Worker        "rsMatrix2x2.cpp",
66*e1eccf28SAndroid Build Coastguard Worker        "rsMatrix3x3.cpp",
67*e1eccf28SAndroid Build Coastguard Worker        "rsMatrix4x4.cpp",
68*e1eccf28SAndroid Build Coastguard Worker        "rsMutex.cpp",
69*e1eccf28SAndroid Build Coastguard Worker        "rsSampler.cpp",
70*e1eccf28SAndroid Build Coastguard Worker        "rsScript.cpp",
71*e1eccf28SAndroid Build Coastguard Worker        "rsScriptC.cpp",
72*e1eccf28SAndroid Build Coastguard Worker        "rsScriptC_Lib.cpp",
73*e1eccf28SAndroid Build Coastguard Worker        "rsScriptGroup.cpp",
74*e1eccf28SAndroid Build Coastguard Worker        "rsScriptGroup2.cpp",
75*e1eccf28SAndroid Build Coastguard Worker        "rsScriptIntrinsic.cpp",
76*e1eccf28SAndroid Build Coastguard Worker        "rsSignal.cpp",
77*e1eccf28SAndroid Build Coastguard Worker        "rsStream.cpp",
78*e1eccf28SAndroid Build Coastguard Worker        "rsThreadIO.cpp",
79*e1eccf28SAndroid Build Coastguard Worker        "rsType.cpp",
80*e1eccf28SAndroid Build Coastguard Worker        "driver/rsdAllocation.cpp",
81*e1eccf28SAndroid Build Coastguard Worker        "driver/rsdBcc.cpp",
82*e1eccf28SAndroid Build Coastguard Worker        "driver/rsdCore.cpp",
83*e1eccf28SAndroid Build Coastguard Worker        "driver/rsdElement.cpp",
84*e1eccf28SAndroid Build Coastguard Worker        "driver/rsdRuntimeStubs.cpp",
85*e1eccf28SAndroid Build Coastguard Worker        "driver/rsdSampler.cpp",
86*e1eccf28SAndroid Build Coastguard Worker        "driver/rsdScriptGroup.cpp",
87*e1eccf28SAndroid Build Coastguard Worker        "driver/rsdType.cpp",
88*e1eccf28SAndroid Build Coastguard Worker        "cpu_ref/rsCpuCore.cpp",
89*e1eccf28SAndroid Build Coastguard Worker        "cpu_ref/rsCpuExecutable.cpp",
90*e1eccf28SAndroid Build Coastguard Worker        "cpu_ref/rsCpuScript.cpp",
91*e1eccf28SAndroid Build Coastguard Worker        "cpu_ref/rsCpuRuntimeMath.cpp",
92*e1eccf28SAndroid Build Coastguard Worker        "cpu_ref/rsCpuScriptGroup.cpp",
93*e1eccf28SAndroid Build Coastguard Worker        "cpu_ref/rsCpuScriptGroup2.cpp",
94*e1eccf28SAndroid Build Coastguard Worker        "cpu_ref/rsCpuIntrinsic.cpp",
95*e1eccf28SAndroid Build Coastguard Worker        "cpu_ref/rsCpuIntrinsic3DLUT.cpp",
96*e1eccf28SAndroid Build Coastguard Worker        "cpu_ref/rsCpuIntrinsicBlend.cpp",
97*e1eccf28SAndroid Build Coastguard Worker        "cpu_ref/rsCpuIntrinsicBlur.cpp",
98*e1eccf28SAndroid Build Coastguard Worker        "cpu_ref/rsCpuIntrinsicBLAS.cpp",
99*e1eccf28SAndroid Build Coastguard Worker        "cpu_ref/rsCpuIntrinsicColorMatrix.cpp",
100*e1eccf28SAndroid Build Coastguard Worker        "cpu_ref/rsCpuIntrinsicConvolve3x3.cpp",
101*e1eccf28SAndroid Build Coastguard Worker        "cpu_ref/rsCpuIntrinsicConvolve5x5.cpp",
102*e1eccf28SAndroid Build Coastguard Worker        "cpu_ref/rsCpuIntrinsicHistogram.cpp",
103*e1eccf28SAndroid Build Coastguard Worker        "cpu_ref/rsCpuIntrinsicLUT.cpp",
104*e1eccf28SAndroid Build Coastguard Worker        "cpu_ref/rsCpuIntrinsicResize.cpp",
105*e1eccf28SAndroid Build Coastguard Worker        "cpu_ref/rsCpuIntrinsicYuvToRGB.cpp",
106*e1eccf28SAndroid Build Coastguard Worker    ],
107*e1eccf28SAndroid Build Coastguard Worker
108*e1eccf28SAndroid Build Coastguard Worker    generated_sources: ["rs_generated_sources_support"],
109*e1eccf28SAndroid Build Coastguard Worker    generated_headers: ["rs_generated_headers_support"],
110*e1eccf28SAndroid Build Coastguard Worker
111*e1eccf28SAndroid Build Coastguard Worker    arch: {
112*e1eccf28SAndroid Build Coastguard Worker        arm: {
113*e1eccf28SAndroid Build Coastguard Worker            cflags: [
114*e1eccf28SAndroid Build Coastguard Worker                "-DARCH_ARM_HAVE_NEON",
115*e1eccf28SAndroid Build Coastguard Worker                "-DARCH_ARM_HAVE_VFP",
116*e1eccf28SAndroid Build Coastguard Worker                "-DARCH_ARM_USE_INTRINSICS",
117*e1eccf28SAndroid Build Coastguard Worker            ],
118*e1eccf28SAndroid Build Coastguard Worker            srcs: [
119*e1eccf28SAndroid Build Coastguard Worker                "cpu_ref/rsCpuIntrinsics_neon_3DLUT.S",
120*e1eccf28SAndroid Build Coastguard Worker                "cpu_ref/rsCpuIntrinsics_neon_Blend.S",
121*e1eccf28SAndroid Build Coastguard Worker                "cpu_ref/rsCpuIntrinsics_neon_Blur.S",
122*e1eccf28SAndroid Build Coastguard Worker                "cpu_ref/rsCpuIntrinsics_neon_ColorMatrix.S",
123*e1eccf28SAndroid Build Coastguard Worker                "cpu_ref/rsCpuIntrinsics_neon_Convolve.S",
124*e1eccf28SAndroid Build Coastguard Worker                "cpu_ref/rsCpuIntrinsics_neon_Resize.S",
125*e1eccf28SAndroid Build Coastguard Worker                "cpu_ref/rsCpuIntrinsics_neon_YuvToRGB.S",
126*e1eccf28SAndroid Build Coastguard Worker            ],
127*e1eccf28SAndroid Build Coastguard Worker        },
128*e1eccf28SAndroid Build Coastguard Worker
129*e1eccf28SAndroid Build Coastguard Worker        arm64: {
130*e1eccf28SAndroid Build Coastguard Worker            cflags: [
131*e1eccf28SAndroid Build Coastguard Worker                "-DARCH_ARM_USE_INTRINSICS",
132*e1eccf28SAndroid Build Coastguard Worker                "-DARCH_ARM64_USE_INTRINSICS",
133*e1eccf28SAndroid Build Coastguard Worker                "-DARCH_ARM64_HAVE_NEON",
134*e1eccf28SAndroid Build Coastguard Worker            ],
135*e1eccf28SAndroid Build Coastguard Worker            srcs: [
136*e1eccf28SAndroid Build Coastguard Worker                "cpu_ref/rsCpuIntrinsics_advsimd_3DLUT.S",
137*e1eccf28SAndroid Build Coastguard Worker                "cpu_ref/rsCpuIntrinsics_advsimd_Blend.S",
138*e1eccf28SAndroid Build Coastguard Worker                "cpu_ref/rsCpuIntrinsics_advsimd_Blur.S",
139*e1eccf28SAndroid Build Coastguard Worker                "cpu_ref/rsCpuIntrinsics_advsimd_ColorMatrix.S",
140*e1eccf28SAndroid Build Coastguard Worker                "cpu_ref/rsCpuIntrinsics_advsimd_Convolve.S",
141*e1eccf28SAndroid Build Coastguard Worker                "cpu_ref/rsCpuIntrinsics_advsimd_Resize.S",
142*e1eccf28SAndroid Build Coastguard Worker                "cpu_ref/rsCpuIntrinsics_advsimd_YuvToRGB.S",
143*e1eccf28SAndroid Build Coastguard Worker            ],
144*e1eccf28SAndroid Build Coastguard Worker        },
145*e1eccf28SAndroid Build Coastguard Worker
146*e1eccf28SAndroid Build Coastguard Worker        x86: {
147*e1eccf28SAndroid Build Coastguard Worker            cflags: ["-DARCH_X86_HAVE_SSSE3"],
148*e1eccf28SAndroid Build Coastguard Worker            srcs: ["cpu_ref/rsCpuIntrinsics_x86.cpp"],
149*e1eccf28SAndroid Build Coastguard Worker        },
150*e1eccf28SAndroid Build Coastguard Worker
151*e1eccf28SAndroid Build Coastguard Worker        x86_64: {
152*e1eccf28SAndroid Build Coastguard Worker            cflags: ["-DARCH_X86_HAVE_SSSE3"],
153*e1eccf28SAndroid Build Coastguard Worker            srcs: ["cpu_ref/rsCpuIntrinsics_x86.cpp"],
154*e1eccf28SAndroid Build Coastguard Worker        },
155*e1eccf28SAndroid Build Coastguard Worker    },
156*e1eccf28SAndroid Build Coastguard Worker
157*e1eccf28SAndroid Build Coastguard Worker    required: ["libblasV8"],
158*e1eccf28SAndroid Build Coastguard Worker    static_libs: ["libbnnmlowpV8"],
159*e1eccf28SAndroid Build Coastguard Worker    shared_libs: [
160*e1eccf28SAndroid Build Coastguard Worker        "liblog",
161*e1eccf28SAndroid Build Coastguard Worker        "libdl",
162*e1eccf28SAndroid Build Coastguard Worker    ],
163*e1eccf28SAndroid Build Coastguard Worker    ldflags: [
164*e1eccf28SAndroid Build Coastguard Worker        "-Wl,--exclude-libs,libc++_static.a",
165*e1eccf28SAndroid Build Coastguard Worker        "-Wl,--hash-style=sysv",
166*e1eccf28SAndroid Build Coastguard Worker    ],
167*e1eccf28SAndroid Build Coastguard Worker    stl: "c++_static",
168*e1eccf28SAndroid Build Coastguard Worker
169*e1eccf28SAndroid Build Coastguard Worker    cflags: [
170*e1eccf28SAndroid Build Coastguard Worker        "-Werror",
171*e1eccf28SAndroid Build Coastguard Worker        "-Wall",
172*e1eccf28SAndroid Build Coastguard Worker        "-Wextra",
173*e1eccf28SAndroid Build Coastguard Worker        "-Wno-unused-parameter",
174*e1eccf28SAndroid Build Coastguard Worker        "-Wno-unused-variable",
175*e1eccf28SAndroid Build Coastguard Worker        "-Wno-overloaded-virtual",
176*e1eccf28SAndroid Build Coastguard Worker        "-DRS_COMPATIBILITY_LIB",
177*e1eccf28SAndroid Build Coastguard Worker
178*e1eccf28SAndroid Build Coastguard Worker        "-DGEMMLOWP_USE_STLPORT",
179*e1eccf28SAndroid Build Coastguard Worker
180*e1eccf28SAndroid Build Coastguard Worker        // Allow implicit fallthrough in rsContext.cpp:414 until it is fixed.
181*e1eccf28SAndroid Build Coastguard Worker        "-Wno-error=implicit-fallthrough",
182*e1eccf28SAndroid Build Coastguard Worker    ],
183*e1eccf28SAndroid Build Coastguard Worker}
184*e1eccf28SAndroid Build Coastguard Worker
185*e1eccf28SAndroid Build Coastguard Workercc_library_shared {
186*e1eccf28SAndroid Build Coastguard Worker    name: "libRSSupport",
187*e1eccf28SAndroid Build Coastguard Worker    defaults: ["libRSSupport_defaults"],
188*e1eccf28SAndroid Build Coastguard Worker    sdk_version: "9",
189*e1eccf28SAndroid Build Coastguard Worker
190*e1eccf28SAndroid Build Coastguard Worker    target: {
191*e1eccf28SAndroid Build Coastguard Worker        platform: {
192*e1eccf28SAndroid Build Coastguard Worker            shared_libs: ["libnativewindow"],
193*e1eccf28SAndroid Build Coastguard Worker        },
194*e1eccf28SAndroid Build Coastguard Worker    },
195*e1eccf28SAndroid Build Coastguard Worker}
196*e1eccf28SAndroid Build Coastguard Worker
197*e1eccf28SAndroid Build Coastguard Worker// Note: libnative_bridge_guest libraries don't support "sdk_version" - and we
198*e1eccf28SAndroid Build Coastguard Worker// must use libnative_bridge_guest_libnativewindow instead of libnativewindow
199*e1eccf28SAndroid Build Coastguard Worker// when we are doing native_bridge build.
200*e1eccf28SAndroid Build Coastguard Workercc_library_shared {
201*e1eccf28SAndroid Build Coastguard Worker    name: "libnative_bridge_guest_libRSSupport",
202*e1eccf28SAndroid Build Coastguard Worker    stem: "libRSSupport",
203*e1eccf28SAndroid Build Coastguard Worker    defaults: ["libRSSupport_defaults"],
204*e1eccf28SAndroid Build Coastguard Worker
205*e1eccf28SAndroid Build Coastguard Worker    // Import headers not provided by libnative_bridge_guest_libnativewindow.
206*e1eccf28SAndroid Build Coastguard Worker    header_libs: [
207*e1eccf28SAndroid Build Coastguard Worker        "libarect_headers",
208*e1eccf28SAndroid Build Coastguard Worker        "libnativewindow_headers"
209*e1eccf28SAndroid Build Coastguard Worker    ],
210*e1eccf28SAndroid Build Coastguard Worker
211*e1eccf28SAndroid Build Coastguard Worker    shared_libs: [
212*e1eccf28SAndroid Build Coastguard Worker        "libnative_bridge_guest_libnativewindow",
213*e1eccf28SAndroid Build Coastguard Worker    ],
214*e1eccf28SAndroid Build Coastguard Worker
215*e1eccf28SAndroid Build Coastguard Worker    enabled: false,
216*e1eccf28SAndroid Build Coastguard Worker    native_bridge_supported: true,
217*e1eccf28SAndroid Build Coastguard Worker    target: {
218*e1eccf28SAndroid Build Coastguard Worker       native_bridge: {
219*e1eccf28SAndroid Build Coastguard Worker           enabled: true,
220*e1eccf28SAndroid Build Coastguard Worker       }
221*e1eccf28SAndroid Build Coastguard Worker    },
222*e1eccf28SAndroid Build Coastguard Worker}
223