xref: /nrf52832-nimble/packages/NimBLE-latest/SConscript (revision 042d53a763ad75cb1465103098bb88c245d95138)
1*042d53a7SEvalZerofrom building import *
2*042d53a7SEvalZeroimport rtconfig
3*042d53a7SEvalZero
4*042d53a7SEvalZerocwd = GetCurrentDir()
5*042d53a7SEvalZeropath = [cwd]
6*042d53a7SEvalZerosrc = []
7*042d53a7SEvalZero
8*042d53a7SEvalZeropath += [
9*042d53a7SEvalZero    cwd + '/nimble/include',
10*042d53a7SEvalZero    cwd + '/nimble/host/include',
11*042d53a7SEvalZero    cwd + '/nimble/host/src',
12*042d53a7SEvalZero    cwd + '/nimble/host/services/ans/include',
13*042d53a7SEvalZero    cwd + '/nimble/host/services/bas/include',
14*042d53a7SEvalZero    cwd + '/nimble/host/services/bleuart/include',
15*042d53a7SEvalZero    cwd + '/nimble/host/services/gap/include',
16*042d53a7SEvalZero    cwd + '/nimble/host/services/gatt/include',
17*042d53a7SEvalZero    cwd + '/nimble/host/services/ias/include',
18*042d53a7SEvalZero    cwd + '/nimble/host/services/lls/include',
19*042d53a7SEvalZero    cwd + '/nimble/host/services/tps/include',
20*042d53a7SEvalZero    cwd + '/nimble/host/store/ram/include',
21*042d53a7SEvalZero    cwd + '/nimble/host/util/include',
22*042d53a7SEvalZero    cwd + '/porting/nimble/include',
23*042d53a7SEvalZero    cwd + '/porting/npl/rtthread/include']
24*042d53a7SEvalZero
25*042d53a7SEvalZero# Host stack
26*042d53a7SEvalZerosrc += Split('''
27*042d53a7SEvalZero    nimble/host/src/ble_att.c
28*042d53a7SEvalZero    nimble/host/src/ble_att_clt.c
29*042d53a7SEvalZero    nimble/host/src/ble_att_cmd.c
30*042d53a7SEvalZero    nimble/host/src/ble_att_svr.c
31*042d53a7SEvalZero    nimble/host/src/ble_eddystone.c
32*042d53a7SEvalZero    nimble/host/src/ble_gap.c
33*042d53a7SEvalZero    nimble/host/src/ble_gattc.c
34*042d53a7SEvalZero    nimble/host/src/ble_gatts.c
35*042d53a7SEvalZero    nimble/host/src/ble_gatts_lcl.c
36*042d53a7SEvalZero    nimble/host/src/ble_hs_adv.c
37*042d53a7SEvalZero    nimble/host/src/ble_hs_atomic.c
38*042d53a7SEvalZero    nimble/host/src/ble_hs.c
39*042d53a7SEvalZero    nimble/host/src/ble_hs_cfg.c
40*042d53a7SEvalZero    nimble/host/src/ble_hs_conn.c
41*042d53a7SEvalZero    nimble/host/src/ble_hs_dbg.c
42*042d53a7SEvalZero    nimble/host/src/ble_hs_flow.c
43*042d53a7SEvalZero    nimble/host/src/ble_hs_hci.c
44*042d53a7SEvalZero    nimble/host/src/ble_hs_hci_cmd.c
45*042d53a7SEvalZero    nimble/host/src/ble_hs_hci_evt.c
46*042d53a7SEvalZero    nimble/host/src/ble_hs_hci_util.c
47*042d53a7SEvalZero    nimble/host/src/ble_hs_id.c
48*042d53a7SEvalZero    nimble/host/src/ble_hs_log.c
49*042d53a7SEvalZero    nimble/host/src/ble_hs_mbuf.c
50*042d53a7SEvalZero    nimble/host/src/ble_hs_mqueue.c
51*042d53a7SEvalZero    nimble/host/src/ble_hs_misc.c
52*042d53a7SEvalZero    nimble/host/src/ble_hs_pvcy.c
53*042d53a7SEvalZero    nimble/host/src/ble_hs_startup.c
54*042d53a7SEvalZero    nimble/host/src/ble_hs_stop.c
55*042d53a7SEvalZero    nimble/host/src/ble_ibeacon.c
56*042d53a7SEvalZero    nimble/host/src/ble_l2cap.c
57*042d53a7SEvalZero    nimble/host/src/ble_l2cap_coc.c
58*042d53a7SEvalZero    nimble/host/src/ble_l2cap_sig.c
59*042d53a7SEvalZero    nimble/host/src/ble_l2cap_sig_cmd.c
60*042d53a7SEvalZero    nimble/host/src/ble_monitor.c
61*042d53a7SEvalZero    nimble/host/src/ble_sm_alg.c
62*042d53a7SEvalZero    nimble/host/src/ble_sm.c
63*042d53a7SEvalZero    nimble/host/src/ble_sm_cmd.c
64*042d53a7SEvalZero    nimble/host/src/ble_sm_lgcy.c
65*042d53a7SEvalZero    nimble/host/src/ble_sm_sc.c
66*042d53a7SEvalZero    nimble/host/src/ble_store.c
67*042d53a7SEvalZero    nimble/host/src/ble_store_util.c
68*042d53a7SEvalZero    nimble/host/src/ble_uuid.c
69*042d53a7SEvalZero    nimble/host/services/ans/src/ble_svc_ans.c
70*042d53a7SEvalZero    nimble/host/services/bas/src/ble_svc_bas.c
71*042d53a7SEvalZero    nimble/host/services/bleuart/src/ble_svc_uart.c
72*042d53a7SEvalZero    nimble/host/services/gap/src/ble_svc_gap.c
73*042d53a7SEvalZero    nimble/host/services/gatt/src/ble_svc_gatt.c
74*042d53a7SEvalZero    nimble/host/services/ias/src/ble_svc_ias.c
75*042d53a7SEvalZero    nimble/host/services/lls/src/ble_svc_lls.c
76*042d53a7SEvalZero    nimble/host/services/tps/src/ble_svc_tps.c
77*042d53a7SEvalZero    nimble/host/store/ram/src/ble_store_ram.c
78*042d53a7SEvalZero    nimble/host/util/src/addr.c
79*042d53a7SEvalZero    nimble/src/ble_util.c
80*042d53a7SEvalZero    ''')
81*042d53a7SEvalZero
82*042d53a7SEvalZero# Few utils and data structures copied from Mynewt
83*042d53a7SEvalZerosrc += Split('''
84*042d53a7SEvalZero    porting/nimble/src/nimble_port.c''')
85*042d53a7SEvalZero
86*042d53a7SEvalZero# Few utils and data structures copied from Mynewt
87*042d53a7SEvalZerosrc += Split('''
88*042d53a7SEvalZero    porting/nimble/src/endian.c
89*042d53a7SEvalZero    porting/nimble/src/mem.c
90*042d53a7SEvalZero    porting/nimble/src/os_mbuf.c
91*042d53a7SEvalZero    porting/nimble/src/os_mempool.c
92*042d53a7SEvalZero    porting/nimble/src/os_msys_init.c
93*042d53a7SEvalZero    porting/npl/rtthread/src/modlog.c
94*042d53a7SEvalZero    porting/npl/rtthread/src/nimble_port_rtthread.c
95*042d53a7SEvalZero    porting/npl/rtthread/src/npl_os_rtthread.c
96*042d53a7SEvalZero    porting/npl/rtthread/src/npl_shell.c
97*042d53a7SEvalZero    ''')
98*042d53a7SEvalZero
99*042d53a7SEvalZero# tinycrypt
100*042d53a7SEvalZeropath += [cwd + '/ext/tinycrypt/include']
101*042d53a7SEvalZero
102*042d53a7SEvalZerosrc += Split('''
103*042d53a7SEvalZero    ext/tinycrypt/src/aes_decrypt.c
104*042d53a7SEvalZero    ext/tinycrypt/src/aes_encrypt.c
105*042d53a7SEvalZero    ext/tinycrypt/src/cmac_mode.c
106*042d53a7SEvalZero    ext/tinycrypt/src/ecc.c
107*042d53a7SEvalZero    ext/tinycrypt/src/ecc_dh.c
108*042d53a7SEvalZero    ext/tinycrypt/src/utils.c
109*042d53a7SEvalZero    ''')
110*042d53a7SEvalZero
111*042d53a7SEvalZero# controller
112*042d53a7SEvalZeroif GetDepend(['PKG_NIMBLE_CTLR']):
113*042d53a7SEvalZero    CPPDEFINES = ['NIMBLE_CFG_CONTROLLER=1']
114*042d53a7SEvalZeroelse:
115*042d53a7SEvalZero    CPPDEFINES = ['']
116*042d53a7SEvalZero
117*042d53a7SEvalZeroif GetDepend(['PKG_NIMBLE_CTLR']):
118*042d53a7SEvalZero    path += [
119*042d53a7SEvalZero        cwd + '/nimble/transport/ram/include',
120*042d53a7SEvalZero        cwd + '/nimble/controller/include',
121*042d53a7SEvalZero        cwd + '/nimble/drivers/nrf52/include']
122*042d53a7SEvalZero
123*042d53a7SEvalZero    src += Split("""
124*042d53a7SEvalZero        nimble/transport/ram/src/ble_hci_ram.c
125*042d53a7SEvalZero        nimble/controller/src/ble_ll_sched.c
126*042d53a7SEvalZero        nimble/controller/src/ble_ll_xcvr.c
127*042d53a7SEvalZero        nimble/controller/src/ble_ll_whitelist.c
128*042d53a7SEvalZero        nimble/controller/src/ble_ll_ctrl.c
129*042d53a7SEvalZero        nimble/controller/src/ble_ll_hci.c
130*042d53a7SEvalZero        nimble/controller/src/ble_ll_supp_cmd.c
131*042d53a7SEvalZero        nimble/controller/src/ble_ll_adv.c
132*042d53a7SEvalZero        nimble/controller/src/ble_ll_conn.c
133*042d53a7SEvalZero        nimble/controller/src/ble_ll_resolv.c
134*042d53a7SEvalZero        nimble/controller/src/ble_ll_conn_hci.c
135*042d53a7SEvalZero        nimble/controller/src/ble_ll_rand.c
136*042d53a7SEvalZero        nimble/controller/src/ble_ll.c
137*042d53a7SEvalZero        nimble/controller/src/ble_ll_scan.c
138*042d53a7SEvalZero        nimble/controller/src/ble_ll_dtm.c
139*042d53a7SEvalZero        nimble/controller/src/ble_ll_hci_ev.c
140*042d53a7SEvalZero        nimble/drivers/nrf52/src/ble_hw.c
141*042d53a7SEvalZero        nimble/drivers/nrf52/src/ble_phy.c
142*042d53a7SEvalZero        porting/nimble/src/os_cputime.c
143*042d53a7SEvalZero        porting/nimble/src/os_cputime_pwr2.c
144*042d53a7SEvalZero        porting/nimble/src/hal_timer.c
145*042d53a7SEvalZero        porting/npl/rtthread/src/nrf5x_isr.c
146*042d53a7SEvalZero        """)
147*042d53a7SEvalZero
148*042d53a7SEvalZero# central sample
149*042d53a7SEvalZeroif GetDepend(['PKG_NIMBLE_SAMPLE_CENTRAL']):
150*042d53a7SEvalZero    path += [cwd + '/apps/blecent/src']
151*042d53a7SEvalZero
152*042d53a7SEvalZero    src += Split("""
153*042d53a7SEvalZero        apps/blecent/src/blecent.c
154*042d53a7SEvalZero        apps/blecent/src/misc.c
155*042d53a7SEvalZero        apps/blecent/src/peer.c
156*042d53a7SEvalZero        """)
157*042d53a7SEvalZero
158*042d53a7SEvalZero# blecsc sensor
159*042d53a7SEvalZeroif GetDepend(['PKG_NIMBLE_SAMPLE_BLECSC']):
160*042d53a7SEvalZero    path += [cwd + '/apps/blecsc/src']
161*042d53a7SEvalZero
162*042d53a7SEvalZero    src += Split("""
163*042d53a7SEvalZero        apps/blecsc/src/blecsc_sens.c
164*042d53a7SEvalZero        apps/blecsc/src/gatt_svr.c
165*042d53a7SEvalZero        """)
166*042d53a7SEvalZero
167*042d53a7SEvalZero
168*042d53a7SEvalZero# peripheral heart-rate sample
169*042d53a7SEvalZeroif GetDepend(['PKG_NIMBLE_SAMPLE_PER_HR']):
170*042d53a7SEvalZero    path += [cwd + '/apps/blehr/src']
171*042d53a7SEvalZero
172*042d53a7SEvalZero    src += Split("""
173*042d53a7SEvalZero        apps/blehr/src/blehr.c
174*042d53a7SEvalZero        apps/blehr/src/gatt_svr.c
175*042d53a7SEvalZero        """)
176*042d53a7SEvalZero
177*042d53a7SEvalZero# bleprph sample
178*042d53a7SEvalZeroif GetDepend(['PKG_NIMBLE_SAMPLE_PERIPHERAL']):
179*042d53a7SEvalZero    path += [cwd + '/apps/bleprph/src']
180*042d53a7SEvalZero
181*042d53a7SEvalZero    src += Split("""
182*042d53a7SEvalZero        apps/bleprph/src/bleprph.c
183*042d53a7SEvalZero        apps/bleprph/src/gatt_svr.c
184*042d53a7SEvalZero        apps/bleprph/src/misc.c
185*042d53a7SEvalZero        """)
186*042d53a7SEvalZero
187*042d53a7SEvalZero# bletest
188*042d53a7SEvalZeroif GetDepend(['PKG_NIMBLE_SAMPLE_BLETEST']):
189*042d53a7SEvalZero    path += [cwd + '/apps/bletest/src']
190*042d53a7SEvalZero
191*042d53a7SEvalZero    src += Split("""
192*042d53a7SEvalZero        apps/bletest/src/bletest_hci.c
193*042d53a7SEvalZero        apps/bletest/src/bletest.c
194*042d53a7SEvalZero        """)
195*042d53a7SEvalZero
196*042d53a7SEvalZero# bleuart
197*042d53a7SEvalZeroif GetDepend(['PKG_NIMBLE_SAMPLE_BLEUART']):
198*042d53a7SEvalZero    path += [cwd + '/apps/bleuart/src']
199*042d53a7SEvalZero
200*042d53a7SEvalZero    src += Split("""
201*042d53a7SEvalZero        apps/bleuart/src/bleuart.c
202*042d53a7SEvalZero        """)
203*042d53a7SEvalZero
204*042d53a7SEvalZero# btshell
205*042d53a7SEvalZeroif GetDepend(['PKG_NIMBLE_SAMPLE_BTSHELL']):
206*042d53a7SEvalZero    path += [cwd + '/apps/btshell/src']
207*042d53a7SEvalZero
208*042d53a7SEvalZero    src += Split("""
209*042d53a7SEvalZero        apps/btshell/src/btshell.c
210*042d53a7SEvalZero        apps/btshell/src/cmd_gatt.c
211*042d53a7SEvalZero        apps/btshell/src/cmd_l2cap.c
212*042d53a7SEvalZero        apps/btshell/src/cmd.c
213*042d53a7SEvalZero        apps/btshell/src/gatt_svr.c
214*042d53a7SEvalZero        apps/btshell/src/misc.c
215*042d53a7SEvalZero        apps/btshell/src/parse.c
216*042d53a7SEvalZero        """)
217*042d53a7SEvalZero
218*042d53a7SEvalZero# ble external advertiser sample
219*042d53a7SEvalZeroif GetDepend(['PKG_NIMBLE_SAMPLE_EXT_ADVERTISER']):
220*042d53a7SEvalZero    path += [cwd + '/apps/ext_advertiser/src']
221*042d53a7SEvalZero
222*042d53a7SEvalZero    src += Split("""
223*042d53a7SEvalZero        apps/ext_advertiser/src/ext_advertiser.c
224*042d53a7SEvalZero        """)
225*042d53a7SEvalZero
226*042d53a7SEvalZero# beacon sample
227*042d53a7SEvalZeroif GetDepend(['PKG_NIMBLE_SAMPLE_BEACON']):
228*042d53a7SEvalZero    src += Glob('apps/ibeacon/src/ibeacon.c')
229*042d53a7SEvalZero
230*042d53a7SEvalZeroLOCAL_CCFLAGS = ''
231*042d53a7SEvalZero
232*042d53a7SEvalZeroif rtconfig.CROSS_TOOL == 'keil':
233*042d53a7SEvalZero    LOCAL_CCFLAGS += ' --gnu --diag_suppress=111'
234*042d53a7SEvalZero
235*042d53a7SEvalZerogroup = DefineGroup('nimble', src, depend = ['PKG_USING_NIMBLE'], CPPPATH = path, CPPDEFINES = CPPDEFINES, LOCAL_CCFLAGS = LOCAL_CCFLAGS)
236*042d53a7SEvalZero
237*042d53a7SEvalZeroReturn('group')
238