Index: wflow-py/make_wflow_exe_cx.py =================================================================== diff -u -r8646a5fe957d50c78e9fd104e8f23f0c6201b2e1 -rcef24d27dba76b014028787be46dd9ae3a2c30b6 --- wflow-py/make_wflow_exe_cx.py (.../make_wflow_exe_cx.py) (revision 8646a5fe957d50c78e9fd104e8f23f0c6201b2e1) +++ wflow-py/make_wflow_exe_cx.py (.../make_wflow_exe_cx.py) (revision cef24d27dba76b014028787be46dd9ae3a2c30b6) @@ -4,6 +4,11 @@ import ctypes,glob,os,shutil import matplotlib import scipy + +target = 'openda' + +import sys + includefiles_list=[] scipy_path = os.path.dirname(scipy.__file__) includefiles_list.append(scipy_path) @@ -18,56 +23,99 @@ hooks.load_scipy = load_scipy_patched +def mkdatatuples(thelist,destdir="."): + """ + input list of input files output lis list of tuples including destination + :param list: + :return: + """ + ret = [] + for item in thelist: + destfile = os.path.join(destdir,os.path.basename(item)) + ret.append((item,destfile)) + return ret -nrbits = str(ctypes.sizeof(ctypes.c_voidp) * 8) -#includes = ['wflow.wflow_bmi','wflow.wflow_w3ra','wflow.wflow_bmi_combined','bmi','bmi.wrapper',"pcraster","osgeo.ogr"] +data_files = ['packages.txt'] +os.system('conda list' + ">" + os.path.join('packages.txt')) +# matplolib data files -thename = "Wflow"+MVERSION+'-'+nrbits -packages = ["osgeo"] +mpl = matplotlib.get_py2exe_datafiles() -options = {"packages": packages} -base=None +mplfiles = [] +for mpldir in mpl: + ddir = os.path.join('mpl-data',os.path.basename(mpldir[0])) + data_files.extend(mkdatatuples(mpldir[1],destdir=ddir)) -executables = [ - Executable('wflow/wflow_sbm.py', base=base), - Executable('wflow/wflow_hbv.py', base=base) -] -setup(name='wflow', - version='1.0', - description='Wflow', - options={"build_exe" : options}, - executables=executables, - ) +# pcraster dll's +ddir = "c:/pcraster/lib/" +data_files.extend(mkdatatuples(glob.glob(ddir + "/*.dll"),destdir='.')) +# GDAL data files +gdaldata = os.getenv("GDAL_DATA") +data_files.extend(mkdatatuples(glob.glob(gdaldata + "/*.*"),destdir='gdal-data')) +nrbits = str(ctypes.sizeof(ctypes.c_voidp) * 8) +#includes = ['wflow.wflow_bmi','wflow.wflow_w3ra','wflow.wflow_bmi_combined','bmi','bmi.wrapper',"pcraster","osgeo.ogr"] +thename = "Wflow"+MVERSION+'-'+nrbits +packages = ["osgeo"] +if target == 'openda': + includes = ['wflow.wflow_bmi','wflow.wflow_w3ra','wflow.wflow_bmi_combined'] + packages.append('openda_bmi') +else: + includes = ['wflow.wflow_bmi', 'wflow.wflow_w3ra', 'wflow.wflow_bmi_combined'] +options = { "includes": includes, "packages": packages,'include_files': data_files, "build_exe": thename,'excludes': ['collections.abc']} +base=None -os.system('conda list' + ">" + os.path.join(thename,'packages.txt')) -# matplolib data files -data_files=matplotlib.get_py2exe_datafiles() -# pcraster dll's -ddir = "c:/pcraster/lib/" -data_files.append((".", glob.glob(ddir + "/*.dll"))) -# GDAL data files -gdaldata = os.getenv("GDAL_DATA") -data_files.append(("./gdal-data", glob.glob(gdaldata + "/*.*"))) +if target == 'openda': + import thrift + executables = [ + Executable('Scripts/pcr2netcdf.py', base=base), + Executable('Scripts/bmi2runner.py', base=base), + Executable('openda_bmi/thrift_bmi_raster_server.py', base=base), + Executable('Scripts/wflow_prepare_step2.py', base=base), + Executable('Scripts/wflow_prepare_step1.py', base=base), + Executable('Scripts/wflow_sbm_rtc.py', base=base), + Executable('wflow/wflow_topoflex.py', base=base), + Executable('wflow/wflow_sbm.py', base=base), + Executable('wflow/wflow_adapt.py', base=base), + Executable('wflow/wflow_w3ra.py', base=base), + Executable('wflow/wflow_delwaq.py', base=base), + Executable('wflow/wflow_wave.py', base=base), + Executable('wflow/wflow_gr4.py', base=base), + Executable('wflow/wflow_floodmap.py', base=base), + Executable('wflow/wflow_hbv.py', base=base) + ] +else: + executables = [ + Executable('Scripts/pcr2netcdf.py', base=base), + Executable('Scripts/bmi2runner.py', base=base), + Executable('Scripts/wflow_prepare_step2.py', base=base), + Executable('Scripts/wflow_prepare_step1.py', base=base), + Executable('Scripts/wflow_sbm_rtc.py', base=base), + Executable('wflow/wflow_topoflex.py', base=base), + Executable('wflow/wflow_sbm.py', base=base), + Executable('wflow/wflow_adapt.py', base=base), + Executable('wflow/wflow_w3ra.py', base=base), + Executable('wflow/wflow_delwaq.py', base=base), + Executable('wflow/wflow_wave.py', base=base), + Executable('wflow/wflow_gr4.py', base=base), + Executable('wflow/wflow_floodmap.py', base=base), + Executable('wflow/wflow_hbv.py', base=base) + ] -print data_files -print "Copying extra data files..." -for dirr in data_files: - timake = os.path.join(thename ,dirr[0]) - print timake - if not os.path.exists(timake): - os.makedirs(timake) - for tocp in dirr[1]: - print tocp - shutil.copy(tocp,timake) +setup(name='wflow', + version=NVERSION, + description='Wflow', + options={"build_exe" : options}, + executables=executables, + ) \ No newline at end of file