1 cc_library_headers { 2 name: "rs-headers", 3 export_include_dirs: ["."], 4 sdk_version: "9", 5 } 6 7 cc_defaults { 8 name: "rs_defaults", 9 cflags: [ 10 "-Werror", 11 "-Wall", 12 "-Wextra", 13 "-Wno-unused-parameter", 14 "-Wno-unused-variable", 15 ], 16 } 17 18 cc_library_shared { 19 name: "libRSDriver", 20 vendor_available: true, 21 vndk: { 22 enabled: true, 23 support_system_process: true, 24 }, 25 defaults: ["rs_defaults"], 26 27 srcs: [ 28 "driver/rsdAllocation.cpp", 29 "driver/rsdBcc.cpp", 30 "driver/rsdCore.cpp", 31 "driver/rsdElement.cpp", 32 "driver/rsdFrameBuffer.cpp", 33 "driver/rsdFrameBufferObj.cpp", 34 "driver/rsdGL.cpp", 35 "driver/rsdMesh.cpp", 36 "driver/rsdMeshObj.cpp", 37 "driver/rsdProgram.cpp", 38 "driver/rsdProgramRaster.cpp", 39 "driver/rsdProgramStore.cpp", 40 "driver/rsdRuntimeStubs.cpp", 41 "driver/rsdSampler.cpp", 42 "driver/rsdScriptGroup.cpp", 43 "driver/rsdShader.cpp", 44 "driver/rsdShaderCache.cpp", 45 "driver/rsdType.cpp", 46 "driver/rsdVertexArray.cpp", 47 ], 48 49 shared_libs: [ 50 "libRS_internal", 51 "libRSCpuRef", 52 53 "liblog", 54 "libEGL", 55 "libGLESv1_CM", 56 "libGLESv2", 57 58 "libnativewindow", 59 60 "libbcinfo", 61 ], 62 63 static_libs: ["libarect"], 64 65 header_libs: [ 66 "libcutils_headers", 67 "libutils_headers", 68 "libnativebase_headers", 69 ], 70 71 product_variables: { 72 pdk: { 73 enabled: false, 74 }, 75 }, 76 77 // Bug: http://b/77445194 - Disable x86 asan where rsdRuntimeStubs.cpp has 78 // undefined reference to half-conversion routines (__gnu_h2f_ieee, 79 // __gnu_f2h_ieee). 80 arch: { 81 x86: { 82 sanitize: { 83 never: true, 84 }, 85 }, 86 }, 87 } 88 89 // Build rsg-generator ==================== 90 91 cc_binary_host { 92 name: "rsg-generator", 93 94 srcs: [ 95 "spec.l", 96 "rsg_generator.c", 97 ], 98 99 cflags: [ 100 "-Wno-unused-function", 101 ], 102 103 stl: "none", 104 sanitize: { 105 never: true, 106 }, 107 } 108 109 // Generate custom headers 110 gensrcs { 111 name: "rs_generated_headers", 112 tools: ["rsg-generator"], 113 tool_files: [ 114 "rs.spec", 115 "rsg.spec", 116 ], 117 cmd: "cat $(location rs.spec) $(location rsg.spec) | $(location rsg-generator) $(in) $(out)", 118 output_extension: "h", 119 srcs: [ 120 "rsgApiStructs.h_rsg", 121 "rsgApiFuncDecl.h_rsg", 122 ], 123 export_include_dirs: ["."], 124 } 125 126 gensrcs { 127 name: "rs_generated_sources", 128 tools: ["rsg-generator"], 129 tool_files: [ 130 "rs.spec", 131 "rsg.spec", 132 ], 133 cmd: "cat $(location rs.spec) $(location rsg.spec) | $(location rsg-generator) $(in) $(out)", 134 output_extension: "cpp", 135 srcs: [ 136 "rsgApi.cpp_rsg", 137 "rsgApiReplay.cpp_rsg", 138 ], 139 } 140 141 cc_library_shared { 142 name: "libRS_internal", 143 vendor_available: true, 144 vndk: { 145 enabled: true, 146 support_system_process: true, 147 }, 148 defaults: ["rs_defaults"], 149 150 srcs: [ 151 "rsApiAllocation.cpp", 152 "rsApiContext.cpp", 153 "rsApiDevice.cpp", 154 "rsApiElement.cpp", 155 "rsApiFileA3D.cpp", 156 "rsApiMesh.cpp", 157 "rsApiType.cpp", 158 "rsAllocation.cpp", 159 "rsAnimation.cpp", 160 "rsComponent.cpp", 161 "rsContext.cpp", 162 "rsClosure.cpp", 163 "rsCppUtils.cpp", 164 "rsDevice.cpp", 165 "rsDriverLoader.cpp", 166 "rsElement.cpp", 167 "rsFBOCache.cpp", 168 "rsFifoSocket.cpp", 169 "rsFileA3D.cpp", 170 "rsFont.cpp", 171 "rsGrallocConsumer.cpp", 172 "rsObjectBase.cpp", 173 "rsMatrix2x2.cpp", 174 "rsMatrix3x3.cpp", 175 "rsMatrix4x4.cpp", 176 "rsMesh.cpp", 177 "rsMutex.cpp", 178 "rsProgram.cpp", 179 "rsProgramFragment.cpp", 180 "rsProgramStore.cpp", 181 "rsProgramRaster.cpp", 182 "rsProgramVertex.cpp", 183 "rsSampler.cpp", 184 "rsScript.cpp", 185 "rsScriptC.cpp", 186 "rsScriptC_Lib.cpp", 187 "rsScriptC_LibGL.cpp", 188 "rsScriptGroup.cpp", 189 "rsScriptGroup2.cpp", 190 "rsScriptIntrinsic.cpp", 191 "rsSignal.cpp", 192 "rsStream.cpp", 193 "rsThreadIO.cpp", 194 "rsType.cpp", 195 ], 196 197 generated_sources: ["rs_generated_sources"], 198 generated_headers: ["rs_generated_headers"], 199 200 shared_libs: [ 201 "liblog", 202 "libutilscallstack", 203 "libutils", 204 "libEGL", 205 "libGLESv1_CM", 206 "libGLESv2", 207 208 "libdl", 209 "libnativewindow", 210 211 "libft2", 212 213 "libbcinfo", 214 "libmediandk", 215 ], 216 217 static_libs: ["libarect"], 218 219 // These runtime modules, including libcompiler_rt.so, are required for 220 // RenderScript. 221 required: [ 222 "libclcore.bc", 223 "libclcore_debug.bc", 224 "libclcore_debug_g.bc", 225 "libclcore_g.bc", 226 "libcompiler_rt", 227 ], 228 229 arch: { 230 x86: { 231 required: ["libclcore_x86.bc"], 232 }, 233 x86_64: { 234 required: ["libclcore_x86.bc"], 235 }, 236 237 arm: { 238 neon: { 239 required: ["libclcore_neon.bc"], 240 }, 241 }, 242 }, 243 244 product_variables: { 245 override_rs_driver: { 246 cflags: ["-DOVERRIDE_RS_DRIVER=%s"], 247 }, 248 pdk: { 249 enabled: false, 250 }, 251 }, 252 } 253 254 cc_library_shared { 255 name: "libRS", 256 defaults: ["rs_defaults"], 257 srcs: [ 258 "rsApiStubs.cpp", 259 "rsHidlAdaptation.cpp", 260 "rsFallbackAdaptation.cpp", 261 ], 262 263 // Default CPU fallback 264 required: [ 265 "libRS_internal", 266 "libRSDriver", 267 "libRSCacheDir", 268 ], 269 270 // Treble configuration 271 shared_libs: [ 272 "libhidlbase", 273 "libhidltransport", 274 "libhwbinder", 275 "libutilscallstack", 276 "libutils", 277 "android.hardware.renderscript (a] 1.0", 278 279 "liblog", 280 "libcutils", 281 ], 282 283 product_variables: { 284 pdk: { 285 enabled: false, 286 }, 287 }, 288 289 static_libs: ["libRSDispatch"], 290 291 version_script: "libRS.map", 292 } 293 294 llndk_library { 295 name: "libRS", 296 symbol_file: "libRS.map", 297 } 298 299 cc_library_shared { 300 name: "libRSCacheDir", 301 defaults: ["rs_defaults"], 302 303 srcs: ["rsCacheDir.cpp"], 304 shared_libs: [ 305 "libandroid_runtime", 306 "liblog", 307 ], 308 309 product_variables: { 310 pdk: { 311 enabled: false, 312 }, 313 }, 314 } 315 316 build = [ 317 "support.bp", 318 ] 319 320 subdirs = [ 321 "cpp", 322 "cpu_ref", 323 "script_api", 324 "support", 325 ] 326