1 |
import os |
2 |
Import('*') |
3 |
|
4 |
local_env=env.Copy() |
5 |
|
6 |
# get the relevant file names: |
7 |
src_dir = local_env.Dir('.').srcnode().abspath |
8 |
filenames = [ x for x in os.listdir(src_dir) if os.path.splitext(x)[1] in [".h", ".c", ".cpp"] ] |
9 |
|
10 |
sources = [x for x in filenames if os.path.splitext(x)[1] in ['.cpp', '.c']] |
11 |
headers = [x for x in filenames if os.path.splitext(x)[1] in ['.h']] |
12 |
# Filter out sources that should not be in the list automatically |
13 |
|
14 |
lib_name = 'esysUtils' |
15 |
|
16 |
local_env.Append(LIBS = [boost_lib, python_lib]) |
17 |
|
18 |
local_env.Append(CPPDEFINES = 'ESYSUTILS_EXPORTS') |
19 |
|
20 |
#lib = local_env.StaticLibrary(lib_name, sources) |
21 |
lib = local_env.SharedLibrary(lib_name, sources) |
22 |
|
23 |
include_path = Dir(lib_name, incinstall) |
24 |
|
25 |
local_env.Install(include_path, headers ) |
26 |
local_env.Install(libinstall, lib) |
27 |
|
28 |
# Call the unit tests SConscript |
29 |
# export the lib target since tests will depend on it |
30 |
# the lib target is a list of file nodes (why? win32 produces more than one output file: .lib, .dll, .pdb) |
31 |
# FIXME: This list handling produces the desired result but can this be done directly with scons File nodes? |
32 |
|
33 |
dep_lib = [libinstall+'/'+str(x) for x in lib] |
34 |
Export('dep_lib') |
35 |
|
36 |
local_env.SConscript(dirs = ['#/esysUtils/test'], build_dir='#/build/$PLATFORM/esysUtils/test', duplicate=0) |
37 |
|
38 |
|
39 |
# add source files to release |
40 |
release_srcfiles = [ env.File(x) for x in filenames ] + [env.File("SConscript"), ] |
41 |
env.Zip(src_zipfile, release_srcfiles) |
42 |
env.Tar(src_tarfile, release_srcfiles) |
43 |
|