Make distutils "install --home" support all platforms.

This commit is contained in:
Fred Drake 2004-06-25 23:02:59 +00:00
parent 8d726eef96
commit ec6229e352
4 changed files with 96 additions and 34 deletions

View file

@ -242,19 +242,15 @@ class install (Command):
("must supply either prefix/exec-prefix/home or " +
"install-base/install-platbase -- not both")
if self.home and (self.prefix or self.exec_prefix):
raise DistutilsOptionError, \
"must supply either home or prefix/exec-prefix -- not both"
# Next, stuff that's wrong (or dubious) only on certain platforms.
if os.name == 'posix':
if self.home and (self.prefix or self.exec_prefix):
raise DistutilsOptionError, \
("must supply either home or prefix/exec-prefix -- " +
"not both")
else:
if os.name != "posix":
if self.exec_prefix:
self.warn("exec-prefix option ignored on this platform")
self.exec_prefix = None
if self.home:
self.warn("home option ignored on this platform")
self.home = None
# Now the interesting logic -- so interesting that we farm it out
# to other methods. The goal of these methods is to set the final
@ -405,15 +401,19 @@ class install (Command):
def finalize_other (self): # Windows and Mac OS for now
if self.prefix is None:
self.prefix = os.path.normpath(sys.prefix)
if self.home is not None:
self.install_base = self.install_platbase = self.home
self.select_scheme("unix_home")
else:
if self.prefix is None:
self.prefix = os.path.normpath(sys.prefix)
self.install_base = self.install_platbase = self.prefix
try:
self.select_scheme(os.name)
except KeyError:
raise DistutilsPlatformError, \
"I don't know how to install stuff on '%s'" % os.name
self.install_base = self.install_platbase = self.prefix
try:
self.select_scheme(os.name)
except KeyError:
raise DistutilsPlatformError, \
"I don't know how to install stuff on '%s'" % os.name
# finalize_other ()