]> granicus.if.org Git - python/commitdiff
Added --skip-build option, so lazy debuggers/testers (mainly me) don't
authorGregory P. Smith <greg@mad-scientist.com>
Fri, 12 May 2000 01:46:47 +0000 (01:46 +0000)
committerGregory P. Smith <greg@mad-scientist.com>
Fri, 12 May 2000 01:46:47 +0000 (01:46 +0000)
have to wade through all the 'build' output when testing installation.

Lib/distutils/command/install.py
Lib/distutils/command/install_lib.py

index 3f6fa33fc6d412483bad6edd9fc57c76f1478224..4e68e00e95f5f3740f108b06076b6e56f1ff5314 100644 (file)
@@ -77,6 +77,11 @@ class install (Command):
         ('install-data=', None,
          "installation directory for data files"),
 
+        # For lazy debuggers who just want to test the install
+        # commands without rerunning "build" all the time
+        ('skip-build', None,
+         "skip rebuilding everything (for testing/debugging)"),
+
         # Where to install documentation (eventually!)
         #('doc-format=', None, "format of documentation to generate"),
         #('install-man=', None, "directory for Unix man pages"),
@@ -129,6 +134,8 @@ class install (Command):
         self.extra_path = None
         self.install_path_file = 0
 
+        self.skip_build = 0
+
         # These are only here as a conduit from the 'build' command to the
         # 'install_*' commands that do the real work.  ('build_base' isn't
         # actually used anywhere, but it might be useful in future.)  They
@@ -270,7 +277,10 @@ class install (Command):
         from distutils.fancy_getopt import longopt_xlate
         print msg + ":"
         for opt in self.user_options:
-            opt_name = string.translate (opt[0][0:-1], longopt_xlate)
+            opt_name = opt[0]
+            if opt_name[-1] == "=":
+                opt_name = opt_name[0:-1]
+            opt_name = string.translate (opt_name, longopt_xlate)
             val = getattr (self, opt_name)
             print "  %s: %s" % (opt_name, val)
 
@@ -409,7 +419,8 @@ class install (Command):
     def run (self):
 
         # Obviously have to build before we can install
-        self.run_peer ('build')
+        if not self.skip_build:
+            self.run_peer ('build')
 
         # Run all sub-commands: currently this just means install all
         # Python modules using 'install_lib'.
index 852e3f63a2cbc3e302cca39b58b500ac0a380b21..2d0a7190f8407a54beb76890fb977c5cd6c03858 100644 (file)
@@ -15,6 +15,7 @@ class install_lib (Command):
         ('build-dir=','b', "build directory (where to install from)"),
         ('compile', 'c', "compile .py to .pyc"),
         ('optimize', 'o', "compile .py to .pyo (optimized)"),
+        ('skip-build', None, "skip the build steps"),
         ]
                
 
@@ -24,6 +25,7 @@ class install_lib (Command):
         self.build_dir = None
         self.compile = 1
         self.optimize = 1
+        self.skip_build = None
 
     def finalize_options (self):
 
@@ -34,16 +36,19 @@ class install_lib (Command):
                                     ('build_lib', 'build_dir'),
                                     ('install_lib', 'install_dir'),
                                     ('compile_py', 'compile'),
-                                    ('optimize_py', 'optimize'))
+                                    ('optimize_py', 'optimize'),
+                                    ('skip_build', 'skip_build'),
+                                   )
 
 
     def run (self):
 
         # Make sure we have built everything we need first
-        if self.distribution.has_pure_modules():
-            self.run_peer ('build_py')
-        if self.distribution.has_ext_modules():
-            self.run_peer ('build_ext')
+        if not self.skip_build:
+            if self.distribution.has_pure_modules():
+                self.run_peer ('build_py')
+            if self.distribution.has_ext_modules():
+                self.run_peer ('build_ext')
 
         # Install everything: simply dump the entire contents of the build
         # directory to the installation directory (that's the beauty of