source: sasview/sasview/setup_mac.py @ 018582f

ESS_GUIESS_GUI_DocsESS_GUI_batch_fittingESS_GUI_bumps_abstractionESS_GUI_iss1116ESS_GUI_iss879ESS_GUI_iss959ESS_GUI_openclESS_GUI_orderingESS_GUI_sync_sascalccostrafo411magnetic_scattrelease-4.1.1release-4.1.2release-4.2.2release_4.0.1ticket-1009ticket-1094-headlessticket-1242-2d-resolutionticket-1243ticket-1249ticket885unittest-saveload
Last change on this file since 018582f was 018582f, checked in by Peter Parker, 9 years ago

Fix capitalisation bug.

  • Property mode set to 100644
File size: 4.6 KB
Line 
1"""
2This is a setup.py script partly generated by py2applet
3
4Usage:
5    python setup.py py2app
6   
7   
8NOTES:
9   12/01/2011: When seeing an error related to pytz.zoneinfo not being found, change the following line in py2app/recipes/matplotlib.py
10               mf.import_hook('pytz.tzinfo', m, ['UTC'])
11   12/05/2011: Needs macholib >= 1.4.3 and py2app >= 0.6.4 to create a 64-bit app
12"""
13from setuptools import setup
14import periodictable.xsf
15import sas.dataloader.readers 
16import os
17import string
18import local_config
19import pytz
20import sys
21import platform
22
23from distutils.util import get_platform
24root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
25platform = '%s-%s'%(get_platform(),sys.version[:3])
26build_path = os.path.join(root, 'build','lib.'+platform)
27sys.path.insert(0, build_path)
28
29ICON = local_config.SetupIconFile_mac
30EXTENSIONS_LIST = []
31DATA_FILES = []
32RESOURCES_FILES = []
33
34#Periodictable data file
35DATA_FILES = periodictable.data_files()
36#invariant and calculator help doc
37import sas.perspectives.fitting as fitting
38DATA_FILES += fitting.data_files()
39import sas.perspectives.calculator as calculator
40DATA_FILES += calculator.data_files()
41import sas.perspectives.invariant as invariant
42DATA_FILES += invariant.data_files()
43import sas.models as models
44DATA_FILES += models.data_files()
45import sas.guiframe as guiframe
46DATA_FILES += guiframe.data_files()
47
48#CANSAxml reader data files
49RESOURCES_FILES.append(os.path.join(sas.dataloader.readers.get_data_path(),'defaults.json'))
50
51# Locate libxml2 library
52lib_locs = ['/usr/local/lib', '/usr/lib']
53libxml_path = None
54for item in lib_locs:
55    libxml_path_test = '%s/libxml2.2.dylib' % item
56    if os.path.isfile(libxml_path_test): 
57        libxml_path = libxml_path_test
58if libxml_path == None:
59    raise RuntimeError, "Could not find libxml2 on the system"
60
61APP = ['sasview.py']
62DATA_FILES += ['images','test','media', 'custom_config.py', 'local_config.py',
63               'default_categories.json']
64if os.path.isfile("BUILD_NUMBER"):
65    DATA_FILES.append("BUILD_NUMBER")
66
67# See if the documentation has been built, and if so include it.
68doc_path = os.path.join(build_path, "doc")
69if os.path.exists(doc_path):
70    for dirpath, dirnames, filenames in os.walk(doc_path):
71        for filename in filenames:
72            sub_dir = os.path.join("doc", os.path.relpath(dirpath, doc_path))
73            DATA_FILES.append((sub_dir, [os.path.join(dirpath, filename)]))
74else:
75    raise Exception("You must first build the documentation before creating an installer.")
76   
77# locate file extensions
78def find_extension():
79    """
80    Describe the extensions that can be read by the current application
81    """
82    try:
83        list = []
84        EXCEPTION_LIST = ['*', '.', '']
85        from sas.dataloader.loader import Loader
86        wild_cards = Loader().get_wildcards()
87        for item in wild_cards:
88            #['All (*.*)|*.*']
89            file_type, ext = string.split(item, "|*.", 1)
90            if ext.strip() not in EXCEPTION_LIST and ext.strip() not in list:
91                list.append(ext)
92    except:
93        pass
94    try:
95        file_type, ext = string.split(local_config.APPLICATION_WLIST, "|*.", 1)
96        if ext.strip() not in EXCEPTION_LIST and ext.strip() not in list:
97            list.append(ext)
98    except:
99        pass
100    try:
101        for item in local_config.PLUGINS_WLIST:
102            file_type, ext = string.split(item, "|*.", 1)
103            if ext.strip() not in EXCEPTION_LIST and ext.strip() not in list:
104                list.append(ext) 
105    except:
106        pass
107   
108    return list
109
110EXTENSIONS_LIST = find_extension()
111
112 
113plist = dict(CFBundleDocumentTypes=[dict(CFBundleTypeExtensions=EXTENSIONS_LIST,
114                                         CFBundleTypeIconFile=ICON,
115                                   CFBundleTypeName="sasview file",
116                                   CFBundleTypeRole="Shell" )],)
117
118APP = ['sasview.py']
119DATA_FILES += ['images','test','media']
120
121EXCLUDES = ['PyQt4', 'sip', 'QtGui']
122
123OPTIONS = {'argv_emulation': True,
124           'packages': ['lxml','numpy', 'scipy', 'pytz', 'encodings',
125                        'encodings','matplotlib', 'periodictable',
126                        'reportlab'
127                        ],
128           'iconfile': ICON,
129           'frameworks':[libxml_path],
130           'resources': RESOURCES_FILES,
131           'plist':plist,
132           'excludes' : EXCLUDES,
133           }
134setup(
135    name="sasview",
136    app=APP,
137    data_files=DATA_FILES,
138    include_package_data= True,
139    options={'py2app': OPTIONS},
140    setup_requires=['py2app'],
141)
Note: See TracBrowser for help on using the repository browser.