-
Notifications
You must be signed in to change notification settings - Fork 114
Expand file tree
/
Copy pathbuild_samples.py
More file actions
65 lines (56 loc) · 2.48 KB
/
build_samples.py
File metadata and controls
65 lines (56 loc) · 2.48 KB
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0.
import Builder
import itertools
import os
import sys
class BuildSamples(Builder.Action):
"""
Defines a custom build step for samples and tests.
It's used via builder.json config file in the project root directory.
"""
def run(self, env):
# parse extra cmake configs
cmd_args = env.args
steps = []
samples = [
'samples/service_clients/commands/commands-sandbox',
'samples/greengrass/basic_discovery',
'samples/greengrass/ipc',
'samples/service_clients/fleet_provisioning/provision-basic',
'samples/service_clients/fleet_provisioning/provision-csr',
'samples/service_clients/jobs/jobs-sandbox',
'samples/mqtt/mqtt5_x509',
'samples/mqtt/mqtt5_aws_websocket',
'samples/mqtt/mqtt5_custom_auth_signed',
'samples/mqtt/mqtt5_custom_auth_unsigned',
'samples/mqtt/mqtt5_pkcs11',
'samples/others/secure_tunneling/secure_tunnel',
'samples/others/secure_tunneling/tunnel_notification',
'samples/service_clients/shadow/shadow-sandbox',
]
defender_samples = []
# Linux only builds
if sys.platform == "linux" or sys.platform == "linux2":
defender_samples.append('samples/others/device_defender/mqtt5_basic_report')
servicetests = [
'servicetests/tests/JobsExecution/',
'servicetests/tests/FleetProvisioning/',
'servicetests/tests/ShadowUpdate/',
]
for sample_path in itertools.chain(samples, servicetests, defender_samples):
build_path = os.path.join('build', sample_path)
steps.append(['cmake',
f'-B{build_path}',
f'-H{sample_path}',
f'-DCMAKE_PREFIX_PATH={env.install_dir}',
'-DCMAKE_BUILD_TYPE=RelWithDebInfo'])
# append extra cmake configs
steps[-1].extend(cmd_args.cmake_extra)
# Currently, cmake_args sets only Linux-specific options.
if sys.platform == "linux" or sys.platform == "linux2":
steps[-1].extend(env.config['cmake_args'])
steps.append(['cmake',
'--build', build_path,
'--config', 'RelWithDebInfo'])
return Builder.Script(steps)