From 45c30d41c8d07fb1e9029af5f7f3713ae8dd988a Mon Sep 17 00:00:00 2001
From: Chichi Lalescu <clalesc1@jhu.edu>
Date: Fri, 31 Jul 2015 22:12:46 +0200
Subject: [PATCH] use setup compiling options for exec compilation

---
 bfps/__init__.py |  5 +++++
 bfps/code.py     | 14 +++++---------
 setup.py         | 12 +++++++++---
 3 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/bfps/__init__.py b/bfps/__init__.py
index 50bde1ed..e443bc35 100644
--- a/bfps/__init__.py
+++ b/bfps/__init__.py
@@ -20,6 +20,7 @@
 
 import os
 import subprocess
+import pickle
 
 from pkg_resources import get_distribution, DistributionNotFound
 
@@ -41,6 +42,10 @@ except DistributionNotFound:
     #import subprocess
     #__version__ = 'git revision ' + subprocess.check_output(['git', 'rev-parse', 'HEAD']).strip()
 
+machine_settings = pickle.load(
+        open(os.path.join(os.path.join(dist_loc, 'bfps'),
+                          'machine_settings.pickle'),
+             'r'))
 
 from .code import code
 from .NavierStokes import NavierStokes
diff --git a/bfps/code.py b/bfps/code.py
index 6293020a..036c0e15 100644
--- a/bfps/code.py
+++ b/bfps/code.py
@@ -24,6 +24,7 @@ from bfps.base import base
 import subprocess
 import os
 import shutil
+import pickle
 
 
 class code(base):
@@ -94,10 +95,6 @@ class code(base):
         return None
     def compile_code(self):
         # compile code
-        local_install_dir = '/scratch.local/chichi/installs'
-        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')) +
@@ -110,11 +107,10 @@ class code(base):
 
         command_strings = ['mpicxx']
         command_strings += [self.name + '.cpp', '-o', self.name]
-        command_strings += ['-ffast-math', '-mtune=native', '-O2', '-std=c++11']
-        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 += ['-O2'] + bfps.machine_settings['extra_compile_args']
+        command_strings += ['-I' + idir for idir in bfps.machine_settings['include_dirs']]
+        command_strings.append('-I' + bfps.header_dir)
+        command_strings += ['-L' + ldir for ldir in bfps.machine_settings['library_dirs']]
         command_strings.append('-L' + bfps.lib_dir)
         for libname in libraries:
             command_strings += ['-l' + libname]
diff --git a/setup.py b/setup.py
index fc497c3c..fb573bd7 100644
--- a/setup.py
+++ b/setup.py
@@ -20,9 +20,14 @@
 
 
 
-import os
-
 from machine_settings import include_dirs, library_dirs, extra_compile_args
+import pickle
+pickle.dump(
+        {'include_dirs' : include_dirs,
+       'library_dirs' : library_dirs,
+       'extra_compile_args' : extra_compile_args},
+        open('bfps/machine_settings.pickle', 'wb'),
+        protocol = 2)
 
 
 AUTHOR = 'Cristian C Lalescu'
@@ -71,7 +76,8 @@ setup(
         packages = ['bfps'],
         install_requires = ['numpy>=1.8', 'matplotlib>=1.3'],
         ext_modules = [libbfps],
-        package_data = {'bfps': header_list + ['../machine_settings.py']},
+        package_data = {'bfps': header_list + ['../machine_settings.py',
+                                               'machine_settings.pickle']},
 ########################################################################
 # useless stuff folows
 ########################################################################
-- 
GitLab