summaryrefslogtreecommitdiff
path: root/cpp/src/slice2cppe
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/slice2cppe')
-rw-r--r--cpp/src/slice2cppe/Gen.cpp11
-rw-r--r--cpp/src/slice2cppe/Gen.h4
-rw-r--r--cpp/src/slice2cppe/Main.cpp2
3 files changed, 13 insertions, 4 deletions
diff --git a/cpp/src/slice2cppe/Gen.cpp b/cpp/src/slice2cppe/Gen.cpp
index 0c3bda566a8..38c9dee2872 100644
--- a/cpp/src/slice2cppe/Gen.cpp
+++ b/cpp/src/slice2cppe/Gen.cpp
@@ -43,7 +43,8 @@ getIds(const ClassDefPtr& p, StringList& ids)
Slice::Gen::Gen(const string& name, const string& base, const string& headerExtension,
const string& sourceExtension, const vector<string>& extraHeaders, const string& include,
- const vector<string>& includePaths, const string& dllExport, const string& dir, bool imp) :
+ const vector<string>& includePaths, const string& dllExport, const string& dir, bool imp,
+ bool ice) :
_base(base),
_headerExtension(headerExtension),
_sourceExtension(sourceExtension),
@@ -51,7 +52,8 @@ Slice::Gen::Gen(const string& name, const string& base, const string& headerExte
_include(include),
_includePaths(includePaths),
_dllExport(dllExport),
- _impl(imp)
+ _impl(imp),
+ _ice(ice)
{
for(vector<string>::iterator p = _includePaths.begin(); p != _includePaths.end(); ++p)
{
@@ -250,6 +252,11 @@ Slice::Gen::generate(const UnitPtr& p)
H << "\n#include <IceE/UndefSysMacros.h>";
+ if(_ice)
+ {
+ C << "\n#include <IceE/DisableWarnings.h>";
+ }
+
GlobalIncludeVisitor globalIncludeVisitor(H);
p->visit(&globalIncludeVisitor, false);
diff --git a/cpp/src/slice2cppe/Gen.h b/cpp/src/slice2cppe/Gen.h
index 9be5619bfe5..da1c03cae8a 100644
--- a/cpp/src/slice2cppe/Gen.h
+++ b/cpp/src/slice2cppe/Gen.h
@@ -35,7 +35,8 @@ public:
const std::vector<std::string>&,
const std::string&,
const std::string&,
- bool);
+ bool,
+ bool);
~Gen();
bool operator!() const; // Returns true if there was a constructor error
@@ -62,6 +63,7 @@ private:
std::vector<std::string> _includePaths;
std::string _dllExport;
bool _impl;
+ bool _ice;
class GlobalIncludeVisitor : private ::IceUtil::noncopyable, public ParserVisitor
{
diff --git a/cpp/src/slice2cppe/Main.cpp b/cpp/src/slice2cppe/Main.cpp
index 7457f79f670..c9261337313 100644
--- a/cpp/src/slice2cppe/Main.cpp
+++ b/cpp/src/slice2cppe/Main.cpp
@@ -204,7 +204,7 @@ main(int argc, char* argv[])
else
{
Gen gen(argv[0], icecpp.getBaseName(), headerExtension, sourceExtension, extraHeaders, include,
- includePaths, dllExport, output, impl);
+ includePaths, dllExport, output, impl, ice);
if(!gen)
{
u->destroy();