blob: 9bb0b18dc0d809dbc03d9ca355818b3bb0af573b [file] [log] [blame]
Yi Kong878f9942023-12-13 12:55:04 +09001"""distutils.command.install_headers
2
3Implements the Distutils 'install_headers' command, to install C/C++ header
4files to the Python include directory."""
5
6from distutils.core import Command
7
8
9# XXX force is never used
10class 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