aboutsummaryrefslogtreecommitdiff
path: root/setup.py
diff options
context:
space:
mode:
authorPatrick Griffis <tingping@tingping.se>2016-09-30 23:28:40 -0400
committerJussi Pakkanen <jpakkane@gmail.com>2016-10-11 00:16:46 +0300
commit999669e8501501d4618588008e4bf4353a1ace2a (patch)
tree442b0e236eb85e6750d05b63d888d2affc3a5984 /setup.py
parent4b5a0e5de7c49043f43db0345e4f4c8b32975331 (diff)
downloadmeson-999669e8501501d4618588008e4bf4353a1ace2a.zip
meson-999669e8501501d4618588008e4bf4353a1ace2a.tar.gz
meson-999669e8501501d4618588008e4bf4353a1ace2a.tar.bz2
setup.py: On Unix install scripts without .py suffix
Diffstat (limited to 'setup.py')
-rw-r--r--setup.py27
1 files changed, 27 insertions, 0 deletions
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',