source: sasview/sansview/setup_mac.py @ 9cd6872

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 9cd6872 was e52010a, checked in by Gervaise Alina <gervyh@…>, 14 years ago

working on installer for mac

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