Use llvm::sys::Path to implement "mkdir -p".

Change-Id: I3bb36e1a8050bbd9744fd02935b6186d2f285015
diff --git a/slang_rs_reflection.h b/slang_rs_reflection.h
index b072790..c4750dc 100644
--- a/slang_rs_reflection.h
+++ b/slang_rs_reflection.h
@@ -33,6 +33,8 @@
 
     bool mVerbose;
 
+    std::string mOutputPath;
+
     std::string mInputRSFile;
 
     std::string mPackageName;
@@ -65,6 +67,9 @@
       return;
     }
 
+    bool openClassFile(const std::string &ClassName,
+                       std::string &ErrorMsg);
+
    public:
     typedef enum {
       AM_Public,
@@ -77,11 +82,13 @@
 
     static const char *AccessModifierStr(AccessModifier AM);
 
-    Context(const std::string &InputRSFile,
+    Context(const std::string &OutputPath,
+            const std::string &InputRSFile,
             const std::string &PackageName,
             const std::string &ResourceId,
             bool UseStdout)
         : mVerbose(true),
+          mOutputPath(OutputPath),
           mInputRSFile(InputRSFile),
           mPackageName(PackageName),
           mResourceId(ResourceId),
@@ -179,9 +186,6 @@
     inline void clearFieldIndexMap() { mFieldIndexMap.clear(); }
   };
 
-  bool openScriptFile(Context &C,
-                      const std::string &ClassName,
-                      std::string &ErrorMsg);
   bool genScriptClass(Context &C,
                       const std::string &ClassName,
                       std::string &ErrorMsg);