python (3.11.7)
       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 ESC[4;38;5;81minstall_headers(ESC[4;38;5;149mCommand):
      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