• Facebook
  • Twitter
  • Reddit
  • StumbleUpon
  • Digg
  • email

#!/usr/bin/env python
# -*- coding: utf-8 -*-#
#-----------------------------------------------------------------------------
# Name:        setup.py
# Purpose:     Vari tipi di buildings per il package DIETA
#
# Author:      Licia Leanza
# E-mail:      dieta.sw@gmail.com
#
# Created:     15-01-08
# RCS-ID:      $Id: setup.py 25 2010-02-02 19:05:53Z licia $
# Copyright:   (c) Licia Leanza: 2007-2009
# Licence:     GPL v2
# Package:     DIETA
#-----------------------------------------------------------------------------
 
__version__ = '0.3.3'
 
 
if __name__=="__main__":
 
    import sys, os
    import glob
    if 'CXF' in sys.argv:
        # cx_Freeze: per ora non lo utilizzo xke' non sono riuscita a farlo 
        # funzionare propriamente
        # neanche la versione 4 funziona ==> commuto su PyInstaller
 
        print 'generazione cx_Freeze'
        sys.argv.remove('CXF')
        from cx_Freeze import setup, Executable
 
        setup(
                name = "dieta",
                version = __version__,
                description='Diario alimentare per una dieta ',
                executables = [ Executable("dieta.py", icon = "icons/dieta.ico",
                includes =["sip", 'PyQt4.QtSvg'], # anche in questo modo non c'e'
                packages = ['PyQt4.Qwt5'],        # verso di fargli importatre QtSvg
                copyDependentFiles=True),
                ],
          data_files=[("", ["diet.vuoto", "clap.wav", "README.txt", "LICENSE",
                        "ChangeLog", "ricette.xml",
                        "AggiornamentoDefinizioniAlimenti.tsv",
                        "AggiornamentoDefinizioniAlimenti.xml", ]),
                      ("icons",     glob.glob(os.path.join("icons", "*"))),
                      (os.path.join("doc","man"),
                                    glob.glob(os.path.join("doc","man","*"))),
                     ],# ... e poi non copia neanche i files aggiuntivi
              )
        sys.exit(0)
 
 
 
    from distutils.core import setup
 
    try:
        import py2exe
        sys.argv.append('py2exe')
        WIN = True
    except:
        WIN = False
    try:
        import py2app
        sys.argv.append('py2app')
        MAC = True
    except:
        MAC = False
 
    #---altrimenti---------------WINDOWS--------------------------------------
 
    if WIN:
        print 'generazione WINDOWS'
        setup(name = 'dieta',
          version = __version__,
          windows=[{"script":"dieta.py",
                    "icon_resources": [(1, "icons/dieta.ico")]}], 
          data_files=[("", ["diet.vuoto",  "clap.wav","README.txt", "LICENSE",
                            "ChangeLog", "ricette.xml",
                            "AggiornamentoDefinizioniAlimenti.tsv",
                        "AggiornamentoDefinizioniAlimenti.xml", ]),
                      ("icons",     glob.glob(os.path.join("icons", "*"))),
                      ("foto",     glob.glob(os.path.join("foto", "*"))),
                      (os.path.join("doc","man"),
                                    glob.glob(os.path.join("doc","man","*"))),
                     ],
          options = {'py2exe': {
    # not implemented jet!!!    "unbuffered": 1,
                                "compressed": 1,
                                "optimize": 2,
                                "ascii": 1,
                                "bundle_files": 1,
                                "packages": ["encodings"],
                                "includes":["sip", "PyQt4._qt",'PyQt4.QtSvg'],
                                'excludes': ["Tkconstants","Tkinter","tcl"]
                               }
                    },
          zipfile = None,
        )
    #---altrimenti---------------MAC-OsX--------------------------------------
 
 
    if MAC:
        print 'generazione MAC'
        print '---------------------ATTENZIONE---------------------------'
        print 'IL N. DI VERSIONE DI QT4 VA CAMBIATO A MANO NEL SETUP FILE'
        print '---------------------ATTENZIONE---------------------------'
        setup(name = 'dieta',
          version = __version__,
          app=[{"script":"dieta.py",
                    "icon_resources": [(1, "icons/dieta.ico")]}], 
          data_files=[("", ["diet.vuoto", "clap.wav","README.txt", "LICENSE", 
                            "ChangeLog", "ricette.xml",
                            "AggiornamentoDefinizioniAlimenti.tsv",
                        "AggiornamentoDefinizioniAlimenti.xml", ]),
                      ("icons",     glob.glob(os.path.join("icons", "*.*"))),
                      ("foto",     glob.glob(os.path.join("foto", "*.*"))),
                      (os.path.join("doc","man"),
                                glob.glob(os.path.join("doc","man","*.*"))),
                      (os.path.join("plugins","sqldrivers"),
        (glob.glob('/usr/local/Trolltech/Qt-4.3.4/plugins/sqldrivers/*.*'))),
                      (os.path.join("plugins","imageformats"),
        (glob.glob('/usr/local/Trolltech/Qt-4.3.4/plugins/imageformats/*.*'))),
                     ],
          options = {'py2app': {
                                "compressed": 1,
                                "optimize": 2,
                                'argv_emulation':1,
                                "packages": ["encodings"],
                                "includes":["sip", 'PyQt4.QtSvg'],
                                'excludes': ["Tkconstants","Tkinter","tcl"]
 
                               }
                    },
        )
    else:
        print 'generazione distutils'
        setup(name = 'dieta',
          version = __version__,
          description='Diario alimentare per una dieta ',
          author='ilochab',
          author_email='dieta.sw@gmail.com',
          url='http://sites.google.com/site/dietasw/',
          download_url='https://sourceforge.net/projects/dieta/files/latest',
          long_description = """
          Questo programma offre la funzionalita' di mantenimento di un diario 
          giornaliero dei propri consumi alimentari con il supporto di un ricco DB
          contenente la composizione di un notevole numero di alimenti.
                             """,
          classifiers=['Desktop application','GUI'],
          packages=[''],
    ##      packages=['dieta'],
    ##      package_data={"dieta":["diet.vuoto", "clap.wav","README.txt","LICENSE","ChangeLog",
    ##                                os.path.join("icons", "*"),
    ##                                os.path.join("doc","man","*")
    ##                            ]}
          # sdist legge MANIFEST.in ma install legge data_files !!!
          data_files=[("", ["diet.vuoto",  "clap.wav","README.txt", "LICENSE", 
                        "ChangeLog", "ricette.xml",
                        "AggiornamentoDefinizioniAlimenti.tsv",
                        "AggiornamentoDefinizioniAlimenti.xml", ]),
                      ("icons",     glob.glob(os.path.join("icons", "*"))),
                      ("foto",     glob.glob(os.path.join("foto", "*"))),
                      (os.path.join("doc","man"),
                                    glob.glob(os.path.join("doc","man","*")))
                     ],
        )