mirror of
https://github.com/python/cpython.git
synced 2025-10-13 10:23:28 +00:00
Make distutils "install --home" support all platforms.
This commit is contained in:
parent
8d726eef96
commit
ec6229e352
4 changed files with 96 additions and 34 deletions
|
@ -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 ()
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue