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