--- setuptools-78.1.0/setuptools/_distutils/compilers/C/cygwin.py.orig 2025-03-25 23:49:14.000000000 +0100 +++ setuptools-78.1.0/setuptools/_distutils/compilers/C/cygwin.py 2025-03-30 09:07:37.718193800 +0200 @@ -111,6 +111,18 @@ self.spawn(["windres", "-i", src, "-o", obj]) except DistutilsExecError as msg: raise CompileError(msg) + elif ext == '.mc': + h_dir = os.path.dirname(src) + rc_dir = os.path.dirname(obj) + try: + # first compile .mc to .rc and .h file + self.spawn(['windmc'] + ['-h', h_dir, '-r', rc_dir] + [src]) + base, _ = os.path.splitext(os.path.basename(src)) + rc_file = os.path.join(rc_dir, base + '.rc') + # then compile .rc to .res file + self.spawn(['windres', '-i', rc_file, '-o', obj]) + except DistutilsExecError as msg: + raise CompileError(msg) else: # for other files use the C-compiler try: if self.detect_language(src) == 'c++': @@ -236,7 +248,7 @@ """ return { **super().out_extensions, - **{ext: ext + self.obj_extension for ext in ('.res', '.rc')}, + **{ext: ext + self.obj_extension for ext in ('.res', '.rc', '.mc')}, }