123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- #!/usr/bin/env python3
- # Copyright 2016 The Meson development team
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- # http://www.apache.org/licenses/LICENSE-2.0
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- import os
- import sys
- from mesonbuild.coredata import version
- if sys.version_info < (3, 5, 0):
- print('Tried to install with an unsupported version of Python. '
- 'Meson requires Python 3.5.0 or greater')
- sys.exit(1)
- # We need to support Python installations that have nothing but the basic
- # Python installation. Use setuptools when possible and fall back to
- # 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
- class install_scripts(orig):
- def run(self):
- if sys.platform == 'win32':
- super().run()
- return
- if not self.skip_build:
- self.run_command('build_scripts')
- self.outfiles = []
- if not self.dry_run:
- self.mkpath(self.install_dir)
- # We want the files to be installed without a suffix on Unix
- for infile in self.get_inputs():
- infile = os.path.basename(infile)
- in_built = os.path.join(self.build_dir, infile)
- in_stripped = infile[:-3] if infile.endswith('.py') else infile
- outfile = os.path.join(self.install_dir, in_stripped)
- # NOTE: Mode is preserved by default
- self.copy_file(in_built, outfile)
- self.outfiles.append(outfile)
- setup(name='meson',
- version=version,
- description='A high performance build system',
- author='Jussi Pakkanen',
- author_email='jpakkane@gmail.com',
- url='http://mesonbuild.com',
- license=' Apache License, Version 2.0',
- python_requires='>=3.5',
- packages=['mesonbuild',
- 'mesonbuild.backend',
- 'mesonbuild.compilers',
- 'mesonbuild.dependencies',
- 'mesonbuild.modules',
- 'mesonbuild.scripts',
- 'mesonbuild.wrap'],
- scripts=['meson.py',
- 'mesonconf.py',
- 'mesontest.py',
- 'mesonintrospect.py',
- 'wraptool.py'],
- cmdclass={'install_scripts': install_scripts},
- data_files=[('share/man/man1', ['man/meson.1',
- 'man/mesonconf.1',
- 'man/mesonintrospect.1',
- 'man/mesontest.1',
- 'man/wraptool.1']),
- ('share/polkit-1/actions', ['data/com.mesonbuild.install.policy'])],
- classifiers=['Development Status :: 5 - Production/Stable',
- 'Environment :: Console',
- 'Intended Audience :: Developers',
- 'License :: OSI Approved :: Apache Software License',
- 'Natural Language :: English',
- 'Operating System :: MacOS :: MacOS X',
- 'Operating System :: Microsoft :: Windows',
- 'Operating System :: POSIX :: BSD',
- 'Operating System :: POSIX :: Linux',
- 'Programming Language :: Python :: 3 :: Only',
- 'Topic :: Software Development :: Build Tools',
- ],
- long_description='''Meson is a cross-platform build system designed to be both as
- fast and as user friendly as possible. It supports many languages and compilers, including
- GCC, Clang and Visual Studio. Its build definitions are written in a simple non-turing
- complete DSL.''')
|