diff options
Diffstat (limited to 'setuptools/_distutils/cygwinccompiler.py')
-rw-r--r-- | setuptools/_distutils/cygwinccompiler.py | 37 |
1 files changed, 14 insertions, 23 deletions
diff --git a/setuptools/_distutils/cygwinccompiler.py b/setuptools/_distutils/cygwinccompiler.py index 63910f2a..2c4da5b5 100644 --- a/setuptools/_distutils/cygwinccompiler.py +++ b/setuptools/_distutils/cygwinccompiler.py @@ -20,7 +20,6 @@ from distutils.errors import ( DistutilsPlatformError, CCompilerError, CompileError, - UnknownFileError, ) from distutils.version import LooseVersion, suppress_known_deprecation @@ -242,28 +241,20 @@ class CygwinCCompiler(UnixCCompiler): # -- Miscellaneous methods ----------------------------------------- - def object_filenames(self, source_filenames, strip_dir=0, output_dir=''): - """Adds supports for rc and res files.""" - if output_dir is None: - output_dir = '' - obj_names = [] - for src_name in source_filenames: - # use normcase to make sure '.rc' is really '.rc' and not '.RC' - base, ext = os.path.splitext(os.path.normcase(src_name)) - if ext not in (self.src_extensions + ['.rc', '.res']): - raise UnknownFileError( - "unknown file type '{}' (from '{}')".format(ext, src_name) - ) - if strip_dir: - base = os.path.basename(base) - if ext in ('.res', '.rc'): - # these need to be compiled to object files - obj_names.append( - os.path.join(output_dir, base + ext + self.obj_extension) - ) - else: - obj_names.append(os.path.join(output_dir, base + self.obj_extension)) - return obj_names + def _make_out_path(self, output_dir, strip_dir, src_name): + # use normcase to make sure '.rc' is really '.rc' and not '.RC' + norm_src_name = os.path.normcase(src_name) + return super()._make_out_path(output_dir, strip_dir, norm_src_name) + + @property + def out_extensions(self): + """ + Add support for rc and res files. + """ + return { + **super().out_extensions, + **{ext: ext + self.obj_extension for ext in ('.res', '.rc')}, + } # the same as cygwin plus some additional parameters |