Changes in setup.py [7a5d066:14bb7a4] in sasview


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • setup.py

    r7a5d066 r14bb7a4  
    1 # -*- coding: utf-8 -*- 
    2 #!/usr/bin/env python 
    3  
    41""" 
    52    Setup for SasView 
    6     TODO: Add checks to see that all the dependencies are on the system 
     3    #TODO: Add checks to see that all the dependencies are on the system 
    74""" 
    8  
     5import sys 
    96import os 
    107import subprocess 
    118import shutil 
    12 import sys 
     9from setuptools import setup, Extension 
    1310from distutils.command.build_ext import build_ext 
    1411from distutils.core import Command 
    15  
    1612import numpy as np 
    17 from setuptools import Extension, setup 
    1813 
    1914# Manage version number ###################################### 
    2015import sasview 
    21  
    2216VERSION = sasview.__version__ 
    2317############################################################## 
     
    3226# except when there is no such file 
    3327# Todo : make this list generic 
    34 # plugin_model_list = ['polynominal5.py', 'sph_bessel_jn.py', 
     28#plugin_model_list = ['polynominal5.py', 'sph_bessel_jn.py', 
    3529#                      'sum_Ap1_1_Ap2.py', 'sum_p1_p2.py', 
    3630#                      'testmodel_2.py', 'testmodel.py', 
     
    4236SASVIEW_BUILD = os.path.join(CURRENT_SCRIPT_DIR, "build") 
    4337 
    44 sas_dir = os.path.join(os.path.expanduser("~"), '.sasview') 
     38sas_dir = os.path.join(os.path.expanduser("~"),'.sasview') 
    4539if os.path.isdir(sas_dir): 
    4640    f_path = os.path.join(sas_dir, "sasview.log") 
     
    5448        os.remove(f_path) 
    5549    #f_path = os.path.join(sas_dir, 'plugin_models') 
    56     # if os.path.isdir(f_path): 
     50    #if os.path.isdir(f_path): 
    5751    #     for f in os.listdir(f_path): 
    5852    #         if f in plugin_model_list: 
     
    6054    #             os.remove(file_path) 
    6155    if os.path.exists(SASVIEW_BUILD): 
    62         print("Removing existing build directory", 
    63               SASVIEW_BUILD, "for a clean build") 
     56        print("Removing existing build directory", SASVIEW_BUILD, "for a clean build") 
    6457        shutil.rmtree(SASVIEW_BUILD) 
    6558 
     
    7164enable_openmp = False 
    7265 
    73 if sys.platform == 'darwin': 
     66if sys.platform =='darwin': 
    7467    if not is_64bits: 
    7568        # Disable OpenMP 
     
    8578 
    8679# Options to enable OpenMP 
    87 copt = {'msvc': ['/openmp'], 
    88         'mingw32': ['-fopenmp'], 
    89         'unix': ['-fopenmp']} 
    90 lopt = {'msvc': ['/MANIFEST'], 
    91         'mingw32': ['-fopenmp'], 
    92         'unix': ['-lgomp']} 
     80copt =  {'msvc': ['/openmp'], 
     81         'mingw32' : ['-fopenmp'], 
     82         'unix' : ['-fopenmp']} 
     83lopt =  {'msvc': ['/MANIFEST'], 
     84         'mingw32' : ['-fopenmp'], 
     85         'unix' : ['-lgomp']} 
    9386 
    9487# Platform-specific link options 
    95 platform_lopt = {'msvc': ['/MANIFEST']} 
     88platform_lopt = {'msvc' : ['/MANIFEST']} 
    9689platform_copt = {} 
    9790 
    9891# Set copts to get compile working on OS X >= 10.9 using clang 
    99 if sys.platform == 'darwin': 
     92if sys.platform =='darwin': 
    10093    try: 
    10194        darwin_ver = int(os.uname()[2].split('.')[0]) 
    10295        if darwin_ver >= 13 and darwin_ver < 14: 
    103             platform_copt = { 
    104                 'unix': ['-Wno-error=unused-command-line-argument-hard-error-in-future']} 
     96            platform_copt = {'unix' : ['-Wno-error=unused-command-line-argument-hard-error-in-future']} 
    10597    except: 
    10698        print("PROBLEM determining Darwin version") 
    107  
    10899 
    109100class DisableOpenMPCommand(Command): 
     
    124115        pass 
    125116 
    126  
    127 class build_ext_subclass(build_ext): 
     117class build_ext_subclass( build_ext ): 
    128118    def build_extensions(self): 
    129119        # Get 64-bitness 
     
    135125            if c in copt: 
    136126                for e in self.extensions: 
    137                     e.extra_compile_args = copt[c] 
     127                    e.extra_compile_args = copt[ c ] 
    138128            if c in lopt: 
    139129                for e in self.extensions: 
    140                     e.extra_link_args = lopt[c] 
     130                    e.extra_link_args = lopt[ c ] 
    141131 
    142132        # Platform-specific build options 
    143133        if c in platform_lopt: 
    144134            for e in self.extensions: 
    145                 e.extra_link_args = platform_lopt[c] 
     135                e.extra_link_args = platform_lopt[ c ] 
    146136 
    147137        if c in platform_copt: 
    148138            for e in self.extensions: 
    149                 e.extra_compile_args = platform_copt[c] 
     139                e.extra_compile_args = platform_copt[ c ] 
     140 
    150141 
    151142        build_ext.build_extensions(self) 
    152  
    153143 
    154144class BuildSphinxCommand(Command): 
     
    184174        build_sphinx.rebuild() 
    185175 
    186  
    187176# sas module 
    188177package_dir["sas"] = os.path.join("src", "sas") 
     
    198187 
    199188# sas.sascalc.invariant 
    200 package_dir["sas.sascalc.invariant"] = os.path.join( 
    201     "src", "sas", "sascalc", "invariant") 
     189package_dir["sas.sascalc.invariant"] = os.path.join("src", "sas", "sascalc", "invariant") 
    202190packages.extend(["sas.sascalc.invariant"]) 
    203191 
     
    205193guiframe_path = os.path.join("src", "sas", "sasgui", "guiframe") 
    206194package_dir["sas.sasgui.guiframe"] = guiframe_path 
    207 package_dir["sas.sasgui.guiframe.local_perspectives"] = os.path.join( 
    208     os.path.join(guiframe_path, "local_perspectives")) 
     195package_dir["sas.sasgui.guiframe.local_perspectives"] = os.path.join(os.path.join(guiframe_path, "local_perspectives")) 
    209196package_data["sas.sasgui.guiframe"] = ['images/*', 'media/*'] 
    210 packages.extend( 
    211     ["sas.sasgui.guiframe", "sas.sasgui.guiframe.local_perspectives"]) 
     197packages.extend(["sas.sasgui.guiframe", "sas.sasgui.guiframe.local_perspectives"]) 
    212198# build local plugin 
    213199for d in os.listdir(os.path.join(guiframe_path, "local_perspectives")): 
     
    215201        package_name = "sas.sasgui.guiframe.local_perspectives." + d 
    216202        packages.append(package_name) 
    217         package_dir[package_name] = os.path.join( 
    218             guiframe_path, "local_perspectives", d) 
     203        package_dir[package_name] = os.path.join(guiframe_path, "local_perspectives", d) 
    219204 
    220205# sas.sascalc.dataloader 
    221 package_dir["sas.sascalc.dataloader"] = os.path.join( 
    222     "src", "sas", "sascalc", "dataloader") 
    223 package_data["sas.sascalc.dataloader.readers"] = ['schema/*.xsd'] 
    224 packages.extend(["sas.sascalc.dataloader", "sas.sascalc.dataloader.readers", 
    225                  "sas.sascalc.dataloader.readers.schema"]) 
    226  
     206package_dir["sas.sascalc.dataloader"] = os.path.join("src", "sas", "sascalc", "dataloader") 
     207package_data["sas.sascalc.dataloader.readers"] = ['defaults.json', 'schema/*.xsd'] 
     208packages.extend(["sas.sascalc.dataloader", "sas.sascalc.dataloader.readers", "sas.sascalc.dataloader.readers.schema"]) 
    227209 
    228210# sas.sascalc.calculator 
    229211gen_dir = os.path.join("src", "sas", "sascalc", "calculator", "c_extensions") 
    230212package_dir["sas.sascalc.calculator.core"] = gen_dir 
    231 package_dir["sas.sascalc.calculator"] = os.path.join( 
    232     "src", "sas", "sascalc", "calculator") 
    233 packages.extend(["sas.sascalc.calculator", "sas.sascalc.calculator.core"]) 
    234 ext_modules.append(Extension("sas.sascalc.calculator.core.sld2i", 
    235                              sources=[ 
    236                                  os.path.join(gen_dir, "sld2i_module.cpp"), 
    237                                  os.path.join(gen_dir, "sld2i.cpp"), 
    238                                  os.path.join(gen_dir, "libfunc.c"), 
    239                                  os.path.join(gen_dir, "librefl.c"), 
    240                              ], 
    241                              include_dirs=[gen_dir], 
    242                              ) 
    243                    ) 
     213package_dir["sas.sascalc.calculator"] = os.path.join("src", "sas", "sascalc", "calculator") 
     214packages.extend(["sas.sascalc.calculator","sas.sascalc.calculator.core"]) 
     215ext_modules.append( Extension("sas.sascalc.calculator.core.sld2i", 
     216        sources = [ 
     217            os.path.join(gen_dir, "sld2i_module.cpp"), 
     218            os.path.join(gen_dir, "sld2i.cpp"), 
     219            os.path.join(gen_dir, "libfunc.c"), 
     220            os.path.join(gen_dir, "librefl.c"), 
     221        ], 
     222        include_dirs=[gen_dir], 
     223    ) 
     224) 
    244225 
    245226# sas.sascalc.pr 
    246 srcdir = os.path.join("src", "sas", "sascalc", "pr", "c_extensions") 
     227srcdir  = os.path.join("src", "sas", "sascalc", "pr", "c_extensions") 
    247228package_dir["sas.sascalc.pr.core"] = srcdir 
    248229package_dir["sas.sascalc.pr"] = os.path.join("src", "sas", "sascalc", "pr") 
    249 packages.extend(["sas.sascalc.pr", "sas.sascalc.pr.core"]) 
    250 ext_modules.append(Extension("sas.sascalc.pr.core.pr_inversion", 
    251                              sources=[os.path.join(srcdir, "Cinvertor.c"), 
    252                                       os.path.join(srcdir, "invertor.c"), 
    253                                       ], 
    254                              include_dirs=[], 
    255                              )) 
    256  
     230packages.extend(["sas.sascalc.pr","sas.sascalc.pr.core"]) 
     231ext_modules.append( Extension("sas.sascalc.pr.core.pr_inversion", 
     232                              sources = [os.path.join(srcdir, "Cinvertor.c"), 
     233                                         os.path.join(srcdir, "invertor.c"), 
     234                                         ], 
     235                              include_dirs=[], 
     236                              ) ) 
    257237 
    258238# sas.sascalc.file_converter 
    259239mydir = os.path.join("src", "sas", "sascalc", "file_converter", "c_ext") 
    260240package_dir["sas.sascalc.file_converter.core"] = mydir 
    261 package_dir["sas.sascalc.file_converter"] = os.path.join( 
    262     "src", "sas", "sascalc", "file_converter") 
    263 packages.extend(["sas.sascalc.file_converter", 
    264                  "sas.sascalc.file_converter.core"]) 
    265 ext_modules.append(Extension("sas.sascalc.file_converter.core.bsl_loader", 
    266                              sources=[os.path.join(mydir, "bsl_loader.c")], 
    267                              include_dirs=[np.get_include()], 
    268                              )) 
    269  
    270 # sas.sascalc.corfunc 
    271 package_dir["sas.sascalc.corfunc"] = os.path.join( 
    272     "src", "sas", "sascalc", "corfunc") 
    273  
     241package_dir["sas.sascalc.file_converter"] = os.path.join("src", "sas", "sascalc", "file_converter") 
     242packages.extend(["sas.sascalc.file_converter", "sas.sascalc.file_converter.core"]) 
     243ext_modules.append( Extension("sas.sascalc.file_converter.core.bsl_loader", 
     244                              sources = [os.path.join(mydir, "bsl_loader.c")], 
     245                              include_dirs=[np.get_include()], 
     246                              ) ) 
     247 
     248#sas.sascalc.corfunc 
     249package_dir["sas.sascalc.corfunc"] = os.path.join("src", "sas", "sascalc", "corfunc") 
    274250packages.extend(["sas.sascalc.corfunc"]) 
    275251 
     
    279255 
    280256# Perspectives 
    281 package_dir["sas.sasgui.perspectives"] = os.path.join( 
    282     "src", "sas", "sasgui", "perspectives") 
    283 package_dir["sas.sasgui.perspectives.pr"] = os.path.join( 
    284     "src", "sas", "sasgui", "perspectives", "pr") 
    285 packages.extend(["sas.sasgui.perspectives", "sas.sasgui.perspectives.pr"]) 
     257package_dir["sas.sasgui.perspectives"] = os.path.join("src", "sas", "sasgui", "perspectives") 
     258package_dir["sas.sasgui.perspectives.pr"] = os.path.join("src", "sas", "sasgui", "perspectives", "pr") 
     259packages.extend(["sas.sasgui.perspectives","sas.sasgui.perspectives.pr"]) 
    286260package_data["sas.sasgui.perspectives.pr"] = ['media/*'] 
    287261 
    288 package_dir["sas.sasgui.perspectives.invariant"] = os.path.join( 
    289     "src", "sas", "sasgui", "perspectives", "invariant") 
     262package_dir["sas.sasgui.perspectives.invariant"] = os.path.join("src", "sas", "sasgui", "perspectives", "invariant") 
    290263packages.extend(["sas.sasgui.perspectives.invariant"]) 
    291 package_data['sas.sasgui.perspectives.invariant'] = [ 
    292     os.path.join("media", '*')] 
    293  
    294 package_dir["sas.sasgui.perspectives.fitting"] = os.path.join( 
    295     "src", "sas", "sasgui", "perspectives", "fitting") 
    296 package_dir["sas.sasgui.perspectives.fitting.plugin_models"] = os.path.join( 
    297     "src", "sas", "sasgui", "perspectives", "fitting", "plugin_models") 
    298 packages.extend(["sas.sasgui.perspectives.fitting", 
    299                  "sas.sasgui.perspectives.fitting.plugin_models"]) 
    300 package_data['sas.sasgui.perspectives.fitting'] = [ 
    301     'media/*', 'plugin_models/*'] 
    302  
    303 packages.extend(["sas.sasgui.perspectives", 
    304                  "sas.sasgui.perspectives.calculator"]) 
     264package_data['sas.sasgui.perspectives.invariant'] = [os.path.join("media",'*')] 
     265 
     266package_dir["sas.sasgui.perspectives.fitting"] = os.path.join("src", "sas", "sasgui", "perspectives", "fitting") 
     267package_dir["sas.sasgui.perspectives.fitting.plugin_models"] = os.path.join("src", "sas", "sasgui", "perspectives", "fitting", "plugin_models") 
     268packages.extend(["sas.sasgui.perspectives.fitting", "sas.sasgui.perspectives.fitting.plugin_models"]) 
     269package_data['sas.sasgui.perspectives.fitting'] = ['media/*', 'plugin_models/*'] 
     270 
     271packages.extend(["sas.sasgui.perspectives", "sas.sasgui.perspectives.calculator"]) 
    305272package_data['sas.sasgui.perspectives.calculator'] = ['images/*', 'media/*'] 
    306273 
    307 package_dir["sas.sasgui.perspectives.corfunc"] = os.path.join( 
    308     "src", "sas", "sasgui", "perspectives", "corfunc") 
     274package_dir["sas.sasgui.perspectives.corfunc"] = os.path.join("src", "sas", "sasgui", "perspectives", "corfunc") 
    309275packages.extend(["sas.sasgui.perspectives.corfunc"]) 
    310276package_data['sas.sasgui.perspectives.corfunc'] = ['media/*'] 
    311277 
    312 package_dir["sas.sasgui.perspectives.file_converter"] = os.path.join( 
    313     "src", "sas", "sasgui", "perspectives", "file_converter") 
     278package_dir["sas.sasgui.perspectives.file_converter"] = os.path.join("src", "sas", "sasgui", "perspectives", "file_converter") 
    314279packages.extend(["sas.sasgui.perspectives.file_converter"]) 
    315280package_data['sas.sasgui.perspectives.file_converter'] = ['media/*'] 
    316281 
    317282# Data util 
    318 package_dir["sas.sascalc.data_util"] = os.path.join( 
    319     "src", "sas", "sascalc", "data_util") 
     283package_dir["sas.sascalc.data_util"] = os.path.join("src", "sas", "sascalc", "data_util") 
    320284packages.append("sas.sascalc.data_util") 
    321285 
    322286# Plottools 
    323 package_dir["sas.sasgui.plottools"] = os.path.join( 
    324     "src", "sas", "sasgui", "plottools") 
     287package_dir["sas.sasgui.plottools"] = os.path.join("src", "sas", "sasgui", "plottools") 
    325288packages.append("sas.sasgui.plottools") 
    326289 
     
    330293 
    331294EXTENSIONS = [".c", ".cpp"] 
    332  
    333295 
    334296def append_file(file_list, dir_path): 
     
    350312                        file_list.append(os.path.join(sub_dir, new_f)) 
    351313 
    352  
    353314# Comment out the following to avoid rebuilding all the models 
    354315file_sources = [] 
    355316append_file(file_sources, gen_dir) 
    356317 
    357 # Wojtek's hacky way to add doc files while bundling egg 
    358 # def add_doc_files(directory): 
     318#Wojtek's hacky way to add doc files while bundling egg 
     319#def add_doc_files(directory): 
    359320#    paths = [] 
    360321#    for (path, directories, filenames) in os.walk(directory): 
     
    369330package_data['sas.sasview'] = ['images/*', 
    370331                               'media/*', 
    371                                'logging.ini', 
    372332                               'test/*.txt', 
    373333                               'test/1d_data/*', 
     
    389349    'lxml', 'h5py', 
    390350 
    391     # The following dependecies won't install automatically, so assume them 
    392     # The numbers should be bumped up for matplotlib and wxPython as well. 
     351    ## The following dependecies won't install automatically, so assume them 
     352    ## The numbers should be bumped up for matplotlib and wxPython as well. 
    393353    # 'numpy>=1.4.1', 'scipy>=0.7.2', 'matplotlib>=0.99.1.1', 
    394354    # 'wxPython>=2.8.11', 'pil', 
    395 ] 
    396  
    397 if os.name == 'nt': 
     355    ] 
     356 
     357if os.name=='nt': 
    398358    required.extend(['html5lib', 'reportlab']) 
    399359else: 
     
    404364setup( 
    405365    name="sasview", 
    406     version=VERSION, 
    407     description="SasView application", 
    408     author="SasView Team", 
    409     author_email="developers@sasview.org", 
    410     url="http://sasview.org", 
    411     license="PSF", 
    412     keywords="small-angle x-ray and neutron scattering analysis", 
    413     download_url="https://github.com/SasView/sasview.git", 
    414     package_dir=package_dir, 
    415     packages=packages, 
    416     package_data=package_data, 
    417     ext_modules=ext_modules, 
    418     install_requires=required, 
    419     zip_safe=False, 
    420     entry_points={ 
    421         'console_scripts': [ 
    422             "sasview = sas.sasview.sasview:run", 
    423         ] 
    424     }, 
    425     cmdclass={'build_ext': build_ext_subclass, 
    426               'docs': BuildSphinxCommand, 
    427               'disable_openmp': DisableOpenMPCommand} 
    428 ) 
     366    version = VERSION, 
     367    description = "SasView application", 
     368    author = "SasView Team", 
     369    author_email = "developers@sasview.org", 
     370    url = "http://sasview.org", 
     371    license = "PSF", 
     372    keywords = "small-angle x-ray and neutron scattering analysis", 
     373    download_url = "https://github.com/SasView/sasview.git", 
     374    package_dir = package_dir, 
     375    packages = packages, 
     376    package_data = package_data, 
     377    ext_modules = ext_modules, 
     378    install_requires = required, 
     379    zip_safe = False, 
     380    entry_points = { 
     381                    'console_scripts':[ 
     382                                       "sasview = sas.sasview.sasview:run", 
     383                                       ] 
     384                    }, 
     385    cmdclass = {'build_ext': build_ext_subclass, 
     386                'docs': BuildSphinxCommand, 
     387                'disable_openmp': DisableOpenMPCommand} 
     388    ) 
Note: See TracChangeset for help on using the changeset viewer.