summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2017-05-04 18:33:10 -0700
committerColin Cross <ccross@android.com>2017-05-18 15:27:52 -0700
commit403885ee92f5dbcc1791e0c9a2834222cf69eb60 (patch)
treed62ff687bcb15ad3869d46734693fffe9de6a8c1
parent4308a5bb47ab75ee7d4f2e66b507e9908d58799b (diff)
downloadrs-403885ee92f5dbcc1791e0c9a2834222cf69eb60.tar.gz
Convert more of libRS* to Android.bp
See build/soong/README.md for more information. This reapplies If935ce5cc04da7801210acb49f0a9ed15fcf5889 with the support modules disabled for unbundled builds to avoid conflicts with the prebuilts in prebuilts/sdk/renderscript. Also moves OVERRIDE_RS_DRIVER to be set for libRS_internal. Test: m -j checkbuild Change-Id: If935ce5cc04da7801210acb49f0a9ed15fcf5889 Merged-In: Ia98501a471ef5f090446c9fbe2dd1d3422021a6f (cherry picked from commit e5b2262c7337d13cdfd6852614c1743c19381164)
-rw-r--r--Android.bp232
-rw-r--r--Android.mk197
-rw-r--r--cpu_ref/Android.bp121
-rw-r--r--cpu_ref/Android.mk103
-rw-r--r--rsgApi.cpp_rsg (renamed from rsgApi.cpp.rsg)0
-rw-r--r--rsgApiFuncDecl.h_rsg (renamed from rsgApiFuncDecl.h.rsg)0
-rw-r--r--rsgApiReplay.cpp_rsg (renamed from rsgApiReplay.cpp.rsg)0
-rw-r--r--rsgApiStructs.h_rsg (renamed from rsgApiStructs.h.rsg)0
-rw-r--r--support.bp182
-rw-r--r--support/Android.bp3
-rw-r--r--support/jni/Android.bp72
-rw-r--r--support/jni/Android.mk54
-rw-r--r--support/rs_support/Android.mk187
13 files changed, 594 insertions, 557 deletions
diff --git a/Android.bp b/Android.bp
index 15efc6d8..58352469 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1,13 +1,217 @@
-subdirs = ["cpp"]
-
cc_library_headers {
name: "rs-headers",
export_include_dirs: ["."],
sdk_version: "9",
}
+cc_defaults {
+ name: "rs_defaults",
+ cflags: [
+ "-Werror",
+ "-Wall",
+ "-Wextra",
+ "-Wno-unused-parameter",
+ "-Wno-unused-variable",
+ ],
+}
+
+cc_library_shared {
+ name: "libRSDriver",
+ 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",
+
+ "libui",
+ "libgui",
+ "libandroid",
+
+ "libbcinfo",
+ ],
+}
+
+// Build rsg-generator ====================
+
+cc_binary_host {
+ name: "rsg-generator",
+
+ srcs: [
+ "spec.l",
+ "rsg_generator.c",
+ ],
+
+ 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",
+ 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",
+ "libutils",
+ "libEGL",
+ "libGLESv1_CM",
+ "libGLESv2",
+
+ "libdl",
+ "libgui",
+ "libui",
+
+ "libft2",
+ "libpng",
+
+ "libbcinfo",
+ "libmediandk",
+ ],
+
+ // These runtime modules, including libcompiler_rt.so, are required for
+ // RenderScript.
+ required: [
+ "libclcore.bc",
+ "libclcore_debug.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"],
+ },
+ },
+}
+
cc_library_shared {
name: "libRS",
+ defaults: ["rs_defaults"],
srcs: [
"rsApiStubs.cpp",
@@ -15,14 +219,6 @@ cc_library_shared {
"rsFallbackAdaptation.cpp",
],
- cflags: [
- "-Werror",
- "-Wall",
- "-Wextra",
- "-Wno-unused-parameter",
- "-Wno-unused-variable",
- ],
-
// Default CPU fallback
required: [
"libRS_internal",
@@ -45,10 +241,14 @@ cc_library_shared {
static_libs: ["libRSDispatch"],
version_script: "libRS.map",
-
- product_variables: {
- override_rs_driver: {
- cflags: ["-DOVERRIDE_RS_DRIVER=%s"],
- },
- },
}
+
+build = [
+ "support.bp",
+]
+
+subdirs = [
+ "cpp",
+ "cpu_ref",
+ "support",
+]
diff --git a/Android.mk b/Android.mk
index 094d40fb..ffd9be3d 100644
--- a/Android.mk
+++ b/Android.mk
@@ -22,202 +22,5 @@ rs-prebuilts-full: \
host_cross_bcc_compat
endif
-# Not building RenderScript modules in PDK builds, as libmediandk
-# is not available in PDK.
-ifneq ($(TARGET_BUILD_PDK), true)
-
-rs_base_CFLAGS := -Werror -Wall -Wextra \
- -Wno-unused-parameter -Wno-unused-variable
-
-ifneq ($(OVERRIDE_RS_DRIVER),)
- rs_base_CFLAGS += -DOVERRIDE_RS_DRIVER=$(OVERRIDE_RS_DRIVER)
-endif
-
-ifneq ($(DISABLE_RS_64_BIT_DRIVER),)
- rs_base_CFLAGS += -DDISABLE_RS_64_BIT_DRIVER
-endif
-
-ifeq ($(RS_FIND_OFFSETS), true)
- rs_base_CFLAGS += -DRS_FIND_OFFSETS
-endif
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := libRSDriver
-
-LOCAL_SRC_FILES:= \
- 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
-
-
-LOCAL_SHARED_LIBRARIES += libRS_internal libRSCpuRef
-LOCAL_SHARED_LIBRARIES += liblog libEGL libGLESv1_CM libGLESv2
-LOCAL_SHARED_LIBRARIES += libui libgui libandroid
-
-LOCAL_SHARED_LIBRARIES += libbcinfo
-
-LOCAL_C_INCLUDES += frameworks/compile/libbcc/include
-
-LOCAL_CFLAGS += $(rs_base_CFLAGS)
-
-include $(BUILD_SHARED_LIBRARY)
-
-# Build rsg-generator ====================
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := rsg-generator
-
-# These symbols are normally defined by BUILD_XXX, but we need to define them
-# here so that local-intermediates-dir works.
-
-LOCAL_IS_HOST_MODULE := true
-LOCAL_MODULE_CLASS := EXECUTABLES
-intermediates := $(local-intermediates-dir)
-
-LOCAL_SRC_FILES:= \
- spec.l \
- rsg_generator.c
-
-LOCAL_CXX_STL := none
-LOCAL_SANITIZE := never
-
-include $(BUILD_HOST_EXECUTABLE)
-
-RSG_GENERATOR:=$(LOCAL_BUILT_MODULE)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := libRS_internal
-
-LOCAL_MODULE_CLASS := SHARED_LIBRARIES
-generated_sources:= $(local-generated-sources-dir)
-
-# Generate custom headers
-
-GEN := $(addprefix $(generated_sources)/, \
- rsgApiStructs.h \
- rsgApiFuncDecl.h \
- )
-
-$(GEN) : PRIVATE_PATH := $(LOCAL_PATH)
-$(GEN) : PRIVATE_CUSTOM_TOOL = cat $(PRIVATE_PATH)/rs.spec $(PRIVATE_PATH)/rsg.spec | $(RSG_GENERATOR) $< $@
-$(GEN) : $(RSG_GENERATOR) $(LOCAL_PATH)/rs.spec $(LOCAL_PATH)/rsg.spec
-$(GEN): $(generated_sources)/%.h : $(LOCAL_PATH)/%.h.rsg
- $(transform-generated-source)
-
-# used in jni/Android.mk
-rs_generated_source += $(GEN)
-LOCAL_GENERATED_SOURCES += $(GEN)
-
-# Generate custom source files
-
-GEN := $(addprefix $(generated_sources)/, \
- rsgApi.cpp \
- rsgApiReplay.cpp \
- )
-
-$(GEN) : PRIVATE_PATH := $(LOCAL_PATH)
-$(GEN) : PRIVATE_CUSTOM_TOOL = cat $(PRIVATE_PATH)/rs.spec $(PRIVATE_PATH)/rsg.spec | $(RSG_GENERATOR) $< $@
-$(GEN) : $(RSG_GENERATOR) $(LOCAL_PATH)/rs.spec $(LOCAL_PATH)/rsg.spec
-$(GEN): $(generated_sources)/%.cpp : $(LOCAL_PATH)/%.cpp.rsg
- $(transform-generated-source)
-
-# used in jni/Android.mk
-rs_generated_source += $(GEN)
-
-LOCAL_GENERATED_SOURCES += $(GEN)
-
-LOCAL_SRC_FILES:= \
- 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
-
-LOCAL_SHARED_LIBRARIES += liblog libutils libEGL libGLESv1_CM libGLESv2
-LOCAL_SHARED_LIBRARIES += libdl libgui libui
-LOCAL_SHARED_LIBRARIES += libft2 libpng
-
-LOCAL_SHARED_LIBRARIES += libbcinfo libmediandk
-
-LOCAL_C_INCLUDES += frameworks/av/include/ndk
-
-LOCAL_CFLAGS += $(rs_base_CFLAGS)
-
-# These runtime modules, including libcompiler_rt.so, are required for
-# RenderScript.
-LOCAL_REQUIRED_MODULES := \
- libclcore.bc \
- libclcore_debug.bc \
- libclcore_g.bc \
- libcompiler_rt
-
-LOCAL_REQUIRED_MODULES_x86 += libclcore_x86.bc
-LOCAL_REQUIRED_MODULES_x86_64 += libclcore_x86.bc
-
-ifeq ($(ARCH_ARM_HAVE_NEON),true)
- LOCAL_REQUIRED_MODULES_arm += libclcore_neon.bc
-endif
-
-LOCAL_MODULE_TAGS := optional
-
-include $(BUILD_SHARED_LIBRARY)
-
-endif # TARGET_BUILD_PDK
-
include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/cpu_ref/Android.bp b/cpu_ref/Android.bp
new file mode 100644
index 00000000..84b2b0b7
--- /dev/null
+++ b/cpu_ref/Android.bp
@@ -0,0 +1,121 @@
+cc_library_shared {
+ name: "libRSCpuRef",
+ defaults: ["libbcc-targets"],
+
+ srcs: [
+ "rsCpuCore.cpp",
+ "rsCpuExecutable.cpp",
+ "rsCpuScript.cpp",
+ "rsCpuRuntimeMath.cpp",
+ "rsCpuScriptGroup.cpp",
+ "rsCpuScriptGroup2.cpp",
+ "rsCpuIntrinsic.cpp",
+ "rsCpuIntrinsic3DLUT.cpp",
+ "rsCpuIntrinsicBLAS.cpp",
+ "rsCpuIntrinsicBlend.cpp",
+ "rsCpuIntrinsicBlur.cpp",
+ "rsCpuIntrinsicColorMatrix.cpp",
+ "rsCpuIntrinsicConvolve3x3.cpp",
+ "rsCpuIntrinsicConvolve5x5.cpp",
+ "rsCpuIntrinsicHistogram.cpp",
+ "rsCpuIntrinsicResize.cpp",
+ "rsCpuIntrinsicLUT.cpp",
+ "rsCpuIntrinsicYuvToRGB.cpp",
+ ],
+
+ arch: {
+ arm64: {
+ cflags: [
+ "-DARCH_ARM_USE_INTRINSICS",
+ "-DARCH_ARM64_USE_INTRINSICS",
+ "-DARCH_ARM64_HAVE_NEON",
+ ],
+
+ srcs: [
+ "rsCpuIntrinsics_advsimd_3DLUT.S",
+ "rsCpuIntrinsics_advsimd_Convolve.S",
+ "rsCpuIntrinsics_advsimd_Blur.S",
+ "rsCpuIntrinsics_advsimd_ColorMatrix.S",
+ "rsCpuIntrinsics_advsimd_Resize.S",
+ "rsCpuIntrinsics_advsimd_YuvToRGB.S",
+ "rsCpuIntrinsics_advsimd_Blend.S",
+ ],
+ },
+
+ arm: {
+ cflags: [
+ "-DARCH_ARM_HAVE_VFP",
+ "-DARCH_ARM_USE_INTRINSICS",
+ ],
+
+ srcs: [
+ "rsCpuIntrinsics_neon_3DLUT.S",
+ "rsCpuIntrinsics_neon_Blend.S",
+ "rsCpuIntrinsics_neon_Blur.S",
+ "rsCpuIntrinsics_neon_Convolve.S",
+ "rsCpuIntrinsics_neon_ColorMatrix.S",
+ "rsCpuIntrinsics_neon_Resize.S",
+ "rsCpuIntrinsics_neon_YuvToRGB.S",
+ ],
+
+ asflags: ["-mfpu=neon"],
+
+ neon: {
+ cflags: [
+ "-DARCH_ARM_HAVE_NEON",
+ ],
+ },
+ },
+
+ x86: {
+ ssse3: {
+ cflags: ["-DARCH_X86_HAVE_SSSE3"],
+ srcs: ["rsCpuIntrinsics_x86.cpp"],
+ },
+ },
+ x86_64: {
+ ssse3: {
+ cflags: ["-DARCH_X86_HAVE_SSSE3"],
+ srcs: ["rsCpuIntrinsics_x86.cpp"],
+ },
+ },
+ },
+
+ target: {
+ arm_on_x86: {
+ cflags: ["-DBUILD_ARM_FOR_X86"],
+ },
+ },
+
+ shared_libs: [
+ "libRS_internal",
+ "libc++",
+ "liblog",
+ "libz",
+
+ "libbcinfo",
+ "libblas",
+ ],
+ static_libs: ["libbnnmlowp"],
+
+ include_dirs: [
+ "frameworks/compile/libbcc/include",
+ "frameworks/rs",
+ ],
+
+ cflags: [
+ "-Werror",
+ "-Wall",
+ "-Wextra",
+ "-Wno-unused-parameter",
+ "-Wno-unused-variable",
+ ],
+
+ product_variables: {
+ pdk: {
+ // Not building RenderScript modules in PDK builds, as libmediandk
+ // is not available in PDK.
+ enabled: false,
+ },
+ },
+}
diff --git a/cpu_ref/Android.mk b/cpu_ref/Android.mk
deleted file mode 100644
index 9b3e9d3b..00000000
--- a/cpu_ref/Android.mk
+++ /dev/null
@@ -1,103 +0,0 @@
-LOCAL_PATH:=$(call my-dir)
-
-# Not building RenderScript modules in PDK builds, as libmediandk
-# is not available in PDK.
-ifneq ($(TARGET_BUILD_PDK), true)
-
-rs_base_CFLAGS := -Werror -Wall -Wextra \
- -Wno-unused-parameter -Wno-unused-variable \
- -std=c++11
-
-ifneq ($(OVERRIDE_RS_DRIVER),)
- rs_base_CFLAGS += -DOVERRIDE_RS_DRIVER=$(OVERRIDE_RS_DRIVER)
-endif
-
-ifeq ($(BUILD_ARM_FOR_X86),true)
- rs_base_CFLAGS += -DBUILD_ARM_FOR_X86
-endif
-
-include $(CLEAR_VARS)
-ifneq ($(HOST_OS),windows)
-endif
-LOCAL_MODULE := libRSCpuRef
-LOCAL_MODULE_TARGET_ARCH := arm mips mips64 x86 x86_64 arm64
-
-LOCAL_SRC_FILES:= \
- rsCpuCore.cpp \
- rsCpuExecutable.cpp \
- rsCpuScript.cpp \
- rsCpuRuntimeMath.cpp \
- rsCpuScriptGroup.cpp \
- rsCpuScriptGroup2.cpp \
- rsCpuIntrinsic.cpp \
- rsCpuIntrinsic3DLUT.cpp \
- rsCpuIntrinsicBLAS.cpp \
- rsCpuIntrinsicBlend.cpp \
- rsCpuIntrinsicBlur.cpp \
- rsCpuIntrinsicColorMatrix.cpp \
- rsCpuIntrinsicConvolve3x3.cpp \
- rsCpuIntrinsicConvolve5x5.cpp \
- rsCpuIntrinsicHistogram.cpp \
- rsCpuIntrinsicResize.cpp \
- rsCpuIntrinsicLUT.cpp \
- rsCpuIntrinsicYuvToRGB.cpp
-
-LOCAL_CFLAGS_arm64 += -DARCH_ARM_USE_INTRINSICS -DARCH_ARM64_USE_INTRINSICS -DARCH_ARM64_HAVE_NEON
-
-ifeq ($(RS_DISABLE_A53_WORKAROUND),true)
-LOCAL_CFLAGS_arm64 += -DDISABLE_A53_WORKAROUND
-endif
-
-LOCAL_SRC_FILES_arm64 += \
- rsCpuIntrinsics_advsimd_3DLUT.S \
- rsCpuIntrinsics_advsimd_Convolve.S \
- rsCpuIntrinsics_advsimd_Blur.S \
- rsCpuIntrinsics_advsimd_ColorMatrix.S \
- rsCpuIntrinsics_advsimd_Resize.S \
- rsCpuIntrinsics_advsimd_YuvToRGB.S \
- rsCpuIntrinsics_advsimd_Blend.S
-
-ifeq ($(ARCH_ARM_HAVE_NEON),true)
- LOCAL_CFLAGS_arm += -DARCH_ARM_HAVE_NEON
-endif
-
-ifeq ($(ARCH_ARM_HAVE_VFP),true)
- LOCAL_CFLAGS_arm += -DARCH_ARM_HAVE_VFP -DARCH_ARM_USE_INTRINSICS
- LOCAL_SRC_FILES_arm += \
- rsCpuIntrinsics_neon_3DLUT.S \
- rsCpuIntrinsics_neon_Blend.S \
- rsCpuIntrinsics_neon_Blur.S \
- rsCpuIntrinsics_neon_Convolve.S \
- rsCpuIntrinsics_neon_ColorMatrix.S \
- rsCpuIntrinsics_neon_Resize.S \
- rsCpuIntrinsics_neon_YuvToRGB.S \
-
- LOCAL_ASFLAGS_arm := -mfpu=neon
-endif
-
-ifeq ($(ARCH_X86_HAVE_SSSE3),true)
- LOCAL_CFLAGS_x86 += -DARCH_X86_HAVE_SSSE3
- LOCAL_SRC_FILES_x86 += \
- rsCpuIntrinsics_x86.cpp
- LOCAL_CFLAGS_x86_64 += -DARCH_X86_HAVE_SSSE3
- LOCAL_SRC_FILES_x86_64 += \
- rsCpuIntrinsics_x86.cpp
-endif
-
-LOCAL_SHARED_LIBRARIES += libRS_internal libc++ liblog libz
-LOCAL_SHARED_LIBRARIES += libbcinfo libblas
-LOCAL_STATIC_LIBRARIES := libbnnmlowp
-
-LOCAL_C_INCLUDES += frameworks/compile/libbcc/include
-LOCAL_C_INCLUDES += frameworks/rs
-LOCAL_C_INCLUDES += external/cblas/include
-LOCAL_C_INCLUDES += external/gemmlowp/eight_bit_int_gemm
-LOCAL_C_INCLUDES += external/zlib
-
-include frameworks/compile/libbcc/libbcc-targets.mk
-
-LOCAL_CFLAGS += $(rs_base_CFLAGS)
-
-include $(BUILD_SHARED_LIBRARY)
-
-endif # TARGET_BUILD_PDK
diff --git a/rsgApi.cpp.rsg b/rsgApi.cpp_rsg
index 0cfbf088..0cfbf088 100644
--- a/rsgApi.cpp.rsg
+++ b/rsgApi.cpp_rsg
diff --git a/rsgApiFuncDecl.h.rsg b/rsgApiFuncDecl.h_rsg
index d00491fd..d00491fd 100644
--- a/rsgApiFuncDecl.h.rsg
+++ b/rsgApiFuncDecl.h_rsg
diff --git a/rsgApiReplay.cpp.rsg b/rsgApiReplay.cpp_rsg
index 00750edc..00750edc 100644
--- a/rsgApiReplay.cpp.rsg
+++ b/rsgApiReplay.cpp_rsg
diff --git a/rsgApiStructs.h.rsg b/rsgApiStructs.h_rsg
index 573541ac..573541ac 100644
--- a/rsgApiStructs.h.rsg
+++ b/rsgApiStructs.h_rsg
diff --git a/support.bp b/support.bp
new file mode 100644
index 00000000..d03e96fd
--- /dev/null
+++ b/support.bp
@@ -0,0 +1,182 @@
+cc_defaults {
+ name: "rs_support_defaults",
+ product_variables: {
+ unbundled_build: {
+ // Unbundled builds use prebuilts in prebuilts/sdk/renderscript instead
+ enabled: false,
+ },
+ },
+}
+
+// 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_library_shared {
+ name: "libRSSupport",
+ defaults: ["rs_support_defaults"],
+ sdk_version: "9",
+
+ 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"],
+ 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",
+ ],
+}
diff --git a/support/Android.bp b/support/Android.bp
new file mode 100644
index 00000000..726a7904
--- /dev/null
+++ b/support/Android.bp
@@ -0,0 +1,3 @@
+subdirs = [
+ "jni",
+]
diff --git a/support/jni/Android.bp b/support/jni/Android.bp
new file mode 100644
index 00000000..17dea120
--- /dev/null
+++ b/support/jni/Android.bp
@@ -0,0 +1,72 @@
+cc_library_shared {
+ name: "libRSSupportIO",
+ defaults: ["rs_support_defaults"],
+
+ sdk_version: "14",
+
+ srcs: [
+ "android_rscompat_usage_io.cpp",
+ "android_rscompat_usage_io_driver.cpp",
+ ],
+
+ include_dirs: [
+ "frameworks/rs",
+ "frameworks/rs/cpp",
+ "frameworks/rs/driver",
+ ],
+
+ cflags: [
+ "-Werror",
+ "-Wall",
+ "-Wextra",
+ "-Wno-unused-parameter",
+ "-DRS_COMPATIBILITY_LIB",
+ "-std=c++11",
+ ],
+
+ shared_libs: [
+ "libandroid",
+ "libdl",
+ ],
+
+ ldflags: [
+ "-Wl,--exclude-libs,libc++_static.a",
+ ],
+ stl: "c++_static",
+}
+
+cc_library_shared {
+ name: "librsjni",
+ defaults: ["rs_support_defaults"],
+
+ sdk_version: "9",
+
+ srcs: ["android_renderscript_RenderScript.cpp"],
+
+ shared_libs: [
+ "libdl",
+ "libjnigraphics",
+ "liblog",
+ ],
+
+ static_libs: ["libRSDispatch"],
+
+ include_dirs: [
+ "frameworks/rs",
+ "frameworks/rs/cpp",
+ ],
+
+ cflags: [
+ "-Werror",
+ "-Wall",
+ "-Wextra",
+ "-Wno-unused-parameter",
+ "-std=c++11",
+ ],
+
+ required: ["libRSSupport"],
+
+ ldflags: ["-Wl,--exclude-libs,libc++_static.a"],
+
+ stl: "c++_static",
+}
diff --git a/support/jni/Android.mk b/support/jni/Android.mk
deleted file mode 100644
index b17ae363..00000000
--- a/support/jni/Android.mk
+++ /dev/null
@@ -1,54 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_SDK_VERSION := 14
-
-LOCAL_SRC_FILES:= \
- android_rscompat_usage_io.cpp \
- android_rscompat_usage_io_driver.cpp
-
-LOCAL_C_INCLUDES += \
- $(JNI_H_INCLUDE) \
- frameworks/rs \
- frameworks/rs/cpp \
- frameworks/rs/driver
-
-LOCAL_CFLAGS += -Werror -Wall -Wextra \
- -Wno-unused-parameter \
- -DRS_COMPATIBILITY_LIB \
- -std=c++11
-
-LOCAL_MODULE:= libRSSupportIO
-
-LOCAL_LDLIBS += -landroid
-LOCAL_LDFLAGS += -ldl -Wl,--exclude-libs,libc++_static.a
-LOCAL_NDK_STL_VARIANT := c++_static
-include $(BUILD_SHARED_LIBRARY)
-
-include $(CLEAR_VARS)
-
-LOCAL_SDK_VERSION := 9
-
-LOCAL_SRC_FILES:= \
- android_renderscript_RenderScript.cpp
-
-LOCAL_SHARED_LIBRARIES := \
- libjnigraphics
-
-LOCAL_STATIC_LIBRARIES := \
- libRSDispatch
-
-LOCAL_C_INCLUDES += \
- $(JNI_H_INCLUDE) \
- frameworks/rs \
- frameworks/rs/cpp
-
-LOCAL_CFLAGS += -Werror -Wall -Wextra -Wno-unused-parameter -std=c++11
-
-LOCAL_MODULE:= librsjni
-LOCAL_REQUIRED_MODULES := libRSSupport
-
-LOCAL_LDFLAGS += -ldl -llog -Wl,--exclude-libs,libc++_static.a
-LOCAL_NDK_STL_VARIANT := c++_static
-
-include $(BUILD_SHARED_LIBRARY)
diff --git a/support/rs_support/Android.mk b/support/rs_support/Android.mk
deleted file mode 100644
index dd083e2b..00000000
--- a/support/rs_support/Android.mk
+++ /dev/null
@@ -1,187 +0,0 @@
-
-LOCAL_PATH:=frameworks/rs
-rs_base_CFLAGS := -Werror -Wall -Wextra \
- -Wno-unused-parameter \
- -Wno-unused-variable \
- -Wno-overloaded-virtual -DRS_COMPATIBILITY_LIB \
- -std=c++11
-
-ifeq ($(ARCH_ARM_HAVE_NEON),true)
-rs_base_CFLAGS += -DARCH_ARM_HAVE_NEON
-endif
-
-ifeq ($(TARGET_BUILD_PDK), true)
- rs_base_CFLAGS += -D__RS_PDK__
-endif
-
-# Build rsg-generator ====================
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := rsg-generator_support
-
-# These symbols are normally defined by BUILD_XXX, but we need to define them
-# here so that local-intermediates-dir works.
-
-LOCAL_MODULE_CLASS := EXECUTABLES
-intermediates := $(local-intermediates-dir)
-
-LOCAL_SRC_FILES:= \
- spec.l \
- rsg_generator.c
-
-LOCAL_CXX_STL := none
-LOCAL_SANITIZE := never
-
-include $(BUILD_HOST_EXECUTABLE)
-
-# TODO: This should go into build/core/config.mk
-RSG_GENERATOR_SUPPORT:=$(LOCAL_BUILT_MODULE)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := libRSSupport
-LOCAL_SDK_VERSION := 9
-
-
-LOCAL_MODULE_CLASS := SHARED_LIBRARIES
-generated_sources_dir := $(call local-generated-sources-dir)
-
-# Generate custom headers
-
-GEN := $(addprefix $(generated_sources_dir)/, \
- rsgApiStructs.h \
- rsgApiFuncDecl.h \
- )
-
-$(GEN) : PRIVATE_PATH := $(LOCAL_PATH)
-$(GEN) : PRIVATE_CUSTOM_TOOL = cat $(PRIVATE_PATH)/rs.spec $(PRIVATE_PATH)/rs_compat.spec | $(RSG_GENERATOR_SUPPORT) $< $@
-$(GEN) : $(RSG_GENERATOR_SUPPORT) $(LOCAL_PATH)/rs.spec $(LOCAL_PATH)/rs_compat.spec
-$(GEN): $(generated_sources_dir)/%.h : $(LOCAL_PATH)/%.h.rsg
- $(transform-generated-source)
-
-# used in jni/Android.mk
-rs_generated_source += $(GEN)
-LOCAL_GENERATED_SOURCES += $(GEN)
-
-# Generate custom source files
-
-GEN := $(addprefix $(generated_sources_dir)/, \
- rsgApi.cpp \
- rsgApiReplay.cpp \
- )
-
-$(GEN) : PRIVATE_PATH := $(LOCAL_PATH)
-$(GEN) : PRIVATE_CUSTOM_TOOL = cat $(PRIVATE_PATH)/rs.spec $(PRIVATE_PATH)/rs_compat.spec | $(RSG_GENERATOR_SUPPORT) $< $@
-$(GEN) : $(RSG_GENERATOR_SUPPORT) $(LOCAL_PATH)/rs.spec $(LOCAL_PATH)/rs_compat.spec
-$(GEN): $(generated_sources_dir)/%.cpp : $(LOCAL_PATH)/%.cpp.rsg
- $(transform-generated-source)
-
-# used in jni/Android.mk
-rs_generated_source += $(GEN)
-
-LOCAL_GENERATED_SOURCES += $(GEN)
-
-LOCAL_SRC_FILES:= \
- 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
-
-ifeq ($(ARCH_ARM_HAVE_ARMV7A),true)
-LOCAL_CFLAGS_arm := -DARCH_ARM_HAVE_VFP -DARCH_ARM_USE_INTRINSICS
-LOCAL_ASFLAGS_arm := -mfpu=neon
-LOCAL_SRC_FILES_arm := \
- 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
-endif
-
-LOCAL_CFLAGS_arm64 += \
- -DARCH_ARM_USE_INTRINSICS \
- -DARCH_ARM64_USE_INTRINSICS \
- -DARCH_ARM64_HAVE_NEON
-LOCAL_SRC_FILES_arm64 += \
- 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
-
-LOCAL_CFLAGS_x86 += -DARCH_X86_HAVE_SSSE3
-LOCAL_SRC_FILES_x86 += cpu_ref/rsCpuIntrinsics_x86.cpp
-LOCAL_CFLAGS_x86_64 += -DARCH_X86_HAVE_SSSE3
-LOCAL_SRC_FILES_x86_64 += cpu_ref/rsCpuIntrinsics_x86.cpp
-
-LOCAL_REQUIRED_MODULES := libblasV8
-LOCAL_STATIC_LIBRARIES := libbnnmlowpV8
-LOCAL_LDFLAGS += -llog -ldl -Wl,--exclude-libs,libc++_static.a
-LOCAL_NDK_STL_VARIANT := c++_static
-
-LOCAL_C_INCLUDES += external/cblas/include
-LOCAL_C_INCLUDES += external/gemmlowp/eight_bit_int_gemm
-
-LOCAL_CFLAGS += $(rs_base_CFLAGS) -DGEMMLOWP_USE_STLPORT
-
-LOCAL_MODULE:= libRSSupport
-
-# TODO: why isn't this picked up from the host GLOBAL_CFLAGS?
-LOCAL_CFLAGS += -D__STDC_FORMAT_MACROS
-
-include $(BUILD_SHARED_LIBRARY)