forked from davidsd/sdpb
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathelemental.py
57 lines (51 loc) · 2.29 KB
/
elemental.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#! /usr/bin/env python
# encoding: utf-8
def configure(conf):
def get_param(varname,default):
return getattr(Options.options,varname,'')or default
import os
# Find Elemental
if conf.options.elemental_dir:
if not conf.options.elemental_incdir:
conf.options.elemental_incdir=conf.options.elemental_dir + "/include"
if not conf.options.elemental_libdir:
lib=conf.options.elemental_dir + "/lib"
if os.path.isdir(lib):
conf.options.elemental_libdir=lib
lib64=conf.options.elemental_dir + "/lib64"
if os.path.isdir(lib64):
if conf.options.elemental_libdir:
conf.options.elemental_libdir+=" " + lib64
else:
conf.options.elemental_libdir=lib64
if conf.options.elemental_incdir:
elemental_incdir=conf.options.elemental_incdir.split()
else:
elemental_incdir=[]
if conf.options.elemental_libdir:
elemental_libdir=conf.options.elemental_libdir.split()
else:
elemental_libdir=[]
if conf.options.elemental_libs:
elemental_libs=conf.options.elemental_libs.split()
else:
elemental_libs=['El', 'pmrrr', 'ElSuiteSparse' ]
conf.check_cxx(msg="Checking for Elemental",
fragment="#include <El.hpp>\nint main(int argc, char* argv[]) {El::Environment env( argc, argv ); El::BigFloat big;}\n",
includes=elemental_incdir,
uselib_store='elemental',
libpath=elemental_libdir,
rpath=elemental_libdir,
lib=elemental_libs,
use=['cxx17','gmpxx'])
def options(opt):
elemental=opt.add_option_group('Elemental Options')
elemental.add_option('--elemental-dir',
help='Base directory where elemental is installed')
elemental.add_option('--elemental-incdir',
help='Directory where elemental include files are installed')
elemental.add_option('--elemental-libdir',
help='Directory where elemental library files are installed')
elemental.add_option('--elemental-libs',
help='Names of the elemental libraries without prefix or suffix\n'
'(e.g. "El pmrrr ElSuiteSparse")')