summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2017-05-17 15:02:14 -0700
committerMark Spruiell <mes@zeroc.com>2017-05-17 15:02:14 -0700
commitb535c699af8cb0dada006470fe9cb4cb749585ff (patch)
tree57c612fee30483697cfac8873b7da319f9a94891
parentFixed ICE-7880 - renamed HeartbeatOnInvocation to HeartbeatOnDispatch (diff)
downloadice-b535c699af8cb0dada006470fe9cb4cb749585ff.tar.bz2
ice-b535c699af8cb0dada006470fe9cb4cb749585ff.tar.xz
ice-b535c699af8cb0dada006470fe9cb4cb749585ff.zip
ICE-7442 - reorganizing Python installation
-rw-r--r--cpp/src/Slice/Preprocessor.cpp6
-rw-r--r--cpp/src/Slice/Preprocessor.h1
-rw-r--r--cpp/src/Slice/Python.cpp209
-rw-r--r--cpp/src/Slice/PythonUtil.cpp81
-rw-r--r--cpp/src/Slice/PythonUtil.h11
-rw-r--r--python/BuildInstructionsWindows.md2
-rw-r--r--python/config/Make.rules10
-rw-r--r--python/config/install_dir2
-rw-r--r--python/config/zeroc-ice.pth1
-rw-r--r--python/python/.gitignore1
-rw-r--r--python/python/Glacier2/__init__.py (renamed from python/python/Glacier2.py)10
-rw-r--r--python/python/Ice/IceFuture.py (renamed from python/python/IceFuture.py)0
-rw-r--r--python/python/Ice/__init__.py (renamed from python/python/Ice.py)67
-rw-r--r--python/python/Makefile20
-rwxr-xr-xpython/test/Slice/escape/Client.py2
-rwxr-xr-xpython/test/Slice/import/Client.py2
-rwxr-xr-xpython/test/Slice/macros/Client.py2
-rwxr-xr-xpython/test/Slice/structure/Client.py2
-rw-r--r--slice/Glacier2/Metrics.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/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/EndpointF.ice2
-rw-r--r--slice/Ice/EndpointTypes.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/Instrumentation.ice2
-rw-r--r--slice/Ice/InstrumentationF.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/Metrics.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/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/PropertiesAdmin.ice2
-rw-r--r--slice/Ice/PropertiesF.ice2
-rw-r--r--slice/Ice/RemoteLogger.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/ValueFactory.ice2
-rw-r--r--slice/Ice/Version.ice2
-rw-r--r--slice/IceBT/ConnectionInfo.ice2
-rw-r--r--slice/IceBT/EndpointInfo.ice2
-rw-r--r--slice/IceBT/Types.ice2
-rw-r--r--slice/IceBox/IceBox.ice2
-rw-r--r--slice/IceDiscovery/IceDiscovery.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/PluginFacade.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/IceLocatorDiscovery/IceLocatorDiscovery.ice2
-rw-r--r--slice/IcePatch2/FileInfo.ice2
-rw-r--r--slice/IcePatch2/FileServer.ice2
-rw-r--r--slice/IceSSL/ConnectionInfo.ice2
-rw-r--r--slice/IceSSL/ConnectionInfoF.ice2
-rw-r--r--slice/IceSSL/EndpointInfo.ice2
-rw-r--r--slice/IceStorm/IceStorm.ice2
-rw-r--r--slice/IceStorm/Metrics.ice2
85 files changed, 386 insertions, 177 deletions
diff --git a/cpp/src/Slice/Preprocessor.cpp b/cpp/src/Slice/Preprocessor.cpp
index e275bcd3024..568bc075cf7 100644
--- a/cpp/src/Slice/Preprocessor.cpp
+++ b/cpp/src/Slice/Preprocessor.cpp
@@ -68,6 +68,12 @@ Slice::Preprocessor::~Preprocessor()
}
string
+Slice::Preprocessor::getFileName()
+{
+ return _fileName;
+}
+
+string
Slice::Preprocessor::getBaseName()
{
string base(_fileName);
diff --git a/cpp/src/Slice/Preprocessor.h b/cpp/src/Slice/Preprocessor.h
index 3e017723756..70ef5c2dc5b 100644
--- a/cpp/src/Slice/Preprocessor.h
+++ b/cpp/src/Slice/Preprocessor.h
@@ -40,6 +40,7 @@ public:
const std::vector<std::string>&, const std::string& = "cpp",
const std::string& = "");
+ std::string getFileName();
std::string getBaseName();
static std::string addQuotes(const std::string&);
diff --git a/cpp/src/Slice/Python.cpp b/cpp/src/Slice/Python.cpp
index d50a84059cd..4a46afd9fdb 100644
--- a/cpp/src/Slice/Python.cpp
+++ b/cpp/src/Slice/Python.cpp
@@ -73,6 +73,100 @@ interruptedCallback(int /*signal*/)
interrupted = true;
}
+void
+createDirectory(const string& dir)
+{
+ IceUtilInternal::structstat st;
+ if(!IceUtilInternal::stat(dir, &st))
+ {
+ if(!(st.st_mode & S_IFDIR))
+ {
+ ostringstream os;
+ os << "failed to create directory '" << dir
+ << "': file already exists and is not a directory";
+ throw FileException(__FILE__, __LINE__, os.str());
+ }
+ return;
+ }
+
+ if(IceUtilInternal::mkdir(dir, 0777) != 0)
+ {
+ ostringstream os;
+ os << "cannot create directory '" << dir << "': " << strerror(errno);
+ throw FileException(__FILE__, __LINE__, os.str());
+ }
+}
+
+//
+// Starting in the directory given by output (can be empty for the CWD), create all necessary subdirectories
+// in the path given by pkgdir.
+//
+void
+createPackageDirectory(const string& output, const string& pkgdir)
+{
+ assert(output.empty() || IceUtilInternal::directoryExists(output));
+ assert(!pkgdir.empty());
+
+ vector<string> elements;
+ if(!IceUtilInternal::splitString(pkgdir, "/", elements))
+ {
+ throw FileException(__FILE__, __LINE__, "invalid path in '" + pkgdir + "'");
+ }
+
+ assert(!elements.empty());
+
+ //
+ // Create all necessary subdirectories.
+ //
+ string path = output;
+ for(vector<string>::iterator p = elements.begin(); p != elements.end(); ++p)
+ {
+ if(!path.empty())
+ {
+ path += "/";
+ }
+ path += *p;
+ IceUtilInternal::structstat st;
+ if(IceUtilInternal::stat(path, &st) < 0)
+ {
+ if(IceUtilInternal::mkdir(path, 0777) != 0)
+ {
+ ostringstream os;
+ os << "cannot create directory '" << path << "': " << strerror(errno);
+ throw FileException(__FILE__, __LINE__, os.str());
+ }
+ FileTracker::instance()->addDirectory(path);
+ }
+ else if(!(st.st_mode & S_IFDIR))
+ {
+ ostringstream os;
+ os << "failed to create directory '" << path << "': file already exists and is not a directory";
+ throw FileException(__FILE__, __LINE__, os.str());
+ }
+
+ //
+ // It's possible that the pkgdir metadata specified a directory that won't be visited by our
+ // PackageVisitor. We need every intermediate subdirectory to have an __init__.py file, which
+ // can be empty.
+ //
+ const string init = path + "/__init__.py";
+ if(!IceUtilInternal::fileExists(init))
+ {
+ //
+ // Create an empty file.
+ //
+ IceUtilInternal::Output out;
+ out.open(init.c_str());
+ if(!out)
+ {
+ ostringstream os;
+ os << "cannot open '" << init << "': " << strerror(errno);
+ throw FileException(__FILE__, __LINE__, os.str());
+ }
+ FileTracker::instance()->addFile(init);
+ }
+ }
+}
//
// For each Slice file Foo.ice we generate Foo_ice.py containing the Python
@@ -114,8 +208,6 @@ private:
static const char* _moduleTag;
static const char* _submoduleTag;
- static void createDirectory(const string&);
-
static void addModule(const string&, const string&, const string&);
static void addSubmodule(const string&, const string&, const string&);
@@ -187,32 +279,6 @@ PackageVisitor::visitModuleEnd(const ModulePtr& p)
}
void
-PackageVisitor::createDirectory(const string& dir)
-{
- IceUtilInternal::structstat st;
- if(!IceUtilInternal::stat(dir, &st))
- {
- if(!(st.st_mode & S_IFDIR))
- {
- ostringstream os;
- os << "failed to create package directory `" << dir
- << "': file already exists and is not a directory";
- throw FileException(__FILE__, __LINE__, os.str());
- }
- return;
- }
-
- if(IceUtilInternal::mkdir(dir, 0777) != 0)
- {
- ostringstream os;
- os << "cannot create directory `" << dir << "': " << strerror(errno);
- throw FileException(__FILE__, __LINE__, os.str());
- }
-
- FileTracker::instance()->addDirectory(dir);
-}
-
-void
PackageVisitor::addModule(const string& dir, const string& module, const string& name)
{
//
@@ -256,7 +322,7 @@ PackageVisitor::readInit(const string& dir, StringList& modules, StringList& sub
if(!in)
{
ostringstream os;
- os << "cannot open file `" << initPath << "': " << strerror(errno);
+ os << "cannot open file '" << initPath << "': " << strerror(errno);
throw FileException(__FILE__, __LINE__, os.str());
}
@@ -291,7 +357,7 @@ PackageVisitor::readInit(const string& dir, StringList& modules, StringList& sub
if(s.size() < 8)
{
ostringstream os;
- os << "invalid line `" << s << "' in `" << initPath << "'";
+ os << "invalid line '" << s << "' in '" << initPath << "'";
throw os.str();
}
@@ -323,14 +389,14 @@ PackageVisitor::readInit(const string& dir, StringList& modules, StringList& sub
if(state != InSubmodules)
{
ostringstream os;
- os << "invalid line `" << s << "' in `" << initPath << "'";
+ os << "invalid line '" << s << "' in '" << initPath << "'";
throw os.str();
}
if(s.size() < 15)
{
ostringstream os;
- os << "invalid line `" << s << "' in `" << initPath << "'";
+ os << "invalid line '" << s << "' in '" << initPath << "'";
throw os.str();
}
@@ -338,10 +404,10 @@ PackageVisitor::readInit(const string& dir, StringList& modules, StringList& sub
}
}
- if(state != InSubmodules)
+ if(state == InModules)
{
ostringstream os;
- os << "invalid format in `" << initPath << "'" << endl;
+ os << "invalid format in '" << initPath << "'" << endl;
throw os.str();
}
}
@@ -357,7 +423,7 @@ PackageVisitor::writeInit(const string& dir, const string& name, const StringLis
if(!os)
{
ostringstream os;
- os << "cannot open file `" << initPath << "': " << strerror(errno);
+ os << "cannot open file '" << initPath << "': " << strerror(errno);
throw FileException(__FILE__, __LINE__, os.str());
}
FileTracker::instance()->addFile(initPath);
@@ -521,6 +587,12 @@ Slice::Python::compile(const vector<string>& argv)
return EXIT_FAILURE;
}
+ if(!output.empty() && !IceUtilInternal::directoryExists(output))
+ {
+ consoleErr << argv[0] << ": error: argument for --output-dir does not exist or is not a directory" << endl;
+ return EXIT_FAILURE;
+ }
+
int status = EXIT_SUCCESS;
IceUtil::CtrlCHandler ctrlCHandler;
@@ -627,32 +699,70 @@ Slice::Python::compile(const vector<string>& argv)
}
//
+ // Check if the file contains the python:pkgdir global metadata.
+ //
+ const string pkgdir = getPackageDirectory(icecpp->getFileName(), u);
+
+ //
// If --build-package is specified, we don't generate any code and simply
// update the __init__.py files.
//
if(!buildPackage)
{
+ string path;
+ if(!output.empty())
+ {
+ path = output + '/'; // The output directory must already exist.
+ }
+
+ if(!pkgdir.empty())
+ {
+ //
+ // The metadata is present. It should have the form
+ //
+ // python:pkgdir:A/B/C
+ //
+ // We open the output file in the specified directory, prefixed by the
+ // output directory (if any).
+ //
+ createPackageDirectory(output, pkgdir);
+ path += pkgdir;
+ if(path[path.size() - 1] != '/')
+ {
+ path += "/"; // Append a separator if necessary.
+ }
+ }
+ else
+ {
+ //
+ // The file doesn't contain the python:pkgdir metadata, so we use the
+ // value of the --prefix option (if any).
+ //
+ path += prefix;
+ }
+
+ //
+ // Add the file name (without the .ice extension).
+ //
+ path += base;
+
//
// Append the suffix "_ice" to the filename in order to avoid any conflicts
- // with Slice module names. For example, if the file Test.ice defines a
+ // with Slice module or type names. For example, if the file Test.ice defines a
// Slice module named "Test", then we couldn't create a Python package named
// "Test" and also call the generated file "Test.py".
//
- string file = prefix + base + "_ice.py";
- if(!output.empty())
- {
- file = output + '/' + file;
- }
+ path += "_ice.py";
IceUtilInternal::Output out;
- out.open(file.c_str());
+ out.open(path.c_str());
if(!out)
{
ostringstream os;
- os << "cannot open`" << file << "': " << strerror(errno);
+ os << "cannot open '" << path << "': " << strerror(errno);
throw FileException(__FILE__, __LINE__, os.str());
}
- FileTracker::instance()->addFile(file);
+ FileTracker::instance()->addFile(path);
//
// Emit a Python magic comment to set the file encoding.
@@ -675,7 +785,16 @@ Slice::Python::compile(const vector<string>& argv)
//
if(!noPackage)
{
- PackageVisitor::createModules(u, prefix + base + "_ice", output);
+ string name;
+ if(!pkgdir.empty())
+ {
+ name = getImportFileName(icecpp->getFileName(), u, vector<string>());
+ }
+ else
+ {
+ name = prefix + base + "_ice";
+ }
+ PackageVisitor::createModules(u, name, output);
}
}
catch(const Slice::FileException& ex)
diff --git a/cpp/src/Slice/PythonUtil.cpp b/cpp/src/Slice/PythonUtil.cpp
index ace5a9db9b1..92560601189 100644
--- a/cpp/src/Slice/PythonUtil.cpp
+++ b/cpp/src/Slice/PythonUtil.cpp
@@ -2850,6 +2850,78 @@ Slice::Python::CodeVisitor::writeDocstring(const OperationPtr& op, DocstringMode
_out << nl << "\"\"\"";
}
+string
+Slice::Python::getPackageDirectory(const string& file, const UnitPtr& unit)
+{
+ //
+ // file must be a fully-qualified path name.
+ //
+
+ //
+ // Check if the file contains the python:pkgdir global metadata.
+ //
+ DefinitionContextPtr dc = unit->findDefinitionContext(file);
+ assert(dc);
+ const string prefix = "python:pkgdir:";
+ string pkgdir = dc->findMetaData(prefix);
+ if(!pkgdir.empty())
+ {
+ //
+ // The metadata is present, so the generated file was placed in the specified directory.
+ //
+ pkgdir = pkgdir.substr(prefix.size());
+ assert(!pkgdir.empty()); // This situation should have been caught by MetaDataVisitor.
+ }
+ return pkgdir;
+}
+
+string
+Slice::Python::getImportFileName(const string& file, const UnitPtr& unit, const vector<string>& includePaths)
+{
+ //
+ // The file and includePaths arguments must be fully-qualified path names.
+ //
+
+ //
+ // Check if the file contains the python:pkgdir global metadata.
+ //
+ string pkgdir = getPackageDirectory(file, unit);
+ if(!pkgdir.empty())
+ {
+ //
+ // The metadata is present, so the generated file was placed in the specified directory.
+ //
+ vector<string> names;
+ IceUtilInternal::splitString(pkgdir, "/", names);
+ assert(!names.empty());
+ pkgdir = "";
+ for(vector<string>::iterator p = names.begin(); p != names.end(); ++p)
+ {
+ if(p != names.begin())
+ {
+ pkgdir += ".";
+ }
+ pkgdir += fixIdent(*p);
+ }
+ string::size_type pos = file.rfind('/');
+ assert(pos != string::npos);
+ string name = file.substr(pos + 1); // Get the name of the file without the leading path.
+ assert(!name.empty());
+ replace(name.begin(), name.end(), '.', '_'); // Convert .ice to _ice
+ return pkgdir + "." + name;
+ }
+ else
+ {
+ //
+ // The metadata is not present, so we transform the file name using the include paths (-I)
+ // given to the compiler.
+ //
+ string name = changeInclude(file, includePaths);
+ replace(name.begin(), name.end(), '/', '_');
+ return name + "_ice";
+ }
+}
+
void
Slice::Python::generate(const UnitPtr& un, bool all, bool checksum, const vector<string>& includePaths,
Output& out)
@@ -2871,9 +2943,7 @@ Slice::Python::generate(const UnitPtr& un, bool all, bool checksum, const vector
StringList includes = un->includeFiles();
for(StringList::const_iterator q = includes.begin(); q != includes.end(); ++q)
{
- string file = changeInclude(*q, paths);
- replace(file.begin(), file.end(), '/', '_');
- out << nl << "import " << file << "_ice";
+ out << nl << "import " << getImportFileName(*q, un, paths);
}
}
@@ -3028,6 +3098,11 @@ Slice::Python::MetaDataVisitor::visitUnitStart(const UnitPtr& p)
{
continue;
}
+ static const string pkgdirPrefix = "python:pkgdir:";
+ if(s.find(pkgdirPrefix) == 0 && s.size() > pkgdirPrefix.size())
+ {
+ continue;
+ }
dc->warning(InvalidMetaData, file, "", "ignoring invalid global metadata `" + s + "'");
globalMetaData.remove(s);
diff --git a/cpp/src/Slice/PythonUtil.h b/cpp/src/Slice/PythonUtil.h
index 0b26d696e3b..d0967fce529 100644
--- a/cpp/src/Slice/PythonUtil.h
+++ b/cpp/src/Slice/PythonUtil.h
@@ -19,6 +19,17 @@ namespace Python
{
//
+// Get the package directory from metadata (if any).
+//
+std::string getPackageDirectory(const std::string&, const Slice::UnitPtr&);
+
+//
+// Determine the name of a Python source file for use in an import statement.
+// The return value does not include the .py extension.
+//
+std::string getImportFileName(const std::string&, const Slice::UnitPtr&, const std::vector<std::string>&);
+
+//
// Generate Python code for a translation unit.
//
void generate(const Slice::UnitPtr&, bool, bool, const std::vector<std::string>&, IceUtilInternal::Output&);
diff --git a/python/BuildInstructionsWindows.md b/python/BuildInstructionsWindows.md
index e4c100ed60d..a41d1a5a091 100644
--- a/python/BuildInstructionsWindows.md
+++ b/python/BuildInstructionsWindows.md
@@ -36,7 +36,7 @@ can open one of:
- VS2015 x64 Native Tools Command Prompt
Using the first Command Prompt produces `Win32` binaries by default, while
-the second Command Promt produces `x64` binaries by default.
+the second Command Prompt produces `x64` binaries by default.
In the Command Prompt, change to the `python` subdirectory:
diff --git a/python/config/Make.rules b/python/config/Make.rules
index 549a0d6f2cc..140c64e4590 100644
--- a/python/config/Make.rules
+++ b/python/config/Make.rules
@@ -75,11 +75,11 @@ distclean clean::
$(E) "Cleaning package $3"
$(Q)$(RM) -r $2/$3/.depend
$(Q)$(if $(findstring --no-package,$4),,$(RM) $2/$3/__init__.py)
- $(Q)$(RM) $(patsubst $1/$3/%.ice,$2/$3_%_ice.py,$(wildcard $1/$3/*.ice))
+ $(Q)$(RM) $(patsubst $1/$3/%.ice,$2/$3/%_ice.py,$(wildcard $1/$3/*.ice))
-generate-srcs srcs all:: $(patsubst $1/$3/%.ice,$2/$3_%_ice.py,$(wildcard $1/$3/*.ice))
+generate-srcs srcs all:: $(patsubst $1/$3/%.ice,$2/$3/%_ice.py,$(wildcard $1/$3/*.ice))
-$$(eval $$(call install-data-files,$(patsubst $1/$3/%.ice,$2/$3_%_ice.py,$(wildcard $1/$3/*.ice)),$2,$(install_pythondir),install))
+$$(eval $$(call install-data-files,$(patsubst $1/$3/%.ice,$2/$3/%_ice.py,$(wildcard $1/$3/*.ice)),$2,$(install_pythondir),install))
# If we also generate a package directory with an __init__.py, install it.
ifeq ($(findstring --no-package,$4),)
@@ -93,9 +93,9 @@ endef
#
define make-python-slice
-$2/$3_$(or $4,%)_ice.py: $1/$3/$(or $4,%).ice $2/$3/.depend/$(or $4,%).ice.d $(slice2py_path)
+$2/$3/$(or $4,%)_ice.py: $1/$3/$(or $4,%).ice $2/$3/.depend/$(or $4,%).ice.d $(slice2py_path)
$(E) "Compiling $$<"
$(Q)$(slice2py_path) -I$1 --output-dir $2 $5 --depend $$< > $2/$3/.depend/$(or $4,$$(*F)).ice.d
- $(Q)$(slice2py_path) -I$1 --output-dir $2 --prefix $3_ --checksum $5 $$<
+ $(Q)$(slice2py_path) -I$1 --output-dir $2 --checksum $5 $$<
endef
diff --git a/python/config/install_dir b/python/config/install_dir
index 30da8f10749..435ffd62ab4 100644
--- a/python/config/install_dir
+++ b/python/config/install_dir
@@ -33,4 +33,4 @@ except distutils.errors.DistutilsError:
pass
# Place the source files and the extension in a subdirectory of the installation directory.
-print(os.path.join(e.install_dir, "zeroc-ice"))
+print(e.install_dir)
diff --git a/python/config/zeroc-ice.pth b/python/config/zeroc-ice.pth
deleted file mode 100644
index 78c57de7dca..00000000000
--- a/python/config/zeroc-ice.pth
+++ /dev/null
@@ -1 +0,0 @@
-zeroc-ice
diff --git a/python/python/.gitignore b/python/python/.gitignore
index 3e3f00b9453..685ea725586 100644
--- a/python/python/.gitignore
+++ b/python/python/.gitignore
@@ -1,4 +1,3 @@
-Glacier2/*
IceBox/*
IceGrid/*
IceMX/*
diff --git a/python/python/Glacier2.py b/python/python/Glacier2/__init__.py
index 3b04a4cfd75..6958b89a7d0 100644
--- a/python/python/Glacier2.py
+++ b/python/python/Glacier2/__init__.py
@@ -19,11 +19,11 @@ import threading, traceback, copy
import Ice
Ice.updateModule("Glacier2")
-import Glacier2_Router_ice
-import Glacier2_Session_ice
-import Glacier2_PermissionsVerifier_ice
-import Glacier2_SSLInfo_ice
-import Glacier2_Metrics_ice
+import Glacier2.Router_ice
+import Glacier2.Session_ice
+import Glacier2.PermissionsVerifier_ice
+import Glacier2.SSLInfo_ice
+import Glacier2.Metrics_ice
class SessionNotExistException(Exception):
def __init__(self):
diff --git a/python/python/IceFuture.py b/python/python/Ice/IceFuture.py
index df5eff76c83..df5eff76c83 100644
--- a/python/python/IceFuture.py
+++ b/python/python/Ice/IceFuture.py
diff --git a/python/python/Ice.py b/python/python/Ice/__init__.py
index 96654a8fcc0..a167f54dde5 100644
--- a/python/python/Ice.py
+++ b/python/python/Ice/__init__.py
@@ -80,7 +80,7 @@ def Python35():
return sys.version_info[:2] >= (3, 5)
if Python35():
- from IceFuture import FutureBase, wrap_future
+ from Ice.IceFuture import FutureBase, wrap_future
else:
FutureBase = object
@@ -572,31 +572,32 @@ def getSliceDir():
'''Convenience function for locating the directory containing the Slice files.'''
#
- # Detect setup.py installation in site-packages. The slice
- # files live along side Ice.py
+ # Get the parent of the directory containing this file (__init__.py).
#
- dir = os.path.join(os.path.dirname(__file__), "slice")
- if os.path.isdir(dir):
- return dir
+ pyHome = os.path.join(os.path.dirname(__file__), "..")
#
- # Get the parent of the directory containing this file (Ice.py).
+ # Detect setup.py installation in site-packages. The slice
+ # files live one level above this file.
#
- pyHome = os.path.join(os.path.dirname(__file__), "..")
+ dir = os.path.join(pyHome, "slice")
+ if os.path.isdir(dir):
+ return dir
#
# For an installation from a source distribution, a binary tarball, or a
# Windows installer, the "slice" directory is a sibling of the "python"
# directory.
#
- dir = os.path.join(pyHome, "slice")
+ dir = os.path.join(pyHome, "..", "slice")
if os.path.exists(dir):
return os.path.normpath(dir)
#
- # In a source distribution, the "slice" directory is one level higher.
+ # In a source distribution, the "slice" directory is an extra level higher.
+ # directory.
#
- dir = os.path.join(pyHome, "..", "slice")
+ dir = os.path.join(pyHome, "..", "..", "slice")
if os.path.exists(dir):
return os.path.normpath(dir)
@@ -711,28 +712,28 @@ sliceChecksums = {}
#
# Import generated Ice modules.
#
-import Ice_BuiltinSequences_ice
-import Ice_Current_ice
-import Ice_Communicator_ice
-import Ice_ImplicitContext_ice
-import Ice_Endpoint_ice
-import Ice_EndpointTypes_ice
-import Ice_Identity_ice
-import Ice_LocalException_ice
-import Ice_Locator_ice
-import Ice_Logger_ice
-import Ice_ObjectAdapter_ice
-import Ice_ObjectFactory_ice
-import Ice_ValueFactory_ice
-import Ice_Process_ice
-import Ice_Properties_ice
-import Ice_RemoteLogger_ice
-import Ice_Router_ice
-import Ice_ServantLocator_ice
-import Ice_Connection_ice
-import Ice_Version_ice
-import Ice_Instrumentation_ice
-import Ice_Metrics_ice
+import Ice.BuiltinSequences_ice
+import Ice.Current_ice
+import Ice.Communicator_ice
+import Ice.ImplicitContext_ice
+import Ice.Endpoint_ice
+import Ice.EndpointTypes_ice
+import Ice.Identity_ice
+import Ice.LocalException_ice
+import Ice.Locator_ice
+import Ice.Logger_ice
+import Ice.ObjectAdapter_ice
+import Ice.ObjectFactory_ice
+import Ice.ValueFactory_ice
+import Ice.Process_ice
+import Ice.Properties_ice
+import Ice.RemoteLogger_ice
+import Ice.Router_ice
+import Ice.ServantLocator_ice
+import Ice.Connection_ice
+import Ice.Version_ice
+import Ice.Instrumentation_ice
+import Ice.Metrics_ice
#
# Replace EndpointInfo with our implementation.
diff --git a/python/python/Makefile b/python/python/Makefile
index 53346ffef2f..bd5cd9b43dd 100644
--- a/python/python/Makefile
+++ b/python/python/Makefile
@@ -20,16 +20,6 @@ $(eval $(call load-translator-dependencies,$(top_srcdir)/cpp/src/slice2py))
.NOTPARALLEL:
-install:: | $(DESTDIR)$(install_pythondir)
- $(E) "Installing generated code"
- $(Q)$(INSTALL) *.py $(DESTDIR)$(install_pythondir)
-
-ifneq ($(usr_dir_install),)
-install:: | $(DESTDIR)$(install_pythondir)
- $(E) "Installing .pth file"
- $(Q)$(INSTALL) ../config/zeroc-ice.pth $(DESTDIR)$(install_pythondir)/..
-endif
-
$(eval $(call make-python-package,$(slicedir),$(lang_srcdir)/python,Ice,--no-package))
$(eval $(call make-python-package,$(slicedir),$(lang_srcdir)/python,Glacier2,--no-package))
$(eval $(call make-python-package,$(slicedir),$(lang_srcdir)/python,IceBox))
@@ -38,7 +28,15 @@ $(eval $(call make-python-package,$(slicedir),$(lang_srcdir)/python,IceGrid))
$(eval $(call make-python-package,$(slicedir),$(lang_srcdir)/python,IcePatch2))
$(eval $(call make-python-package,$(slicedir),$(lang_srcdir)/python,IceStorm))
-# Generate this two files individually without the --no-package option to ensure the
+# Generate these two files individually without the --no-package option to ensure the
# IceMX package is updated.
$(eval $(call make-python-slice,$(slicedir),$(lang_srcdir)/python,Ice,Metrics))
$(eval $(call make-python-slice,$(slicedir),$(lang_srcdir)/python,Glacier2,Metrics))
+
+install:: | $(DESTDIR)$(install_pythondir)/Ice
+ $(E) "Installing generated code"
+ $(Q)$(INSTALL) Ice/__init__.py $(DESTDIR)$(install_pythondir)/Ice
+ $(Q)$(INSTALL) Ice/IceFuture.py $(DESTDIR)$(install_pythondir)/Ice
+
+install:: | $(DESTDIR)$(install_pythondir)/Glacier2
+ $(Q)$(INSTALL) Glacier2/__init__.py $(DESTDIR)$(install_pythondir)/Glacier2
diff --git a/python/test/Slice/escape/Client.py b/python/test/Slice/escape/Client.py
index 126d2810482..1946d09fc94 100755
--- a/python/test/Slice/escape/Client.py
+++ b/python/test/Slice/escape/Client.py
@@ -12,7 +12,7 @@ import os, sys, traceback
for toplevel in [".", "..", "../..", "../../..", "../../../.."]:
toplevel = os.path.normpath(toplevel)
- if os.path.exists(os.path.join(toplevel, "python", "Ice.py")):
+ if os.path.exists(os.path.join(toplevel, "python", "Ice", "__init__.py")):
break
else:
raise RuntimeError("can't find toplevel directory!")
diff --git a/python/test/Slice/import/Client.py b/python/test/Slice/import/Client.py
index 94a35d45582..c27f67795ac 100755
--- a/python/test/Slice/import/Client.py
+++ b/python/test/Slice/import/Client.py
@@ -12,7 +12,7 @@ import os, sys, traceback
for toplevel in [".", "..", "../..", "../../..", "../../../.."]:
toplevel = os.path.normpath(toplevel)
- if os.path.exists(os.path.join(toplevel, "python", "Ice.py")):
+ if os.path.exists(os.path.join(toplevel, "python", "Ice", "__init__.py")):
break
else:
raise RuntimeError("can't find toplevel directory!")
diff --git a/python/test/Slice/macros/Client.py b/python/test/Slice/macros/Client.py
index ae60009a31b..5fa054dde5a 100755
--- a/python/test/Slice/macros/Client.py
+++ b/python/test/Slice/macros/Client.py
@@ -12,7 +12,7 @@ import os, sys, traceback
for toplevel in [".", "..", "../..", "../../..", "../../../.."]:
toplevel = os.path.normpath(toplevel)
- if os.path.exists(os.path.join(toplevel, "python", "Ice.py")):
+ if os.path.exists(os.path.join(toplevel, "python", "Ice", "__init__.py")):
break
else:
raise RuntimeError("can't find toplevel directory!")
diff --git a/python/test/Slice/structure/Client.py b/python/test/Slice/structure/Client.py
index 2a9e23246db..19fb2c8a98e 100755
--- a/python/test/Slice/structure/Client.py
+++ b/python/test/Slice/structure/Client.py
@@ -12,7 +12,7 @@ import os, sys, traceback
for toplevel in [".", "..", "../..", "../../..", "../../../.."]:
toplevel = os.path.normpath(toplevel)
- if os.path.exists(os.path.join(toplevel, "python", "Ice.py")):
+ if os.path.exists(os.path.join(toplevel, "python", "Ice", "__init__.py")):
break
else:
raise RuntimeError("can't find toplevel directory!")
diff --git a/slice/Glacier2/Metrics.ice b/slice/Glacier2/Metrics.ice
index 49947dee3af..62181d61076 100644
--- a/slice/Glacier2/Metrics.ice
+++ b/slice/Glacier2/Metrics.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:GLACIER2_API", "objc:header-dir:objc", "objc:dll-export:GLACIER2_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:GLACIER2_API", "objc:header-dir:objc", "objc:dll-export:GLACIER2_API", "js:ice-build", "python:pkgdir:Glacier2"]]
[["cpp:include:Glacier2/Config.h"]]
#include <Ice/Metrics.ice>
diff --git a/slice/Glacier2/PermissionsVerifier.ice b/slice/Glacier2/PermissionsVerifier.ice
index af16d0f40fa..23cb992322d 100644
--- a/slice/Glacier2/PermissionsVerifier.ice
+++ b/slice/Glacier2/PermissionsVerifier.ice
@@ -9,7 +9,7 @@
#pragma once
-[["cpp:header-ext:h", "cpp:dll-export:GLACIER2_API", "objc:header-dir:objc", "objc:dll-export:GLACIER2_API", "js:ice-build"]]
+[["cpp:header-ext:h", "cpp:dll-export:GLACIER2_API", "objc:header-dir:objc", "objc:dll-export:GLACIER2_API", "js:ice-build", "python:pkgdir:Glacier2"]]
[["cpp:include:Glacier2/Config.h"]]
#include <Glacier2/SSLInfo.ice>
diff --git a/slice/Glacier2/PermissionsVerifierF.ice b/slice/Glacier2/PermissionsVerifierF.ice
index fba9eff9df4..dd7f05926c8 100644
--- a/slice/Glacier2/PermissionsVerifierF.ice
+++ b/slice/Glacier2/PermissionsVerifierF.ice
@@ -9,7 +9,7 @@
#pragma once
-[["cpp:header-ext:h", "cpp:dll-export:GLACIER2_API", "objc:header-dir:objc", "objc:dll-export:GLACIER2_API", "js:ice-build"]]
+[["cpp:header-ext:h", "cpp:dll-export:GLACIER2_API", "objc:header-dir:objc", "objc:dll-export:GLACIER2_API", "js:ice-build", "python:pkgdir:Glacier2"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/Glacier2/Router.ice b/slice/Glacier2/Router.ice
index 018f8247d48..7a945dc7158 100644
--- a/slice/Glacier2/Router.ice
+++ b/slice/Glacier2/Router.ice
@@ -9,7 +9,7 @@
#pragma once
-[["cpp:header-ext:h", "cpp:dll-export:GLACIER2_API", "objc:header-dir:objc", "objc:dll-export:GLACIER2_API", "js:ice-build"]]
+[["cpp:header-ext:h", "cpp:dll-export:GLACIER2_API", "objc:header-dir:objc", "objc:dll-export:GLACIER2_API", "js:ice-build", "python:pkgdir:Glacier2"]]
[["cpp:include:Glacier2/Config.h"]]
#include <Ice/Router.ice>
diff --git a/slice/Glacier2/RouterF.ice b/slice/Glacier2/RouterF.ice
index b39bd711611..2d2898cb034 100644
--- a/slice/Glacier2/RouterF.ice
+++ b/slice/Glacier2/RouterF.ice
@@ -9,7 +9,7 @@
#pragma once
-[["cpp:header-ext:h", "cpp:dll-export:GLACIER2_API", "objc:header-dir:objc", "objc:dll-export:GLACIER2_API", "js:ice-build"]]
+[["cpp:header-ext:h", "cpp:dll-export:GLACIER2_API", "objc:header-dir:objc", "objc:dll-export:GLACIER2_API", "js:ice-build", "python:pkgdir:Glacier2"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/Glacier2/SSLInfo.ice b/slice/Glacier2/SSLInfo.ice
index fa11a9cc9b9..05cbe00e66d 100644
--- a/slice/Glacier2/SSLInfo.ice
+++ b/slice/Glacier2/SSLInfo.ice
@@ -9,7 +9,7 @@
#pragma once
-[["cpp:header-ext:h", "cpp:dll-export:GLACIER2_API", "objc:header-dir:objc", "objc:dll-export:GLACIER2_API", "js:ice-build"]]
+[["cpp:header-ext:h", "cpp:dll-export:GLACIER2_API", "objc:header-dir:objc", "objc:dll-export:GLACIER2_API", "js:ice-build", "python:pkgdir:Glacier2"]]
[["cpp:include:Glacier2/Config.h"]]
#include <Ice/BuiltinSequences.ice>
diff --git a/slice/Glacier2/Session.ice b/slice/Glacier2/Session.ice
index 262bb9d8aff..9946541daf5 100644
--- a/slice/Glacier2/Session.ice
+++ b/slice/Glacier2/Session.ice
@@ -9,7 +9,7 @@
#pragma once
-[["cpp:header-ext:h", "cpp:dll-export:GLACIER2_API", "objc:header-dir:objc", "objc:dll-export:GLACIER2_API", "js:ice-build"]]
+[["cpp:header-ext:h", "cpp:dll-export:GLACIER2_API", "objc:header-dir:objc", "objc:dll-export:GLACIER2_API", "js:ice-build", "python:pkgdir:Glacier2"]]
[["cpp:include:Glacier2/Config.h"]]
#include <Ice/BuiltinSequences.ice>
diff --git a/slice/Ice/BuiltinSequences.ice b/slice/Ice/BuiltinSequences.ice
index a2dd12ff23c..41c39c23647 100644
--- a/slice/Ice/BuiltinSequences.ice
+++ b/slice/Ice/BuiltinSequences.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build", "python:pkgdir:Ice"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/Ice/Communicator.ice b/slice/Ice/Communicator.ice
index 280458bbcd0..11a9de91739 100644
--- a/slice/Ice/Communicator.ice
+++ b/slice/Ice/Communicator.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "python:pkgdir:Ice"]]
#include <Ice/LoggerF.ice>
#include <Ice/InstrumentationF.ice>
diff --git a/slice/Ice/CommunicatorF.ice b/slice/Ice/CommunicatorF.ice
index 697558c8d16..0575c7be455 100644
--- a/slice/Ice/CommunicatorF.ice
+++ b/slice/Ice/CommunicatorF.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "python:pkgdir:Ice"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/Ice/Connection.ice b/slice/Ice/Connection.ice
index 3fdcc82f834..de937452277 100644
--- a/slice/Ice/Connection.ice
+++ b/slice/Ice/Connection.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build", "python:pkgdir:Ice"]]
#include <Ice/ObjectAdapterF.ice>
#include <Ice/Identity.ice>
diff --git a/slice/Ice/ConnectionF.ice b/slice/Ice/ConnectionF.ice
index d56e24618fd..9332deaf0d5 100644
--- a/slice/Ice/ConnectionF.ice
+++ b/slice/Ice/ConnectionF.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build", "python:pkgdir:Ice"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/Ice/Current.ice b/slice/Ice/Current.ice
index 219305ff1ba..74d59447e5b 100644
--- a/slice/Ice/Current.ice
+++ b/slice/Ice/Current.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build", "python:pkgdir:Ice"]]
#include <Ice/ObjectAdapterF.ice>
#include <Ice/ConnectionF.ice>
diff --git a/slice/Ice/Endpoint.ice b/slice/Ice/Endpoint.ice
index f56703612f7..0c171fdc989 100644
--- a/slice/Ice/Endpoint.ice
+++ b/slice/Ice/Endpoint.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build", "python:pkgdir:Ice"]]
#include <Ice/Version.ice>
#include <Ice/BuiltinSequences.ice>
diff --git a/slice/Ice/EndpointF.ice b/slice/Ice/EndpointF.ice
index 1ee2db282e8..1b9b2f07347 100644
--- a/slice/Ice/EndpointF.ice
+++ b/slice/Ice/EndpointF.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build", "python:pkgdir:Ice"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/Ice/EndpointTypes.ice b/slice/Ice/EndpointTypes.ice
index 5bf6248cf39..35a0a1f8f01 100644
--- a/slice/Ice/EndpointTypes.ice
+++ b/slice/Ice/EndpointTypes.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build", "python:pkgdir:Ice"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/Ice/FacetMap.ice b/slice/Ice/FacetMap.ice
index aa433408391..664e14dedc1 100644
--- a/slice/Ice/FacetMap.ice
+++ b/slice/Ice/FacetMap.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "python:pkgdir:Ice"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/Ice/Identity.ice b/slice/Ice/Identity.ice
index e0e6c6d17e1..b650ad7c2db 100644
--- a/slice/Ice/Identity.ice
+++ b/slice/Ice/Identity.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build", "python:pkgdir:Ice"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/Ice/ImplicitContext.ice b/slice/Ice/ImplicitContext.ice
index fbbf671283d..2dabdda5e11 100644
--- a/slice/Ice/ImplicitContext.ice
+++ b/slice/Ice/ImplicitContext.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "python:pkgdir:Ice"]]
#include <Ice/LocalException.ice>
#include <Ice/Current.ice>
diff --git a/slice/Ice/ImplicitContextF.ice b/slice/Ice/ImplicitContextF.ice
index b87fb14246f..104cf34ef00 100644
--- a/slice/Ice/ImplicitContextF.ice
+++ b/slice/Ice/ImplicitContextF.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "python:pkgdir:Ice"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/Ice/Instrumentation.ice b/slice/Ice/Instrumentation.ice
index ff0063a7937..590cbd0243a 100644
--- a/slice/Ice/Instrumentation.ice
+++ b/slice/Ice/Instrumentation.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "python:pkgdir:Ice"]]
#include <Ice/EndpointF.ice>
#include <Ice/ConnectionF.ice>
diff --git a/slice/Ice/InstrumentationF.ice b/slice/Ice/InstrumentationF.ice
index 18ad14e1a25..03bd355ea4d 100644
--- a/slice/Ice/InstrumentationF.ice
+++ b/slice/Ice/InstrumentationF.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "python:pkgdir:Ice"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/Ice/LocalException.ice b/slice/Ice/LocalException.ice
index f0b21b3324f..be9098b6b2b 100644
--- a/slice/Ice/LocalException.ice
+++ b/slice/Ice/LocalException.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build", "python:pkgdir:Ice"]]
#include <Ice/Identity.ice>
#include <Ice/Version.ice>
diff --git a/slice/Ice/Locator.ice b/slice/Ice/Locator.ice
index 441ac5ab397..4d61ef569c4 100644
--- a/slice/Ice/Locator.ice
+++ b/slice/Ice/Locator.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build", "python:pkgdir:Ice"]]
#include <Ice/Identity.ice>
#include <Ice/Process.ice>
diff --git a/slice/Ice/LocatorF.ice b/slice/Ice/LocatorF.ice
index 8d028c5a67d..b82ac90fa56 100644
--- a/slice/Ice/LocatorF.ice
+++ b/slice/Ice/LocatorF.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "python:pkgdir:Ice"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/Ice/Logger.ice b/slice/Ice/Logger.ice
index 376e99984b1..4ea8bae1114 100644
--- a/slice/Ice/Logger.ice
+++ b/slice/Ice/Logger.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "python:pkgdir:Ice"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/Ice/LoggerF.ice b/slice/Ice/LoggerF.ice
index c1b41f84ab4..a3ef1fec89b 100644
--- a/slice/Ice/LoggerF.ice
+++ b/slice/Ice/LoggerF.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "python:pkgdir:Ice"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/Ice/Metrics.ice b/slice/Ice/Metrics.ice
index 43ea05a2cbc..534dca93ca4 100644
--- a/slice/Ice/Metrics.ice
+++ b/slice/Ice/Metrics.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build", "python:pkgdir:Ice"]]
#include <Ice/BuiltinSequences.ice>
diff --git a/slice/Ice/ObjectAdapter.ice b/slice/Ice/ObjectAdapter.ice
index ae0f8a84f03..2baf7109a31 100644
--- a/slice/Ice/ObjectAdapter.ice
+++ b/slice/Ice/ObjectAdapter.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "python:pkgdir:Ice"]]
#include <Ice/CommunicatorF.ice>
#include <Ice/ServantLocatorF.ice>
diff --git a/slice/Ice/ObjectAdapterF.ice b/slice/Ice/ObjectAdapterF.ice
index 097544e7bab..314bcf9f31c 100644
--- a/slice/Ice/ObjectAdapterF.ice
+++ b/slice/Ice/ObjectAdapterF.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build", "python:pkgdir:Ice"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/Ice/ObjectFactory.ice b/slice/Ice/ObjectFactory.ice
index 291dc3a2914..68028d63194 100644
--- a/slice/Ice/ObjectFactory.ice
+++ b/slice/Ice/ObjectFactory.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "python:pkgdir:Ice"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/Ice/Plugin.ice b/slice/Ice/Plugin.ice
index 63f5969a803..d143b0f71eb 100644
--- a/slice/Ice/Plugin.ice
+++ b/slice/Ice/Plugin.ice
@@ -10,7 +10,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "python:pkgdir:Ice"]]
#include <Ice/LoggerF.ice>
#include <Ice/BuiltinSequences.ice>
diff --git a/slice/Ice/PluginF.ice b/slice/Ice/PluginF.ice
index e3023a56d7f..1b69e102f53 100644
--- a/slice/Ice/PluginF.ice
+++ b/slice/Ice/PluginF.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "python:pkgdir:Ice"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/Ice/Process.ice b/slice/Ice/Process.ice
index b07f4c858da..ea6fc3cff71 100644
--- a/slice/Ice/Process.ice
+++ b/slice/Ice/Process.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build", "python:pkgdir:Ice"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/Ice/ProcessF.ice b/slice/Ice/ProcessF.ice
index c74ba6d2754..1f1f6804fe1 100644
--- a/slice/Ice/ProcessF.ice
+++ b/slice/Ice/ProcessF.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build", "python:pkgdir:Ice"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/Ice/Properties.ice b/slice/Ice/Properties.ice
index 66aa611d3b5..59cd7034c91 100644
--- a/slice/Ice/Properties.ice
+++ b/slice/Ice/Properties.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "python:pkgdir:Ice"]]
#include <Ice/PropertiesAdmin.ice>
diff --git a/slice/Ice/PropertiesAdmin.ice b/slice/Ice/PropertiesAdmin.ice
index 350c4176105..77340cf9019 100644
--- a/slice/Ice/PropertiesAdmin.ice
+++ b/slice/Ice/PropertiesAdmin.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build", "python:pkgdir:Ice"]]
#include <Ice/BuiltinSequences.ice>
diff --git a/slice/Ice/PropertiesF.ice b/slice/Ice/PropertiesF.ice
index 9f5799191b5..dd97d0d8a3c 100644
--- a/slice/Ice/PropertiesF.ice
+++ b/slice/Ice/PropertiesF.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "python:pkgdir:Ice"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/Ice/RemoteLogger.ice b/slice/Ice/RemoteLogger.ice
index 69a41d000c3..43caa57f4b1 100644
--- a/slice/Ice/RemoteLogger.ice
+++ b/slice/Ice/RemoteLogger.ice
@@ -11,7 +11,7 @@
#include <Ice/BuiltinSequences.ice>
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build", "python:pkgdir:Ice"]]
[["cpp:include:list"]]
#ifndef __SLICE2JAVA_COMPAT__
diff --git a/slice/Ice/Router.ice b/slice/Ice/Router.ice
index a1c55e93e5b..4abf973ae0a 100644
--- a/slice/Ice/Router.ice
+++ b/slice/Ice/Router.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build", "python:pkgdir:Ice"]]
#include <Ice/BuiltinSequences.ice>
diff --git a/slice/Ice/RouterF.ice b/slice/Ice/RouterF.ice
index 224576b77dd..08efd92d449 100644
--- a/slice/Ice/RouterF.ice
+++ b/slice/Ice/RouterF.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "python:pkgdir:Ice"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/Ice/ServantLocator.ice b/slice/Ice/ServantLocator.ice
index 8f04f81f7a0..931a012c837 100644
--- a/slice/Ice/ServantLocator.ice
+++ b/slice/Ice/ServantLocator.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "python:pkgdir:Ice"]]
#include <Ice/ObjectAdapterF.ice>
#include <Ice/Current.ice>
diff --git a/slice/Ice/ServantLocatorF.ice b/slice/Ice/ServantLocatorF.ice
index f6caa430554..a112a9797eb 100644
--- a/slice/Ice/ServantLocatorF.ice
+++ b/slice/Ice/ServantLocatorF.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "python:pkgdir:Ice"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/Ice/SliceChecksumDict.ice b/slice/Ice/SliceChecksumDict.ice
index 1788628194b..8061287b8b7 100644
--- a/slice/Ice/SliceChecksumDict.ice
+++ b/slice/Ice/SliceChecksumDict.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build", "python:pkgdir:Ice"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/Ice/ValueFactory.ice b/slice/Ice/ValueFactory.ice
index 0c83b6da694..54de5c213e4 100644
--- a/slice/Ice/ValueFactory.ice
+++ b/slice/Ice/ValueFactory.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "python:pkgdir:Ice"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/Ice/Version.ice b/slice/Ice/Version.ice
index 9458b6e6376..87bbcd974ba 100644
--- a/slice/Ice/Version.ice
+++ b/slice/Ice/Version.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "js:ice-build", "python:pkgdir:Ice"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/IceBT/ConnectionInfo.ice b/slice/IceBT/ConnectionInfo.ice
index 773b69200e8..64ae497d346 100644
--- a/slice/IceBT/ConnectionInfo.ice
+++ b/slice/IceBT/ConnectionInfo.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEBT_API", "objc:header-dir:objc"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEBT_API", "objc:header-dir:objc", "python:pkgdir:IceBT"]]
#include <Ice/Connection.ice>
diff --git a/slice/IceBT/EndpointInfo.ice b/slice/IceBT/EndpointInfo.ice
index 0791b55a81b..e519e5d064c 100644
--- a/slice/IceBT/EndpointInfo.ice
+++ b/slice/IceBT/EndpointInfo.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEBT_API", "objc:header-dir:objc", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEBT_API", "objc:header-dir:objc", "js:ice-build", "python:pkgdir:IceBT"]]
#include <Ice/Endpoint.ice>
diff --git a/slice/IceBT/Types.ice b/slice/IceBT/Types.ice
index 71f467e38b8..60d7c2d7edf 100644
--- a/slice/IceBT/Types.ice
+++ b/slice/IceBT/Types.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEBT_API", "objc:header-dir:objc"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEBT_API", "objc:header-dir:objc", "python:pkgdir:IceBT"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/IceBox/IceBox.ice b/slice/IceBox/IceBox.ice
index 22b85651a4f..13f3c9f6d73 100644
--- a/slice/IceBox/IceBox.ice
+++ b/slice/IceBox/IceBox.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEBOX_API", "objc:header-dir:objc"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEBOX_API", "objc:header-dir:objc", "python:pkgdir:IceBox"]]
[["cpp:include:IceBox/Config.h"]]
#include <Ice/BuiltinSequences.ice>
diff --git a/slice/IceDiscovery/IceDiscovery.ice b/slice/IceDiscovery/IceDiscovery.ice
index 451e6a421a8..4a82bfe48b3 100644
--- a/slice/IceDiscovery/IceDiscovery.ice
+++ b/slice/IceDiscovery/IceDiscovery.ice
@@ -8,7 +8,7 @@
// **********************************************************************
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "objc:header-dir:objc"]]
+[["ice-prefix", "cpp:header-ext:h", "objc:header-dir:objc", "python:pkgdir:IceDiscovery"]]
#include <Ice/Identity.ice>
diff --git a/slice/IceGrid/Admin.ice b/slice/IceGrid/Admin.ice
index ef1ccf7ad7a..6d62124a22a 100644
--- a/slice/IceGrid/Admin.ice
+++ b/slice/IceGrid/Admin.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEGRID_API", "objc:header-dir:objc", "objc:dll-export:ICEGRID_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEGRID_API", "objc:header-dir:objc", "objc:dll-export:ICEGRID_API", "js:ice-build", "python:pkgdir:IceGrid"]]
[["cpp:include:IceGrid/Config.h"]]
#include <Ice/Identity.ice>
diff --git a/slice/IceGrid/Descriptor.ice b/slice/IceGrid/Descriptor.ice
index e40ecb4e261..dca76142306 100644
--- a/slice/IceGrid/Descriptor.ice
+++ b/slice/IceGrid/Descriptor.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "objc:header-dir:objc", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "objc:header-dir:objc", "js:ice-build", "python:pkgdir:IceGrid"]]
#ifndef ICE_BUILDING_ICEGRIDDB
[["cpp:dll-export:ICEGRID_API", "objc:dll-export:ICEGRID_API"]]
diff --git a/slice/IceGrid/Exception.ice b/slice/IceGrid/Exception.ice
index 5cb78c4f169..f8271027971 100644
--- a/slice/IceGrid/Exception.ice
+++ b/slice/IceGrid/Exception.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "objc:header-dir:objc", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "objc:header-dir:objc", "js:ice-build", "python:pkgdir:IceGrid"]]
#ifndef ICE_BUILDING_ICEGRIDDB
[["cpp:dll-export:ICEGRID_API", "objc:dll-export:ICEGRID_API"]]
diff --git a/slice/IceGrid/FileParser.ice b/slice/IceGrid/FileParser.ice
index 335379b8f50..e1b5caf90d6 100644
--- a/slice/IceGrid/FileParser.ice
+++ b/slice/IceGrid/FileParser.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEGRID_API", "objc:header-dir:objc", "objc:dll-export:ICEGRID_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEGRID_API", "objc:header-dir:objc", "objc:dll-export:ICEGRID_API", "js:ice-build", "python:pkgdir:IceGrid"]]
[["cpp:include:IceGrid/Config.h"]]
#include <IceGrid/Admin.ice>
diff --git a/slice/IceGrid/PluginFacade.ice b/slice/IceGrid/PluginFacade.ice
index c80e7b6f40c..4ad1a164206 100644
--- a/slice/IceGrid/PluginFacade.ice
+++ b/slice/IceGrid/PluginFacade.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEGRID_API", "objc:header-dir:objc", "objc:dll-export:ICEGRID_API"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEGRID_API", "objc:header-dir:objc", "objc:dll-export:ICEGRID_API", "python:pkgdir:IceGrid"]]
[["cpp:include:IceGrid/Config.h"]]
#include <Ice/BuiltinSequences.ice>
diff --git a/slice/IceGrid/Registry.ice b/slice/IceGrid/Registry.ice
index 144af2d2d52..d6370dcba40 100644
--- a/slice/IceGrid/Registry.ice
+++ b/slice/IceGrid/Registry.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEGRID_API", "objc:header-dir:objc", "objc:dll-export:ICEGRID_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEGRID_API", "objc:header-dir:objc", "objc:dll-export:ICEGRID_API", "js:ice-build", "python:pkgdir:IceGrid"]]
[["cpp:include:IceGrid/Config.h"]]
#include <IceGrid/Exception.ice>
diff --git a/slice/IceGrid/Session.ice b/slice/IceGrid/Session.ice
index e88c496997f..43f935d4778 100644
--- a/slice/IceGrid/Session.ice
+++ b/slice/IceGrid/Session.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEGRID_API", "objc:header-dir:objc", "objc:dll-export:ICEGRID_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEGRID_API", "objc:header-dir:objc", "objc:dll-export:ICEGRID_API", "js:ice-build", "python:pkgdir:IceGrid"]]
[["cpp:include:IceGrid/Config.h"]]
#include <Glacier2/Session.ice>
diff --git a/slice/IceGrid/UserAccountMapper.ice b/slice/IceGrid/UserAccountMapper.ice
index 051ec120116..e3ddc087c6f 100644
--- a/slice/IceGrid/UserAccountMapper.ice
+++ b/slice/IceGrid/UserAccountMapper.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEGRID_API", "objc:header-dir:objc", "objc:dll-export:ICEGRID_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEGRID_API", "objc:header-dir:objc", "objc:dll-export:ICEGRID_API", "js:ice-build", "python:pkgdir:IceGrid"]]
[["cpp:include:IceGrid/Config.h"]]
#ifndef __SLICE2JAVA_COMPAT__
diff --git a/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice b/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice
index 4c29617b1c4..89d3a20da30 100644
--- a/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice
+++ b/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice
@@ -8,7 +8,7 @@
// **********************************************************************
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "objc:header-dir:objc"]]
+[["ice-prefix", "cpp:header-ext:h", "objc:header-dir:objc", "python:pkgdir:IceLocatorDiscovery"]]
#include <Ice/Locator.ice>
diff --git a/slice/IcePatch2/FileInfo.ice b/slice/IcePatch2/FileInfo.ice
index 2eb9e6bb7ef..a07adf0378b 100644
--- a/slice/IcePatch2/FileInfo.ice
+++ b/slice/IcePatch2/FileInfo.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEPATCH2_API", "objc:header-dir:objc"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEPATCH2_API", "objc:header-dir:objc", "python:pkgdir:IcePatch2"]]
[["cpp:include:IcePatch2/Config.h"]]
#include <Ice/BuiltinSequences.ice>
diff --git a/slice/IcePatch2/FileServer.ice b/slice/IcePatch2/FileServer.ice
index 71e3a6b20ba..e4e5aa45489 100644
--- a/slice/IcePatch2/FileServer.ice
+++ b/slice/IcePatch2/FileServer.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEPATCH2_API", "objc:header-dir:objc"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICEPATCH2_API", "objc:header-dir:objc", "python:pkgdir:IcePatch2"]]
[["cpp:include:IcePatch2/Config.h"]]
#include <IcePatch2/FileInfo.ice>
diff --git a/slice/IceSSL/ConnectionInfo.ice b/slice/IceSSL/ConnectionInfo.ice
index 9cbce24c8b0..6152fd31437 100644
--- a/slice/IceSSL/ConnectionInfo.ice
+++ b/slice/IceSSL/ConnectionInfo.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICESSL_API", "objc:header-dir:objc", "objc:dll-export:ICESSL_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICESSL_API", "objc:header-dir:objc", "objc:dll-export:ICESSL_API", "js:ice-build", "python:pkgdir:IceSSL"]]
[["cpp:include:IceSSL/Plugin.h"]]
diff --git a/slice/IceSSL/ConnectionInfoF.ice b/slice/IceSSL/ConnectionInfoF.ice
index d415b7ce163..772e5f0d36a 100644
--- a/slice/IceSSL/ConnectionInfoF.ice
+++ b/slice/IceSSL/ConnectionInfoF.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICESSL_API", "objc:header-dir:objc", "objc:dll-export:ICESSL_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICESSL_API", "objc:header-dir:objc", "objc:dll-export:ICESSL_API", "js:ice-build", "python:pkgdir:IceSSL"]]
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
diff --git a/slice/IceSSL/EndpointInfo.ice b/slice/IceSSL/EndpointInfo.ice
index f1378e62498..1456571e1d2 100644
--- a/slice/IceSSL/EndpointInfo.ice
+++ b/slice/IceSSL/EndpointInfo.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICESSL_API", "objc:header-dir:objc", "objc:dll-export:ICESSL_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICESSL_API", "objc:header-dir:objc", "objc:dll-export:ICESSL_API", "js:ice-build", "python:pkgdir:IceSSL"]]
#include <Ice/Endpoint.ice>
diff --git a/slice/IceStorm/IceStorm.ice b/slice/IceStorm/IceStorm.ice
index 72994e0f404..b28a3d94af5 100644
--- a/slice/IceStorm/IceStorm.ice
+++ b/slice/IceStorm/IceStorm.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICESTORM_API", "objc:header-dir:objc", "objc:dll-export:ICESTORM_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICESTORM_API", "objc:header-dir:objc", "objc:dll-export:ICESTORM_API", "js:ice-build", "python:pkgdir:IceStorm"]]
[["cpp:include:IceStorm/Config.h"]]
#include <Ice/Identity.ice>
diff --git a/slice/IceStorm/Metrics.ice b/slice/IceStorm/Metrics.ice
index dae0f6d98d6..580b39f93f1 100644
--- a/slice/IceStorm/Metrics.ice
+++ b/slice/IceStorm/Metrics.ice
@@ -9,7 +9,7 @@
#pragma once
-[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICESTORM_API", "objc:header-dir:objc", "objc:dll-export:ICESTORM_API", "js:ice-build"]]
+[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICESTORM_API", "objc:header-dir:objc", "objc:dll-export:ICESTORM_API", "js:ice-build", "python:pkgdir:IceStorm"]]
[["cpp:include:IceStorm/Config.h"]]
#include <Ice/Metrics.ice>