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