git-svn-id: file:///Users/arjan/backup/gaphor/gaphor/trunk@2739 a8418922-720d-0410-834f-a69b97ada669
251 lines
8.1 KiB
Python
251 lines
8.1 KiB
Python
"""
|
|
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).
|
|
"""
|
|
|
|
VERSION = '0.14.0'
|
|
|
|
import os
|
|
import sys
|
|
sys.path.insert(0, '.')
|
|
|
|
from ez_setup import use_setuptools
|
|
|
|
use_setuptools()
|
|
|
|
from setuptools import setup, find_packages
|
|
from distutils.cmd import Command
|
|
|
|
from utils.command.build_mo import build_mo
|
|
from utils.command.build_pot import build_pot
|
|
from utils.command.build_uml import build_uml
|
|
from utils.command.install_lib import install_lib
|
|
from utils.command.run import run
|
|
|
|
LINGUAS = [ 'ca', 'es', 'nl', 'sv' ]
|
|
|
|
# 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))
|
|
|
|
|
|
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.'
|
|
|
|
|
|
data_files = []
|
|
|
|
if sys.platform != 'win32':
|
|
data_files = [
|
|
('share/pixmaps', ['gaphor/ui/pixmaps/gaphor-48x48.png']),
|
|
('share/applications', ['gaphor.desktop']),
|
|
]
|
|
|
|
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()
|
|
|
|
|
|
setup(
|
|
name='gaphor',
|
|
version=VERSION,
|
|
url='http://gaphor.devjavu.com',
|
|
author='Arjan J. Molenaar',
|
|
author_email='arjanmol@users.sourceforge.net',
|
|
license='GNU General Public License',
|
|
description='Gaphor is a UML modeling tool',
|
|
long_description="""
|
|
Gaphor is a UML modeling tool written in Python.
|
|
|
|
It uses the GTK+ environment for user interaction.
|
|
""",
|
|
data_files=data_files,
|
|
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',
|
|
],
|
|
|
|
keywords = 'model modeling modelling uml diagram python tool',
|
|
|
|
packages = find_packages(exclude=['ez_setup', 'utils*']),
|
|
|
|
include_package_data = True,
|
|
|
|
install_requires = [
|
|
# 'PyGTK >= 2.8.0', - Exclude, since it will not build anyway
|
|
'gaphas >= 0.4.0',
|
|
'zope.component >= 3.4.0', # - won't compile on windows.
|
|
],
|
|
|
|
zip_safe = False,
|
|
|
|
#test_suite = 'nose.collector',
|
|
|
|
entry_points = {
|
|
'console_scripts': [
|
|
'gaphor = gaphor:main',
|
|
'gaphorconvert = gaphor.tools.gaphorconvert:main',
|
|
],
|
|
'gaphor.services': [
|
|
#'component_registry = gaphor.services.componentregistry:ZopeComponentRegistry',
|
|
#'event_dispatcher = gaphor.services.eventdispatcher:EventDispatcher',
|
|
'adapter_loader = gaphor.services.adapterloader:AdapterLoader',
|
|
'properties = gaphor.services.properties:Properties',
|
|
'undo_manager = gaphor.services.undomanager:UndoManager',
|
|
'element_factory = gaphor.UML.elementfactory:ElementFactory',
|
|
'file_manager = gaphor.services.filemanager:FileManager',
|
|
#'backup_service = gaphor.services.backupservice:BackupService',
|
|
'diagram_export_manager = gaphor.services.diagramexportmanager:DiagramExportManager',
|
|
'action_manager = gaphor.services.actionmanager:ActionManager',
|
|
'gui_manager = gaphor.services.guimanager:GUIManager',
|
|
'copy = gaphor.services.copyservice:CopyService',
|
|
'sanitizer = gaphor.services.sanitizerservice:SanitizerService',
|
|
'element_dispatcher = gaphor.services.elementdispatcher:ElementDispatcher',
|
|
'property_dispatcher = gaphor.services.propertydispatcher:PropertyDispatcher',
|
|
'xmi_export = gaphor.plugins.xmiexport:XMIExport',
|
|
'diagram_layout = gaphor.plugins.diagramlayout:DiagramLayout',
|
|
'pynsource = gaphor.plugins.pynsource:PyNSource',
|
|
'check_metamodel = gaphor.plugins.checkmetamodel:CheckModelWindow',
|
|
'live_object_browser = gaphor.plugins.liveobjectbrowser:LiveObjectBrowser',
|
|
'alignment = gaphor.plugins.alignment:Alignment',
|
|
'help = gaphor.services.helpservice:HelpService',
|
|
],
|
|
'gaphor.uicomponents': [
|
|
'mainwindow = gaphor.ui.mainwindow:MainWindow',
|
|
'consolewindow = gaphor.ui.consolewindow:ConsoleWindow',
|
|
'infowindow = gaphor.ui.infowindow:InfoWindow',
|
|
],
|
|
},
|
|
|
|
cmdclass = {
|
|
'build_py': build_py_with_sub_commands,
|
|
'build_uml': build_uml,
|
|
'build_mo': build_mo,
|
|
'build_pot': build_pot,
|
|
'build_doc': build_doc,
|
|
'install_lib': install_lib,
|
|
'run': run,
|
|
},
|
|
|
|
setup_requires = ['nose >= 0.9.3'] + platform_setup_requires,
|
|
|
|
test_suite = 'nose.collector',
|
|
|
|
options = dict(
|
|
py2app = dict(
|
|
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'
|
|
)
|
|
),
|
|
py2exe = dict(
|
|
packages='gaphas, decorator',
|
|
includes='cairo, pango, pangocairo, atk',
|
|
),
|
|
|
|
build_pot = dict(
|
|
all_linguas = ','.join(LINGUAS),
|
|
),
|
|
build_mo = dict(
|
|
all_linguas = ','.join(LINGUAS),
|
|
),
|
|
|
|
),
|
|
|
|
**platform_setup
|
|
|
|
)
|
|
|
|
# vim:sw=4:et:ai
|