cc_defaults { name: "rs_support_defaults", product_variables: { unbundled_build: { // Unbundled builds use prebuilts in prebuilts/sdk/renderscript instead enabled: false, }, }, cflags: [ "-Wno-deprecated-declarations", ], } // Generate custom headers gensrcs { name: "rs_generated_headers_support", tools: ["rsg-generator"], tool_files: [ "rs.spec", "rs_compat.spec", ], cmd: "cat $(location rs.spec) $(location rs_compat.spec) | $(location rsg-generator) $(in) $(out)", output_extension: "h", srcs: [ "rsgApiStructs.h_rsg", "rsgApiFuncDecl.h_rsg", ], export_include_dirs: ["."], } gensrcs { name: "rs_generated_sources_support", tools: ["rsg-generator"], tool_files: [ "rs.spec", "rs_compat.spec", ], cmd: "cat $(location rs.spec) $(location rs_compat.spec) | $(location rsg-generator) $(in) $(out)", output_extension: "cpp", srcs: [ "rsgApi.cpp_rsg", "rsgApiReplay.cpp_rsg", ], } cc_defaults { name: "libRSSupport_defaults", defaults: ["rs_support_defaults"], srcs: [ "rsAllocation.cpp", "rsApiAllocation.cpp", "rsApiContext.cpp", "rsApiDevice.cpp", "rsApiElement.cpp", "rsApiType.cpp", "rsClosure.cpp", "rsComponent.cpp", "rsContext.cpp", "rsCppUtils.cpp", "rsDevice.cpp", "rsDriverLoader.cpp", "rsElement.cpp", "rsFifoSocket.cpp", "rsObjectBase.cpp", "rsMatrix2x2.cpp", "rsMatrix3x3.cpp", "rsMatrix4x4.cpp", "rsMutex.cpp", "rsSampler.cpp", "rsScript.cpp", "rsScriptC.cpp", "rsScriptC_Lib.cpp", "rsScriptGroup.cpp", "rsScriptGroup2.cpp", "rsScriptIntrinsic.cpp", "rsSignal.cpp", "rsStream.cpp", "rsThreadIO.cpp", "rsType.cpp", "driver/rsdAllocation.cpp", "driver/rsdBcc.cpp", "driver/rsdCore.cpp", "driver/rsdElement.cpp", "driver/rsdRuntimeStubs.cpp", "driver/rsdSampler.cpp", "driver/rsdScriptGroup.cpp", "driver/rsdType.cpp", "cpu_ref/rsCpuCore.cpp", "cpu_ref/rsCpuExecutable.cpp", "cpu_ref/rsCpuScript.cpp", "cpu_ref/rsCpuRuntimeMath.cpp", "cpu_ref/rsCpuScriptGroup.cpp", "cpu_ref/rsCpuScriptGroup2.cpp", "cpu_ref/rsCpuIntrinsic.cpp", "cpu_ref/rsCpuIntrinsic3DLUT.cpp", "cpu_ref/rsCpuIntrinsicBlend.cpp", "cpu_ref/rsCpuIntrinsicBlur.cpp", "cpu_ref/rsCpuIntrinsicBLAS.cpp", "cpu_ref/rsCpuIntrinsicColorMatrix.cpp", "cpu_ref/rsCpuIntrinsicConvolve3x3.cpp", "cpu_ref/rsCpuIntrinsicConvolve5x5.cpp", "cpu_ref/rsCpuIntrinsicHistogram.cpp", "cpu_ref/rsCpuIntrinsicLUT.cpp", "cpu_ref/rsCpuIntrinsicResize.cpp", "cpu_ref/rsCpuIntrinsicYuvToRGB.cpp", ], generated_sources: ["rs_generated_sources_support"], generated_headers: ["rs_generated_headers_support"], arch: { arm: { cflags: [ "-DARCH_ARM_HAVE_VFP", "-DARCH_ARM_USE_INTRINSICS", ], asflags: ["-mfpu=neon"], srcs: [ "cpu_ref/rsCpuIntrinsics_neon_3DLUT.S", "cpu_ref/rsCpuIntrinsics_neon_Blend.S", "cpu_ref/rsCpuIntrinsics_neon_Blur.S", "cpu_ref/rsCpuIntrinsics_neon_ColorMatrix.S", "cpu_ref/rsCpuIntrinsics_neon_Convolve.S", "cpu_ref/rsCpuIntrinsics_neon_Resize.S", "cpu_ref/rsCpuIntrinsics_neon_YuvToRGB.S", ], neon: { cflags: ["-DARCH_ARM_HAVE_NEON"] }, }, arm64: { cflags: [ "-DARCH_ARM_USE_INTRINSICS", "-DARCH_ARM64_USE_INTRINSICS", "-DARCH_ARM64_HAVE_NEON", ], srcs: [ "cpu_ref/rsCpuIntrinsics_advsimd_3DLUT.S", "cpu_ref/rsCpuIntrinsics_advsimd_Blend.S", "cpu_ref/rsCpuIntrinsics_advsimd_Blur.S", "cpu_ref/rsCpuIntrinsics_advsimd_ColorMatrix.S", "cpu_ref/rsCpuIntrinsics_advsimd_Convolve.S", "cpu_ref/rsCpuIntrinsics_advsimd_Resize.S", "cpu_ref/rsCpuIntrinsics_advsimd_YuvToRGB.S", ], }, x86: { cflags: ["-DARCH_X86_HAVE_SSSE3"], srcs: ["cpu_ref/rsCpuIntrinsics_x86.cpp"], }, x86_64: { cflags: ["-DARCH_X86_HAVE_SSSE3"], srcs: ["cpu_ref/rsCpuIntrinsics_x86.cpp"], }, }, required: ["libblasV8"], static_libs: ["libbnnmlowpV8"], shared_libs: [ "liblog", "libdl", ], ldflags: [ "-Wl,--exclude-libs,libc++_static.a", "-Wl,--hash-style=sysv", ], stl: "c++_static", cflags: [ "-Werror", "-Wall", "-Wextra", "-Wno-unused-parameter", "-Wno-unused-variable", "-Wno-overloaded-virtual", "-DRS_COMPATIBILITY_LIB", "-DGEMMLOWP_USE_STLPORT", // TODO: why isn't this picked up from the host GLOBAL_CFLAGS? "-D__STDC_FORMAT_MACROS", // Allow implicit fallthrough in rsContext.cpp:414 until it is fixed. "-Wno-error=implicit-fallthrough", ], } cc_library_shared { name: "libRSSupport", defaults: ["libRSSupport_defaults"], sdk_version: "9", target: { platform: { shared_libs: ["libnativewindow"], }, }, } // Note: libnative_bridge_guest libraries don't support "sdk_version" - and we // must use libnative_bridge_guest_libnativewindow instead of libnativewindow // when we are doing native_bridge build. cc_library_shared { name: "libnative_bridge_guest_libRSSupport", stem: "libRSSupport", defaults: ["libRSSupport_defaults"], // Import headers not provided by libnative_bridge_guest_libnativewindow. header_libs: [ "libarect_headers", "libnativewindow_headers" ], shared_libs: [ "libnative_bridge_guest_libnativewindow", ], enabled: false, native_bridge_supported: true, target: { native_bridge: { enabled: true, } }, }