summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cpp/include/Slice/Preprocessor.h3
-rw-r--r--cpp/src/Freeze/PingObject.ice2
-rw-r--r--cpp/src/IceGrid/Internal.ice2
-rw-r--r--cpp/src/IceStorm/Election.ice2
-rw-r--r--cpp/src/IceStorm/IceStormInternal.ice2
-rw-r--r--cpp/src/IceStorm/LinkRecord.ice2
-rw-r--r--cpp/src/IceStorm/SubscriberRecord.ice2
-rw-r--r--cpp/src/IceStorm/V31Format.ice2
-rw-r--r--cpp/src/IceStorm/V32Format.ice2
-rw-r--r--cpp/src/Slice/Preprocessor.cpp7
-rw-r--r--cpp/src/slice2cpp/Gen.cpp132
-rw-r--r--cpp/src/slice2cpp/Gen.h16
-rw-r--r--cpp/src/slice2cpp/Main.cpp4
-rw-r--r--slice/Freeze/BackgroundSaveEvictor.ice2
-rw-r--r--slice/Freeze/CatalogData.ice2
-rw-r--r--slice/Freeze/Connection.ice2
-rw-r--r--slice/Freeze/ConnectionF.ice2
-rw-r--r--slice/Freeze/DB.ice2
-rw-r--r--slice/Freeze/Evictor.ice2
-rw-r--r--slice/Freeze/EvictorF.ice2
-rw-r--r--slice/Freeze/EvictorStorage.ice2
-rw-r--r--slice/Freeze/Exception.ice2
-rw-r--r--slice/Freeze/Transaction.ice2
-rw-r--r--slice/Freeze/TransactionalEvictor.ice2
-rw-r--r--slice/Glacier2/PermissionsVerifier.ice2
-rw-r--r--slice/Glacier2/PermissionsVerifierF.ice2
-rw-r--r--slice/Glacier2/Router.ice2
-rw-r--r--slice/Glacier2/RouterF.ice2
-rw-r--r--slice/Glacier2/SSLInfo.ice2
-rw-r--r--slice/Glacier2/Session.ice2
-rw-r--r--slice/Glacier2/SessionF.ice2
-rw-r--r--slice/Ice/BuiltinSequences.ice2
-rw-r--r--slice/Ice/Communicator.ice2
-rw-r--r--slice/Ice/CommunicatorF.ice2
-rw-r--r--slice/Ice/Connection.ice2
-rw-r--r--slice/Ice/ConnectionF.ice2
-rw-r--r--slice/Ice/Current.ice2
-rw-r--r--slice/Ice/Endpoint.ice2
-rw-r--r--slice/Ice/FacetMap.ice2
-rw-r--r--slice/Ice/Identity.ice2
-rw-r--r--slice/Ice/ImplicitContext.ice2
-rw-r--r--slice/Ice/ImplicitContextF.ice2
-rw-r--r--slice/Ice/LocalException.ice2
-rw-r--r--slice/Ice/Locator.ice2
-rw-r--r--slice/Ice/LocatorF.ice2
-rw-r--r--slice/Ice/Logger.ice2
-rw-r--r--slice/Ice/LoggerF.ice2
-rw-r--r--slice/Ice/ObjectAdapter.ice2
-rw-r--r--slice/Ice/ObjectAdapterF.ice2
-rw-r--r--slice/Ice/ObjectFactory.ice2
-rw-r--r--slice/Ice/ObjectFactoryF.ice6
-rw-r--r--slice/Ice/Plugin.ice2
-rw-r--r--slice/Ice/PluginF.ice2
-rw-r--r--slice/Ice/Process.ice2
-rw-r--r--slice/Ice/ProcessF.ice2
-rw-r--r--slice/Ice/Properties.ice2
-rw-r--r--slice/Ice/PropertiesF.ice2
-rw-r--r--slice/Ice/Router.ice2
-rw-r--r--slice/Ice/RouterF.ice2
-rw-r--r--slice/Ice/ServantLocator.ice2
-rw-r--r--slice/Ice/ServantLocatorF.ice2
-rw-r--r--slice/Ice/SliceChecksumDict.ice2
-rw-r--r--slice/Ice/Stats.ice2
-rw-r--r--slice/Ice/StatsF.ice2
-rw-r--r--slice/IceBox/IceBox.ice2
-rw-r--r--slice/IceGrid/Admin.ice2
-rw-r--r--slice/IceGrid/Descriptor.ice2
-rw-r--r--slice/IceGrid/Exception.ice2
-rw-r--r--slice/IceGrid/FileParser.ice2
-rw-r--r--slice/IceGrid/Locator.ice2
-rw-r--r--slice/IceGrid/Observer.ice2
-rw-r--r--slice/IceGrid/Query.ice2
-rw-r--r--slice/IceGrid/Registry.ice2
-rw-r--r--slice/IceGrid/Session.ice2
-rw-r--r--slice/IceGrid/UserAccountMapper.ice2
-rw-r--r--slice/IcePatch2/FileInfo.ice2
-rw-r--r--slice/IcePatch2/FileServer.ice2
-rw-r--r--slice/IceStorm/IceStorm.ice2
78 files changed, 276 insertions, 36 deletions
diff --git a/cpp/include/Slice/Preprocessor.h b/cpp/include/Slice/Preprocessor.h
index 98a018fbfbe..54535e28812 100644
--- a/cpp/include/Slice/Preprocessor.h
+++ b/cpp/include/Slice/Preprocessor.h
@@ -32,7 +32,7 @@ class SLICE_API Preprocessor
{
public:
- Preprocessor(const std::string&, const std::string&, const std::vector<std::string>&);
+ Preprocessor(const std::string&, const std::string&, const std::vector<std::string>&, const std::string& = "cpp");
~Preprocessor();
FILE* preprocess(bool);
@@ -54,6 +54,7 @@ private:
const std::string _path;
const std::string _fileName;
const std::vector<std::string> _args;
+ const std::string _cppSourceExt;
#ifdef _WIN32
std::wstring _cppFile;
#else
diff --git a/cpp/src/Freeze/PingObject.ice b/cpp/src/Freeze/PingObject.ice
index 9ef1772eb57..ac0262e47d5 100644
--- a/cpp/src/Freeze/PingObject.ice
+++ b/cpp/src/Freeze/PingObject.ice
@@ -10,6 +10,8 @@
#ifndef FREEZE_PING_OBJECT_ICE
#define FREEZE_PING_OBJECT_ICE
+[["cpp:header-ext:h"]]
+
module Freeze
{
diff --git a/cpp/src/IceGrid/Internal.ice b/cpp/src/IceGrid/Internal.ice
index 63d2bfb8f12..a1e510d8c38 100644
--- a/cpp/src/IceGrid/Internal.ice
+++ b/cpp/src/IceGrid/Internal.ice
@@ -10,6 +10,8 @@
#ifndef ICE_GRID_INTERNAL_ICE
#define ICE_GRID_INTERNAL_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/Identity.ice>
#include <Ice/BuiltinSequences.ice>
#include <Ice/ProcessF.ice>
diff --git a/cpp/src/IceStorm/Election.ice b/cpp/src/IceStorm/Election.ice
index 2ba02e1035c..2a2fde7f0e9 100644
--- a/cpp/src/IceStorm/Election.ice
+++ b/cpp/src/IceStorm/Election.ice
@@ -10,6 +10,8 @@
#ifndef ELECTION_ICE
#define ELECTION_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/Identity.ice>
#include <Ice/BuiltinSequences.ice>
#include <IceStorm/SubscriberRecord.ice>
diff --git a/cpp/src/IceStorm/IceStormInternal.ice b/cpp/src/IceStorm/IceStormInternal.ice
index 744a5339eab..476dde4c346 100644
--- a/cpp/src/IceStorm/IceStormInternal.ice
+++ b/cpp/src/IceStorm/IceStormInternal.ice
@@ -10,6 +10,8 @@
#ifndef ICE_STORM_INTERNAL_ICE
#define ICE_STORM_INTERNAL_ICE
+[["cpp:header-ext:h"]]
+
#include <IceStorm/IceStorm.ice>
#include <IceStorm/Election.ice>
#include <Ice/Current.ice>
diff --git a/cpp/src/IceStorm/LinkRecord.ice b/cpp/src/IceStorm/LinkRecord.ice
index 6d30eb428c7..744755fedef 100644
--- a/cpp/src/IceStorm/LinkRecord.ice
+++ b/cpp/src/IceStorm/LinkRecord.ice
@@ -10,6 +10,8 @@
#ifndef LINK_RECORD_ICE
#define LINK_RECORD_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/Identity.ice>
#include <IceStorm/IceStormInternal.ice>
diff --git a/cpp/src/IceStorm/SubscriberRecord.ice b/cpp/src/IceStorm/SubscriberRecord.ice
index 6a8c4133189..2c37010150d 100644
--- a/cpp/src/IceStorm/SubscriberRecord.ice
+++ b/cpp/src/IceStorm/SubscriberRecord.ice
@@ -10,6 +10,8 @@
#ifndef SUBSCRIBER_RECORD_ICE
#define SUBSCRIBER_RECORD_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/Identity.ice>
#include <IceStorm/IceStorm.ice>
diff --git a/cpp/src/IceStorm/V31Format.ice b/cpp/src/IceStorm/V31Format.ice
index ca45b0a7f0c..9607990a156 100644
--- a/cpp/src/IceStorm/V31Format.ice
+++ b/cpp/src/IceStorm/V31Format.ice
@@ -10,6 +10,8 @@
#ifndef V31_FORMAT_ICE
#define V31_FORMAT_ICE
+[["cpp:header-ext:h"]]
+
#include <IceStorm/LinkRecord.ice>
module IceStorm
diff --git a/cpp/src/IceStorm/V32Format.ice b/cpp/src/IceStorm/V32Format.ice
index 248de06da41..860120756a2 100644
--- a/cpp/src/IceStorm/V32Format.ice
+++ b/cpp/src/IceStorm/V32Format.ice
@@ -10,6 +10,8 @@
#ifndef V32_FORMAT_ICE
#define V32_FORMAT_ICE
+[["cpp:header-ext:h"]]
+
#include <IceStorm/LinkRecord.ice>
module IceStorm
diff --git a/cpp/src/Slice/Preprocessor.cpp b/cpp/src/Slice/Preprocessor.cpp
index 6c226c2db72..636c772b94d 100644
--- a/cpp/src/Slice/Preprocessor.cpp
+++ b/cpp/src/Slice/Preprocessor.cpp
@@ -44,10 +44,11 @@ extern "C" int mcpp_lib_main(int argc, char** argv);
extern "C" void mcpp_use_mem_buffers(int tf);
extern "C" char* mcpp_get_mem_buffer(Outdest od);
-Slice::Preprocessor::Preprocessor(const string& path, const string& fileName, const vector<string>& args) :
+Slice::Preprocessor::Preprocessor(const string& path, const string& fileName, const vector<string>& args, const string& cppSourceExt) :
_path(path),
_fileName(fileName),
_args(args),
+ _cppSourceExt(cppSourceExt),
_cppHandle(0)
{
}
@@ -390,12 +391,12 @@ Slice::Preprocessor::printMakefileDependencies(Language lang, const vector<strin
case CPlusPlus:
{
//
- // Change .o[bj] suffix to .cpp suffix.
+ // Change .o[bj] suffix to the cpp source extension suffix.
//
string::size_type pos;
while((pos = result.find(suffix)) != string::npos)
{
- result.replace(pos, suffix.size() - 1, ".cpp");
+ result.replace(pos, suffix.size() - 1, "." + _cppSourceExt);
}
break;
}
diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp
index d442b2a7586..51ea19f40d2 100644
--- a/cpp/src/slice2cpp/Gen.cpp
+++ b/cpp/src/slice2cpp/Gen.cpp
@@ -15,11 +15,14 @@
#include <IceUtil/Iterator.h>
#include <Slice/Checksum.h>
#include <Slice/FileTracker.h>
+#include <Slice/Preprocessor.h>
#include <limits>
#include <sys/stat.h>
-#include <string.h>
+#include <string.h>
+
+#include <iostream> //TODO
using namespace std;
using namespace Slice;
@@ -44,11 +47,13 @@ Slice::Gen::Gen(const string& base, const string& headerExtension, const string&
bool imp, bool checksum, bool stream, bool ice) :
_base(base),
_headerExtension(headerExtension),
+ _implHeaderExtension(headerExtension),
_sourceExtension(sourceExtension),
_extraHeaders(extraHeaders),
_include(include),
_includePaths(includePaths),
_dllExport(dllExport),
+ _dir(dir),
_impl(imp),
_checksum(checksum),
_stream(stream),
@@ -64,15 +69,41 @@ Slice::Gen::Gen(const string& base, const string& headerExtension, const string&
{
_base.erase(0, pos + 1);
}
+}
+
+Slice::Gen::~Gen()
+{
+ H << "\n\n#endif\n";
+ C << '\n';
+
+ if(_impl)
+ {
+ implH << "\n\n#endif\n";
+ implC << '\n';
+ }
+}
+
+void
+Slice::Gen::generate(const UnitPtr& p)
+{
+
+ //
+ // Check the header-ext global meta data if is not empty we override _headerExtension
+ //
+ string headerExtension = getHeaderExt(p->modules());
+ if(!headerExtension.empty())
+ {
+ _headerExtension = headerExtension;
+ }
if(_impl)
{
- string fileImplH = _base + "I." + _headerExtension;
+ string fileImplH = _base + "I." + _implHeaderExtension;
string fileImplC = _base + "I." + _sourceExtension;
- if(!dir.empty())
+ if(!_dir.empty())
{
- fileImplH = dir + '/' + fileImplH;
- fileImplC = dir + '/' + fileImplC;
+ fileImplH = _dir + '/' + fileImplH;
+ fileImplC = _dir + '/' + fileImplC;
}
struct stat st;
@@ -120,10 +151,10 @@ Slice::Gen::Gen(const string& base, const string& headerExtension, const string&
string fileH = _base + "." + _headerExtension;
string fileC = _base + "." + _sourceExtension;
- if(!dir.empty())
+ if(!_dir.empty())
{
- fileH = dir + '/' + fileH;
- fileC = dir + '/' + fileC;
+ fileH = _dir + '/' + fileH;
+ fileC = _dir + '/' + fileC;
}
H.open(fileH.c_str());
@@ -158,23 +189,7 @@ Slice::Gen::Gen(const string& base, const string& headerExtension, const string&
H << "\n#ifndef __" << s << "__";
H << "\n#define __" << s << "__";
H << '\n';
-}
-
-Slice::Gen::~Gen()
-{
- H << "\n\n#endif\n";
- C << '\n';
-
- if(_impl)
- {
- implH << "\n\n#endif\n";
- implC << '\n';
- }
-}
-void
-Slice::Gen::generate(const UnitPtr& p)
-{
validateMetaData(p);
writeExtraHeaders(C);
@@ -193,6 +208,7 @@ Slice::Gen::generate(const UnitPtr& p)
}
C << _base << "." << _headerExtension << ">";
+
H << "\n#include <Ice/LocalObjectF.h>";
H << "\n#include <Ice/ProxyF.h>";
H << "\n#include <Ice/ObjectF.h>";
@@ -224,6 +240,7 @@ Slice::Gen::generate(const UnitPtr& p)
}
else if(p->hasNonLocalClassDecls())
{
+
H << "\n#include <Ice/Object.h>";
}
@@ -274,7 +291,12 @@ Slice::Gen::generate(const UnitPtr& p)
for(StringList::const_iterator q = includes.begin(); q != includes.end(); ++q)
{
- H << "\n#include <" << changeInclude(*q, _includePaths) << "." << _headerExtension << ">";
+ string extension = getHeaderExt((*q), p->modules());
+ if(extension.empty())
+ {
+ extension = _headerExtension;
+ }
+ H << "\n#include <" << changeInclude(*q, _includePaths) << "." << extension << ">";
}
H << "\n#include <Ice/UndefSysMacros.h>";
@@ -339,7 +361,7 @@ Slice::Gen::generate(const UnitPtr& p)
{
implH << _include << '/';
}
- implH << _base << ".h>";
+ implH << _base << "." << _headerExtension << ">";
writeExtraHeaders(implC);
@@ -348,7 +370,7 @@ Slice::Gen::generate(const UnitPtr& p)
{
implC << _include << '/';
}
- implC << _base << "I.h>";
+ implC << _base << "I." << _implHeaderExtension << ">";
ImplVisitor implVisitor(implH, implC, _dllExport);
p->visit(&implVisitor, false);
@@ -5641,6 +5663,8 @@ Slice::Gen::MetaDataVisitor::visitModuleStart(const ModulePtr& p)
StringList globalMetaData = dc->getMetaData();
string file = dc->filename();
static const string prefix = "cpp:";
+
+ int headerExtension = 0;
for(StringList::const_iterator q = globalMetaData.begin(); q != globalMetaData.end(); ++q)
{
string s = *q;
@@ -5653,7 +5677,15 @@ Slice::Gen::MetaDataVisitor::visitModuleStart(const ModulePtr& p)
{
continue;
}
- cerr << file << ": warning: ignoring invalid global metadata `" << s << "'" << endl;
+ else if(ss.find("header-ext:") == 0)
+ {
+ headerExtension++;
+ if(headerExtension == 1)
+ {
+ continue;
+ }
+ }
+ cerr << file << ": warning: ignoring invalid global metadata `" << s << "', the cpp:header-ext global metadata can only appear once per file." << endl;
}
_history.insert(s);
}
@@ -5866,3 +5898,47 @@ Slice::Gen::resetUseWstring(list<bool>& hist)
hist.pop_back();
return use;
}
+
+string
+Slice::Gen::getHeaderExt(const string& file, const ModuleList& modules)
+{
+ string ext = "";
+ if(!modules.empty()) // Just in case the Slice file has no definitions
+ {
+ for(ModuleList::const_iterator i = modules.begin(); i != modules.end(); ++i)
+ {
+ if((*i)->definitionContext()->filename() == file)
+ {
+ string meta = (*i)->definitionContext()->findMetaData("cpp:header-ext");
+ string::size_type index = meta.find_last_of(":");
+ if(index != string::npos && index + 1 < meta.size())
+ {
+ ext = meta.substr(index + 1, meta.size() - index - 1);
+ }
+ }
+ }
+ }
+ return ext;
+}
+
+string
+Slice::Gen::getHeaderExt(const ModuleList& modules)
+{
+ string ext = "";
+ if(!modules.empty()) // Just in case the Slice file has no definitions
+ {
+ for(ModuleList::const_iterator i = modules.begin(); i != modules.end(); ++i)
+ {
+ if((*i)->definitionContext()->includeLevel() == 0)
+ {
+ string meta = (*i)->definitionContext()->findMetaData("cpp:header-ext");
+ string::size_type index = meta.find_last_of(":");
+ if(index != string::npos && index + 1 < meta.size())
+ {
+ ext = meta.substr(index + 1, meta.size() - index - 1);
+ }
+ }
+ }
+ }
+ return ext;
+}
diff --git a/cpp/src/slice2cpp/Gen.h b/cpp/src/slice2cpp/Gen.h
index e3c1c9afc01..9cb699a205c 100644
--- a/cpp/src/slice2cpp/Gen.h
+++ b/cpp/src/slice2cpp/Gen.h
@@ -44,6 +44,20 @@ private:
void writeExtraHeaders(::IceUtilInternal::Output&);
+
+ //
+ // Get the header extension defined in the global metadata for a given file
+ // if there isn't defined returns a empty string
+ //
+ std::string getHeaderExt(const std::string& file, const ModuleList& modules);
+
+ //
+ // Get the header extension defined in the global metadata for the current
+ // compiling file.
+ // if there isn't defined returns a empty string
+ //
+ std::string getHeaderExt(const ModuleList& modules);
+
::IceUtilInternal::Output H;
::IceUtilInternal::Output C;
@@ -52,11 +66,13 @@ private:
std::string _base;
std::string _headerExtension;
+ std::string _implHeaderExtension;
std::string _sourceExtension;
std::vector<std::string> _extraHeaders;
std::string _include;
std::vector<std::string> _includePaths;
std::string _dllExport;
+ std::string _dir;
bool _impl;
bool _checksum;
bool _stream;
diff --git a/cpp/src/slice2cpp/Main.cpp b/cpp/src/slice2cpp/Main.cpp
index 7e2ff8b58b1..86eafe9e64f 100644
--- a/cpp/src/slice2cpp/Main.cpp
+++ b/cpp/src/slice2cpp/Main.cpp
@@ -169,7 +169,7 @@ main(int argc, char* argv[])
{
if(depend)
{
- Preprocessor icecpp(argv[0], *i, cppArgs);
+ Preprocessor icecpp(argv[0], *i, cppArgs, sourceExtension);
if(!icecpp.printMakefileDependencies(Preprocessor::CPlusPlus, includePaths))
{
return EXIT_FAILURE;
@@ -177,7 +177,7 @@ main(int argc, char* argv[])
}
else
{
- Preprocessor icecpp(argv[0], *i, cppArgs);
+ Preprocessor icecpp(argv[0], *i, cppArgs, sourceExtension);
FILE* cppHandle = icecpp.preprocess(false);
if(cppHandle == 0)
diff --git a/slice/Freeze/BackgroundSaveEvictor.ice b/slice/Freeze/BackgroundSaveEvictor.ice
index 381c0c6ce55..5dbdd4206a2 100644
--- a/slice/Freeze/BackgroundSaveEvictor.ice
+++ b/slice/Freeze/BackgroundSaveEvictor.ice
@@ -10,6 +10,8 @@
#ifndef FREEZE_BACKGROUND_SAVE_EVICTOR_ICE
#define FREEZE_BACKGROUND_SAVE_EVICTOR_ICE
+[["cpp:header-ext:h"]]
+
#include <Freeze/Evictor.ice>
module Freeze
diff --git a/slice/Freeze/CatalogData.ice b/slice/Freeze/CatalogData.ice
index 8df77614183..ad4d9dbe53e 100644
--- a/slice/Freeze/CatalogData.ice
+++ b/slice/Freeze/CatalogData.ice
@@ -10,6 +10,8 @@
#ifndef FREEZE_CATALOG_DATA_ICE
#define FREEZE_CATALOG_DATA_ICE
+[["cpp:header-ext:h"]]
+
module Freeze
{
diff --git a/slice/Freeze/Connection.ice b/slice/Freeze/Connection.ice
index 4fe590a50d7..834eff9c53c 100644
--- a/slice/Freeze/Connection.ice
+++ b/slice/Freeze/Connection.ice
@@ -13,6 +13,8 @@
#include <Freeze/Transaction.ice>
#include <Ice/CommunicatorF.ice>
+[["cpp:header-ext:h"]]
+
module Freeze
{
diff --git a/slice/Freeze/ConnectionF.ice b/slice/Freeze/ConnectionF.ice
index 9a9b1e52ed0..b4d393b7049 100644
--- a/slice/Freeze/ConnectionF.ice
+++ b/slice/Freeze/ConnectionF.ice
@@ -10,6 +10,8 @@
#ifndef FREEZE_CONNECTION_F_ICE
#define FREEZE_CONNECTION_F_ICE
+[["cpp:header-ext:h"]]
+
module Freeze
{
diff --git a/slice/Freeze/DB.ice b/slice/Freeze/DB.ice
index cd7d617ed56..a12feb001aa 100644
--- a/slice/Freeze/DB.ice
+++ b/slice/Freeze/DB.ice
@@ -10,6 +10,8 @@
#ifndef FREEZE_DB_ICE
#define FREEZE_DB_ICE
+[["cpp:header-ext:h"]]
+
/**
*
* Freeze provides automatic persistence for Ice servants.
diff --git a/slice/Freeze/Evictor.ice b/slice/Freeze/Evictor.ice
index 2022e795772..0f0979e6a9b 100644
--- a/slice/Freeze/Evictor.ice
+++ b/slice/Freeze/Evictor.ice
@@ -10,6 +10,8 @@
#ifndef FREEZE_EVICTOR_ICE
#define FREEZE_EVICTOR_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/ObjectAdapterF.ice>
#include <Ice/ServantLocator.ice>
#include <Ice/Identity.ice>
diff --git a/slice/Freeze/EvictorF.ice b/slice/Freeze/EvictorF.ice
index a93f4d73c3c..8daa0b536fd 100644
--- a/slice/Freeze/EvictorF.ice
+++ b/slice/Freeze/EvictorF.ice
@@ -10,6 +10,8 @@
#ifndef FREEZE_EVICTOR_F_ICE
#define FREEZE_EVICTOR_F_ICE
+[["cpp:header-ext:h"]]
+
module Freeze
{
diff --git a/slice/Freeze/EvictorStorage.ice b/slice/Freeze/EvictorStorage.ice
index cb4f27e0953..4a2304edc90 100644
--- a/slice/Freeze/EvictorStorage.ice
+++ b/slice/Freeze/EvictorStorage.ice
@@ -10,6 +10,8 @@
#ifndef FREEZE_EVICTOR_STORAGE_ICE
#define FREEZE_EVICTOR_STORAGE_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/Identity.ice>
module Freeze
diff --git a/slice/Freeze/Exception.ice b/slice/Freeze/Exception.ice
index 53d9456cd37..31919486793 100644
--- a/slice/Freeze/Exception.ice
+++ b/slice/Freeze/Exception.ice
@@ -10,6 +10,8 @@
#ifndef FREEZE_EXCEPTION_ICE
#define FREEZE_EXCEPTION_ICE
+[["cpp:header-ext:h"]]
+
module Freeze
{
diff --git a/slice/Freeze/Transaction.ice b/slice/Freeze/Transaction.ice
index 34eac416b5d..ab8179ec3ae 100644
--- a/slice/Freeze/Transaction.ice
+++ b/slice/Freeze/Transaction.ice
@@ -10,6 +10,8 @@
#ifndef FREEZE_TRANSACTION_ICE
#define FREEZE_TRANSACTION_ICE
+[["cpp:header-ext:h"]]
+
module Freeze
{
diff --git a/slice/Freeze/TransactionalEvictor.ice b/slice/Freeze/TransactionalEvictor.ice
index dfdf7fd45ea..9acab43a232 100644
--- a/slice/Freeze/TransactionalEvictor.ice
+++ b/slice/Freeze/TransactionalEvictor.ice
@@ -10,6 +10,8 @@
#ifndef FREEZE_TRANSACTIONAL_EVICTOR_ICE
#define FREEZE_TRANSACTIONAL_EVICTOR_ICE
+[["cpp:header-ext:h"]]
+
#include <Freeze/Evictor.ice>
module Freeze
diff --git a/slice/Glacier2/PermissionsVerifier.ice b/slice/Glacier2/PermissionsVerifier.ice
index 733d5b56f79..07cdda5a663 100644
--- a/slice/Glacier2/PermissionsVerifier.ice
+++ b/slice/Glacier2/PermissionsVerifier.ice
@@ -10,6 +10,8 @@
#ifndef GLACIER2_PERMISSIONS_VERIFIER_ICE
#define GLACIER2_PERMISSIONS_VERIFIER_ICE
+[["cpp:header-ext:h"]]
+
#include <Glacier2/SSLInfo.ice>
module Glacier2
diff --git a/slice/Glacier2/PermissionsVerifierF.ice b/slice/Glacier2/PermissionsVerifierF.ice
index 1f20eb76b85..5620c94be55 100644
--- a/slice/Glacier2/PermissionsVerifierF.ice
+++ b/slice/Glacier2/PermissionsVerifierF.ice
@@ -10,6 +10,8 @@
#ifndef GLACIER2_PERMISSIONS_VERIFIER_F_ICE
#define GLACIER2_PERMISSIONS_VERIFIER_F_ICE
+[["cpp:header-ext:h"]]
+
module Glacier2
{
diff --git a/slice/Glacier2/Router.ice b/slice/Glacier2/Router.ice
index 2bc9a3ac317..cc8c090f1f4 100644
--- a/slice/Glacier2/Router.ice
+++ b/slice/Glacier2/Router.ice
@@ -10,6 +10,8 @@
#ifndef GLACIER2_ROUTER_ICE
#define GLACIER2_ROUTER_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/Router.ice>
#include <Glacier2/Session.ice>
diff --git a/slice/Glacier2/RouterF.ice b/slice/Glacier2/RouterF.ice
index 70664f44801..ec420e71f63 100644
--- a/slice/Glacier2/RouterF.ice
+++ b/slice/Glacier2/RouterF.ice
@@ -10,6 +10,8 @@
#ifndef GLACIER2_ROUTER_F_ICE
#define GLACIER2_ROUTER_F_ICE
+[["cpp:header-ext:h"]]
+
module Glacier2
{
diff --git a/slice/Glacier2/SSLInfo.ice b/slice/Glacier2/SSLInfo.ice
index d1ae83b1433..94132ecf01b 100644
--- a/slice/Glacier2/SSLInfo.ice
+++ b/slice/Glacier2/SSLInfo.ice
@@ -10,6 +10,8 @@
#ifndef GLACIER2_SSL_INFO_ICE
#define GLACIER2_SSL_INFO_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/BuiltinSequences.ice>
module Glacier2
diff --git a/slice/Glacier2/Session.ice b/slice/Glacier2/Session.ice
index ea687194350..02596804fc1 100644
--- a/slice/Glacier2/Session.ice
+++ b/slice/Glacier2/Session.ice
@@ -10,6 +10,8 @@
#ifndef GLACIER2_SESSION_ICE
#define GLACIER2_SESSION_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/BuiltinSequences.ice>
#include <Ice/Identity.ice>
#include <Glacier2/SSLInfo.ice>
diff --git a/slice/Glacier2/SessionF.ice b/slice/Glacier2/SessionF.ice
index 74a4faa5309..08386afc758 100644
--- a/slice/Glacier2/SessionF.ice
+++ b/slice/Glacier2/SessionF.ice
@@ -10,6 +10,8 @@
#ifndef GLACIER2_SESSION_F_ICE
#define GLACIER2_SESSION_F_ICE
+[["cpp:header-ext:h"]]
+
module Glacier2
{
diff --git a/slice/Ice/BuiltinSequences.ice b/slice/Ice/BuiltinSequences.ice
index 87e26022fce..306e6314a37 100644
--- a/slice/Ice/BuiltinSequences.ice
+++ b/slice/Ice/BuiltinSequences.ice
@@ -10,6 +10,8 @@
#ifndef ICE_BUILTIN_SEQUENCES_ICE
#define ICE_BUILTIN_SEQUENCES_ICE
+[["cpp:header-ext:h"]]
+
module Ice
{
diff --git a/slice/Ice/Communicator.ice b/slice/Ice/Communicator.ice
index 4d464677612..aaffff1b0f3 100644
--- a/slice/Ice/Communicator.ice
+++ b/slice/Ice/Communicator.ice
@@ -10,6 +10,8 @@
#ifndef ICE_COMMUNICATOR_ICE
#define ICE_COMMUNICATOR_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/LoggerF.ice>
#include <Ice/StatsF.ice>
#include <Ice/ObjectAdapterF.ice>
diff --git a/slice/Ice/CommunicatorF.ice b/slice/Ice/CommunicatorF.ice
index 2ea5062d412..ea8ae669fe9 100644
--- a/slice/Ice/CommunicatorF.ice
+++ b/slice/Ice/CommunicatorF.ice
@@ -10,6 +10,8 @@
#ifndef ICE_COMMUNICATOR_F_ICE
#define ICE_COMMUNICATOR_F_ICE
+[["cpp:header-ext:h"]]
+
module Ice
{
diff --git a/slice/Ice/Connection.ice b/slice/Ice/Connection.ice
index 8603a697994..29d4c59562a 100644
--- a/slice/Ice/Connection.ice
+++ b/slice/Ice/Connection.ice
@@ -10,6 +10,8 @@
#ifndef ICE_CONNECTION_ICE
#define ICE_CONNECTION_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/ObjectAdapterF.ice>
#include <Ice/Identity.ice>
diff --git a/slice/Ice/ConnectionF.ice b/slice/Ice/ConnectionF.ice
index f8602c60c90..b7c982d7537 100644
--- a/slice/Ice/ConnectionF.ice
+++ b/slice/Ice/ConnectionF.ice
@@ -10,6 +10,8 @@
#ifndef ICE_CONNECTION_F_ICE
#define ICE_CONNECTION_F_ICE
+[["cpp:header-ext:h"]]
+
module Ice
{
diff --git a/slice/Ice/Current.ice b/slice/Ice/Current.ice
index a3af5456927..40d46264adf 100644
--- a/slice/Ice/Current.ice
+++ b/slice/Ice/Current.ice
@@ -10,6 +10,8 @@
#ifndef ICE_CURRENT_ICE
#define ICE_CURRENT_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/ObjectAdapterF.ice>
#include <Ice/ConnectionF.ice>
#include <Ice/Identity.ice>
diff --git a/slice/Ice/Endpoint.ice b/slice/Ice/Endpoint.ice
index 84732f8b089..fafd424fc3b 100644
--- a/slice/Ice/Endpoint.ice
+++ b/slice/Ice/Endpoint.ice
@@ -10,6 +10,8 @@
#ifndef ICE_ENDPOINT_ICE
#define ICE_ENDPOINT_ICE
+[["cpp:header-ext:h"]]
+
module Ice
{
diff --git a/slice/Ice/FacetMap.ice b/slice/Ice/FacetMap.ice
index 09aefe146f0..6299bf8e5f6 100644
--- a/slice/Ice/FacetMap.ice
+++ b/slice/Ice/FacetMap.ice
@@ -10,6 +10,8 @@
#ifndef ICE_FACET_MAP_ICE
#define ICE_FACET_MAP_ICE
+[["cpp:header-ext:h"]]
+
module Ice
{
diff --git a/slice/Ice/Identity.ice b/slice/Ice/Identity.ice
index 736759de678..649fdcad838 100644
--- a/slice/Ice/Identity.ice
+++ b/slice/Ice/Identity.ice
@@ -10,6 +10,8 @@
#ifndef ICE_IDENTITY_ICE
#define ICE_IDENTITY_ICE
+[["cpp:header-ext:h"]]
+
module Ice
{
diff --git a/slice/Ice/ImplicitContext.ice b/slice/Ice/ImplicitContext.ice
index 2b26687aa33..40c53d54257 100644
--- a/slice/Ice/ImplicitContext.ice
+++ b/slice/Ice/ImplicitContext.ice
@@ -10,6 +10,8 @@
#ifndef ICE_IMPLICIT_CONTEXT_ICE
#define ICE_IMPLICIT_CONTEXT_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/LocalException.ice>
#include <Ice/Current.ice>
diff --git a/slice/Ice/ImplicitContextF.ice b/slice/Ice/ImplicitContextF.ice
index 4e4a552d522..8d91544e96f 100644
--- a/slice/Ice/ImplicitContextF.ice
+++ b/slice/Ice/ImplicitContextF.ice
@@ -10,6 +10,8 @@
#ifndef ICE_IMPLICIT_CONTEXT_F_ICE
#define ICE_IMPLICIT_CONTEXT_F_ICE
+[["cpp:header-ext:h"]]
+
module Ice
{
diff --git a/slice/Ice/LocalException.ice b/slice/Ice/LocalException.ice
index b4cd5cba645..24923d87509 100644
--- a/slice/Ice/LocalException.ice
+++ b/slice/Ice/LocalException.ice
@@ -10,6 +10,8 @@
#ifndef ICE_LOCAL_EXCEPTION_ICE
#define ICE_LOCAL_EXCEPTION_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/Identity.ice>
#include <Ice/BuiltinSequences.ice>
diff --git a/slice/Ice/Locator.ice b/slice/Ice/Locator.ice
index 8b5c74ea437..3b5325b90f4 100644
--- a/slice/Ice/Locator.ice
+++ b/slice/Ice/Locator.ice
@@ -10,6 +10,8 @@
#ifndef ICE_LOCATOR_ICE
#define ICE_LOCATOR_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/Identity.ice>
#include <Ice/ProcessF.ice>
diff --git a/slice/Ice/LocatorF.ice b/slice/Ice/LocatorF.ice
index 2490e4a31e7..401b6f5040c 100644
--- a/slice/Ice/LocatorF.ice
+++ b/slice/Ice/LocatorF.ice
@@ -10,6 +10,8 @@
#ifndef ICE_LOCATOR_F_ICE
#define ICE_LOCATOR_F_ICE
+[["cpp:header-ext:h"]]
+
module Ice
{
diff --git a/slice/Ice/Logger.ice b/slice/Ice/Logger.ice
index 42d4bcf2407..3baa235b7dd 100644
--- a/slice/Ice/Logger.ice
+++ b/slice/Ice/Logger.ice
@@ -10,6 +10,8 @@
#ifndef ICE_LOGGER_ICE
#define ICE_LOGGER_ICE
+[["cpp:header-ext:h"]]
+
module Ice
{
diff --git a/slice/Ice/LoggerF.ice b/slice/Ice/LoggerF.ice
index a162f3eecbc..567670b6bfb 100644
--- a/slice/Ice/LoggerF.ice
+++ b/slice/Ice/LoggerF.ice
@@ -10,6 +10,8 @@
#ifndef ICE_LOGGER_F_ICE
#define ICE_LOGGER_F_ICE
+[["cpp:header-ext:h"]]
+
module Ice
{
diff --git a/slice/Ice/ObjectAdapter.ice b/slice/Ice/ObjectAdapter.ice
index 264aa046784..c1d48a151e2 100644
--- a/slice/Ice/ObjectAdapter.ice
+++ b/slice/Ice/ObjectAdapter.ice
@@ -10,6 +10,8 @@
#ifndef ICE_OBJECT_ADAPTER_ICE
#define ICE_OBJECT_ADAPTER_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/CommunicatorF.ice>
#include <Ice/ServantLocatorF.ice>
#include <Ice/LocatorF.ice>
diff --git a/slice/Ice/ObjectAdapterF.ice b/slice/Ice/ObjectAdapterF.ice
index 47413a198d6..c124ba8f7fb 100644
--- a/slice/Ice/ObjectAdapterF.ice
+++ b/slice/Ice/ObjectAdapterF.ice
@@ -10,6 +10,8 @@
#ifndef ICE_OBJECT_ADAPTER_F_ICE
#define ICE_OBJECT_ADAPTER_F_ICE
+[["cpp:header-ext:h"]]
+
module Ice
{
diff --git a/slice/Ice/ObjectFactory.ice b/slice/Ice/ObjectFactory.ice
index 06593a58c24..8e97300c874 100644
--- a/slice/Ice/ObjectFactory.ice
+++ b/slice/Ice/ObjectFactory.ice
@@ -10,6 +10,8 @@
#ifndef ICE_OBJECT_FACTORY_ICE
#define ICE_OBJECT_FACTORY_ICE
+[["cpp:header-ext:h"]]
+
module Ice
{
diff --git a/slice/Ice/ObjectFactoryF.ice b/slice/Ice/ObjectFactoryF.ice
index 9b8f7fad0c5..fff74448aa0 100644
--- a/slice/Ice/ObjectFactoryF.ice
+++ b/slice/Ice/ObjectFactoryF.ice
@@ -7,8 +7,10 @@
//
// **********************************************************************
-#ifndef ICE_SERVANT_FACTORY_F_ICE
-#define ICE_SERVANT_FACTORY_F_ICE
+#ifndef ICE_OBJECT_FACTORY_F_ICE
+#define ICE_OBJECT_FACTORY_F_ICE
+
+[["cpp:header-ext:h"]]
module Ice
{
diff --git a/slice/Ice/Plugin.ice b/slice/Ice/Plugin.ice
index a872ed658aa..0d6e1515e9c 100644
--- a/slice/Ice/Plugin.ice
+++ b/slice/Ice/Plugin.ice
@@ -10,6 +10,8 @@
#ifndef ICE_PLUGIN_ICE
#define ICE_PLUGIN_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/LoggerF.ice>
module Ice
diff --git a/slice/Ice/PluginF.ice b/slice/Ice/PluginF.ice
index 04aca2b7616..b30f0636adf 100644
--- a/slice/Ice/PluginF.ice
+++ b/slice/Ice/PluginF.ice
@@ -10,6 +10,8 @@
#ifndef ICE_PLUGIN_F_ICE
#define ICE_PLUGIN_F_ICE
+[["cpp:header-ext:h"]]
+
module Ice
{
diff --git a/slice/Ice/Process.ice b/slice/Ice/Process.ice
index 162e13d3958..1662775c1e3 100644
--- a/slice/Ice/Process.ice
+++ b/slice/Ice/Process.ice
@@ -10,6 +10,8 @@
#ifndef ICE_PROCESS_ICE
#define ICE_PROCESS_ICE
+[["cpp:header-ext:h"]]
+
module Ice
{
diff --git a/slice/Ice/ProcessF.ice b/slice/Ice/ProcessF.ice
index 86951dc6fee..c9cb8d2297d 100644
--- a/slice/Ice/ProcessF.ice
+++ b/slice/Ice/ProcessF.ice
@@ -10,6 +10,8 @@
#ifndef ICE_PROCESS_F_ICE
#define ICE_PROCESS_F_ICE
+[["cpp:header-ext:h"]]
+
module Ice
{
diff --git a/slice/Ice/Properties.ice b/slice/Ice/Properties.ice
index c391403c711..f193c00caab 100644
--- a/slice/Ice/Properties.ice
+++ b/slice/Ice/Properties.ice
@@ -10,6 +10,8 @@
#ifndef ICE_PROPERTIES_ICE
#define ICE_PROPERTIES_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/BuiltinSequences.ice>
module Ice
diff --git a/slice/Ice/PropertiesF.ice b/slice/Ice/PropertiesF.ice
index cd93484aedb..8da07da5117 100644
--- a/slice/Ice/PropertiesF.ice
+++ b/slice/Ice/PropertiesF.ice
@@ -10,6 +10,8 @@
#ifndef ICE_PROPERTIES_F_ICE
#define ICE_PROPERTIES_F_ICE
+[["cpp:header-ext:h"]]
+
module Ice
{
diff --git a/slice/Ice/Router.ice b/slice/Ice/Router.ice
index 70b90801c31..385e353fc41 100644
--- a/slice/Ice/Router.ice
+++ b/slice/Ice/Router.ice
@@ -10,6 +10,8 @@
#ifndef ICE_ROUTER_ICE
#define ICE_ROUTER_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/BuiltinSequences.ice>
module Ice
diff --git a/slice/Ice/RouterF.ice b/slice/Ice/RouterF.ice
index 0bf87bd732b..47093b80825 100644
--- a/slice/Ice/RouterF.ice
+++ b/slice/Ice/RouterF.ice
@@ -10,6 +10,8 @@
#ifndef ICE_ROUTER_F_ICE
#define ICE_ROUTER_F_ICE
+[["cpp:header-ext:h"]]
+
module Ice
{
diff --git a/slice/Ice/ServantLocator.ice b/slice/Ice/ServantLocator.ice
index 310c9c90ba5..504ea58e411 100644
--- a/slice/Ice/ServantLocator.ice
+++ b/slice/Ice/ServantLocator.ice
@@ -10,6 +10,8 @@
#ifndef ICE_SERVANT_LOCATOR_ICE
#define ICE_SERVANT_LOCATOR_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/ObjectAdapterF.ice>
#include <Ice/Current.ice>
diff --git a/slice/Ice/ServantLocatorF.ice b/slice/Ice/ServantLocatorF.ice
index 458eff0d057..20e6398f4b0 100644
--- a/slice/Ice/ServantLocatorF.ice
+++ b/slice/Ice/ServantLocatorF.ice
@@ -10,6 +10,8 @@
#ifndef ICE_SERVANT_LOCATOR_F_ICE
#define ICE_SERVANT_LOCATOR_F_ICE
+[["cpp:header-ext:h"]]
+
module Ice
{
diff --git a/slice/Ice/SliceChecksumDict.ice b/slice/Ice/SliceChecksumDict.ice
index 464081c54ea..87d2da1cd69 100644
--- a/slice/Ice/SliceChecksumDict.ice
+++ b/slice/Ice/SliceChecksumDict.ice
@@ -10,6 +10,8 @@
#ifndef ICE_SLICE_CHECKSUM_DICT_ICE
#define ICE_SLICE_CHECKSUM_DICT_ICE
+[["cpp:header-ext:h"]]
+
module Ice
{
diff --git a/slice/Ice/Stats.ice b/slice/Ice/Stats.ice
index c6f57fb9ed6..45a58d25b31 100644
--- a/slice/Ice/Stats.ice
+++ b/slice/Ice/Stats.ice
@@ -10,6 +10,8 @@
#ifndef ICE_STATS_ICE
#define ICE_STATS_ICE
+[["cpp:header-ext:h"]]
+
module Ice
{
diff --git a/slice/Ice/StatsF.ice b/slice/Ice/StatsF.ice
index 004858ab54c..540edd45712 100644
--- a/slice/Ice/StatsF.ice
+++ b/slice/Ice/StatsF.ice
@@ -10,6 +10,8 @@
#ifndef ICE_STATS_F_ICE
#define ICE_STATS_F_ICE
+[["cpp:header-ext:h"]]
+
module Ice
{
diff --git a/slice/IceBox/IceBox.ice b/slice/IceBox/IceBox.ice
index b9c0c0cb118..e599a4323ef 100644
--- a/slice/IceBox/IceBox.ice
+++ b/slice/IceBox/IceBox.ice
@@ -10,6 +10,8 @@
#ifndef ICE_BOX_ICE_BOX_ICE
#define ICE_BOX_ICE_BOX_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/BuiltinSequences.ice>
#include <Ice/CommunicatorF.ice>
#include <Ice/PropertiesF.ice>
diff --git a/slice/IceGrid/Admin.ice b/slice/IceGrid/Admin.ice
index 8660878aca6..212392a148e 100644
--- a/slice/IceGrid/Admin.ice
+++ b/slice/IceGrid/Admin.ice
@@ -10,6 +10,8 @@
#ifndef ICE_GRID_ADMIN_ICE
#define ICE_GRID_ADMIN_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/Identity.ice>
#include <Ice/BuiltinSequences.ice>
#include <Ice/Properties.ice>
diff --git a/slice/IceGrid/Descriptor.ice b/slice/IceGrid/Descriptor.ice
index 3ac6dad3e41..2d1de16743b 100644
--- a/slice/IceGrid/Descriptor.ice
+++ b/slice/IceGrid/Descriptor.ice
@@ -10,6 +10,8 @@
#ifndef ICE_GRID_DESCRIPTOR_ICE
#define ICE_GRID_DESCRIPTOR_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/Identity.ice>
#include <Ice/BuiltinSequences.ice>
diff --git a/slice/IceGrid/Exception.ice b/slice/IceGrid/Exception.ice
index cbccce90ac0..0a2a692eb7e 100644
--- a/slice/IceGrid/Exception.ice
+++ b/slice/IceGrid/Exception.ice
@@ -10,6 +10,8 @@
#ifndef ICE_GRID_EXCEPTION_ICE
#define ICE_GRID_EXCEPTION_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/Identity.ice>
#include <Ice/BuiltinSequences.ice>
diff --git a/slice/IceGrid/FileParser.ice b/slice/IceGrid/FileParser.ice
index d99633e116a..7b27455eeaa 100644
--- a/slice/IceGrid/FileParser.ice
+++ b/slice/IceGrid/FileParser.ice
@@ -10,6 +10,8 @@
#ifndef ICE_GRID_FILE_PARSER_ICE
#define ICE_GRID_FILE_PARSER_ICE
+[["cpp:header-ext:h"]]
+
#include <IceGrid/Admin.ice>
module IceGrid
diff --git a/slice/IceGrid/Locator.ice b/slice/IceGrid/Locator.ice
index a236b37b6a9..91877f6a8b2 100644
--- a/slice/IceGrid/Locator.ice
+++ b/slice/IceGrid/Locator.ice
@@ -10,6 +10,8 @@
#ifndef ICE_GRID_LOCATOR_ICE
#define ICE_GRID_LOCATOR_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/Locator.ice>
module IceGrid
diff --git a/slice/IceGrid/Observer.ice b/slice/IceGrid/Observer.ice
index abbd069664e..8b89278c2da 100644
--- a/slice/IceGrid/Observer.ice
+++ b/slice/IceGrid/Observer.ice
@@ -10,6 +10,8 @@
#ifndef ICE_GRID_OBSERVER_ICE
#define ICE_GRID_OBSERVER_ICE
+[["cpp:header-ext:h"]]
+
#include <Glacier2/Session.ice>
#include <IceGrid/Exception.ice>
#include <IceGrid/Descriptor.ice>
diff --git a/slice/IceGrid/Query.ice b/slice/IceGrid/Query.ice
index 2304e7edc77..4ea597e852c 100644
--- a/slice/IceGrid/Query.ice
+++ b/slice/IceGrid/Query.ice
@@ -10,6 +10,8 @@
#ifndef ICE_GRID_QUERY_ICE
#define ICE_GRID_QUERY_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/Identity.ice>
#include <Ice/BuiltinSequences.ice>
diff --git a/slice/IceGrid/Registry.ice b/slice/IceGrid/Registry.ice
index 5ef47fae173..6dd91bf6dae 100644
--- a/slice/IceGrid/Registry.ice
+++ b/slice/IceGrid/Registry.ice
@@ -10,6 +10,8 @@
#ifndef ICE_GRID_REGISTRY_ICE
#define ICE_GRID_REGISTRY_ICE
+[["cpp:header-ext:h"]]
+
#include <IceGrid/Exception.ice>
#include <IceGrid/Session.ice>
#include <IceGrid/Admin.ice>
diff --git a/slice/IceGrid/Session.ice b/slice/IceGrid/Session.ice
index ffd00c9f570..d071fc7ca6a 100644
--- a/slice/IceGrid/Session.ice
+++ b/slice/IceGrid/Session.ice
@@ -10,6 +10,8 @@
#ifndef ICE_GRID_SESSION_ICE
#define ICE_GRID_SESSION_ICE
+[["cpp:header-ext:h"]]
+
#include <Glacier2/Session.ice>
#include <IceGrid/Exception.ice>
diff --git a/slice/IceGrid/UserAccountMapper.ice b/slice/IceGrid/UserAccountMapper.ice
index d145b08af50..4befb4da59b 100644
--- a/slice/IceGrid/UserAccountMapper.ice
+++ b/slice/IceGrid/UserAccountMapper.ice
@@ -10,6 +10,8 @@
#ifndef ICE_GRID_USERACCOUNTMAPPER_ICE
#define ICE_GRID_USERACCOUNTMAPPER_ICE
+[["cpp:header-ext:h"]]
+
module IceGrid
{
diff --git a/slice/IcePatch2/FileInfo.ice b/slice/IcePatch2/FileInfo.ice
index 194d1034851..e85a784982b 100644
--- a/slice/IcePatch2/FileInfo.ice
+++ b/slice/IcePatch2/FileInfo.ice
@@ -10,6 +10,8 @@
#ifndef ICE_PATCH2_FILE_INFO_ICE
#define ICE_PATCH2_FILE_INFO_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/BuiltinSequences.ice>
module IcePatch2
diff --git a/slice/IcePatch2/FileServer.ice b/slice/IcePatch2/FileServer.ice
index e18fb043bc4..7e1317c5de9 100644
--- a/slice/IcePatch2/FileServer.ice
+++ b/slice/IcePatch2/FileServer.ice
@@ -10,6 +10,8 @@
#ifndef ICE_PATCH2_FILE_SERVER_ICE
#define ICE_PATCH2_FILE_SERVER_ICE
+[["cpp:header-ext:h"]]
+
#include <IcePatch2/FileInfo.ice>
/**
diff --git a/slice/IceStorm/IceStorm.ice b/slice/IceStorm/IceStorm.ice
index 013ea0e6c23..8a0e96bd4dc 100644
--- a/slice/IceStorm/IceStorm.ice
+++ b/slice/IceStorm/IceStorm.ice
@@ -10,6 +10,8 @@
#ifndef ICE_STORM_ICE
#define ICE_STORM_ICE
+[["cpp:header-ext:h"]]
+
#include <Ice/SliceChecksumDict.ice>
#include <Ice/Identity.ice>