Initialize slang and Android.mk.
Change-Id: If74da8e54d45511c8c9bb236bcfeec508f4f2439
diff --git a/slang_rs_backend.hpp b/slang_rs_backend.hpp
new file mode 100644
index 0000000..e021c1e
--- /dev/null
+++ b/slang_rs_backend.hpp
@@ -0,0 +1,61 @@
+#ifndef _SLANG_COMPILER_RS_BACKEND_HPP
+# define _SLANG_COMPILER_RENDER_SCRIPT_BACKEND_HPP
+
+#include "libslang.h"
+#include "slang_backend.hpp"
+#include "slang_pragma_recorder.hpp"
+
+#include "clang/CodeGen/CodeGenOptions.h" /* for class clang::CodeGenOptions */
+
+namespace llvm {
+
+class NamedMDNode;
+
+} /* namespace llvm */
+
+namespace clang {
+
+class ASTConsumer;
+class Diagnostic;
+class TargetOptions;
+class PragmaList;
+class CodeGenerator;
+class ASTContext;
+class DeclGroupRef;
+
+} /* namespace clang */
+
+namespace slang {
+
+using namespace clang;
+
+class RSContext;
+
+class RSBackend : public Backend {
+private:
+ RSContext* mContext;
+
+ llvm::NamedMDNode* mExportVarMetadata;
+ llvm::NamedMDNode* mExportFuncMetadata;
+ llvm::NamedMDNode* mExportTypeMetadata;
+ llvm::NamedMDNode* mExportElementMetadata;
+
+ virtual void HandleTranslationUnitEx(ASTContext& Ctx);
+
+public:
+ RSBackend(RSContext* Context,
+ Diagnostic &Diags,
+ const CodeGenOptions& CodeGenOpts,
+ const TargetOptions& TargetOpts,
+ const PragmaList& Pragmas,
+ llvm::raw_ostream* OS,
+ SlangCompilerOutputTy OutputType);
+
+ virtual void HandleTopLevelDecl(DeclGroupRef D);
+
+ virtual ~RSBackend();
+}; /* class RSBackend */
+
+} /* namespace slang */
+
+#endif /* _SLANG_COMPILER_BACKEND_HPP */