From 1d455b6b3410a50538f3c4a1efb9469721936e79 Mon Sep 17 00:00:00 2001 From: Luthaf Date: Sat, 5 Jul 2014 00:21:48 +0100 Subject: [PATCH] Setup.py prenant en compte cx_freeze --- setup.py | 86 +++++++++++++++++++++++++------------------------------- 1 file changed, 38 insertions(+), 48 deletions(-) diff --git a/setup.py b/setup.py index ae1f67d2..f6479deb 100755 --- a/setup.py +++ b/setup.py @@ -4,8 +4,6 @@ $ python setup.py install """ -from distutils.core import setup -from distutils.command.install import install as _install from patacrep import __STR_VERSION__ import sys @@ -13,52 +11,21 @@ import os import site -def link_songbook(): - if sys.platform.startswith('darwin'): - source = os.path.join(site.PREFIXES[0], - 'bin', - 'songbook') - dest = '/usr/local/bin/songbook' - if os.path.isfile(dest): - print("File {dest} already exist, skipping.".format(dest=dest)) - else: - os.symlink(source, dest) - elif sys.platform.startswith('win32'): - script = os.path.join(site.PREFIXES[0], - 'Scripts', - 'songbook') - dest = script + '.py' - bat_name = script + '.bat' - if os.path.isfile(dest): - os.unlink(dest) - os.rename(script, dest) - content = "python {songbook} %* \n".format(songbook=dest) - with open(bat_name, 'w') as bat_file: - bat_file.write(content) - - -class install(_install): - def run(self): - _install.run(self) - link_songbook() - - -setup(cmdclass={'install': install}, - name='patacrep', - version=__STR_VERSION__, - description='Songbook compilation chain', - author='The Patacrep team', - author_email='crep@team-on-fire.com', - url='https://github.com/patacrep/patacrep', - packages=['patacrep', 'patacrep.content'], - license="GPLv2 or any later version", - scripts=['songbook'], - requires=[ +SETUP = {"name": 'songbook-core', + "version": __STR_VERSION__, + "description": 'Songbook compilation chain', + "author": 'The Songbook team', + "author_email": 'crep@team-on-fire.com', + "url": 'https://github.com/patacrep/songbook-core', + "packages": ['patacrep'], + "license": "GPLv2 or any later version", + "scripts": ['songbook'], + "requires": [ "argparse", "codecs", "distutils", "fnmatch", "glob", "json", "locale", "logging", "os", "plasTeX", "re", "subprocess", "sys", - "textwrap", "unidecode", "jinja2" + "textwrap", "unidecode", "jinja2", "chardet" ], - package_data={'patacrep': ['data/latex/*', + "package_data": {'patacrep': [ 'data/latex/*', 'data/templates/*', 'data/examples/*.sb', 'data/examples/*/*.sg', @@ -67,7 +34,7 @@ setup(cmdclass={'install': install}, 'data/examples/*/*.png', 'data/examples/*/*.png', 'data/examples/*/*/header']}, - classifiers=[ + "classifiers": [ "Environment :: Console", "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)", "Natural Language :: English", @@ -77,5 +44,28 @@ setup(cmdclass={'install': install}, "Programming Language :: Python :: 2.7", "Topic :: Utilities", ], - platforms=["GNU/Linux", "Windows", "MacOsX"], -) + "platforms": ["GNU/Linux", "Windows", "MacOsX"] +} + +if sys.platform.startswith('win32'): + try: + from cx_Freeze import setup, Executable + exe = Executable(script="songbook") + except ImportError: + # Only a source installation will be possible + from distutils.core import setup + exe = None + build_options = {'build_exe': { + "include_files": ["plasTeX/", "patacrep/"], + "excludes": ["plasTeX"], + "includes": ["UserList", "UserString", "new", "ConfigParser"] + }} + SETUP.update({"options": build_options, + "executables": [exe], + "package_data": {}, + }) +else: + from distutils.core import setup + + +setup(**SETUP)