435fa532c245bb99c0e1cbf8f5be9d009e7f94bc
[ejpi] / setup.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3
4 import sys
5 reload(sys).setdefaultencoding("UTF-8")
6 import os
7
8 try:
9         from sdist_maemo import sdist_maemo as _sdist_maemo
10         sdist_maemo = _sdist_maemo
11 except ImportError:
12         sdist_maemo = None
13         print 'sdist_maemo command not available'
14
15 from distutils.core import setup
16
17
18 #[[[cog
19 #       import cog
20 #       from ejpi import constants
21 #       cog.outl('APP_NAME="%s"' % constants.__app_name__)
22 #       cog.outl('PRETTY_APP_NAME="%s"' % constants.__pretty_app_name__)
23 #       cog.outl('VERSION="%s"' % constants.__version__)
24 #       cog.outl('BUILD="%s"' % constants.__build__)
25 #       cog.outl('DESKTOP_FILE_PATH="%s"' % DESKTOP_FILE_PATH)
26 #       cog.outl('INPUT_DESKTOP_FILE="%s"' % INPUT_DESKTOP_FILE)
27 #]]]
28 APP_NAME="ejpi"
29 PRETTY_APP_NAME="e**(j pi) + 1 = 0"
30 VERSION="0.1.0"
31 BUILD=0
32 DESKTOP_FILE_PATH="/usr/share/applications"
33 INPUT_DESKTOP_FILE="data/harmattan/ejpi.desktop"
34 #[[[end]]]
35
36 CHANGES = """Switching from py2deb.py to sdist_maemo
37 """.strip()
38 BUGTRACKER_URL = "https://bugs.maemo.org/enter_bug.cgi?product=ejpi"
39
40
41 def is_package(path):
42         return (
43                 os.path.isdir(path) and
44                 os.path.isfile(os.path.join(path, '__init__.py'))
45         )
46
47
48 def find_packages(path, base="", includeRoot=False):
49         """ Find all packages in path """
50         if includeRoot:
51                 assert not base, "Base not supported with includeRoot: %r" % base
52                 rootPath, module_name = os.path.split(path)
53                 yield module_name
54                 base = module_name
55         for item in os.listdir(path):
56                 dir = os.path.join(path, item)
57                 if is_package( dir ):
58                         if base:
59                                 module_name = "%(base)s.%(item)s" % vars()
60                         else:
61                                 module_name = item
62                         yield module_name
63                         for mname in find_packages(dir, module_name):
64                                 yield mname
65
66
67 setup(
68         name=APP_NAME,
69         version=VERSION,
70         description="RPN calculator designed for touchscreens",
71         long_description="RPN calculator designed for touchscreens",
72         author="Ed Page",
73         author_email="eopage@byu.net",
74         maintainer="Ed Page",
75         maintainer_email="eopage@byu.net",
76         url="http://ejpi.garage.maemo.org/",
77         license="GNU LGPLv2.1",
78         scripts=[
79                 "ejpi-calc",
80         ],
81         packages=list(find_packages(APP_NAME, includeRoot=True)),
82         package_data={
83                 "plugins": "*.ini"
84         },
85         data_files=[
86                 (DESKTOP_FILE_PATH, [INPUT_DESKTOP_FILE]),
87                 ("/usr/share/icons/hicolor/22x22/apps", ["data/icons/22/%s.png" % APP_NAME]),
88                 ("/usr/share/icons/hicolor/28x28/apps", ["data/icons/28/%s.png" % APP_NAME]),
89                 ("/usr/share/icons/hicolor/32x32/apps", ["data/icons/32/%s.png" % APP_NAME]),
90                 ("/usr/share/icons/hicolor/48x48/apps", ["data/icons/48/%s.png" % APP_NAME]),
91                 ("/usr/share/icons/hicolor/80x80/apps", ["data/icons/80/%s.png" % APP_NAME]),
92                 ("/usr/share/icons/hicolor/scalable/apps", ["data/%s.svg" % APP_NAME]),
93         ],
94         requires=[
95                 "PySide",
96         ],
97         cmdclass={
98                 'sdist_ubuntu': sdist_maemo,
99                 'sdist_diablo': sdist_maemo,
100                 'sdist_fremantle': sdist_maemo,
101                 'sdist_harmattan': sdist_maemo,
102         },
103         options={
104                 "sdist_ubuntu": {
105                         "debian_package": APP_NAME,
106                         "section": "math",
107                         "copyright": "lgpl",
108                         "changelog": CHANGES,
109                         "buildversion": str(BUILD),
110                         "depends": "python, python-pyside.qtcore, python-pyside.qtgui",
111                         "architecture": "any",
112                 },
113                 "sdist_diablo": {
114                         "debian_package": APP_NAME,
115                         "Maemo_Display_Name": PRETTY_APP_NAME,
116                         #"Maemo_Upgrade_Description": CHANGES,
117                         "Maemo_Bugtracker": BUGTRACKER_URL,
118                         "Maemo_Icon_26": "data/icons/26/%s.png" % APP_NAME,
119                         "section": "user/science",
120                         "copyright": "lgpl",
121                         "changelog": CHANGES,
122                         "buildversion": str(BUILD),
123                         "depends": "python2.5, python2.5-qt4-core, python2.5-qt4-gui",
124                         "architecture": "any",
125                 },
126                 "sdist_fremantle": {
127                         "debian_package": APP_NAME,
128                         "Maemo_Display_Name": PRETTY_APP_NAME,
129                         #"Maemo_Upgrade_Description": CHANGES,
130                         "Maemo_Bugtracker": BUGTRACKER_URL,
131                         "Maemo_Icon_26": "data/icons/48/%s.png" % APP_NAME,
132                         "section": "user/science",
133                         "copyright": "lgpl",
134                         "changelog": CHANGES,
135                         "buildversion": str(BUILD),
136                         "depends": "python, python-pyside.qtcore, python-pyside.qtgui, python-pyside.qtmaemo5",
137                         "architecture": "any",
138                 },
139                 "sdist_harmattan": {
140                         "debian_package": APP_NAME,
141                         "Maemo_Display_Name": PRETTY_APP_NAME,
142                         #"Maemo_Upgrade_Description": CHANGES,
143                         "Maemo_Bugtracker": BUGTRACKER_URL,
144                         "Maemo_Icon_26": "data/icons/48/%s.png" % APP_NAME,
145                         "MeeGo_Desktop_Entry_Filename": APP_NAME,
146                         #"MeeGo_Desktop_Entry": "",
147                         "section": "user/science",
148                         "copyright": "lgpl",
149                         "changelog": CHANGES,
150                         "buildversion": str(BUILD),
151                         "depends": "python, python-pyside.qtcore, python-pyside.qtgui",
152                         "architecture": "any",
153                 },
154                 "bdist_rpm": {
155                         "requires": "REPLACEME",
156                         "icon": "data/icons/48/%s.png" % APP_NAME,
157                         "group": "REPLACEME",
158                 },
159         },
160 )