Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F56488293
site_init.py
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Thu, Mar 28, 14:56
Size
3 KB
Mime Type
text/x-python
Expires
Sat, Mar 30, 14:56 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
16723639
Attached To
rTAMAAS tamaas
site_init.py
View Options
from
SCons.Script
import
*
from
os.path
import
*
import
os
def
fftw
(
env
):
"""A Tool to search for fftw headers and libraries"""
if
env
.
GetOption
(
'clean'
):
return
env
.
SetDefault
(
FFTW_VERSION
=
'3'
)
env
.
SetDefault
(
FFTW_LIBRARY_WISH
=
[])
print
(
"Building for fftw version {}"
.
format
(
env
[
'FFTW_VERSION'
]))
if
'FFTW_INCLUDE_DIR'
in
env
:
env
.
AppendUnique
(
CPPPATH
=
env
[
'FFTW_INCLUDE_DIR'
])
if
'FFTW_LIBRARY_DIR'
in
env
:
env
.
AppendUnique
(
LIBPATH
=
env
[
'FFTW_LIBRARY_DIR'
])
version
=
env
[
'FFTW_VERSION'
]
if
version
==
"2"
:
lib_names
=
{
'main'
:
'fftw'
}
inc_names
=
[
'fftw.h'
]
else
:
lib_names
=
{
'main'
:
'fftw3'
,
'thread'
:
'fftw3_threads'
,
'omp'
:
'fftw3_omp'
}
inc_names
=
[
'fftw3.h'
]
try
:
libs
=
[
lib_names
[
i
]
for
i
in
env
[
'FFTW_LIBRARY_WISH'
]]
except
:
raise
SCons
.
Errors
.
StopError
(
'Incompatible wishlist {0} from version {1}'
.
format
(
env
[
'FFTW_LIBRARY_WISH'
],
env
[
'FFTW_VERSION'
]))
env
.
AppendUnique
(
LIBS
=
libs
)
if
version
==
"2"
:
env
.
Append
(
LIBS
=
'm'
)
conf
=
Configure
(
env
)
if
not
conf
.
CheckLibWithHeader
(
libs
,
inc_names
,
'c++'
):
raise
SCons
.
Errors
.
StopError
(
'Failed to find libraries {0} or '
'headers {1}.'
.
format
(
str
(
lib_names
),
str
(
inc_names
)))
env
=
conf
.
Finish
()
def
criterion
(
env
):
"""A tool to configure for Criterion (test suite)"""
if
env
.
GetOption
(
'clean'
):
return
env
.
AppendUnique
(
CPPPATH
=
[
Dir
(
"#third-party/Criterion/include"
)],
LIBPATH
=
[
abspath
(
str
(
Dir
(
"#third-party/Criterion/build"
)))])
conf
=
Configure
(
env
)
if
not
conf
.
CheckLibWithHeader
(
'criterion'
,
'criterion/criterion.h'
,
'c++'
):
raise
SCons
.
Errors
.
StopError
(
'Failed to find library Criterion or criterion.h header in third-party'
)
env
=
conf
.
Finish
()
def
tamaas
(
env
):
"""Sets correct environement variables for Tamaas.
- 'TAMAAS_PATH' is list of potential tamaas repositories
- 'TAMAAS_BUILD_TYPE' is the build type of tamaas (release, debug, profiling)"""
if
env
.
GetOption
(
"clean"
):
return
try
:
build_type
=
env
[
'TAMAAS_BUILD_TYPE'
]
except
:
build_type
=
"release"
if
'TAMAAS_PATH'
not
in
env
:
print
(
"Please set the 'TAMAAS_PATH' variable in your scons environment"
)
Exit
(
1
)
tm_path
=
env
[
'TAMAAS_PATH'
]
include_dir
=
tm_path
+
'/src'
subdirs
=
"core model bem surface"
.
split
(
" "
)
include_dirs
=
[
abspath
(
join
(
include_dir
,
x
))
for
x
in
subdirs
]
lib_dir
=
join
(
tm_path
,
'build-{}/src'
.
format
(
build_type
))
env
.
AppendUnique
(
CPPPATH
=
include_dirs
)
env
.
AppendUnique
(
LIBPATH
=
[
abspath
(
lib_dir
)])
env
.
AppendUnique
(
RPATH
=
[
abspath
(
lib_dir
)])
env
.
AppendUnique
(
CXXFLAGS
=
[
"-std=c++14"
])
conf
=
Configure
(
env
)
if
not
conf
.
CheckLibWithHeader
(
"Tamaas"
,
"tamaas.hh"
,
language
=
"CXX"
):
raise
SCons
.
Errors
.
StopError
(
"Tamaas ({}) not found in {}"
.
format
(
build_type
,
abspath
(
tm_path
)))
env
[
'TAMAAS_PATH'
]
=
abspath
(
tm_path
)
env
=
conf
.
Finish
()
Event Timeline
Log In to Comment