Home | History | Annotate | Download | only in rs
      1 cc_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 }
     10 
     11 // Generate custom headers
     12 gensrcs {
     13     name: "rs_generated_headers_support",
     14     tools: ["rsg-generator"],
     15     tool_files: [
     16         "rs.spec",
     17         "rs_compat.spec",
     18     ],
     19     cmd: "cat $(location rs.spec) $(location rs_compat.spec) | $(location rsg-generator) $(in) $(out)",
     20     output_extension: "h",
     21     srcs: [
     22         "rsgApiStructs.h_rsg",
     23         "rsgApiFuncDecl.h_rsg",
     24     ],
     25     export_include_dirs: ["."],
     26 }
     27 
     28 gensrcs {
     29     name: "rs_generated_sources_support",
     30     tools: ["rsg-generator"],
     31     tool_files: [
     32         "rs.spec",
     33         "rs_compat.spec",
     34     ],
     35     cmd: "cat $(location rs.spec) $(location rs_compat.spec) | $(location rsg-generator) $(in) $(out)",
     36     output_extension: "cpp",
     37     srcs: [
     38         "rsgApi.cpp_rsg",
     39         "rsgApiReplay.cpp_rsg",
     40     ],
     41 }
     42 
     43 cc_library_shared {
     44     name: "libRSSupport",
     45     defaults: ["rs_support_defaults"],
     46     sdk_version: "9",
     47 
     48     srcs: [
     49         "rsAllocation.cpp",
     50         "rsApiAllocation.cpp",
     51         "rsApiContext.cpp",
     52         "rsApiDevice.cpp",
     53         "rsApiElement.cpp",
     54         "rsApiType.cpp",
     55         "rsClosure.cpp",
     56         "rsComponent.cpp",
     57         "rsContext.cpp",
     58         "rsCppUtils.cpp",
     59         "rsDevice.cpp",
     60         "rsDriverLoader.cpp",
     61         "rsElement.cpp",
     62         "rsFifoSocket.cpp",
     63         "rsObjectBase.cpp",
     64         "rsMatrix2x2.cpp",
     65         "rsMatrix3x3.cpp",
     66         "rsMatrix4x4.cpp",
     67         "rsMutex.cpp",
     68         "rsSampler.cpp",
     69         "rsScript.cpp",
     70         "rsScriptC.cpp",
     71         "rsScriptC_Lib.cpp",
     72         "rsScriptGroup.cpp",
     73         "rsScriptGroup2.cpp",
     74         "rsScriptIntrinsic.cpp",
     75         "rsSignal.cpp",
     76         "rsStream.cpp",
     77         "rsThreadIO.cpp",
     78         "rsType.cpp",
     79         "driver/rsdAllocation.cpp",
     80         "driver/rsdBcc.cpp",
     81         "driver/rsdCore.cpp",
     82         "driver/rsdElement.cpp",
     83         "driver/rsdRuntimeStubs.cpp",
     84         "driver/rsdSampler.cpp",
     85         "driver/rsdScriptGroup.cpp",
     86         "driver/rsdType.cpp",
     87         "cpu_ref/rsCpuCore.cpp",
     88         "cpu_ref/rsCpuExecutable.cpp",
     89         "cpu_ref/rsCpuScript.cpp",
     90         "cpu_ref/rsCpuRuntimeMath.cpp",
     91         "cpu_ref/rsCpuScriptGroup.cpp",
     92         "cpu_ref/rsCpuScriptGroup2.cpp",
     93         "cpu_ref/rsCpuIntrinsic.cpp",
     94         "cpu_ref/rsCpuIntrinsic3DLUT.cpp",
     95         "cpu_ref/rsCpuIntrinsicBlend.cpp",
     96         "cpu_ref/rsCpuIntrinsicBlur.cpp",
     97         "cpu_ref/rsCpuIntrinsicBLAS.cpp",
     98         "cpu_ref/rsCpuIntrinsicColorMatrix.cpp",
     99         "cpu_ref/rsCpuIntrinsicConvolve3x3.cpp",
    100         "cpu_ref/rsCpuIntrinsicConvolve5x5.cpp",
    101         "cpu_ref/rsCpuIntrinsicHistogram.cpp",
    102         "cpu_ref/rsCpuIntrinsicLUT.cpp",
    103         "cpu_ref/rsCpuIntrinsicResize.cpp",
    104         "cpu_ref/rsCpuIntrinsicYuvToRGB.cpp",
    105     ],
    106 
    107     generated_sources: ["rs_generated_sources_support"],
    108     generated_headers: ["rs_generated_headers_support"],
    109 
    110     arch: {
    111         arm: {
    112             cflags: [
    113                 "-DARCH_ARM_HAVE_VFP",
    114                 "-DARCH_ARM_USE_INTRINSICS",
    115             ],
    116             asflags: ["-mfpu=neon"],
    117             srcs: [
    118                 "cpu_ref/rsCpuIntrinsics_neon_3DLUT.S",
    119                 "cpu_ref/rsCpuIntrinsics_neon_Blend.S",
    120                 "cpu_ref/rsCpuIntrinsics_neon_Blur.S",
    121                 "cpu_ref/rsCpuIntrinsics_neon_ColorMatrix.S",
    122                 "cpu_ref/rsCpuIntrinsics_neon_Convolve.S",
    123                 "cpu_ref/rsCpuIntrinsics_neon_Resize.S",
    124                 "cpu_ref/rsCpuIntrinsics_neon_YuvToRGB.S",
    125             ],
    126 
    127             neon: {
    128                 cflags: ["-DARCH_ARM_HAVE_NEON"]
    129             },
    130         },
    131 
    132         arm64: {
    133             cflags: [
    134                 "-DARCH_ARM_USE_INTRINSICS",
    135                 "-DARCH_ARM64_USE_INTRINSICS",
    136                 "-DARCH_ARM64_HAVE_NEON",
    137             ],
    138             srcs: [
    139                 "cpu_ref/rsCpuIntrinsics_advsimd_3DLUT.S",
    140                 "cpu_ref/rsCpuIntrinsics_advsimd_Blend.S",
    141                 "cpu_ref/rsCpuIntrinsics_advsimd_Blur.S",
    142                 "cpu_ref/rsCpuIntrinsics_advsimd_ColorMatrix.S",
    143                 "cpu_ref/rsCpuIntrinsics_advsimd_Convolve.S",
    144                 "cpu_ref/rsCpuIntrinsics_advsimd_Resize.S",
    145                 "cpu_ref/rsCpuIntrinsics_advsimd_YuvToRGB.S",
    146             ],
    147         },
    148 
    149         x86: {
    150             cflags: ["-DARCH_X86_HAVE_SSSE3"],
    151             srcs: ["cpu_ref/rsCpuIntrinsics_x86.cpp"],
    152         },
    153 
    154         x86_64: {
    155             cflags: ["-DARCH_X86_HAVE_SSSE3"],
    156             srcs: ["cpu_ref/rsCpuIntrinsics_x86.cpp"],
    157         },
    158     },
    159 
    160     required: ["libblasV8"],
    161     static_libs: ["libbnnmlowpV8"],
    162     shared_libs: [
    163         "liblog",
    164         "libdl",
    165     ],
    166     ldflags: [
    167         "-Wl,--exclude-libs,libc++_static.a",
    168         "-Wl,--hash-style=sysv",
    169     ],
    170     stl: "c++_static",
    171 
    172     cflags: [
    173         "-Werror",
    174         "-Wall",
    175         "-Wextra",
    176         "-Wno-unused-parameter",
    177         "-Wno-unused-variable",
    178         "-Wno-overloaded-virtual",
    179         "-DRS_COMPATIBILITY_LIB",
    180 
    181         "-DGEMMLOWP_USE_STLPORT",
    182         // TODO: why isn't this picked up from the host GLOBAL_CFLAGS?
    183         "-D__STDC_FORMAT_MACROS",
    184     ],
    185 }
    186