Merge "Convert libRScpp to Android.bp"
diff --git a/Android.bp b/Android.bp
index 0e77c42..2997140 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1 +1,7 @@
 subdirs = ["cpp"]
+
+cc_library_headers {
+    name: "rs-headers",
+    export_include_dirs: ["."],
+    sdk_version: "9",
+}
diff --git a/cpp/Android.bp b/cpp/Android.bp
index 3055fd4..e25e39a 100644
--- a/cpp/Android.bp
+++ b/cpp/Android.bp
@@ -18,3 +18,71 @@
     },
     stl: "none",
 }
+
+cc_defaults {
+    name: "libRScpp-defaults",
+    defaults: ["rs-version"],
+
+    srcs: [
+        "RenderScript.cpp",
+        "BaseObj.cpp",
+        "Element.cpp",
+        "Type.cpp",
+        "Allocation.cpp",
+        "Script.cpp",
+        "ScriptC.cpp",
+        "ScriptIntrinsics.cpp",
+        "ScriptIntrinsicBLAS.cpp",
+        "Sampler.cpp",
+
+        // TODO: make this not a symlink
+        "rsCppUtils.cpp",
+    ],
+
+    cflags: [
+        "-Werror",
+        "-Wall",
+        "-Wextra",
+        "-Wno-unused-parameter",
+        "-Wno-unused-variable",
+    ],
+
+    // We need to export not just rs/cpp but also rs.  This is because
+    // RenderScript.h includes rsCppStructs.h, which includes rs/rsDefines.h.
+    header_libs: ["rs-headers"],
+    export_header_lib_headers: ["rs-headers"],
+    export_include_dirs: ["."],
+
+    shared_libs: [
+        "libdl",
+        "liblog",
+        "libz",
+    ],
+}
+
+cc_library {
+    name: "libRScpp",
+    defaults: ["libRScpp-defaults"],
+
+    shared_libs: [
+        "libgui",
+        "libutils",
+    ],
+
+    static_libs: ["libRSDispatch"],
+}
+
+cc_library_static {
+    name: "libRScpp_static",
+    defaults: ["libRScpp-defaults"],
+
+    cflags: ["-DRS_COMPATIBILITY_LIB"],
+
+    sdk_version: "9",
+    whole_static_libs: ["libRSDispatch"],
+
+    ldflags: [
+        "-Wl,--exclude-libs,libc++_static.a",
+    ],
+    stl: "c++_static",
+}
diff --git a/cpp/Android.mk b/cpp/Android.mk
deleted file mode 100644
index 05cdc57..0000000
--- a/cpp/Android.mk
+++ /dev/null
@@ -1,79 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-rs_cpp_SRC_FILES := \
-	RenderScript.cpp \
-	BaseObj.cpp \
-	Element.cpp \
-	Type.cpp \
-	Allocation.cpp \
-	Script.cpp \
-	ScriptC.cpp \
-	ScriptIntrinsics.cpp \
-	ScriptIntrinsicBLAS.cpp \
-	Sampler.cpp
-
-rs_cpp_SRC_FILES += ../rsCppUtils.cpp
-
-LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
-include frameworks/compile/slang/rs_version.mk
-local_cflags_for_rs_cpp += $(RS_VERSION_DEFINE) \
-	-Werror -Wall -Wextra \
-	-Wno-unused-parameter -Wno-unused-variable
-	-std=c++11
-
-LOCAL_SRC_FILES := $(rs_cpp_SRC_FILES)
-
-LOCAL_CFLAGS += $(local_cflags_for_rs_cpp)
-
-LOCAL_SHARED_LIBRARIES := \
-	libz \
-	libutils \
-	liblog \
-	libdl \
-	libgui
-
-LOCAL_STATIC_LIBRARIES := \
-        libRSDispatch
-
-LOCAL_MODULE:= libRScpp
-
-LOCAL_C_INCLUDES += frameworks/rs
-LOCAL_C_INCLUDES += $(intermediates)
-
-# We need to export not just rs/cpp but also rs.  This is because
-# RenderScript.h includes rsCppStructs.h, which includes rs/rsDefines.h.
-LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) $(LOCAL_PATH)/..
-
-include $(BUILD_SHARED_LIBRARY)
-
-####################################################################
-
-include $(CLEAR_VARS)
-LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
-
-LOCAL_CFLAGS += $(local_cflags_for_rs_cpp)
-
-ifeq ($(my_32_64_bit_suffix),32)
-LOCAL_SDK_VERSION := 9
-else
-LOCAL_SDK_VERSION := 21
-endif
-LOCAL_CFLAGS += -DRS_COMPATIBILITY_LIB
-
-LOCAL_SRC_FILES := $(rs_cpp_SRC_FILES)
-
-LOCAL_WHOLE_STATIC_LIBRARIES := \
-	libRSDispatch
-
-LOCAL_MODULE:= libRScpp_static
-
-LOCAL_C_INCLUDES += frameworks/rs
-LOCAL_C_INCLUDES += $(intermediates)
-
-LOCAL_LDFLAGS := -llog -lz -ldl -Wl,--exclude-libs,libc++_static.a
-LOCAL_NDK_STL_VARIANT := c++_static
-
-LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) $(LOCAL_PATH)/..
-
-include $(BUILD_STATIC_LIBRARY)
diff --git a/cpp/rsCppUtils.cpp b/cpp/rsCppUtils.cpp
new file mode 120000
index 0000000..b486f4a
--- /dev/null
+++ b/cpp/rsCppUtils.cpp
@@ -0,0 +1 @@
+../rsCppUtils.cpp
\ No newline at end of file