Merge "Make libbcc, libbcinfo, bcc no longer depend on libcutils and libutils."
diff --git a/bcinfo/Android.bp b/bcinfo/Android.bp
index a184edd..bd4fee5 100644
--- a/bcinfo/Android.bp
+++ b/bcinfo/Android.bp
@@ -48,6 +48,7 @@
     include_dirs: [
         "frameworks/rs",
         "frameworks/compile/slang",
+        "frameworks/compile/libbcc/lib",
     ],
 
     static_libs: [
@@ -91,7 +92,6 @@
         },
         android: {
             shared_libs: [
-                "libcutils",
                 "liblog",
             ],
             static_libs: [
diff --git a/bcinfo/MetadataExtractor.cpp b/bcinfo/MetadataExtractor.cpp
index fbcd883..431e586 100644
--- a/bcinfo/MetadataExtractor.cpp
+++ b/bcinfo/MetadataExtractor.cpp
@@ -21,9 +21,6 @@
 
 #define LOG_TAG "bcinfo"
 #include <log/log.h>
-#ifdef __ANDROID__
-#include <cutils/properties.h>
-#endif
 
 #include "llvm/Bitcode/ReaderWriter.h"
 #include "llvm/IR/Constants.h"
@@ -32,6 +29,10 @@
 #include "llvm/IR/Function.h"
 #include "llvm/Support/MemoryBuffer.h"
 
+#ifdef __ANDROID__
+#include "Properties.h"
+#endif
+
 #include <cstdlib>
 
 namespace bcinfo {
@@ -356,7 +357,7 @@
   // adb shell setprop debug.rs.precision rs_fp_full
   // adb shell setprop debug.rs.precision rs_fp_relaxed
   // adb shell setprop debug.rs.precision rs_fp_imprecise
-  char PrecisionPropBuf[PROPERTY_VALUE_MAX];
+  char PrecisionPropBuf[PROP_VALUE_MAX];
   const std::string PrecisionPropName("debug.rs.precision");
   property_get("debug.rs.precision", PrecisionPropBuf, "");
   if (PrecisionPropBuf[0]) {
diff --git a/lib/Android.bp b/lib/Android.bp
index 2a6a44a..e16b034 100644
--- a/lib/Android.bp
+++ b/lib/Android.bp
@@ -75,8 +75,6 @@
             shared_libs: [
                 "libLLVM",
                 "libdl",
-                "libutils",
-                "libcutils",
                 "liblog",
             ],
         },
diff --git a/lib/FileBase.cpp b/lib/FileBase.cpp
index 8e91e1c..7d8f8a6 100644
--- a/lib/FileBase.cpp
+++ b/lib/FileBase.cpp
@@ -25,8 +25,6 @@
 #include <cstring>
 #include <new>
 
-#include <utils/FileMap.h>
-
 using namespace bcc;
 
 #ifdef _WIN32
diff --git a/lib/Properties.h b/lib/Properties.h
index 4c3c404..759fa72 100644
--- a/lib/Properties.h
+++ b/lib/Properties.h
@@ -20,13 +20,29 @@
 #include <stdint.h>
 #include <stdlib.h>
 
-#if !defined(RS_SERVER) && defined(__ANDROID__)
-#include <cutils/properties.h>
+#ifdef __ANDROID__
+#include <sys/system_properties.h>
+// TODO: Use rsCppUtils.cpp once the two projects are merged.
+// Currently this implementation is copied over from
+// frameworks/rs/rsCppUtils.cpp
+static inline int property_get(const char *key, char *value, const char *default_value) {
+    int len;
+    len = __system_property_get(key, value);
+    if (len > 0) {
+        return len;
+    }
+
+    if (default_value) {
+        len = strlen(default_value);
+        memcpy(value, default_value, len + 1);
+    }
+    return len;
+}
 #endif
 
 static inline uint32_t getProperty(const char *str) {
-#if !defined(RS_SERVER) && defined(__ANDROID__)
-    char buf[PROPERTY_VALUE_MAX];
+#ifdef __ANDROID__
+    char buf[PROP_VALUE_MAX];
     property_get(str, buf, "0");
     return atoi(buf);
 #else
diff --git a/lib/RSCompilerDriver.cpp b/lib/RSCompilerDriver.cpp
index 6b4d264..599afd6 100644
--- a/lib/RSCompilerDriver.cpp
+++ b/lib/RSCompilerDriver.cpp
@@ -44,11 +44,6 @@
 #include <sstream>
 #include <string>
 
-#ifdef __ANDROID__
-#include <cutils/properties.h>
-#endif
-#include <utils/StopWatch.h>
-
 using namespace bcc;
 
 RSCompilerDriver::RSCompilerDriver() :
diff --git a/tools/bcc/Android.bp b/tools/bcc/Android.bp
index b1f7c7f..791d498 100644
--- a/tools/bcc/Android.bp
+++ b/tools/bcc/Android.bp
@@ -35,8 +35,6 @@
             shared_libs: [
                 "libdl",
                 "liblog",
-                "libutils",
-                "libcutils",
             ],
         },
     },