Home | History | Annotate | Download | only in command
      1 """distutils.command.install_headers
      2 
      3 Implements the Distutils 'install_headers' command, to install C/C++ header
      4 files to the Python include directory."""
      5 
      6 from distutils.core import Command
      7 
      8 
      9 # XXX force is never used
     10 class install_headers(Command):
     11 
     12     description = "install C/C++ header files"
     13 
     14     user_options = [('install-dir=', 'd',
     15                      "directory to install header files to"),
     16                     ('force', 'f',
     17                      "force installation (overwrite existing files)"),
     18                    ]
     19 
     20     boolean_options = ['force']
     21 
     22     def initialize_options(self):
     23         self.install_dir = None
     24         self.force = 0
     25         self.outfiles = []
     26 
     27     def finalize_options(self):
     28         self.set_undefined_options('install',
     29                                    ('install_headers', 'install_dir'),
     30                                    ('force', 'force'))
     31 
     32 
     33     def run(self):
     34         headers = self.distribution.headers
     35         if not headers:
     36             return
     37 
     38         self.mkpath(self.install_dir)
     39         for header in headers:
     40             (out, _) = self.copy_file(header, self.install_dir)
     41             self.outfiles.append(out)
     42 
     43     def get_inputs(self):
     44         return self.distribution.headers or []
     45 
     46     def get_outputs(self):
     47         return self.outfiles
     48