Skip to content

Commit b30b4ca

Browse files
committed
[NXP][scripts][build_examples] Adding differentiator to support both gn and cmake build systems
Signed-off-by: Dina Benamar <dina.benamarelmaaroufi@nxp.com>
1 parent 50ae6df commit b30b4ca

File tree

4 files changed

+20
-4
lines changed

4 files changed

+20
-4
lines changed

.github/workflows/examples-nxp.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@ jobs:
175175
--target nxp-rw61x-freertos-all-clusters-wifi \
176176
--target nxp-rw61x-freertos-all-clusters-thread \
177177
--target nxp-rw61x-freertos-all-clusters-thread-wifi \
178+
--target nxp-rw61x-freertos-all-clusters-wifi-ota-cmake \
178179
build \
179180
--copy-artifacts-to out/artifacts \
180181
"

scripts/build/build/targets.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
from builders.mw320 import MW320App, MW320Builder
2929
from builders.nrf import NrfApp, NrfBoard, NrfConnectBuilder
3030
from builders.nuttx import NuttXApp, NuttXBoard, NuttXBuilder
31-
from builders.nxp import NxpApp, NxpBoard, NxpBuilder, NxpOsUsed
31+
from builders.nxp import NxpApp, NxpBoard, NxpBuilder, NxpOsUsed, NxpBS
3232
from builders.openiotsdk import OpenIotSdkApp, OpenIotSdkBuilder, OpenIotSdkCryptoBackend
3333
from builders.qpg import QpgApp, QpgBoard, QpgBuilder
3434
from builders.stm32 import stm32App, stm32Board, stm32Builder
@@ -538,6 +538,7 @@ def BuildNxpTarget():
538538
target.AppendModifier(name="matter-shell", enable_shell=True).ExceptIfRe('k32w0|k32w1')
539539
target.AppendModifier(name="factory-build", enable_factory_data_build=True).OnlyIfRe('rw61x')
540540
target.AppendModifier(name="frdm", board_variant="frdm").OnlyIfRe('rw61x')
541+
target.AppendModifier(name="cmake", build_system=NxpBS.CMAKE).OnlyIfRe('rw61x')
541542

542543
return target
543544

scripts/build/builders/nxp.py

+16-2
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,17 @@ def OsEnv(self):
3333
else:
3434
raise Exception('Unknown OS type: %r' % self)
3535

36+
class NxpBS(Enum):
37+
GN = auto()
38+
CMAKE = auto()
39+
40+
def BuildSystem(self):
41+
if self == NxpBS.GN:
42+
return 'gn'
43+
elif self == NxpBS.CMAKE:
44+
return 'cmake'
45+
else:
46+
raise Exception('Unknown build system: %r' % self)
3647

3748
class NxpBoard(Enum):
3849
K32W0 = auto()
@@ -113,6 +124,7 @@ def __init__(self,
113124
app: NxpApp = NxpApp.LIGHTING,
114125
board: NxpBoard = NxpBoard.K32W0,
115126
os_env: NxpOsUsed = NxpOsUsed.FREERTOS,
127+
build_system: NxpBS = NxpBS.GN,
116128
low_power: bool = False,
117129
smu2: bool = False,
118130
enable_factory_data: bool = False,
@@ -136,6 +148,7 @@ def __init__(self,
136148
self.app = app
137149
self.board = board
138150
self.os_env = os_env
151+
self.build_system = build_system
139152
self.low_power = low_power
140153
self.smu2 = smu2
141154
self.enable_factory_data = enable_factory_data
@@ -205,6 +218,7 @@ def GnBuildArgs(self):
205218

206219
def CmakeBuildFlags(self):
207220
flags = []
221+
208222
if self.enable_factory_data:
209223
if self.os_env == NxpOsUsed.ZEPHYR:
210224
flags.append('-DFILE_SUFFIX=fdata')
@@ -283,7 +297,7 @@ def generate(self):
283297
elif p.sdk_name == 'common':
284298
cmd += 'export NXP_SDK_ROOT="' + str(p.sdk_storage_location_abspath) + '" \n '
285299

286-
if self.board == NxpBoard.RW61X:
300+
if self.build_system == NxpBS.CMAKE:
287301
cmd += '''
288302
cmake -GNinja {build_flags} -H{example_folder} -B{out_folder}
289303
'''.format(
@@ -292,7 +306,7 @@ def generate(self):
292306
out_folder=self.output_dir).strip()
293307
self._Execute(['bash', '-c', cmd], title='Generating ' + self.identifier)
294308

295-
else:
309+
elif self.build_system == NxpBS.GN:
296310
# add empty space at the end to avoid concatenation issue when there is no --args
297311
cmd += 'gn gen --check --fail-on-unused-args --export-compile-commands --root=%s ' % self.root
298312

scripts/build/testdata/all_targets_linux_x64.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ linux-{x64,arm64}-{rpc-console,all-clusters,all-clusters-minimal,chip-tool,therm
1313
linux-x64-efr32-test-runner[-clang]
1414
imx-{chip-tool,lighting-app,thermostat,all-clusters-app,all-clusters-minimal-app,ota-provider-app}[-release]
1515
infineon-psoc6-{lock,light,all-clusters,all-clusters-minimal}[-ota][-updateimage][-trustm]
16-
nxp-{k32w0,k32w1,rw61x}-{zephyr,freertos}-{lighting,contact-sensor,all-clusters,laundry-washer,thermostat}[-factory][-low-power][-lit][-fro32k][-smu2][-dac-conversion][-rotating-id][-sw-v2][-ota][-wifi][-thread][-matter-shell]
16+
nxp-{k32w0,k32w1,rw61x}-{zephyr,freertos}-{lighting,contact-sensor,all-clusters,laundry-washer,thermostat}[-factory][-low-power][-lit][-fro32k][-smu2][-dac-conversion][-rotating-id][-sw-v2][-ota][-wifi][-thread][-matter-shell][-factory-build][-frdm][-cmake]
1717
mbed-cy8cproto_062_4343w-{lock,light,all-clusters,all-clusters-minimal,pigweed,ota-requestor,shell}[-release][-develop][-debug]
1818
mw320-all-clusters-app
1919
nrf-{nrf5340dk,nrf52840dk,nrf52840dongle}-{all-clusters,all-clusters-minimal,lock,light,light-switch,shell,pump,pump-controller,window-covering}[-rpc]

0 commit comments

Comments
 (0)