package { default_applicable_licenses: ["Android-Apache-2.0"], } cc_library_headers { name: "rs-headers", export_include_dirs: ["."], sdk_version: "9", } cc_defaults { name: "rs_defaults", cflags: [ "-Werror", "-Wall", "-Wextra", "-Wno-deprecated-declarations", "-Wno-unused-parameter", "-Wno-unused-variable", ], } cc_library_shared { name: "libRSDriver", vendor_available: true, native_bridge_supported: true, vndk: { enabled: true, support_system_process: true, }, defaults: ["rs_defaults"], srcs: [ "driver/rsdAllocation.cpp", "driver/rsdBcc.cpp", "driver/rsdCore.cpp", "driver/rsdElement.cpp", "driver/rsdFrameBuffer.cpp", "driver/rsdFrameBufferObj.cpp", "driver/rsdGL.cpp", "driver/rsdMesh.cpp", "driver/rsdMeshObj.cpp", "driver/rsdProgram.cpp", "driver/rsdProgramRaster.cpp", "driver/rsdProgramStore.cpp", "driver/rsdRuntimeStubs.cpp", "driver/rsdSampler.cpp", "driver/rsdScriptGroup.cpp", "driver/rsdShader.cpp", "driver/rsdShaderCache.cpp", "driver/rsdType.cpp", "driver/rsdVertexArray.cpp", ], shared_libs: [ "libRS_internal", "libRSCpuRef", "liblog", "libEGL", "libGLESv1_CM", "libGLESv2", "libnativewindow", "libbcinfo", ], static_libs: ["libarect"], header_libs: [ "libcutils_headers", "libutils_headers", "libnativebase_headers", ], product_variables: { pdk: { enabled: false, }, }, // Bug: http://b/77445194 - Disable x86 asan where rsdRuntimeStubs.cpp has // undefined reference to half-conversion routines (__gnu_h2f_ieee, // __gnu_f2h_ieee). arch: { x86: { sanitize: { never: true, }, }, }, target: { native_bridge : { header_libs: [ "libnativewindow_headers", "media_ndk_headers", ], shared_libs: [ "libnative_bridge_guest_libEGL", "libnative_bridge_guest_libGLESv1_CM", "libnative_bridge_guest_libGLESv2", "libnative_bridge_guest_libnativewindow", ], exclude_shared_libs: [ "libEGL", "libGLESv1_CM", "libGLESv2", "libnativewindow", ], }, }, } // Build rsg-generator ==================== cc_binary_host { name: "rsg-generator", srcs: [ "spec.l", "rsg_generator.c", ], cflags: [ "-Wno-unused-function", ], stl: "none", sanitize: { never: true, }, } // Generate custom headers gensrcs { name: "rs_generated_headers", tools: ["rsg-generator"], tool_files: [ "rs.spec", "rsg.spec", ], cmd: "cat $(location rs.spec) $(location rsg.spec) | $(location rsg-generator) $(in) $(out)", output_extension: "h", srcs: [ "rsgApiStructs.h_rsg", "rsgApiFuncDecl.h_rsg", ], export_include_dirs: ["."], } gensrcs { name: "rs_generated_sources", tools: ["rsg-generator"], tool_files: [ "rs.spec", "rsg.spec", ], cmd: "cat $(location rs.spec) $(location rsg.spec) | $(location rsg-generator) $(in) $(out)", output_extension: "cpp", srcs: [ "rsgApi.cpp_rsg", "rsgApiReplay.cpp_rsg", ], } cc_library_shared { name: "libRS_internal", vendor_available: true, native_bridge_supported: true, vndk: { enabled: true, support_system_process: true, }, defaults: ["rs_defaults"], srcs: [ "rsApiAllocation.cpp", "rsApiContext.cpp", "rsApiDevice.cpp", "rsApiElement.cpp", "rsApiFileA3D.cpp", "rsApiMesh.cpp", "rsApiType.cpp", "rsAllocation.cpp", "rsAnimation.cpp", "rsComponent.cpp", "rsContext.cpp", "rsClosure.cpp", "rsCppUtils.cpp", "rsDevice.cpp", "rsDriverLoader.cpp", "rsElement.cpp", "rsFBOCache.cpp", "rsFifoSocket.cpp", "rsFileA3D.cpp", "rsFont.cpp", "rsGrallocConsumer.cpp", "rsObjectBase.cpp", "rsMatrix2x2.cpp", "rsMatrix3x3.cpp", "rsMatrix4x4.cpp", "rsMesh.cpp", "rsMutex.cpp", "rsProgram.cpp", "rsProgramFragment.cpp", "rsProgramStore.cpp", "rsProgramRaster.cpp", "rsProgramVertex.cpp", "rsSampler.cpp", "rsScript.cpp", "rsScriptC.cpp", "rsScriptC_Lib.cpp", "rsScriptC_LibGL.cpp", "rsScriptGroup.cpp", "rsScriptGroup2.cpp", "rsScriptIntrinsic.cpp", "rsSignal.cpp", "rsStream.cpp", "rsThreadIO.cpp", "rsType.cpp", ], generated_sources: ["rs_generated_sources"], generated_headers: ["rs_generated_headers"], shared_libs: [ "liblog", "libutilscallstack", "libutils", "libEGL", "libGLESv1_CM", "libGLESv2", "libdl", "libnativewindow", "libft2", "libbcinfo", "libmediandk", ], static_libs: ["libarect"], // These runtime modules, including libcompiler_rt.so, are required for // RenderScript. required: [ "libclcore.bc", "libclcore_debug.bc", "libclcore_debug_g.bc", "libclcore_g.bc", "libcompiler_rt", ], arch: { x86: { required: ["libclcore_x86.bc"], }, x86_64: { required: ["libclcore_x86.bc"], }, arm: { neon: { required: ["libclcore_neon.bc"], }, }, }, product_variables: { override_rs_driver: { cflags: ["-DOVERRIDE_RS_DRIVER=%s"], }, pdk: { enabled: false, }, }, target: { native_bridge: { header_libs: [ "libnativewindow_headers", "media_ndk_headers", ], shared_libs: [ "libnative_bridge_guest_libEGL", "libnative_bridge_guest_libGLESv1_CM", "libnative_bridge_guest_libGLESv2", "libnative_bridge_guest_libmediandk", "libnative_bridge_guest_libnativewindow", ], exclude_shared_libs: [ "libEGL", "libGLESv1_CM", "libGLESv2", "libmediandk", "libnativewindow", ], }, }, } cc_library_shared { name: "libRS", defaults: ["rs_defaults"], native_bridge_supported: true, llndk_stubs: "libRS.llndk", srcs: [ "rsApiStubs.cpp", "rsHidlAdaptation.cpp", "rsFallbackAdaptation.cpp", ], // Default CPU fallback required: [ "libRS_internal", "libRSDriver", "libRSCacheDir", ], // Treble configuration shared_libs: [ "libhidlbase", "libutilscallstack", "libutils", "android.hardware.renderscript@1.0", "liblog", "libcutils", ], product_variables: { pdk: { enabled: false, }, }, static_libs: ["libRSDispatch"], version_script: "libRS.map", } llndk_library { name: "libRS.llndk", symbol_file: "libRS.map", } cc_library_shared { name: "libRSCacheDir", defaults: ["rs_defaults"], srcs: ["rsCacheDir.cpp"], shared_libs: [ "libandroid_runtime", "liblog", ], product_variables: { pdk: { enabled: false, }, }, } build = [ "support.bp", ] subdirs = [ "cpp", "cpu_ref", "script_api", "support", ]