diff --git a/bfps/__init__.py b/bfps/__init__.py index 9e09fc18d72d51bf0b91c56dfc115272b6e1c745..f6e1bf14d79596c25e05e38fc47cde4d143d571f 100644 --- a/bfps/__init__.py +++ b/bfps/__init__.py @@ -31,14 +31,14 @@ try: if not here.startswith(os.path.join(dist_loc, 'bfps')): # not installed, but there is another version that *is* raise DistributionNotFound - header_dir = _dist.location - lib_dir = header_dir + header_dir = os.path.join(os.path.join(dist_loc, 'bfps'), 'cpp') + lib_dir = _dist.location except DistributionNotFound: #__version__ = 'Please install this project with setup.py' import subprocess __version__ = 'git revision ' + subprocess.check_output(['git', 'rev-parse', 'HEAD']).strip() - header_dir = './src' - lib_dir = './lib' + header_dir = './bfps/cpp' + lib_dir = './' if not os.path.isfile(os.path.join(header_dir, 'base.hpp')): tdir = os.path.dirname(os.path.realpath(__file__)) header_dir = os.path.join(tdir, os.pardir) diff --git a/bfps/code.py b/bfps/code.py index ebeb404109fd3b30eb10be6ea467b191320d512d..e7b205c0b5145f6a23ffebe639f11d8c1a8a6713 100644 --- a/bfps/code.py +++ b/bfps/code.py @@ -98,6 +98,10 @@ class code(base): include_dirs = [bfps.header_dir, '/usr/lib64/mpi/gcc/openmpi/include', os.path.join(local_install_dir, 'include')] + if not os.path.isfile(os.path.join(bfps.header_dir, 'base.hpp')): + raise IOError('header not there:\n' + + '{0}\n'.format(os.path.join(bfps.header_dir, 'base.hpp')) + + '{0}\n'.format(bfps.dist_loc)) libraries = ['fftw3_mpi', 'fftw3', 'fftw3f_mpi', @@ -108,6 +112,7 @@ class code(base): for idir in include_dirs: command_strings += ['-I{0}'.format(idir)] command_strings += ['-L' + os.path.join(local_install_dir, 'lib')] + command_strings += ['-L' + os.path.join(local_install_dir, 'lib64')] command_strings.append('-L' + bfps.lib_dir) for libname in libraries: command_strings += ['-l' + libname] @@ -119,7 +124,7 @@ class code(base): ncpu = 2, simname = 'test', iter0 = 0): - if self.compile_code(): + if self.compile_code() == 0: current_dir = os.getcwd() if not os.path.isdir(self.work_dir): os.makedirs(self.work_dir) @@ -132,7 +137,7 @@ class code(base): 'mpirun', '-np', '{0}'.format(ncpu), - './' + self.name + '.elf', + './' + self.name, simname, '{0}'.format(iter0)]) os.chdir(current_dir) diff --git a/src/Morton_shuffler.cpp b/bfps/cpp/Morton_shuffler.cpp similarity index 100% rename from src/Morton_shuffler.cpp rename to bfps/cpp/Morton_shuffler.cpp diff --git a/src/Morton_shuffler.hpp b/bfps/cpp/Morton_shuffler.hpp similarity index 100% rename from src/Morton_shuffler.hpp rename to bfps/cpp/Morton_shuffler.hpp diff --git a/src/base.hpp b/bfps/cpp/base.hpp similarity index 100% rename from src/base.hpp rename to bfps/cpp/base.hpp diff --git a/src/fftw_tools.cpp b/bfps/cpp/fftw_tools.cpp similarity index 100% rename from src/fftw_tools.cpp rename to bfps/cpp/fftw_tools.cpp diff --git a/src/fftw_tools.hpp b/bfps/cpp/fftw_tools.hpp similarity index 100% rename from src/fftw_tools.hpp rename to bfps/cpp/fftw_tools.hpp diff --git a/src/field_descriptor.cpp b/bfps/cpp/field_descriptor.cpp similarity index 100% rename from src/field_descriptor.cpp rename to bfps/cpp/field_descriptor.cpp diff --git a/src/field_descriptor.hpp b/bfps/cpp/field_descriptor.hpp similarity index 100% rename from src/field_descriptor.hpp rename to bfps/cpp/field_descriptor.hpp diff --git a/src/fluid_solver.cpp b/bfps/cpp/fluid_solver.cpp similarity index 100% rename from src/fluid_solver.cpp rename to bfps/cpp/fluid_solver.cpp diff --git a/src/fluid_solver.hpp b/bfps/cpp/fluid_solver.hpp similarity index 100% rename from src/fluid_solver.hpp rename to bfps/cpp/fluid_solver.hpp diff --git a/src/fluid_solver_base.cpp b/bfps/cpp/fluid_solver_base.cpp similarity index 100% rename from src/fluid_solver_base.cpp rename to bfps/cpp/fluid_solver_base.cpp diff --git a/src/fluid_solver_base.hpp b/bfps/cpp/fluid_solver_base.hpp similarity index 100% rename from src/fluid_solver_base.hpp rename to bfps/cpp/fluid_solver_base.hpp diff --git a/src/main_fluid_solver.cpp b/bfps/cpp/main_fluid_solver.cpp similarity index 100% rename from src/main_fluid_solver.cpp rename to bfps/cpp/main_fluid_solver.cpp diff --git a/src/main_p3DFFT_to_Morton.cpp b/bfps/cpp/main_p3DFFT_to_Morton.cpp similarity index 100% rename from src/main_p3DFFT_to_Morton.cpp rename to bfps/cpp/main_p3DFFT_to_Morton.cpp diff --git a/src/p3DFFT_to_iR.cpp b/bfps/cpp/p3DFFT_to_iR.cpp similarity index 100% rename from src/p3DFFT_to_iR.cpp rename to bfps/cpp/p3DFFT_to_iR.cpp diff --git a/src/p3DFFT_to_iR.hpp b/bfps/cpp/p3DFFT_to_iR.hpp similarity index 100% rename from src/p3DFFT_to_iR.hpp rename to bfps/cpp/p3DFFT_to_iR.hpp diff --git a/src/slab_field_particles.cpp b/bfps/cpp/slab_field_particles.cpp similarity index 100% rename from src/slab_field_particles.cpp rename to bfps/cpp/slab_field_particles.cpp diff --git a/src/slab_field_particles.hpp b/bfps/cpp/slab_field_particles.hpp similarity index 100% rename from src/slab_field_particles.hpp rename to bfps/cpp/slab_field_particles.hpp diff --git a/src/spline_n1.cpp b/bfps/cpp/spline_n1.cpp similarity index 100% rename from src/spline_n1.cpp rename to bfps/cpp/spline_n1.cpp diff --git a/src/spline_n1.hpp b/bfps/cpp/spline_n1.hpp similarity index 100% rename from src/spline_n1.hpp rename to bfps/cpp/spline_n1.hpp diff --git a/src/spline_n2.cpp b/bfps/cpp/spline_n2.cpp similarity index 100% rename from src/spline_n2.cpp rename to bfps/cpp/spline_n2.cpp diff --git a/src/spline_n2.hpp b/bfps/cpp/spline_n2.hpp similarity index 100% rename from src/spline_n2.hpp rename to bfps/cpp/spline_n2.hpp diff --git a/src/spline_n3.cpp b/bfps/cpp/spline_n3.cpp similarity index 100% rename from src/spline_n3.cpp rename to bfps/cpp/spline_n3.cpp diff --git a/src/spline_n3.hpp b/bfps/cpp/spline_n3.hpp similarity index 100% rename from src/spline_n3.hpp rename to bfps/cpp/spline_n3.hpp diff --git a/src/tracers.cpp b/bfps/cpp/tracers.cpp similarity index 100% rename from src/tracers.cpp rename to bfps/cpp/tracers.cpp diff --git a/src/tracers.hpp b/bfps/cpp/tracers.hpp similarity index 100% rename from src/tracers.hpp rename to bfps/cpp/tracers.hpp diff --git a/src/vector_field.cpp b/bfps/cpp/vector_field.cpp similarity index 100% rename from src/vector_field.cpp rename to bfps/cpp/vector_field.cpp diff --git a/src/vector_field.hpp b/bfps/cpp/vector_field.hpp similarity index 100% rename from src/vector_field.hpp rename to bfps/cpp/vector_field.hpp diff --git a/setup.py b/setup.py index eeb7f755af3d30be830e881f6d900b8cc46cf1c5..0f9acb0013b26015906bd073f97b727a2b1ff47d 100644 --- a/setup.py +++ b/setup.py @@ -35,6 +35,9 @@ include_dirs = ['src', ######################################################################## +AUTHOR = 'Cristian C Lalescu' +AUTHOR_EMAIL = 'Cristian.Lalescu@ds.mpg.de' + import datetime now = datetime.datetime.now() date_name = '{0:0>4}{1:0>2}{2:0>2}'.format(now.year, now.month, now.day) @@ -51,11 +54,11 @@ src_file_list = ['field_descriptor', 'spline_n2', 'spline_n3'] -header_list = ['src/base.hpp'] + ['src/' + fname + '.hpp' for fname in src_file_list] +header_list = ['cpp/base.hpp'] + ['cpp/' + fname + '.hpp' for fname in src_file_list] # not sure we need the MANIFEST.in file, but I might as well with open('MANIFEST.in', 'w') as manifest_in_file: - for fname in ['src/' + fname + '.cpp' for fname in src_file_list] + header_list: + for fname in ['cpp/' + fname + '.cpp' for fname in src_file_list] + header_list: manifest_in_file.write('include {0}\n'.format(fname)) libraries = ['fftw3_mpi', @@ -67,20 +70,23 @@ from setuptools import setup, Extension libbfps = Extension( 'libbfps', - sources = ['src/' + fname + '.cpp' for fname in src_file_list], + sources = ['bfps/cpp/' + fname + '.cpp' for fname in src_file_list], include_dirs = include_dirs, libraries = libraries, - library_dirs = [os.path.join(local_install_dir, 'lib')]) + library_dirs = [os.path.join(local_install_dir, 'lib'), + os.path.join(local_install_dir, 'lib64')]) setup( name = 'bfps', packages = ['bfps'], install_requires = ['numpy>=1.8', 'matplotlib>=1.3'], ext_modules = [libbfps], - data_files = header_list, + package_data = {'bfps': header_list}, ######################################################################## # useless stuff folows ######################################################################## + author = AUTHOR, + author_email = AUTHOR_EMAIL, version = VERSION, license = 'Apache Version 2.0') diff --git a/tox.ini b/tox.ini index 73a8aa1b7c5188ffecca624d89356fafed38df4f..1243a0e34e18c4e01098dcc9b8107fa7c0545723 100644 --- a/tox.ini +++ b/tox.ini @@ -1,10 +1,17 @@ [tox] envlist = py27 [testenv] +whitelist_externals = + echo + cp +passenv = LD_LIBRARY_PATH +setenv = + LD_LIBRARY_PATH = {env:LD_LIBRARY_PATH}:{envtmpdir}/../lib/python2.7/site-packages sitepackages = True changedir = {envtmpdir} commands = + echo $LD_LIBRARY_PATH cp {toxinidir}/test.py {envtmpdir} python test.py --run --particles