summaryrefslogtreecommitdiffstats
path: root/tests/common/SConscript
blob: 05e2f852e8d446c7b7a8a348457a79b62781a7d2 (plain)
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
# Build the common files needed by multiple test cases

Import('env')

# Protocol definitions for the encode/decode_unittests
env.NanopbProto("unittestproto")

# Protocol definitions for basic_buffer/stream tests
env.NanopbProto("person")

#--------------------------------------------
# Binaries of the pb_decode.c and pb_encode.c
# These are built using more strict warning flags.
strict = env.Clone()
strict.Append(CFLAGS = strict['CORECFLAGS'])
strict.Object("pb_decode.o", "$NANOPB/pb_decode.c")
strict.Object("pb_encode.o", "$NANOPB/pb_encode.c")
strict.Object("pb_common.o", "$NANOPB/pb_common.c")

#-----------------------------------------------
# Binaries of pb_decode etc. with malloc support
# Uses malloc_wrappers.c to count allocations.
malloc_env = env.Clone()
malloc_env.Append(CPPDEFINES = {'PB_ENABLE_MALLOC': 1,
                                'PB_SYSTEM_HEADER': '\\"malloc_wrappers_syshdr.h\\"'})
malloc_env.Append(CPPPATH = ["$COMMON"])

if 'SYSHDR' in malloc_env:
    malloc_env.Append(CPPDEFINES = {'PB_OLD_SYSHDR': malloc_env['SYSHDR']})

# Disable libmudflap, because it will confuse valgrind
# and other memory leak detection tools.
if '-fmudflap' in env["CCFLAGS"]:
    malloc_env["CCFLAGS"].remove("-fmudflap")
    malloc_env["LINKFLAGS"].remove("-fmudflap")
    malloc_env["LIBS"].remove("mudflap")

malloc_strict = malloc_env.Clone()
malloc_strict.Append(CFLAGS = malloc_strict['CORECFLAGS'])
malloc_strict.Object("pb_decode_with_malloc.o", "$NANOPB/pb_decode.c")
malloc_strict.Object("pb_encode_with_malloc.o", "$NANOPB/pb_encode.c")
malloc_strict.Object("pb_common_with_malloc.o", "$NANOPB/pb_common.c")

malloc_env.Object("malloc_wrappers.o", "malloc_wrappers.c")
malloc_env.Depends("$NANOPB/pb.h", ["malloc_wrappers_syshdr.h", "malloc_wrappers.h"])

Export("malloc_env")