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 78 // Build rsg-generator ==================== 79 80 cc_binary_host { 81 name: "rsg-generator", 82 83 srcs: [ 84 "spec.l", 85 "rsg_generator.c", 86 ], 87 88 cflags: [ 89 "-Wall", 90 "-Werror", 91 "-Wno-error=unneeded-internal-declaration", 92 "-Wno-error=unused-function", 93 "-Wno-error=unused-variable", 94 ], 95 96 stl: "none", 97 sanitize: { 98 never: true, 99 }, 100 } 101 102 // Generate custom headers 103 gensrcs { 104 name: "rs_generated_headers", 105 tools: ["rsg-generator"], 106 tool_files: [ 107 "rs.spec", 108 "rsg.spec", 109 ], 110 cmd: "cat $(location rs.spec) $(location rsg.spec) | $(location rsg-generator) $(in) $(out)", 111 output_extension: "h", 112 srcs: [ 113 "rsgApiStructs.h_rsg", 114 "rsgApiFuncDecl.h_rsg", 115 ], 116 export_include_dirs: ["."], 117 } 118 119 gensrcs { 120 name: "rs_generated_sources", 121 tools: ["rsg-generator"], 122 tool_files: [ 123 "rs.spec", 124 "rsg.spec", 125 ], 126 cmd: "cat $(location rs.spec) $(location rsg.spec) | $(location rsg-generator) $(in) $(out)", 127 output_extension: "cpp", 128 srcs: [ 129 "rsgApi.cpp_rsg", 130 "rsgApiReplay.cpp_rsg", 131 ], 132 } 133 134 cc_library_shared { 135 name: "libRS_internal", 136 vendor_available: true, 137 vndk: { 138 enabled: true, 139 support_system_process: true, 140 }, 141 defaults: ["rs_defaults"], 142 143 srcs: [ 144 "rsApiAllocation.cpp", 145 "rsApiContext.cpp", 146 "rsApiDevice.cpp", 147 "rsApiElement.cpp", 148 "rsApiFileA3D.cpp", 149 "rsApiMesh.cpp", 150 "rsApiType.cpp", 151 "rsAllocation.cpp", 152 "rsAnimation.cpp", 153 "rsComponent.cpp", 154 "rsContext.cpp", 155 "rsClosure.cpp", 156 "rsCppUtils.cpp", 157 "rsDevice.cpp", 158 "rsDriverLoader.cpp", 159 "rsElement.cpp", 160 "rsFBOCache.cpp", 161 "rsFifoSocket.cpp", 162 "rsFileA3D.cpp", 163 "rsFont.cpp", 164 "rsGrallocConsumer.cpp", 165 "rsObjectBase.cpp", 166 "rsMatrix2x2.cpp", 167 "rsMatrix3x3.cpp", 168 "rsMatrix4x4.cpp", 169 "rsMesh.cpp", 170 "rsMutex.cpp", 171 "rsProgram.cpp", 172 "rsProgramFragment.cpp", 173 "rsProgramStore.cpp", 174 "rsProgramRaster.cpp", 175 "rsProgramVertex.cpp", 176 "rsSampler.cpp", 177 "rsScript.cpp", 178 "rsScriptC.cpp", 179 "rsScriptC_Lib.cpp", 180 "rsScriptC_LibGL.cpp", 181 "rsScriptGroup.cpp", 182 "rsScriptGroup2.cpp", 183 "rsScriptIntrinsic.cpp", 184 "rsSignal.cpp", 185 "rsStream.cpp", 186 "rsThreadIO.cpp", 187 "rsType.cpp", 188 ], 189 190 generated_sources: ["rs_generated_sources"], 191 generated_headers: ["rs_generated_headers"], 192 193 shared_libs: [ 194 "liblog", 195 "libutilscallstack", 196 "libutils", 197 "libEGL", 198 "libGLESv1_CM", 199 "libGLESv2", 200 201 "libdl", 202 "libnativewindow", 203 204 "libft2", 205 206 "libbcinfo", 207 "libmediandk", 208 ], 209 210 static_libs: ["libarect"], 211 212 // These runtime modules, including libcompiler_rt.so, are required for 213 // RenderScript. 214 required: [ 215 "libclcore.bc", 216 "libclcore_debug.bc", 217 "libclcore_debug_g.bc", 218 "libclcore_g.bc", 219 "libcompiler_rt", 220 ], 221 222 arch: { 223 x86: { 224 required: ["libclcore_x86.bc"], 225 }, 226 x86_64: { 227 required: ["libclcore_x86.bc"], 228 }, 229 230 arm: { 231 neon: { 232 required: ["libclcore_neon.bc"], 233 }, 234 }, 235 }, 236 237 product_variables: { 238 override_rs_driver: { 239 cflags: ["-DOVERRIDE_RS_DRIVER=%s"], 240 }, 241 pdk: { 242 enabled: false, 243 }, 244 }, 245 } 246 247 cc_library_shared { 248 name: "libRS", 249 defaults: ["rs_defaults"], 250 srcs: [ 251 "rsApiStubs.cpp", 252 "rsHidlAdaptation.cpp", 253 "rsFallbackAdaptation.cpp", 254 ], 255 256 // Default CPU fallback 257 required: [ 258 "libRS_internal", 259 "libRSDriver", 260 "libRSCacheDir", 261 ], 262 263 // Treble configuration 264 shared_libs: [ 265 "libhidlbase", 266 "libhidltransport", 267 "libhwbinder", 268 "libutilscallstack", 269 "libutils", 270 "android.hardware.renderscript (a] 1.0", 271 272 "liblog", 273 "libcutils", 274 ], 275 276 product_variables: { 277 pdk: { 278 enabled: false, 279 }, 280 }, 281 282 static_libs: ["libRSDispatch"], 283 284 version_script: "libRS.map", 285 } 286 287 llndk_library { 288 name: "libRS", 289 symbol_file: "libRS.map", 290 } 291 292 cc_library_shared { 293 name: "libRSCacheDir", 294 defaults: ["rs_defaults"], 295 296 srcs: ["rsCacheDir.cpp"], 297 shared_libs: [ 298 "libandroid_runtime", 299 "liblog", 300 ], 301 302 product_variables: { 303 pdk: { 304 enabled: false, 305 }, 306 }, 307 } 308 309 build = [ 310 "support.bp", 311 ] 312 313 subdirs = [ 314 "cpp", 315 "cpu_ref", 316 "script_api", 317 "support", 318 ] 319