Skip to content

Commit f3d0923

Browse files
authored
BYO_CRYPTO (#254)
Allow SDK to be compiled with BYO_CRYPTO=ON. This is an experimental feature. At this time, turning on BYO_CRYPTO completely disables several portions of the SDK (Device Defender, Secure Tunneling, MqttClientConnectionConfigBuilder)
1 parent 5b08bee commit f3d0923

File tree

4 files changed

+55
-118
lines changed

4 files changed

+55
-118
lines changed

.builder/actions/build_samples.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import Builder
2+
import os
3+
import sys
4+
5+
6+
class BuildSamples(Builder.Action):
7+
def run(self, env):
8+
if env.args.cli_config['variables'].get('skip_samples', "0") != "0":
9+
print('skip_samples is defined. Skipping samples...')
10+
return
11+
12+
steps = []
13+
samples = [
14+
'samples/mqtt/basic_pub_sub',
15+
'samples/mqtt/raw_pub_sub',
16+
'samples/shadow/shadow_sync',
17+
'samples/greengrass/basic_discovery',
18+
'samples/identity/fleet_provisioning',
19+
'samples/jobs/describe_job_execution',
20+
]
21+
for sample_path in samples:
22+
build_path = os.path.join('build', sample_path)
23+
steps.append(['cmake',
24+
f'-B{build_path}',
25+
f'-H{sample_path}',
26+
f'-DCMAKE_PREFIX_PATH={env.install_dir}',
27+
'-DCMAKE_BUILD_TYPE=RelWithDebInfo'])
28+
steps.append(['cmake',
29+
'--build', build_path,
30+
'--config', 'RelWithDebInfo'])
31+
32+
return Builder.Script(steps)

.github/workflows/ci.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,17 @@ jobs:
7070
docker pull $DOCKER_IMAGE
7171
docker run --env GITHUB_REF $DOCKER_IMAGE build -p ${{ env.PACKAGE_NAME }} --compiler=gcc-${{ matrix.version }}
7272
73+
byo-crypto:
74+
runs-on: ubuntu-latest
75+
steps:
76+
# We can't use the `uses: docker://image` version yet, GitHub lacks authentication for actions -> packages
77+
- name: Build ${{ env.PACKAGE_NAME }}
78+
run: |
79+
echo "${{ secrets.GITHUB_TOKEN }}" | docker login docker.pkg.github.com -u awslabs --password-stdin
80+
export DOCKER_IMAGE=docker.pkg.github.com/awslabs/aws-crt-builder/aws-crt-${{ env.LINUX_BASE_IMAGE }}:${{ env.BUILDER_VERSION }}
81+
docker pull $DOCKER_IMAGE
82+
docker run --env GITHUB_REF $DOCKER_IMAGE --version=${BUILDER_VERSION} build -p ${{ env.PACKAGE_NAME }} --cmake-extra=-DBYO_CRYPTO=ON skip_samples=1
83+
7384
windows-vs16:
7485
runs-on: windows-latest
7586
steps:

CMakeLists.txt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,10 @@ if (BUILD_DEPS)
4848
set(BUILD_TESTING_PREV ${BUILD_TESTING})
4949
set(BUILD_TESTING OFF)
5050
add_subdirectory(crt/aws-crt-cpp)
51-
add_subdirectory(crt/aws-c-iot)
51+
if (NOT BYO_CRYPTO)
52+
# TODO: get this working with BYO_CRYPTO
53+
add_subdirectory(crt/aws-c-iot)
54+
endif ()
5255
set(BUILD_TESTING ${BUILD_TESTING_PREV})
5356
else()
5457
include(AwsFindPackage)
@@ -59,9 +62,12 @@ add_subdirectory(jobs)
5962
add_subdirectory(shadow)
6063
add_subdirectory(discovery)
6164
add_subdirectory(identity)
62-
add_subdirectory(iotdevicecommon)
63-
add_subdirectory(devicedefender)
64-
add_subdirectory(secure_tunneling)
65+
if (NOT BYO_CRYPTO)
66+
# TODO: get these working with BYO_CRYPTO
67+
add_subdirectory(iotdevicecommon)
68+
add_subdirectory(devicedefender)
69+
add_subdirectory(secure_tunneling)
70+
endif ()
6571

6672
if (BUILD_SAMPLES)
6773
message(WARNING "BUILD_SAMPLES has been deprecated. Please build each sample separately.")

builder.json

Lines changed: 2 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -16,121 +16,9 @@
1616
}
1717
}
1818
},
19+
"_comment": "See .builder/actions/build_samples.py for definition of 'build-samples'",
1920
"build_steps": [
2021
"build",
21-
[
22-
"mkdir",
23-
"build_basic_pubsub"
24-
],
25-
[
26-
"cmake",
27-
"-Bbuild_basic_pubsub",
28-
"-Hsamples/mqtt/basic_pub_sub/",
29-
"-DCMAKE_INSTALL_PREFIX={install_dir}",
30-
"-DCMAKE_PREFIX_PATH={install_dir}",
31-
"-DCMAKE_BUILD_TYPE=RelWithDebInfo"
32-
],
33-
[
34-
"cmake",
35-
"--build",
36-
"build_basic_pubsub",
37-
"--config",
38-
"RelWithDebInfo"
39-
],
40-
[
41-
"mkdir",
42-
"build_raw_pubsub"
43-
],
44-
[
45-
"cmake",
46-
"-Bbuild_raw_pubsub",
47-
"-Hsamples/mqtt/raw_pub_sub/",
48-
"-DCMAKE_INSTALL_PREFIX={install_dir}",
49-
"-DCMAKE_PREFIX_PATH={install_dir}",
50-
"-DCMAKE_BUILD_TYPE=RelWithDebInfo"
51-
],
52-
[
53-
"cmake",
54-
"--build",
55-
"build_raw_pubsub",
56-
"--config",
57-
"RelWithDebInfo"
58-
],
59-
[
60-
"mkdir",
61-
"build_shadow"
62-
],
63-
[
64-
"cmake",
65-
"-Bbuild_shadow",
66-
"-Hsamples/shadow/shadow_sync/",
67-
"-DCMAKE_INSTALL_PREFIX={install_dir}",
68-
"-DCMAKE_PREFIX_PATH={install_dir}",
69-
"-DCMAKE_BUILD_TYPE=RelWithDebInfo"
70-
],
71-
[
72-
"cmake",
73-
"--build",
74-
"build_shadow",
75-
"--config",
76-
"RelWithDebInfo"
77-
],
78-
[
79-
"mkdir",
80-
"build_greengrass"
81-
],
82-
[
83-
"cmake",
84-
"-Bbuild_greengrass",
85-
"-Hsamples/greengrass/basic_discovery/",
86-
"-DCMAKE_INSTALL_PREFIX={install_dir}",
87-
"-DCMAKE_PREFIX_PATH={install_dir}",
88-
"-DCMAKE_BUILD_TYPE=RelWithDebInfo"
89-
],
90-
[
91-
"cmake",
92-
"--build",
93-
"build_greengrass",
94-
"--config",
95-
"RelWithDebInfo"
96-
],
97-
[
98-
"mkdir",
99-
"build_identity"
100-
],
101-
[
102-
"cmake",
103-
"-Bbuild_identity",
104-
"-Hsamples/identity/fleet_provisioning/",
105-
"-DCMAKE_INSTALL_PREFIX={install_dir}",
106-
"-DCMAKE_PREFIX_PATH={install_dir}",
107-
"-DCMAKE_BUILD_TYPE=RelWithDebInfo"
108-
],
109-
[
110-
"cmake",
111-
"--build",
112-
"build_identity",
113-
"--config",
114-
"RelWithDebInfo"
115-
],
116-
[
117-
"mkdir",
118-
"build_jobs"
119-
],
120-
[
121-
"cmake",
122-
"-Bbuild_jobs",
123-
"-Hsamples/jobs/describe_job_execution/",
124-
"-DCMAKE_INSTALL_PREFIX={install_dir}",
125-
"-DCMAKE_PREFIX_PATH={install_dir}",
126-
"-DCMAKE_BUILD_TYPE=RelWithDebInfo"
127-
],
128-
[
129-
"cmake",
130-
"--build",
131-
"build_jobs",
132-
"--config",
133-
"RelWithDebInfo"
134-
]
22+
"build-samples"
13523
]
13624
}

0 commit comments

Comments
 (0)