source: sasview/sansview/setup_mac.py @ 2fdb870

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 2fdb870 was dffb5b2, checked in by Mathieu Doucet <doucetm@…>, 13 years ago

Re #5 fixing installer build on mac

  • Property mode set to 100644
File size: 3.5 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"""
12from setuptools import setup
13import periodictable.xsf
14import sans.dataloader.readers 
15from distutils.sysconfig import get_python_lib
16import os
17import string
18import local_config
19import pytz
20
21ICON = local_config.SetupIconFile_mac
22EXTENSIONS_LIST = []
23DATA_FILES = []
24RESOURCES_FILES = []
25
26#Periodictable data file
27DATA_FILES = periodictable.data_files()
28#invariant and calculator help doc
29import sans.perspectives.fitting as fitting
30DATA_FILES += fitting.data_files()
31import sans.perspectives.calculator as calculator
32DATA_FILES += calculator.data_files()
33import sans.perspectives.invariant as invariant
34DATA_FILES += invariant.data_files()
35import sans.models as models
36DATA_FILES += models.data_files()
37import sans.guiframe as guiframe
38DATA_FILES += guiframe.data_files()
39
40#CANSAxml reader data files
41RESOURCES_FILES.append(os.path.join(sans.dataloader.readers.get_data_path(),'defaults.xml'))
42
43# Locate libxml2 library
44lib_locs = ['/usr/local/lib', '/usr/lib']
45libxml_path = None
46for item in lib_locs:
47    libxml_path_test = '%s/libxml2.2.dylib' % item
48    if os.path.isfile(libxml_path_test): 
49        libxml_path = libxml_path_test
50if libxml_path == None:
51    raise RuntimeError, "Could not find libxml2 on the system"
52
53APP = ['sansview.py']
54DATA_FILES += ['images','test','plugins','media', 'custom_config.py', 'local_config.py']
55# locate file extensions
56def find_extension():
57    """
58    Describe the extensions that can be read by the current application
59    """
60    try:
61        list = []
62        EXCEPTION_LIST = ['*', '.', '']
63        from sans.dataloader.loader import Loader
64        wild_cards = Loader().get_wildcards()
65        for item in wild_cards:
66            #['All (*.*)|*.*']
67            file_type, ext = string.split(item, "|*.", 1)
68            if ext.strip() not in EXCEPTION_LIST and ext.strip() not in list:
69                list.append(ext)
70    except:
71        pass
72    try:
73        file_type, ext = string.split(local_config.APPLICATION_WLIST, "|*.", 1)
74        if ext.strip() not in EXCEPTION_LIST and ext.strip() not in list:
75            list.append(ext)
76    except:
77        pass
78    try:
79        for item in local_config.PLUGINS_WLIST:
80            file_type, ext = string.split(item, "|*.", 1)
81            if ext.strip() not in EXCEPTION_LIST and ext.strip() not in list:
82                list.append(ext) 
83    except:
84        pass
85   
86    return list
87
88EXTENSIONS_LIST = find_extension()
89
90 
91plist = dict(CFBundleDocumentTypes=[dict(CFBundleTypeExtensions=EXTENSIONS_LIST,
92                                         CFBundleTypeIconFile=ICON,
93                                   CFBundleTypeName="sansview file",
94                                   CFBundleTypeRole="Shell" )],)
95
96APP = ['sansview.py']
97DATA_FILES += ['images','test','plugins','media']
98
99EXCLUDES = ['PyQt4', 'sip', 'QtGui']
100
101OPTIONS = {'argv_emulation': True,
102           'packages': ['lxml','numpy', 'scipy', 'pytz', 'encodings'],
103           'iconfile': ICON,
104           'frameworks':[libxml_path],
105           'resources': RESOURCES_FILES,
106           'plist':plist,
107           'excludes' : EXCLUDES,
108           }
109setup(
110    app=APP,
111    data_files=DATA_FILES,
112    include_package_data= True,
113    options={'py2app': OPTIONS},
114    setup_requires=['py2app'],
115)
Note: See TracBrowser for help on using the repository browser.