From 3a621287b7420fe72b2dbe9f1dd3f38ae1687ed5 Mon Sep 17 00:00:00 2001 From: Patrick Griffis Date: Fri, 30 Sep 2016 23:28:40 -0400 Subject: [PATCH 15/16] setup.py: On Unix install scripts without .py suffix (cherry picked from commit 999669e8501501d4618588008e4bf4353a1ace2a) --- setup.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/setup.py b/setup.py index d5b79ae..42f8d49 100644 --- a/setup.py +++ b/setup.py @@ -14,7 +14,9 @@ # See the License for the specific language governing permissions and # limitations under the License. +import os import sys +from os import path if sys.version_info[0] < 3: print('Tried to install with Python 2, Meson only supports Python 3.') @@ -25,8 +27,32 @@ if sys.version_info[0] < 3: # plain distutils when setuptools is not available. try: from setuptools import setup + from setuptools.command.install_scripts import install_scripts as orig except ImportError: from distutils.core import setup + from distutils.command.install_scripts import install_scripts as orig + +from distutils.file_util import copy_file +from distutils.dir_util import mkpath +from stat import ST_MODE + +class install_scripts(orig): + def run(self): + if sys.platform == 'win32': + super().run() + return + + self.outfiles = [] + if not self.dry_run: + mkpath(self.install_dir) + + # We want the files to be installed without a suffix on Unix + for infile in self.get_inputs(): + in_stripped = infile[:-3] if infile.endswith('.py') else infile + outfile = path.join(self.install_dir, in_stripped) + # NOTE: Mode is preserved by default + copy_file(infile, outfile, dry_run=self.dry_run) + self.outfiles.append(outfile) from mesonbuild.coredata import version @@ -46,6 +72,7 @@ setup(name='meson', 'mesonconf.py', 'mesonintrospect.py', 'wraptool.py'], + cmdclass={'install_scripts': install_scripts}, data_files=[('share/man/man1', ['man/meson.1', 'man/mesonconf.1', 'man/mesonintrospect.1', -- 2.10.1