13
13
# limitations under the License.
14
14
15
15
import os
16
-
17
- from typing import Any , List
18
16
from itertools import combinations
17
+ from typing import List
19
18
20
19
from builders .ameba import AmebaApp , AmebaBoard , AmebaBuilder
21
- from builders .android import AndroidBoard , AndroidApp , AndroidBuilder
20
+ from builders .android import AndroidApp , AndroidBoard , AndroidBuilder
22
21
from builders .cc13x2x7_26x2x7 import cc13x2x7_26x2x7App , cc13x2x7_26x2x7Builder
23
- from builders .cyw30739 import Cyw30739Builder , Cyw30739App , Cyw30739Board
24
- from builders .efr32 import Efr32Builder , Efr32App , Efr32Board
25
- from builders .esp32 import Esp32Builder , Esp32Board , Esp32App
26
- from builders .host import HostBuilder , HostApp , HostBoard
27
- from builders .infineon import InfineonBuilder , InfineonApp , InfineonBoard
22
+ from builders .cyw30739 import Cyw30739App , Cyw30739Board , Cyw30739Builder
23
+ from builders .efr32 import Efr32App , Efr32Board , Efr32Builder
24
+ from builders .esp32 import Esp32App , Esp32Board , Esp32Builder
25
+ from builders .host import HostApp , HostBoard , HostBuilder
26
+ from builders .infineon import InfineonApp , InfineonBoard , InfineonBuilder
28
27
from builders .k32w import K32WApp , K32WBuilder
29
- from builders .mbed import MbedApp , MbedBoard , MbedProfile , MbedBuilder
28
+ from builders .mbed import MbedApp , MbedBoard , MbedBuilder , MbedProfile
30
29
from builders .nrf import NrfApp , NrfBoard , NrfConnectBuilder
31
30
from builders .qpg import QpgApp , QpgBoard , QpgBuilder
32
31
from builders .telink import TelinkApp , TelinkBoard , TelinkBuilder
@@ -68,7 +67,8 @@ def Extend(self, suffix, **kargs):
68
67
clone .create_kw_args .update (kargs )
69
68
return clone
70
69
71
- def Create (self , runner , repository_path : str , output_prefix : str , enable_flashbundle : bool ):
70
+ def Create (self , runner , repository_path : str , output_prefix : str ,
71
+ enable_flashbundle : bool ):
72
72
builder = self .builder_class (
73
73
repository_path , runner = runner , ** self .create_kw_args )
74
74
@@ -115,7 +115,9 @@ def Accept(self, name: str):
115
115
116
116
117
117
class BuildVariant :
118
- def __init__ (self , name : str , validator = AcceptAnyName (), conflicts : List [str ] = [], requires : List [str ] = [], ** buildargs ):
118
+ def __init__ (self , name : str , validator = AcceptAnyName (),
119
+ conflicts : List [str ] = [], requires : List [str ] = [],
120
+ ** buildargs ):
119
121
self .name = name
120
122
self .validator = validator
121
123
self .conflicts = conflicts
@@ -138,7 +140,7 @@ def AllRequirementsMet(items: List[BuildVariant]) -> bool:
138
140
139
141
for item in items :
140
142
for requirement in item .requires :
141
- if not requirement in available :
143
+ if requirement not in available :
142
144
return False
143
145
144
146
return True
@@ -178,8 +180,8 @@ def AllVariants(self):
178
180
"""
179
181
Yields a list of acceptable variants for the given targets.
180
182
181
- Handles conflict resolution between build variants and globbing whiltelist
182
- targets.
183
+ Handles conflict resolution between build variants and globbing
184
+ whitelist targets.
183
185
"""
184
186
for target in self .targets :
185
187
yield target
@@ -204,8 +206,9 @@ def AllVariants(self):
204
206
option .name , ** option .buildargs )
205
207
206
208
# Only a few are whitelisted for globs
207
- if '-' .join ([o .name for o in subgroup ]) not in self .glob_whitelist :
208
- if not variant_target .glob_blacklist_reason :
209
+ name = '-' .join ([o .name for o in subgroup ])
210
+ if name not in self .glob_whitelist :
211
+ if not variant_target .IsGlobBlacklisted :
209
212
variant_target = variant_target .GlobBlacklist (
210
213
'Reduce default build variants' )
211
214
@@ -214,9 +217,9 @@ def AllVariants(self):
214
217
215
218
def HostTargets ():
216
219
target = Target (HostBoard .NATIVE .PlatformName (), HostBuilder )
217
- targets = [
218
- target . Extend ( HostBoard . NATIVE . BoardName (), board = HostBoard . NATIVE )
219
- ]
220
+ target_native = target . Extend ( HostBoard . NATIVE . BoardName (), board = HostBoard . NATIVE )
221
+
222
+ targets = [ target_native ]
220
223
221
224
# x64 linux supports cross compile
222
225
if (HostBoard .NATIVE .PlatformName () == 'linux' ) and (
@@ -227,9 +230,9 @@ def HostTargets():
227
230
228
231
# Don't cross compile some builds
229
232
app_targets .append (
230
- targets [ 0 ] .Extend ('rpc-console' , app = HostApp .RPC_CONSOLE ))
233
+ target_native .Extend ('rpc-console' , app = HostApp .RPC_CONSOLE ))
231
234
app_targets .append (
232
- targets [ 0 ] .Extend ('tv-app' , app = HostApp .TV_APP ))
235
+ target_native .Extend ('tv-app' , app = HostApp .TV_APP ))
233
236
234
237
for target in targets :
235
238
app_targets .append (target .Extend (
@@ -276,11 +279,14 @@ def HostTargets():
276
279
yield target
277
280
278
281
# Without extra build variants
279
- yield targets [0 ].Extend ('chip-cert' , app = HostApp .CERT_TOOL )
280
- yield targets [0 ].Extend ('address-resolve-tool' , app = HostApp .ADDRESS_RESOLVE )
281
- yield targets [0 ].Extend ('address-resolve-tool-clang' , app = HostApp .ADDRESS_RESOLVE , use_clang = True ).GlobBlacklist ("Reduce default build variants" )
282
- yield targets [0 ].Extend ('address-resolve-tool-platform-mdns' , app = HostApp .ADDRESS_RESOLVE , use_platform_mdns = True ).GlobBlacklist ("Reduce default build variants" )
283
- yield targets [0 ].Extend ('address-resolve-tool-platform-mdns-ipv6only' , app = HostApp .ADDRESS_RESOLVE , use_platform_mdns = True , enable_ipv4 = False ).GlobBlacklist ("Reduce default build variants" )
282
+ yield target_native .Extend ('chip-cert' , app = HostApp .CERT_TOOL )
283
+ yield target_native .Extend ('address-resolve-tool' , app = HostApp .ADDRESS_RESOLVE )
284
+ yield target_native .Extend ('address-resolve-tool-clang' , app = HostApp .ADDRESS_RESOLVE ,
285
+ use_clang = True ).GlobBlacklist ("Reduce default build variants" )
286
+ yield target_native .Extend ('address-resolve-tool-platform-mdns' , app = HostApp .ADDRESS_RESOLVE ,
287
+ use_platform_mdns = True ).GlobBlacklist ("Reduce default build variants" )
288
+ yield target_native .Extend ('address-resolve-tool-platform-mdns-ipv6only' , app = HostApp .ADDRESS_RESOLVE ,
289
+ use_platform_mdns = True , enable_ipv4 = False ).GlobBlacklist ("Reduce default build variants" )
284
290
285
291
test_target = Target (HostBoard .NATIVE .PlatformName (), HostBuilder )
286
292
for board in [HostBoard .NATIVE , HostBoard .FAKE ]:
@@ -291,9 +297,12 @@ def Esp32Targets():
291
297
esp32_target = Target ('esp32' , Esp32Builder )
292
298
293
299
yield esp32_target .Extend ('m5stack-all-clusters' , board = Esp32Board .M5Stack , app = Esp32App .ALL_CLUSTERS )
294
- yield esp32_target .Extend ('m5stack-all-clusters-ipv6only' , board = Esp32Board .M5Stack , app = Esp32App .ALL_CLUSTERS , enable_ipv4 = False )
295
- yield esp32_target .Extend ('m5stack-all-clusters-rpc' , board = Esp32Board .M5Stack , app = Esp32App .ALL_CLUSTERS , enable_rpcs = True )
296
- yield esp32_target .Extend ('m5stack-all-clusters-rpc-ipv6only' , board = Esp32Board .M5Stack , app = Esp32App .ALL_CLUSTERS , enable_rpcs = True , enable_ipv4 = False )
300
+ yield esp32_target .Extend ('m5stack-all-clusters-ipv6only' , board = Esp32Board .M5Stack , app = Esp32App .ALL_CLUSTERS ,
301
+ enable_ipv4 = False )
302
+ yield esp32_target .Extend ('m5stack-all-clusters-rpc' , board = Esp32Board .M5Stack , app = Esp32App .ALL_CLUSTERS ,
303
+ enable_rpcs = True )
304
+ yield esp32_target .Extend ('m5stack-all-clusters-rpc-ipv6only' , board = Esp32Board .M5Stack , app = Esp32App .ALL_CLUSTERS ,
305
+ enable_rpcs = True , enable_ipv4 = False )
297
306
298
307
yield esp32_target .Extend ('c3devkit-all-clusters' , board = Esp32Board .C3DevKit , app = Esp32App .ALL_CLUSTERS )
299
308
@@ -381,7 +390,8 @@ def NrfTargets():
381
390
382
391
if '-nrf5340dk-' in rpc .name :
383
392
rpc = rpc .GlobBlacklist (
384
- 'Compile failure due to pw_build args not forwarded to proto compiler. https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/66760' )
393
+ 'Compile failure due to pw_build args not forwarded to proto compiler. '
394
+ 'https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/66760' )
385
395
386
396
yield rpc
387
397
@@ -423,8 +433,12 @@ def MbedTargets():
423
433
424
434
for target in app_targets :
425
435
yield target .Extend ('release' , profile = MbedProfile .RELEASE )
426
- yield target .Extend ('develop' , profile = MbedProfile .DEVELOP ).GlobBlacklist ('Compile only for debugging purpose - https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html' )
427
- yield target .Extend ('debug' , profile = MbedProfile .DEBUG ).GlobBlacklist ('Compile only for debugging purpose - https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html' )
436
+ yield target .Extend ('develop' , profile = MbedProfile .DEVELOP ).GlobBlacklist (
437
+ 'Compile only for debugging purpose - '
438
+ 'https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html' )
439
+ yield target .Extend ('debug' , profile = MbedProfile .DEBUG ).GlobBlacklist (
440
+ 'Compile only for debugging purpose - '
441
+ 'https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html' )
428
442
429
443
430
444
def InfineonTargets ():
@@ -453,10 +467,12 @@ def K32WTargets():
453
467
yield target .Extend ('light' , app = K32WApp .LIGHT ).GlobBlacklist ("Debug builds broken due to LWIP_DEBUG redefition" )
454
468
455
469
yield target .Extend ('light-release' , app = K32WApp .LIGHT , release = True )
456
- yield target .Extend ('light-tokenizer-release' , app = K32WApp .LIGHT , tokenizer = True , release = True ).GlobBlacklist ("Only on demand build" )
470
+ yield target .Extend ('light-tokenizer-release' , app = K32WApp .LIGHT ,
471
+ tokenizer = True , release = True ).GlobBlacklist ("Only on demand build" )
457
472
yield target .Extend ('shell-release' , app = K32WApp .SHELL , release = True )
458
473
yield target .Extend ('lock-release' , app = K32WApp .LOCK , release = True )
459
- yield target .Extend ('lock-low-power-release' , app = K32WApp .LOCK , low_power = True , release = True ).GlobBlacklist ("Only on demand build" )
474
+ yield target .Extend ('lock-low-power-release' , app = K32WApp .LOCK ,
475
+ low_power = True , release = True ).GlobBlacklist ("Only on demand build" )
460
476
461
477
462
478
def cc13x2x7_26x2x7Targets ():
@@ -469,10 +485,15 @@ def cc13x2x7_26x2x7Targets():
469
485
470
486
471
487
def Cyw30739Targets ():
472
- yield Target ('cyw30739-cyw930739m2evb_01-light' , Cyw30739Builder , board = Cyw30739Board .CYW930739M2EVB_01 , app = Cyw30739App .LIGHT )
473
- yield Target ('cyw30739-cyw930739m2evb_01-lock' , Cyw30739Builder , board = Cyw30739Board .CYW930739M2EVB_01 , app = Cyw30739App .LOCK )
474
- yield Target ('cyw30739-cyw930739m2evb_01-ota-requestor' , Cyw30739Builder , board = Cyw30739Board .CYW930739M2EVB_01 , app = Cyw30739App .OTA_REQUESTOR ).GlobBlacklist ("Running out of XIP flash space" )
475
- yield Target ('cyw30739-cyw930739m2evb_01-ota-requestor-no-progress-logging' , Cyw30739Builder , board = Cyw30739Board .CYW930739M2EVB_01 , app = Cyw30739App .OTA_REQUESTOR , progress_logging = False )
488
+ yield Target ('cyw30739-cyw930739m2evb_01-light' , Cyw30739Builder ,
489
+ board = Cyw30739Board .CYW930739M2EVB_01 , app = Cyw30739App .LIGHT )
490
+ yield Target ('cyw30739-cyw930739m2evb_01-lock' , Cyw30739Builder ,
491
+ board = Cyw30739Board .CYW930739M2EVB_01 , app = Cyw30739App .LOCK )
492
+ yield Target ('cyw30739-cyw930739m2evb_01-ota-requestor' , Cyw30739Builder ,
493
+ board = Cyw30739Board .CYW930739M2EVB_01 , app = Cyw30739App .OTA_REQUESTOR ).GlobBlacklist (
494
+ "Running out of XIP flash space" )
495
+ yield Target ('cyw30739-cyw930739m2evb_01-ota-requestor-no-progress-logging' , Cyw30739Builder ,
496
+ board = Cyw30739Board .CYW930739M2EVB_01 , app = Cyw30739App .OTA_REQUESTOR , progress_logging = False )
476
497
477
498
478
499
def QorvoTargets ():
@@ -484,6 +505,23 @@ def QorvoTargets():
484
505
yield target .Extend ('persistent-storage' , board = QpgBoard .QPG6105 , app = QpgApp .PERSISTENT_STORAGE )
485
506
486
507
508
+ def TizenTargets ():
509
+
510
+ # Possible build variants.
511
+ # NOTE: The number of potential builds is exponential here.
512
+ builder = VariantBuilder ()
513
+ builder .AppendVariant (name = "no-ble" , enable_ble = False )
514
+ builder .AppendVariant (name = "no-wifi" , enable_wifi = False )
515
+ builder .AppendVariant (name = "asan" , use_asan = True )
516
+
517
+ target = Target ('tizen-arm' , TizenBuilder , board = TizenBoard .ARM )
518
+
519
+ builder .targets .append (target .Extend ('light' , app = TizenApp .LIGHT ))
520
+
521
+ for target in builder .AllVariants ():
522
+ yield target
523
+
524
+
487
525
def Bl602Targets ():
488
526
target = Target ('bl602' , Bl602Builder )
489
527
@@ -505,6 +543,7 @@ def Bl602Targets():
505
543
cc13x2x7_26x2x7Targets (),
506
544
Cyw30739Targets (),
507
545
QorvoTargets (),
546
+ TizenTargets (),
508
547
Bl602Targets (),
509
548
]
510
549
@@ -515,8 +554,6 @@ def Bl602Targets():
515
554
# Simple targets added one by one
516
555
ALL .append (Target ('telink-tlsr9518adk80d-light' , TelinkBuilder ,
517
556
board = TelinkBoard .TLSR9518ADK80D , app = TelinkApp .LIGHT ))
518
- ALL .append (Target ('tizen-arm-light' , TizenBuilder ,
519
- board = TizenBoard .ARM , app = TizenApp .LIGHT ))
520
557
521
558
# have a consistent order overall
522
559
ALL .sort (key = lambda t : t .name )
0 commit comments