Make limited reflection optional (off by default).
Limited reflection is deprecated, and it is slowing down compilation.
This change will disable generation of static reflection by default,
but it adds a command line argument to re-enable it.
Tested by running make check and building the C++ test client and server.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665520 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/compiler/cpp/src/generate/t_cpp_generator.cc b/compiler/cpp/src/generate/t_cpp_generator.cc
index 27753ac..93ad7ee 100644
--- a/compiler/cpp/src/generate/t_cpp_generator.cc
+++ b/compiler/cpp/src/generate/t_cpp_generator.cc
@@ -41,6 +41,9 @@
iter = parsed_options.find("include_prefix");
use_include_prefix_ = (iter != parsed_options.end());
+ iter = parsed_options.find("reflection_limited");
+ gen_reflection_limited_ = (iter != parsed_options.end());
+
out_dir_base_ = "gen-cpp";
}
@@ -193,6 +196,11 @@
std::string get_include_prefix(const t_program& program) const;
/**
+ * True iff we should generate limited reflectors for services.
+ */
+ bool gen_reflection_limited_;
+
+ /**
* True iff we should generate local reflection metadata for TDenseProtocol.
*/
bool gen_dense_;
@@ -1316,7 +1324,9 @@
generate_function_helpers(tservice, *f_iter);
}
- generate_service_limited_reflector(tservice);
+ if (gen_reflection_limited_) {
+ generate_service_limited_reflector(tservice);
+ }
}
/**
diff --git a/test/Makefile.am b/test/Makefile.am
index 118d869..c690790 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -66,13 +66,13 @@
THRIFT = $(top_srcdir)/compiler/cpp/thrift
gen-cpp/DebugProtoTest_types.cpp gen-cpp/PartiallyReflectable.cpp: DebugProtoTest.thrift
- $(THRIFT) --gen cpp $<
+ $(THRIFT) --gen cpp:dense,reflection_limited $<
gen-cpp/OptionalRequiredTest_types.cpp: OptionalRequiredTest.thrift
- $(THRIFT) --gen cpp $<
+ $(THRIFT) --gen cpp:dense $<
gen-cpp/Service.cpp gen-cpp/StressTest_types.cpp: StressTest.thrift
- $(THRIFT) --gen cpp $<
+ $(THRIFT) --gen cpp:dense,reflection_limited $<
INCLUDES = \