Skip to content

Commit

Permalink
Changed to use the 'sub-commands' machinery:
Browse files Browse the repository at this point in the history
  - added 'sub_commands' class attr
  - added 'has_*()' predicates referenced by the sub-command list
  - rewrote 'run()' so it's a trivial loop over relevant sub-commands
  • Loading branch information
gward committed Sep 30, 2000
1 parent 70b1fd1 commit 64d855a
Showing 1 changed file with 29 additions and 21 deletions.
50 changes: 29 additions & 21 deletions Lib/distutils/command/build.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,26 +97,34 @@ def finalize_options (self):

def run (self):

# For now, "build" means "build_py" then "build_ext". (Eventually
# it should also build documentation.)

# Invoke the 'build_py' command to "build" pure Python modules
# (ie. copy 'em into the build tree)
if self.distribution.has_pure_modules():
self.run_command ('build_py')

# Build any standalone C libraries next -- they're most likely to
# be needed by extension modules, so obviously have to be done
# first!
if self.distribution.has_c_libraries():
self.run_command ('build_clib')

# And now 'build_ext' -- compile extension modules and put them
# into the build tree
if self.distribution.has_ext_modules():
self.run_command ('build_ext')

if self.distribution.has_scripts():
self.run_command ('build_scripts')
# Run all relevant sub-commands. This will be some subset of:
# - build_py - pure Python modules
# - build_clib - standalone C libraries
# - build_ext - Python extensions
# - build_scripts - (Python) scripts
for cmd_name in self.get_sub_commands():
self.run_command(cmd_name)


# -- Predicates for the sub-command list ---------------------------

def has_pure_modules (self):
return self.distribution.has_pure_modules()

def has_c_libraries (self):
return self.distribution.has_c_libraries()

def has_ext_modules (self):
return self.distribution.has_ext_modules()

def has_scripts (self):
return self.distribution.has_scripts()


sub_commands = [('build_py', has_pure_modules),
('build_clib', has_c_libraries),
('build_ext', has_ext_modules),
('build_scripts', has_scripts),
]

# class build

0 comments on commit 64d855a

Please sign in to comment.