2007-04-03 06:10:36 +00:00
"""
Setup script for Gaphor .
Run ' python setup.py develop ' to set up a development environment , including
dependencies .
Run ' python setup.py run ' to start Gaphor directly ( without install ) .
"""
2003-03-04 05:08:40 +00:00
2007-09-19 06:54:06 +00:00
VERSION = ' 0.13.0 '
2007-04-03 07:17:35 +00:00
2007-05-22 09:34:30 +00:00
import os
2007-03-15 13:41:24 +00:00
import sys
sys . path . insert ( 0 , ' . ' )
2003-03-04 05:08:40 +00:00
2007-03-15 13:41:24 +00:00
from ez_setup import use_setuptools
2003-03-04 05:08:40 +00:00
2007-03-15 13:41:24 +00:00
use_setuptools ( )
2006-06-02 09:37:25 +00:00
2007-03-15 13:41:24 +00:00
from setuptools import setup , find_packages
2007-05-22 09:34:30 +00:00
from distutils . cmd import Command
2006-05-29 12:49:01 +00:00
2007-02-28 14:09:17 +00:00
from utils . command . build_mo import build_mo
from utils . command . build_pot import build_pot
from utils . command . build_uml import build_uml
2007-04-05 07:49:30 +00:00
from utils . command . install_lib import install_lib
2007-02-28 14:09:17 +00:00
from utils . command . run import run
2003-03-04 05:08:40 +00:00
2007-03-15 13:41:24 +00:00
LINGUAS = [ ' ca ' , ' es ' , ' nl ' , ' sv ' ]
2004-03-22 15:15:14 +00:00
2007-09-20 06:42:03 +00:00
# Wrap setuptools' build_py command, so we're sure build_uml is performed
# before the build_py code.
from setuptools . command . build_py import build_py
class build_py_with_sub_commands ( build_py ) :
def run ( self ) :
for cmd_name in self . get_sub_commands ( ) :
self . run_command ( cmd_name )
build_py . run ( self )
build_py_with_sub_commands . sub_commands . append ( ( ' build_uml ' , None ) )
2007-05-22 09:34:30 +00:00
class build_doc ( Command ) :
description = ' Builds the documentation '
user_options = [ ]
def initialize_options ( self ) :
pass
def finalize_options ( self ) :
pass
def run ( self ) :
# from docutils.core import publish_cmdline
# docutils_conf = os.path.join('doc', 'docutils.conf')
epydoc_conf = os . path . join ( ' doc ' , ' epydoc.conf ' )
# for source in glob('doc/*.txt'):
# dest = os.path.splitext(source)[0] + '.html'
# if not os.path.exists(dest) or \
# os.path.getmtime(dest) < os.path.getmtime(source):
# print 'building documentation file %s' % dest
# publish_cmdline(writer_name='html',
# argv=['--config=%s' % docutils_conf, source,
# dest])
try :
from epydoc import cli
old_argv = sys . argv [ 1 : ]
sys . argv [ 1 : ] = [
' --config= %s ' % epydoc_conf ,
' --no-private ' , # epydoc bug, not read from config
' --simple-term ' ,
' --verbose '
]
cli . cli ( )
sys . argv [ 1 : ] = old_argv
except ImportError :
print ' epydoc not installed, skipping API documentation. '
2004-09-27 06:37:00 +00:00
2007-07-13 13:39:54 +00:00
2007-09-20 06:42:03 +00:00
if sys . platform == ' darwin ' and ' py2app ' in sys . argv :
# Mac OS X
import pkg_resources
pkg_resources . require ( ' zope.component ' )
platform_setup_requires = [ ' py2app ' ]
platform_setup = dict (
app = [ ' gaphor-osx.py ' ] ,
)
elif sys . platform == ' win32 ' and ' py2exe ' in sys . argv :
# Windows
import py2exe
platform_setup_requires = [ ' py2exe ' ]
platform_setup = { ' app ' : [ ' gaphor ' ] , }
import pkg_resources
eggs = pkg_resources . require ( " gaphor " )
for egg in eggs :
if os . path . isdir ( egg . location ) :
sys . path . insert ( 0 , egg . location )
continue
else :
print ' Can only handle unpacked eggs. '
egg_names = [ ]
for egg in eggs :
egg_names . append ( egg . project_name )
else :
platform_setup_requires = [ ]
platform_setup = dict ( )
2007-07-13 13:39:54 +00:00
2007-03-15 13:41:24 +00:00
setup (
name = ' gaphor ' ,
2007-04-03 07:17:35 +00:00
version = VERSION ,
2007-04-04 06:56:22 +00:00
url = ' http://gaphor.devjavu.com ' ,
2007-03-15 13:41:24 +00:00
author = ' Arjan J. Molenaar ' ,
author_email = ' arjanmol@users.sourceforge.net ' ,
license = ' GNU General Public License ' ,
description = ' Gaphor is a UML modeling tool ' ,
2007-08-01 13:59:01 +00:00
long_description = """
Gaphor is a UML modeling tool written in Python .
It uses the GTK + environment for user interaction .
""" ,
2007-03-15 13:41:24 +00:00
classifiers = [
' Development Status :: 4 - Beta ' ,
' Environment :: X11 Applications :: GTK ' ,
' Intended Audience :: Developers ' ,
' Intended Audience :: End Users/Desktop ' ,
' Intended Audience :: Information Technology ' ,
' License :: OSI Approved :: GNU General Public License (GPL) ' ,
' Operating System :: MacOS :: MacOS X ' ,
' Operating System :: Microsoft :: Windows ' ,
' Operating System :: POSIX ' ,
' Operating System :: Unix ' ,
' Programming Language :: Python ' ,
' Topic :: Multimedia :: Graphics :: Editors :: Vector-Based ' ,
' Topic :: Software Development :: Documentation ' ,
] ,
2007-04-04 06:56:22 +00:00
keywords = ' model modeling modelling uml diagram python tool ' ,
2007-03-15 13:41:24 +00:00
2007-04-04 06:56:22 +00:00
packages = find_packages ( exclude = [ ' ez_setup ' , ' utils* ' ] ) ,
2007-03-15 13:41:24 +00:00
2007-04-04 06:56:22 +00:00
include_package_data = True ,
2007-03-15 13:41:24 +00:00
install_requires = [
# 'PyGTK >= 2.8.0', - Exclude, since it will not build anyway
2007-08-02 08:45:26 +00:00
' gaphas >= 0.3.0 ' ,
2007-10-02 11:33:25 +00:00
' zope.component >= 3.4.0 ' , # - won't compile on windows.
2007-03-15 13:41:24 +00:00
] ,
zip_safe = False ,
#test_suite = 'nose.collector',
entry_points = {
' console_scripts ' : [
' gaphor = gaphor:main ' ,
] ,
2007-04-03 06:10:36 +00:00
' gaphor.services ' : [
2007-05-11 07:03:20 +00:00
' adapter_loader = gaphor.services.adapterloader:AdapterLoader ' ,
2007-04-15 20:47:55 +00:00
' properties = gaphor.services.properties:Properties ' ,
2007-04-03 06:10:36 +00:00
' undo_manager = gaphor.services.undomanager:UndoManager ' ,
2007-04-20 09:02:47 +00:00
' element_factory = gaphor.UML.elementfactory:ElementFactory ' ,
2007-05-10 09:34:06 +00:00
' file_manager = gaphor.services.filemanager:FileManager ' ,
2007-05-23 11:25:48 +00:00
' diagram_export_manager = gaphor.services.diagramexportmanager:DiagramExportManager ' ,
2007-05-11 12:57:00 +00:00
' action_manager = gaphor.services.actionmanager:ActionManager ' ,
2007-05-23 11:25:48 +00:00
' gui_manager = gaphor.services.guimanager:GUIManager ' ,
2007-05-23 06:40:17 +00:00
' copy = gaphor.services.copyservice:CopyService ' ,
2007-06-11 09:40:30 +00:00
' xmi_export = gaphor.plugins.xmiexport:XMIExport ' ,
2007-06-11 11:15:48 +00:00
' diagram_layout = gaphor.plugins.diagramlayout:DiagramLayout ' ,
' pynsource = gaphor.plugins.pynsource:PyNSource ' ,
2007-06-11 12:34:44 +00:00
' check_metamodel = gaphor.plugins.checkmetamodel:CheckModelWindow ' ,
2007-06-11 13:28:01 +00:00
' live_object_browser = gaphor.plugins.liveobjectbrowser:LiveObjectBrowser ' ,
2007-06-12 09:22:58 +00:00
' alignment = gaphor.plugins.alignment:Alignment ' ,
2007-06-14 20:22:57 +00:00
' help = gaphor.services.helpservice:HelpService ' ,
2007-04-11 06:42:22 +00:00
] ,
2007-05-08 10:24:46 +00:00
' gaphor.uicomponents ' : [
' mainwindow = gaphor.ui.mainwindow:MainWindow ' ,
' consolewindow = gaphor.ui.consolewindow:ConsoleWindow ' ,
2007-04-03 06:10:36 +00:00
] ,
2007-03-15 13:41:24 +00:00
} ,
cmdclass = {
2007-09-20 06:42:03 +00:00
' build_py ' : build_py_with_sub_commands ,
2007-03-15 13:41:24 +00:00
' build_uml ' : build_uml ,
' build_mo ' : build_mo ,
' build_pot ' : build_pot ,
2007-05-22 09:34:30 +00:00
' build_doc ' : build_doc ,
2007-05-14 13:04:40 +00:00
' install_lib ' : install_lib ,
2007-03-15 13:41:24 +00:00
' run ' : run ,
} ,
2007-05-14 13:04:40 +00:00
2007-07-13 13:39:54 +00:00
setup_requires = [ ' nose >= 0.9.2 ' ] + platform_setup_requires ,
2007-05-14 13:04:40 +00:00
test_suite = ' nose.collector ' ,
2007-03-15 13:41:24 +00:00
options = dict (
py2app = dict (
2007-07-13 13:39:54 +00:00
argv_emulation = True ,
semi_standalone = True , # Depend on installed Python 2.4 Framework
includes = [ ' atk ' , ' pango ' , ' cairo ' , ' pangocairo ' ] , #'zope.defferedimport', 'zope.component', 'zope.deprecation', 'zope.interface', 'zope.event', 'zope.testing', 'zope.proxy'],
packages = [ ' gaphor ' , ' zope ' ] ,
plist = dict (
CFBundleGetInfoString = ' Gaphor ' ,
CFBundleIdentifier = ' com.devjavu.gaphor '
)
2007-03-15 13:41:24 +00:00
) ,
2007-09-20 06:42:03 +00:00
py2exe = dict (
packages = ' gaphas, decorator ' ,
includes = ' cairo, pango, pangocairo, atk ' ,
) ,
2007-03-15 13:41:24 +00:00
build_pot = dict (
all_linguas = ' , ' . join ( LINGUAS ) ,
) ,
build_mo = dict (
all_linguas = ' , ' . join ( LINGUAS ) ,
) ,
2007-07-13 13:39:54 +00:00
) ,
* * platform_setup
2003-03-04 05:08:40 +00:00
)
2007-05-14 13:04:40 +00:00
2007-05-15 03:43:33 +00:00
# vim:sw=4:et:ai