Thrift now generates XSD files
Summary: Are you fucking kidding me? This shit is robust.
Reviewed By: fetter-tbr-d00d
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664928 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/compiler/cpp/src/main.cc b/compiler/cpp/src/main.cc
index 7280a37..065c95f 100644
--- a/compiler/cpp/src/main.cc
+++ b/compiler/cpp/src/main.cc
@@ -26,6 +26,7 @@
#include "generate/t_java_generator.h"
#include "generate/t_php_generator.h"
#include "generate/t_py_generator.h"
+#include "generate/t_xsd_generator.h"
using namespace std;
@@ -108,6 +109,7 @@
bool gen_cpp = false;
bool gen_java = false;
bool gen_py = false;
+bool gen_xsd = false;
bool gen_php = false;
bool gen_phpi = false;
bool gen_recurse = false;
@@ -515,6 +517,14 @@
py->generate_program();
delete py;
}
+
+ if (gen_xsd) {
+ pverbose("Generating XSD\n");
+ t_xsd_generator* xsd = new t_xsd_generator(program);
+ xsd->generate_program();
+ delete xsd;
+ }
+
} catch (string s) {
printf("Error: %s\n", s.c_str());
} catch (const char* exc) {
@@ -571,6 +581,8 @@
gen_phpi = true;
} else if (strcmp(arg, "-py") == 0) {
gen_py = true;
+ } else if (strcmp(arg, "-xsd") == 0) {
+ gen_xsd = true;
} else if (strcmp(arg, "-I") == 0) {
// An argument of "-I\ asdf" is invalid and has unknown results
arg = argv[++i];
@@ -591,7 +603,7 @@
}
// You gotta generate something!
- if (!gen_cpp && !gen_java && !gen_php && !gen_phpi && !gen_py) {
+ if (!gen_cpp && !gen_java && !gen_php && !gen_phpi && !gen_py && !gen_xsd) {
fprintf(stderr, "!!! No output language(s) specified\n\n");
usage();
}