xref: /aosp_15_r20/external/nanopb-c/tests/common/SConscript (revision c8d645cafcee3f91213d30caa0fe303887010b9b)
1*c8d645caSAndroid Build Coastguard Worker# Build the common files needed by multiple test cases
2*c8d645caSAndroid Build Coastguard Worker
3*c8d645caSAndroid Build Coastguard WorkerImport('env')
4*c8d645caSAndroid Build Coastguard Worker
5*c8d645caSAndroid Build Coastguard Worker# Protocol definitions for the encode/decode_unittests
6*c8d645caSAndroid Build Coastguard Workerenv.NanopbProto("unittestproto")
7*c8d645caSAndroid Build Coastguard Worker
8*c8d645caSAndroid Build Coastguard Worker# Protocol definitions for basic_buffer/stream tests
9*c8d645caSAndroid Build Coastguard Workerenv.NanopbProto("person")
10*c8d645caSAndroid Build Coastguard Worker
11*c8d645caSAndroid Build Coastguard Worker#--------------------------------------------
12*c8d645caSAndroid Build Coastguard Worker# Binaries of the pb_decode.c and pb_encode.c
13*c8d645caSAndroid Build Coastguard Worker# These are built using more strict warning flags.
14*c8d645caSAndroid Build Coastguard Workerstrict = env.Clone()
15*c8d645caSAndroid Build Coastguard Workerstrict.Append(CFLAGS = strict['CORECFLAGS'])
16*c8d645caSAndroid Build Coastguard Workerstrict.Object("pb_decode.o", "$NANOPB/pb_decode.c")
17*c8d645caSAndroid Build Coastguard Workerstrict.Object("pb_encode.o", "$NANOPB/pb_encode.c")
18*c8d645caSAndroid Build Coastguard Workerstrict.Object("pb_common.o", "$NANOPB/pb_common.c")
19*c8d645caSAndroid Build Coastguard Worker
20*c8d645caSAndroid Build Coastguard Worker#-----------------------------------------------
21*c8d645caSAndroid Build Coastguard Worker# Binaries of pb_decode etc. with malloc support
22*c8d645caSAndroid Build Coastguard Worker# Uses malloc_wrappers.c to count allocations.
23*c8d645caSAndroid Build Coastguard Workermalloc_env = env.Clone()
24*c8d645caSAndroid Build Coastguard Workermalloc_env.Append(CPPDEFINES = {'PB_ENABLE_MALLOC': 1,
25*c8d645caSAndroid Build Coastguard Worker                                'PB_SYSTEM_HEADER': '\\"malloc_wrappers_syshdr.h\\"'})
26*c8d645caSAndroid Build Coastguard Workermalloc_env.Append(CPPPATH = ["$COMMON"])
27*c8d645caSAndroid Build Coastguard Worker
28*c8d645caSAndroid Build Coastguard Workerif 'SYSHDR' in malloc_env:
29*c8d645caSAndroid Build Coastguard Worker    malloc_env.Append(CPPDEFINES = {'PB_OLD_SYSHDR': malloc_env['SYSHDR']})
30*c8d645caSAndroid Build Coastguard Worker
31*c8d645caSAndroid Build Coastguard Worker# Disable libmudflap, because it will confuse valgrind
32*c8d645caSAndroid Build Coastguard Worker# and other memory leak detection tools.
33*c8d645caSAndroid Build Coastguard Workerif '-fmudflap' in env["CCFLAGS"]:
34*c8d645caSAndroid Build Coastguard Worker    malloc_env["CCFLAGS"].remove("-fmudflap")
35*c8d645caSAndroid Build Coastguard Worker    malloc_env["LINKFLAGS"].remove("-fmudflap")
36*c8d645caSAndroid Build Coastguard Worker    malloc_env["LIBS"].remove("mudflap")
37*c8d645caSAndroid Build Coastguard Worker
38*c8d645caSAndroid Build Coastguard Workermalloc_strict = malloc_env.Clone()
39*c8d645caSAndroid Build Coastguard Workermalloc_strict.Append(CFLAGS = malloc_strict['CORECFLAGS'])
40*c8d645caSAndroid Build Coastguard Workermalloc_strict.Object("pb_decode_with_malloc.o", "$NANOPB/pb_decode.c")
41*c8d645caSAndroid Build Coastguard Workermalloc_strict.Object("pb_encode_with_malloc.o", "$NANOPB/pb_encode.c")
42*c8d645caSAndroid Build Coastguard Workermalloc_strict.Object("pb_common_with_malloc.o", "$NANOPB/pb_common.c")
43*c8d645caSAndroid Build Coastguard Worker
44*c8d645caSAndroid Build Coastguard Workermalloc_env.Object("malloc_wrappers.o", "malloc_wrappers.c")
45*c8d645caSAndroid Build Coastguard Workermalloc_env.Depends("$NANOPB/pb.h", ["malloc_wrappers_syshdr.h", "malloc_wrappers.h"])
46*c8d645caSAndroid Build Coastguard Worker
47*c8d645caSAndroid Build Coastguard WorkerExport("malloc_env")
48*c8d645caSAndroid Build Coastguard Worker
49