Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
76 additions
and
84 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,94 +1,86 @@ | ||
""" | ||
PyInstaller is a program that converts (packages) Python programs into | ||
stand-alone executables, under Windows, Linux, and Mac OS X. Its main | ||
advantages over similar tools are that PyInstaller works with any | ||
version of Python since 2.2, it builds smaller executables thanks to | ||
transparent compression, it is fully multi-platform, and use the OS | ||
support to load the dynamic libraries, thus ensuring full | ||
compatibility. | ||
The main goal of PyInstaller is to be compatible with 3rd-party | ||
packages out-of-the-box. This means that, with PyInstaller, all the | ||
required tricks to make external packages work are already integrated | ||
within PyInstaller itself so that there is no user intervention | ||
required. You'll never be required to look for tricks in wikis and | ||
apply custom modification to your files or your setup scripts. As an | ||
example, libraries like PyQt, Django or matplotlib are fully | ||
supported, without having to handle plugins or external data files | ||
manually. | ||
""" | ||
#! /usr/bin/env python | ||
#----------------------------------------------------------------------------- | ||
# Copyright (c) 2013, PyInstaller Development Team. | ||
# | ||
# Distributed under the terms of the GNU General Public License with exception | ||
# for distributing bootloader. | ||
# | ||
# The full license is in the file COPYING.txt, distributed with this software. | ||
#----------------------------------------------------------------------------- | ||
|
||
raise SystemExit("\nsetup.py is not yet supposed to work. " | ||
"Please Use PyInstaller without installation.\n") | ||
|
||
from setuptools import setup, find_packages | ||
from PyInstaller import get_version | ||
|
||
import platform | ||
import itertools | ||
import glob | ||
import os | ||
|
||
scripts = [ | ||
'pyinstaller.py', | ||
'pyinstaller-gui.py', | ||
'utils/ArchiveViewer.py', | ||
#'utils/BinDepend.py', | ||
'utils/Build.py', | ||
'utils/Configure.py', | ||
#'utils/Crypt.py', | ||
#'utils/GrabVersion.py', | ||
'utils/Makespec.py', | ||
] | ||
DESC = 'Converts (packages) Python programs into stand-alone executables, under Windows, Linux, Mac OS X, AIX and Solaris.' | ||
|
||
if platform.system() == "Windows": | ||
scripts.append('MakeComServer.py') | ||
LONG_DESC = """PyInstaller is a program that converts (packages) Python programs into stand-alone executables, under Windows, Linux, Mac OS X, AIX and Solaris. Its main advantages over similar tools are that PyInstaller works with any version of Python since 2.3, it builds smaller executables thanks to transparent compression, it is fully multi-platform, and uses the OS support to load the dynamic libraries, thus ensuring full compatibility. | ||
The main goal of PyInstaller is to be compatible with 3rd-party packages out-of-the-box. This means that, with PyInstaller, all the required tricks to make external packages work are already integrated within PyInstaller itself so that there is no user intervention required. You'll never be required to look for tricks in wikis and apply custom modification to your files or your setup scripts. As an example, libraries like PyQt, Django or matplotlib are fully supported, without having to handle plugins or external data files manually. | ||
""" | ||
|
||
|
||
CLASSIFIERS = """ | ||
Classifier: Development Status :: 5 - Production/Stable | ||
Classifier: Environment :: Console | ||
Classifier: Intended Audience :: Developers | ||
Classifier: Intended Audience :: Other Audience | ||
Classifier: Intended Audience :: System Administrators | ||
Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2) | ||
Classifier: Natural Language :: English | ||
Classifier: Operating System :: MacOS :: MacOS X | ||
Classifier: Operating System :: Microsoft :: Windows | ||
Classifier: Operating System :: POSIX | ||
Classifier: Operating System :: POSIX :: AIX | ||
Classifier: Operating System :: POSIX :: Linux | ||
Classifier: Operating System :: POSIX :: SunOS/Solaris | ||
Classifier: Programming Language :: C | ||
Classifier: Programming Language :: Python | ||
Classifier: Programming Language :: Python :: 2 | ||
Classifier: Programming Language :: Python :: 2.4 | ||
Classifier: Programming Language :: Python :: 2.5 | ||
Classifier: Programming Language :: Python :: 2.6 | ||
Classifier: Programming Language :: Python :: 2.7 | ||
Classifier: Programming Language :: Python :: 2 :: Only | ||
Classifier: Programming Language :: Python :: Implementation :: CPython | ||
Classifier: Topic :: Software Development | ||
Classifier: Topic :: Software Development :: Build Tools | ||
Classifier: Topic :: Software Development :: Compilers | ||
Classifier: Topic :: Software Development :: Interpreters | ||
Classifier: Topic :: Software Development :: Libraries :: Python Modules | ||
Classifier: Topic :: System :: Installation/Setup | ||
Classifier: Topic :: System :: Software Distribution | ||
Classifier: Topic :: Utilities | ||
""".splitlines() | ||
|
||
def find_data_files(*patterns): | ||
data_files = {} | ||
for fn in itertools.chain(*(glob.iglob(p) for p in patterns)): | ||
if os.path.isfile(fn): | ||
data_files.setdefault(os.path.dirname(fn), []).append(fn) | ||
return data_files.items() | ||
|
||
setup( | ||
name = 'pyinstaller', | ||
version = '1.6.0dev', | ||
scripts = scripts, | ||
packages = find_packages(), | ||
data_files = find_data_files('doc/*', | ||
'doc/images/*', 'doc/stylesheets/*.css', | ||
'support/*.py', 'support/rthooks/*.py', | ||
'support/loader/*', 'support/loader/*/*'), | ||
author = "Gordon McMillan, William Caban, Giovanni Bajo and the PyInstaller team", | ||
author_email = "pyinstaller@googlegroups.com", | ||
maintainer = "Giovanni Bajo and the PyInstaller team", | ||
maintainer_email = "pyinstaller@googlegroups.com", | ||
description = "Converts (packages) Python programs into stand-alone executables, under Windows, Linux, and Mac OS X.", | ||
long_description = __doc__, | ||
license = ("GPL license with a special exception which allows to use " | ||
"PyInstaller to build and distribute non-free programs " | ||
"(including commercial ones)."), | ||
keywords = "packaging, standalone executable, freeze", | ||
url = "http://www.pyinstaller.org/", | ||
download_url = "http://www.pyinstaller.org/wiki#Downloads", | ||
install_requires=['distribute'], | ||
|
||
name = 'PyInstaller', | ||
version = get_version(), | ||
|
||
description = DESC, | ||
long_description = LONG_DESC, | ||
keywords = 'packaging, standalone executable, pyinstaller, macholib, freeze, py2exe, py2app, bbfreeze', | ||
|
||
author = 'Gordon McMillan, William Caban, Giovanni Bajo, Hartmut Goebel, Martin Zibricky', | ||
author_email = 'pyinstaller@googlegroups.com', | ||
maintainer = 'Giovanni Bajo, Hartmut Goebel, Martin Zibricky', | ||
maintainer_email = 'pyinstaller@googlegroups.com', | ||
|
||
license = 'GPL license with a special exception which allows to use PyInstaller to build and distribute non-free programs (including commercial ones)', | ||
url = 'http://www.pyinstaller.org', | ||
download_url = 'https://sourceforge.net/projects/pyinstaller/files', | ||
|
||
classifiers = CLASSIFIERS, | ||
zip_safe = False, | ||
classifiers = [ | ||
'Development Status :: 6 - Mature', | ||
'Environment :: Console', | ||
'Intended Audience :: Developers', | ||
'License :: OSI Approved :: GNU General Public License (GPL)', | ||
'Natural Language :: English', | ||
'Operating System :: MacOS :: MacOS X', | ||
'Operating System :: Microsoft :: Windows', | ||
'Operating System :: POSIX', | ||
'Operating System :: POSIX :: Linux', | ||
'Programming Language :: Python :: 2.3', | ||
'Programming Language :: Python :: 2.4', | ||
'Programming Language :: Python :: 2.5', | ||
'Programming Language :: Python :: 2.6', | ||
'Programming Language :: Python :: 2.7', | ||
'Programming Language :: C', | ||
'Topic :: Software Development :: Build Tools', | ||
'Topic :: System :: Software Distribution', | ||
] | ||
) | ||
packages = find_packages(), | ||
include_package_data = True, | ||
|
||
entry_points=""" | ||
[console_scripts] | ||
pyinstaller=PyInstaller.main:run | ||
""" | ||
) |