diff --git a/Sconstruct b/Sconstruct index 6b8bfc6..ffc6b01 100644 --- a/Sconstruct +++ b/Sconstruct @@ -1,71 +1,76 @@ import os,sys path = '/usr/lib/scons/' sys.path.append(path) #from SCons import * #from SCons.Environment import * #from SCons.Variables import * #from SCons.Util import * #script_dir = GetOption('file') #if script_dir == []: # script_dir = '.' #else: # script_dir = script_dir[0] colors = {} colors['cyan'] = '' colors['purple'] = '' colors['blue'] = '' colors['green'] = '' colors['yellow'] = '' colors['red'] = '' colors['end'] = '' #colors['cyan'] = '\033[96m' #colors['purple'] = '\033[95m' #colors['blue'] = '\033[94m' #colors['green'] = '\033[92m' #colors['yellow'] = '\033[93m' #colors['red'] = '\033[91m' #colors['end'] = '\033[0m' main_env = Environment() vars = Variables('build-setup.conf') vars.Add('build_type', 'Could be RELEASE or DEBUG', 'release') vars.Add('prefix', 'Prefix where to install', '/usr/local') vars.Add('verbose', 'Activate verbosity', False) vars.Update(main_env) build_type = main_env['build_type'].lower() build_dir = 'build-' + main_env['build_type'].lower() print "Building in ", build_dir if type(main_env['verbose']) is not bool: main_env['verbose'] = (main_env['verbose'].lower() == 'true' or main_env['verbose'] == 1) verbose = main_env['verbose'] if not verbose: main_env['SHCXXCOMSTR'] = unicode('{0}[Compiling] {1}$SOURCE{2}'.format(colors['green'],colors['blue'],colors['end'])) main_env['SHLINKCOMSTR'] = unicode('{0}[Linking] {1}$TARGET{2}'.format(colors['purple'],colors['blue'],colors['end'])) main_env['SWIGCOMSTR'] = unicode('{0}[Swig] {1}$SOURCE{2}'.format(colors['yellow'],colors['blue'],colors['end'])) main_env['build_dir'] = build_dir main_env['include_dirs'] = ['src','python'] main_env['CXXFLAGS'] = ['-std=c++11', '-Wall', '-fopenmp'] if build_type == 'debug': main_env['CXXFLAGS'] += ['-g'] else : main_env['CXXFLAGS'] += ['-O3'] main_env['LIBPATH'] = [os.path.abspath(os.path.join(build_dir,'src'))] main_env['RPATH'] = "$LIBPATH" # save new values vars.Save('build-setup.conf', main_env) Export('main_env') SConscript('src/SConscript',variant_dir=os.path.join(build_dir,'src'),duplicate=False) SConscript('python/SConscript',variant_dir=os.path.join(build_dir,'python'),duplicate=False) - +# saving the env file +env_file = open(os.path.join(build_dir,'tamaas_environement.sh'),'w') +env_file.write(""" +export PYTHONPATH=$PYTHONPATH:${HOME}/repositories/tamaas/build-release/python/ +""") +env_file.close() diff --git a/python/SConscript b/python/SConscript index c73739c..729d837 100644 --- a/python/SConscript +++ b/python/SConscript @@ -1,18 +1,18 @@ Import('main_env') import distutils.sysconfig env_swig = main_env.Clone( tools=['swig'], CPPPATH=[distutils.sysconfig.get_python_inc()], SWIG = 'swig3.0', SHLIBPREFIX = '', ) include_flags = ["-I{0}".format(i) for i in main_env['include_dirs']] env_swig['SWIGFLAGS'] = ['-python','-c++'] + include_flags env_swig['CXXFLAGS'] += include_flags env_swig.SharedLibrary( - target = '_rough_contact.so', - source = ['rough_contact.i' ], - LIBS= ['RoughContact'] + target = '_tamaas.so', + source = ['tamaas.i' ], + LIBS= ['Tamaas'] ) diff --git a/python/rough_contact.i b/python/rough_contact.i deleted file mode 100644 index c0d5659..0000000 --- a/python/rough_contact.i +++ /dev/null @@ -1,18 +0,0 @@ -%module rough_contact - -/* %exception { */ -/* try { */ -/* $action */ -/* } */ -/* catch (SurfaceException e) { */ -/* PyErr_SetString(PyExc_IndexError,e.what()); */ -/* return NULL; */ -/* } */ -/* } */ - - -%include "surface.i" -%include "surface_generator.i" -%include "surface_statistics.i" -%include "bem.i" -%include "clusters.i" diff --git a/python/tamaas.i b/python/tamaas.i new file mode 100644 index 0000000..98ac8f3 --- /dev/null +++ b/python/tamaas.i @@ -0,0 +1,17 @@ +%module tamaas + +%exception { + try { + $action + } + catch (SurfaceException e) { + PyErr_SetString(PyExc_IndexError,e.what()); + return NULL; + } + } + +%include "surface.i" +%include "surface_generator.i" +%include "surface_statistics.i" +%include "bem.i" +%include "clusters.i" diff --git a/src/SConscript b/src/SConscript index 802cf7a..4df970f 100644 --- a/src/SConscript +++ b/src/SConscript @@ -1,60 +1,60 @@ Import('main_env') import distutils.sysconfig env = main_env.Clone( tools=[fftw], FFTW_INCLUDE_DIR = '/home/anciaux/src/fftw-3.3.4/api', FFTW_LIBRARY_DIR = '/home/anciaux/src/fftw-3.3.4/.libs', FFTW_LIBRARY_WISH = ['main','thread', 'omp'] ) # Lib roughcontact generator_list = """ surface_generator.cpp surface_generator_voss.cpp surface_generator_crenel.cpp surface_generator_ellipsoid.cpp surface_generator_filter.cpp surface_generator_filter_bessel.cpp surface_generator_filter_fft.cpp """.split() #env.SharedLibrary('Generator',generator_list) # Lib SURFACE surface_list = """ map_2d.cpp map_2d_square.cpp surface.cpp surface_timer.cpp """.split() #env.SharedLibrary('Surface',surface_list) # Lib PERCOLATION percolation_list = """ cluster_grow.cpp contact_area.cpp contact_cluster.cpp contact_cluster_collection.cpp """.split() #env.SharedLibrary('Percolation',percolation_list) # BEM PERCOLATION bem_list = """ bem_kato.cpp bem_polonski.cpp bem_fft_base.cpp """.split() #env.SharedLibrary('BEM',bem_list) rough_contact_list = generator_list + surface_list + percolation_list + bem_list import os current_files = set(os.listdir(Dir('.').srcnode().abspath)) unexpected_files = list(current_files - set(rough_contact_list)) unexpected_headers = [ f for f in unexpected_files if os.path.splitext(f)[1] == '.hh' ] unexpected_files = [ f for f in unexpected_files if not os.path.splitext(f)[1] == '.hh' ] print unexpected_files #print unexpected_headers -env.SharedLibrary('RoughContact',rough_contact_list) +env.SharedLibrary('Tamaas',rough_contact_list)