From 17433d206c1a705c8dad9a52d33c5546dc069e42 Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Fri, 9 May 2008 12:19:09 +0000 Subject: [PATCH] Add --user option to build_ext --- Lib/distutils/command/build_ext.py | 16 +++++++++++++++- Lib/site.py | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py index bf5ad7e00b7..beb33194693 100644 --- a/Lib/distutils/command/build_ext.py +++ b/Lib/distutils/command/build_ext.py @@ -10,6 +10,7 @@ __revision__ = "$Id$" import sys, os, string, re from types import * +from site import USER_BASE, USER_SITE from distutils.core import Command from distutils.errors import * from distutils.sysconfig import customize_compiler, get_python_version @@ -93,9 +94,11 @@ class build_ext (Command): "list of SWIG command line options"), ('swig=', None, "path to the SWIG executable"), + ('user', None, + "add user include, library and rpath"), ] - boolean_options = ['inplace', 'debug', 'force', 'swig-cpp'] + boolean_options = ['inplace', 'debug', 'force', 'swig-cpp', 'user'] help_options = [ ('help-compiler', None, @@ -123,6 +126,7 @@ class build_ext (Command): self.swig = None self.swig_cpp = None self.swig_opts = None + self.user = None def finalize_options (self): from distutils import sysconfig @@ -257,6 +261,16 @@ class build_ext (Command): else: self.swig_opts = self.swig_opts.split(' ') + # Finally add the user include and library directories if requested + if self.user: + user_include = os.path.join(USER_BASE, "include") + user_lib = os.path.join(USER_BASE, "lib") + if os.path.isdir(user_include): + self.include_dirs.append(user_include) + if os.path.isdir(user_lib): + self.library_dirs.append(user_lib) + self.rpath.append(user_lib) + # finalize_options () diff --git a/Lib/site.py b/Lib/site.py index 8ea880c925c..ccec642bf26 100644 --- a/Lib/site.py +++ b/Lib/site.py @@ -522,7 +522,7 @@ def _script(): Exit codes with --user-base or --user-site: 0 - user site directory is enabled - 1 - user site diretory is disabled by user + 1 - user site directory is disabled by user 2 - uses site directory is disabled by super user or for security reasons >2 - unknown error