-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathSConstruct
88 lines (65 loc) · 2.69 KB
/
SConstruct
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import os
vars = Variables()
vars.Add( BoolVariable( 'intel', '', 0 ) )
vars.Add( BoolVariable( 'cuda', 'Set to build cuda plugin', 0 ) )
vars.Add( BoolVariable( 'test', 'Set to enable tests', 0 ) )
env = Environment( variables = vars )
if env.get( 'intel', 0 ):
env.Tool( 'intelc' )
env['ENV']['PATH'] = os.environ.get( 'PATH', '' )
env['ENV']['LD_LIBRARY_PATH'] = os.environ.get( 'LD_LIBRARY_PATH', '' )
env['ENV']['INTEL_LICENSE_FILE'] = os.environ.get('INTEL_LICENSE_FILE', '')
def add_definition( definition ):
env.AppendUnique( CPPDEFINES = [definition] )
def include_directories( path ):
env.AppendUnique( CPPPATH = [path] )
def link_directories( path ):
env.AppendUnique( LIBPATH = [path] )
include_directories( "include" )
if 'INCLUDE' in os.environ:
for item in os.environ['INCLUDE'].split(':'):
include_directories( item )
if 'INCLUDE_PATH' in os.environ:
for item in os.environ['INCLUDE_PATH'].split(':'):
include_directories( item )
if 'LIBRARY_PATH' in os.environ:
for item in os.environ['LIBRARY_PATH'].split(':'):
link_directories( item )
openmm_dir = os.environ.get( 'OPENMM_HOME' )
if openmm_dir:
link_directories( openmm_dir + "/lib" )
link_directories( openmm_dir + "/lib/plugins" )
include_directories( openmm_dir + "/include" )
openmm_source = os.environ.get( "OPENMM_SOURCE" )
print openmm_source
if openmm_source:
include_directories( openmm_source + "/libraries/jama/include" )
include_directories( openmm_source + "/libraries/sfmt/include" )
include_directories( openmm_source + "/platforms/reference/src" )
include_directories( openmm_source + "/platforms/reference/include" )
include_directories( openmm_source + "/platforms/cuda/src" )
include_directories( openmm_source + "/platforms/cuda/include" )
include_directories( openmm_source + "/libraries/lepton/include" )
link_directories( "." )
base_sources = Glob( 'src/LTMD/*.cpp' )
env.Library( 'OpenMMLTMD', base_sources )
conf = Configure( env )
if not conf.CheckLib('OpenMM'):
print 'Unable to find OpenMM library'
Exit( 1 )
cuda = env.get( 'cuda', 0 )
#if cuda and not conf.CheckLib( 'OpenMMCUDA'):
# print 'Unable to find OpenMM Cuda Library'
# Exit( 1 )
conf.Finish()
include_directories ('src/LTMD/CUDA/')
reference_sources = Glob( 'src/LTMD/Reference/*.cpp' )
env.SharedLibrary( 'LTMDReference', reference_sources, LIBS = ['OpenMM','OpenMMLTMD'] )
if cuda:
for item in env['CPPPATH']:
env.AppendUnique( NVCCINC = ['-I' + item] )
cuda_sources = Glob( 'src/LTMD/CUDA/*.cpp' )
#cuda_kernels = Glob( 'src/LTMD/CUDA/kernels/*.cu' )
cuda_kernels = Glob( 'src/LTMD/CUDA/kernels/*.cpp' )
env.Tool( 'cuda' )
env.SharedLibrary( 'LTMDCuda', cuda_sources + cuda_kernels, LIBS = ['OpenMM','OpenMMCUDA','OpenMMLTMD'] )