Skip to content

Commit e37963f

Browse files
Merge pull request #675 from Cypherock/feat/btc-only/base
feat: Adds btc-only support
2 parents c9fbd50 + c0fb5ee commit e37963f

26 files changed

Lines changed: 719 additions & 228 deletions

.github/workflows/auto-tag-versions.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,4 @@ jobs:
2121
run: |
2222
VERSION=$(cat version.txt | grep firmware | cut -f 2-2 -d '=' | awk -F ':' '{ print 0+$1 "." 0+$2 "." $3*2**8 + $4 }')
2323
echo $VERSION
24-
curl -X POST -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ${AUTH_TOKEN}" -H "X-GitHub-Api-Version: 2022-11-28" https://api.github.com/repos/${REPOSITORY}/git/refs -d '{"ref":"refs/tags/v'${VERSION}'","sha":"'${COMMIT}'"}'
24+
curl -X POST -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ${AUTH_TOKEN}" -H "X-GitHub-Api-Version: 2022-11-28" https://api.github.com/repos/${REPOSITORY}/git/refs -d '{"ref":"refs/tags/v'${VERSION}'","sha":"'${COMMIT}'"}'

.github/workflows/build.yml

Lines changed: 78 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,41 +16,111 @@ jobs:
1616
firmware: [Main]
1717
target: [Release]
1818
vendor: [Cypherock, Odix]
19+
coin_support: ["BTC_ONLY", "MULTI_COIN"]
20+
exclude:
21+
- vendor: Odix
22+
coin_support: BTC_ONLY
1923
uses: ./.github/workflows/containerized-build.yml
2024
with:
2125
firmware: ${{ matrix.firmware }}
2226
target: ${{ matrix.target }}
2327
vendor: ${{ matrix.vendor }}
28+
coin_support_variant: ${{ matrix.coin_support }}
2429
secrets: inherit
30+
2531
create-release:
2632
needs: build-firmwares
2733
runs-on: ubuntu-latest
2834
if: ${{ github.ref_type }} == 'tag'
2935
steps:
3036
- name: Checkout
3137
uses: actions/checkout@v3
38+
3239
- name: Download artifacts
3340
uses: actions/download-artifact@v4
3441
with:
3542
path: ./
43+
3644
- name: Publish a release
3745
env:
3846
TAG_NAME: ${{ github.ref_name }}
3947
auth_token: ${{ secrets.GITHUB_TOKEN }}
4048
REPOSITORY: ${{ github.repository }}
4149
run: |
42-
chkmain=$(sha256sum Main-Release-Cypherock-outputs/Cypherock-Main.bin | cut -f -1 -d ' ')
43-
chkmain_odix=$(sha256sum Main-Release-Odix-outputs/Cypherock-Main-Odix.bin | cut -f -1 -d ' ')
50+
# Calculate SHA256 hash for the Cypherock firmware with MULTI_COIN support
51+
chkmain_cypherock_multicoin=$(sha256sum Main-Release-Cypherock-MULTI_COIN-outputs/Cypherock-Main.bin | cut -f -1 -d ' ')
52+
53+
# Calculate SHA256 hash for the Cypherock firmware with BTC_ONLY support
54+
chkmain_cypherock_btc_only=$(sha256sum Main-Release-Cypherock-BTC_ONLY-outputs/Cypherock-Main-BTC.bin | cut -f -1 -d ' ')
55+
56+
# Calculate SHA256 hash for the Odix firmware with MULTI_COIN support
57+
chkmain_odix_multicoin=$(sha256sum Main-Release-Odix-MULTI_COIN-outputs/Odix-Main.bin | cut -f -1 -d ' ')
58+
4459
APP_VERSION=$(cat version.txt | grep firmware | cut -f 2-2 -d '=' | awk -F ':' '{ print 0+$1 "." 0+$2 "." $3*2**8 + $4 }')
4560
HW_VERSION=$(cat version.txt | grep hardware | cut -f 2-2 -d '=' | awk -F ':' '{ print 0+$1 "." 0+$2 "." $3*2**8 + $4 }')
46-
echo ${APP_VERSION}:${HW_VERSION}
47-
curl -X POST -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ${auth_token}" -H "X-GitHub-Api-Version: 2022-11-28" https://api.github.com/repos/${REPOSITORY}/releases -d '{"tag_name":"'${TAG_NAME}'","target_commitish":"main","name":"'${TAG_NAME}'","body":"Application version: '${APP_VERSION}'\r\nHardware version: '${HW_VERSION}'\r\n## SHA256 of binaries:\r\n**Cypherock-Main.bin** : '${chkmain}' \r\n**Cypherock-Main-Odix.bin** : '${chkmain_odix}'","draft":true,"prerelease":false,"generate_release_notes":true}' > output.txt
61+
62+
echo "Application version: ${APP_VERSION}"
63+
echo "Hardware version: ${HW_VERSION}"
64+
65+
# Create the release with all firmware hashes in the body
66+
curl -X POST \
67+
-H "Accept: application/vnd.github+json" \
68+
-H "Authorization: Bearer ${auth_token}" \
69+
-H "X-GitHub-Api-Version: 2022-11-28" \
70+
https://api.github.com/repos/${REPOSITORY}/releases \
71+
-d '{
72+
"tag_name":"'${TAG_NAME}'",
73+
"target_commitish":"main",
74+
"name":"'${TAG_NAME}'",
75+
"body":"Application version: '${APP_VERSION}'\r\nHardware version: '${HW_VERSION}'\r\n## SHA256 of binaries:\r\n**Cypherock-Main.bin** : '${chkmain_cypherock_multicoin}' \r\n**Cypherock-Main-BTC.bin** : '${chkmain_cypherock_btc_only}' \r\n**Odix-Main.bin** : '${chkmain_odix_multicoin}'",
76+
"draft":true,
77+
"prerelease":false,
78+
"generate_release_notes":true
79+
}' > output.txt
80+
81+
# Extract upload_url for subsequent asset uploads
4882
echo "upload_url=$(cat output.txt | grep "\"upload_url\":" | cut -f 4-4 -d '"' | cut -f 1-1 -d '{')" >> $GITHUB_ENV
83+
4984
- name: Upload assets
5085
env:
5186
auth_token: ${{ secrets.GITHUB_TOKEN }}
5287
run: |
53-
content_type=$(file -b --mime-type Main-Release-Cypherock-outputs/Cypherock-Main.bin)
54-
curl -X POST -H "Content-Type: ${content_type}" -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ${auth_token}" -H "X-GitHub-Api-Version: 2022-11-28" ${upload_url}?name=Cypherock-Main.bin --data-binary @Main-Release-Cypherock-outputs/Cypherock-Main.bin
55-
curl -X POST -H "Content-Type: ${content_type}" -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ${auth_token}" -H "X-GitHub-Api-Version: 2022-11-28" ${upload_url}?name=Cypherock-Main-Odix.bin --data-binary @Main-Release-Odix-outputs/Cypherock-Main-Odix.bin
56-
curl -X POST -H "Content-Type: ${content_type}" -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ${auth_token}" -H "X-GitHub-Api-Version: 2022-11-28" ${upload_url}?name=version.txt --data-binary @version.txt
88+
# Upload the Cypherock MULTI_COIN firmware binary
89+
content_type_cypherock_multicoin=$(file -b --mime-type Main-Release-Cypherock-MULTI_COIN-outputs/Cypherock-Main.bin)
90+
curl -X POST \
91+
-H "Content-Type: ${content_type_cypherock_multicoin}" \
92+
-H "Accept: application/vnd.github+json" \
93+
-H "Authorization: Bearer ${auth_token}" \
94+
-H "X-GitHub-Api-Version: 2022-11-28" \
95+
"${upload_url}?name=Cypherock-Main.bin" \
96+
--data-binary @Main-Release-Cypherock-MULTI_COIN-outputs/Cypherock-Main.bin
97+
98+
# Upload the Cypherock BTC_ONLY firmware binary
99+
content_type_cypherock_btc_only=$(file -b --mime-type Main-Release-Cypherock-BTC_ONLY-outputs/Cypherock-Main-BTC.bin)
100+
curl -X POST \
101+
-H "Content-Type: ${content_type_cypherock_btc_only}" \
102+
-H "Accept: application/vnd.github+json" \
103+
-H "Authorization: Bearer ${auth_token}" \
104+
-H "X-GitHub-Api-Version: 2022-11-28" \
105+
"${upload_url}?name=Cypherock-Main-BTC.bin" \
106+
--data-binary @Main-Release-Cypherock-BTC_ONLY-outputs/Cypherock-Main-BTC.bin
107+
108+
# Upload the Odix MULTI_COIN firmware binary
109+
content_type_odix_multicoin=$(file -b --mime-type Main-Release-Odix-MULTI_COIN-outputs/Odix-Main.bin)
110+
curl -X POST \
111+
-H "Content-Type: ${content_type_odix_multicoin}" \
112+
-H "Accept: application/vnd.github+json" \
113+
-H "Authorization: Bearer ${auth_token}" \
114+
-H "X-GitHub-Api-Version: 2022-11-28" \
115+
"${upload_url}?name=Odix-Main.bin" \
116+
--data-binary @Main-Release-Odix-MULTI_COIN-outputs/Odix-Main.bin
117+
118+
# Upload version.txt
119+
content_type_version=$(file -b --mime-type version.txt)
120+
curl -X POST \
121+
-H "Content-Type: ${content_type_version}" \
122+
-H "Accept: application/vnd.github+json" \
123+
-H "Authorization: Bearer ${auth_token}" \
124+
-H "X-GitHub-Api-Version: 2022-11-28" \
125+
"${upload_url}?name=version.txt" \
126+
--data-binary @version.txt

.github/workflows/ci-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,4 +197,4 @@ jobs:
197197
bash ./utilities/run_unit_tests.sh -f ${{ matrix.firmware }} -p ${{ matrix.platform }} > test_results.txt || true
198198
cat test_results.txt
199199
# Unity prints "OK" if all tests pass, "FAIL" if tests fail; return 1 to indicate failure
200-
if [ ! "$(tail -n 1 test_results.txt)" = "OK" ]; then exit 1; fi
200+
if [ ! "$(tail -n 1 test_results.txt)" = "OK" ]; then exit 1; fi

.github/workflows/containerized-build.yml

Lines changed: 60 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -10,33 +10,72 @@ on:
1010
required: true
1111
type: string
1212
vendor:
13-
required: true
1413
default: "Cypherock"
1514
type: string
15+
coin_support_variant:
16+
default: 'MULTI_COIN'
17+
type: string
1618

1719
jobs:
1820
build:
1921
runs-on: ubuntu-latest
2022
container:
2123
image: cypherock/x1-firmware-builder:v0.0.0
24+
2225
steps:
23-
- name: Build Firmware (${{ inputs.firmware }} - ${{ inputs.target }})
24-
run: |
25-
if [[ "${{ github.ref_type }}" == "tag" ]]; then
26-
export VERSION_TAG=$(echo "${{ github.ref }}" | cut -f 3- -d '/')
27-
elif [[ "${{ github.ref_type }}" == "branch" ]]; then
28-
export VERSION_TAG=$(echo "${{ github.ref }}" | cut -f 3- -d '/')
29-
else
30-
# reftype is repository; use default branch
31-
export VERSION_TAG=main
32-
fi
33-
git clone --branch ${VERSION_TAG} --depth 1 https://github.com/${{ github.repository }}.git --recurse-submodules
34-
mkdir build && cd x1_wallet_firmware && mkdir build && cd build
35-
cmake -DCMAKE_BUILD_TYPE="${{ inputs.target }}" -DFIRMWARE_TYPE="${{ inputs.firmware }}" -DCMAKE_BUILD_PLATFORM="Device" -DVENDOR="${{ inputs.vendor }}" -G "Ninja" ..
36-
ninja && cd ../..
37-
cp x1_wallet_firmware/build/Cypherock-*.* ./build/
38-
- name: Archive Build Artifacts
39-
uses: actions/upload-artifact@v4
40-
with:
41-
name: ${{ inputs.firmware }}-${{ inputs.target }}-${{ inputs.vendor }}-outputs
42-
path: build
26+
- name: Set VERSION_TAG
27+
id: set_version_tag
28+
run: |
29+
if [[ "${{ github.ref_type }}" == "tag" ]]; then
30+
echo "VERSION_TAG=$(echo "${{ github.ref }}" | cut -f 3- -d '/')" >> $GITHUB_OUTPUT
31+
elif [[ "${{ github.ref_type }}" == "branch" ]]; then
32+
echo "VERSION_TAG=$(echo "${{ github.ref }}" | cut -f 3- -d '/')" >> $GITHUB_OUTPUT
33+
else
34+
echo "VERSION_TAG=main" >> $GITHUB_OUTPUT
35+
fi
36+
37+
- name: Checkout Firmware Repository
38+
uses: actions/checkout@v4
39+
with:
40+
repository: Cypherock/x1_wallet_firmware
41+
ref: ${{ steps.set_version_tag.outputs.VERSION_TAG }}
42+
submodules: recursive
43+
path: x1_wallet_firmware
44+
45+
- name: Build Firmware (${{ inputs.firmware }} - ${{ inputs.target }} - ${{ inputs.vendor }} - ${{ inputs.coin_support_variant }})
46+
run: |
47+
cd x1_wallet_firmware
48+
49+
BTC_ONLY_FLAG="OFF"
50+
if [[ "${{ inputs.coin_support_variant }}" == "BTC_ONLY" ]]; then
51+
BTC_ONLY_FLAG="ON"
52+
fi
53+
54+
BUILD_DIR="build_${{ inputs.coin_support_variant }}"
55+
mkdir -p "${BUILD_DIR}"
56+
57+
cmake -B "${BUILD_DIR}" \
58+
-DDEV_SWITCH=OFF \
59+
-DUNIT_TESTS_SWITCH:BOOL=OFF \
60+
-DBTC_ONLY:BOOL="${BTC_ONLY_FLAG}" \
61+
-DSIGN_BINARY=OFF \
62+
-DCMAKE_BUILD_TYPE:STRING="${{ inputs.target }}" \
63+
-DFIRMWARE_TYPE="${{ inputs.firmware }}" \
64+
-DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF \
65+
-DCMAKE_BUILD_PLATFORM:STRING="Device" \
66+
-DVENDOR="${{ inputs.vendor }}" \
67+
-G "Ninja" .
68+
69+
ninja -C "${BUILD_DIR}"
70+
71+
cd ..
72+
73+
mkdir -p build
74+
75+
cp x1_wallet_firmware/"${BUILD_DIR}"/${{ inputs.vendor }}-*.* ./build/
76+
77+
- name: Archive Build Artifacts (${{ inputs.vendor }}-${{ inputs.coin_support_variant }})
78+
uses: actions/upload-artifact@v4
79+
with:
80+
name: ${{ inputs.firmware }}-${{ inputs.target }}-${{ inputs.vendor }}-${{ inputs.coin_support_variant }}-outputs
81+
path: build

.github/workflows/publish-docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,4 @@ jobs:
2626
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
2727
AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
2828
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
29-
run: aws s3 cp ./doxygen/html s3://docs-x1.cypherock.com --recursive
29+
run: aws s3 cp ./doxygen/html s3://docs-x1.cypherock.com --recursive

.github/workflows/version-check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,4 @@ jobs:
2424
version0=$(git show ${SHA_BASE}:version.txt | grep firmware | cut -f 2-2 -d '=' | awk -F ':' '{ print $1*2**24 + $2*2**16 + $3*2**8 + $4 }')
2525
version1=$(git show ${SHA_HEAD}:version.txt | grep firmware | cut -f 2-2 -d '=' | awk -F ':' '{ print $1*2**24 + $2*2**16 + $3*2**8 + $4 }')
2626
echo $version0:$version1
27-
if [[ $version0 > $version1 ]]; then echo -e "Version downgrade detected\nfrom $version0 to $version1\n"; exit 1; fi
27+
if [[ $version0 > $version1 ]]; then echo -e "Version downgrade detected\nfrom $version0 to $version1\n"; exit 1; fi

CMakeLists.txt

Lines changed: 73 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,97 @@
11
cmake_minimum_required(VERSION 3.19.0)
22
set(CMAKE_MESSAGE_LOG_LEVEL debug)
33

4-
if("${CMAKE_BUILD_PLATFORM}" STREQUAL "Device")
5-
message("Device platform selected")
6-
set(CMAKE_TOOLCHAIN_FILE utilities/cmake/arm-none-eabi-gcc.cmake)
7-
set(PROJECT Cypherock-${FIRMWARE_TYPE})
8-
elseif("${CMAKE_BUILD_PLATFORM}" STREQUAL "Simulator")
9-
message("Simulator platform selected")
10-
set(PROJECT Cypherock_Simulator)
11-
else()
12-
message(WARNING "No platform specified defaulting to Simulator. Specify using -DCMAKE_BUILD_PLATFORM=<Type> Type can be Device or Simulator")
13-
set(PROJECT Cypherock_Simulator)
14-
endif()
15-
16-
# Replace this with actual vendors
4+
# Add vendor specific compile definitions
175
if ("${VENDOR}" STREQUAL "Odix")
6+
message("Vendor Odix")
187
add_compile_definitions(VENDOR_NAME="Odix Wallet")
198
add_compile_definitions(VENDOR_COMPANION_APP="Odix")
209
add_compile_definitions(VENDOR_DEVICE_NAME="Odix Wallet")
2110
add_compile_definitions(VENDOR_COMPANY_NAME"Odix")
22-
set(PROJECT ${PROJECT}-Odix)
11+
set(PROJECT Odix)
2312
add_compile_definitions(VENDOR_ID=1)
2413
else()
14+
message("Vendor Cypherock")
2515
add_compile_definitions(VENDOR_NAME="Cypherock X1 Wallet")
2616
add_compile_definitions(VENDOR_COMPANION_APP="cySync")
2717
add_compile_definitions(VENDOR_DEVICE_NAME="Cypherock X1")
2818
add_compile_definitions(VENDOR_COMPANY_NAME"Cypherock")
2919
add_compile_definitions(VENDOR_ID=0)
20+
set(PROJECT Cypherock)
21+
endif()
22+
23+
if("${CMAKE_BUILD_PLATFORM}" STREQUAL "Device")
24+
message("Device platform selected")
25+
set(CMAKE_TOOLCHAIN_FILE utilities/cmake/arm-none-eabi-gcc.cmake)
26+
set(PROJECT ${PROJECT}-${FIRMWARE_TYPE})
27+
elseif("${CMAKE_BUILD_PLATFORM}" STREQUAL "Simulator")
28+
message("Simulator platform selected")
29+
set(PROJECT ${PROJECT}_Simulator)
30+
else()
31+
message(WARNING "No platform specified defaulting to Simulator. Specify using -DCMAKE_BUILD_PLATFORM=<Type> Type can be Device or Simulator")
32+
set(PROJECT ${PROJECT}_Simulator)
3033
endif()
3134

35+
# Define all options upfront, including BTC_ONLY
36+
OPTION(DEV_SWITCH "Additional features/logs to aid developers" OFF)
37+
OPTION(UNIT_TESTS_SWITCH "Compile build for main firmware or unit tests" OFF)
38+
OPTION(BTC_ONLY "Build firmware for Bitcoin only" OFF)
39+
40+
# Append -BTC to project name if BTC_ONLY is enabled
41+
if (BTC_ONLY)
42+
set(PROJECT ${PROJECT}-BTC)
43+
endif()
44+
45+
# Make static functions testable via unit-tests
46+
IF(UNIT_TESTS_SWITCH)
47+
add_compile_definitions( STATIC= )
48+
ELSE()
49+
add_compile_definitions( STATIC=static )
50+
ENDIF(UNIT_TESTS_SWITCH)
51+
52+
# Now define the project with its final name, after all modifications
3253
project(${PROJECT})
3354

3455
# python is needed for compiling proto files using nanopb
3556
# also for generating & appending firmware signature headers
3657
find_package( Python3 REQUIRED COMPONENTS Interpreter )
37-
execute_process(COMMAND sh utilities/proto/generate-protob.sh WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND_ERROR_IS_FATAL ANY )
58+
59+
# Conditionally generate protobuf files based on the BTC_ONLY option
60+
IF(BTC_ONLY)
61+
message(STATUS "Generating protobufs for BTC-only build")
62+
execute_process(COMMAND bash utilities/proto/generate-protob.sh --btc-only
63+
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
64+
COMMAND_ERROR_IS_FATAL ANY)
65+
ELSE()
66+
message(STATUS "Generating protobufs for full build")
67+
execute_process(COMMAND bash utilities/proto/generate-protob.sh
68+
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
69+
COMMAND_ERROR_IS_FATAL ANY)
70+
ENDIF()
3871

3972
# Populate version.c
4073
include(utilities/cmake/version.cmake)
4174

4275
file(GLOB_RECURSE PROTO_SRCS "generated/proto/*.*")
43-
list(APPEND PROTO_SRCS "vendor/nanopb/pb_common.c" "vendor/nanopb/pb_decode.c" "vendor/nanopb/pb_encode.c" "vendor/nanopb/pb_common.h" "vendor/nanopb/pb_decode.h" "vendor/nanopb/pb_encode.h" "vendor/nanopb/pb.h")
76+
list(APPEND PROTO_SRCS
77+
"vendor/nanopb/pb_common.c"
78+
"vendor/nanopb/pb_decode.c"
79+
"vendor/nanopb/pb_encode.c"
80+
"vendor/nanopb/pb_common.h"
81+
"vendor/nanopb/pb_decode.h"
82+
"vendor/nanopb/pb_encode.h"
83+
"vendor/nanopb/pb.h"
84+
)
4485

45-
list (APPEND MINI_GMP_SRCS "vendor/mini-gmp/mini-gmp-helpers.c" "vendor/mini-gmp/mini-gmp.c")
46-
list (APPEND POSEIDON_SRCS "vendor/poseidon/sources/f251.c" "vendor/poseidon/sources/poseidon.c" "vendor/poseidon/sources/poseidon_rc.c")
47-
48-
OPTION(DEV_SWITCH "Additional features/logs to aid developers" OFF)
49-
OPTION(UNIT_TESTS_SWITCH "Compile build for main firmware or unit tests" OFF)
50-
51-
# Make static functions testable via unit-tests
52-
IF(UNIT_TESTS_SWITCH)
53-
add_compile_definitions( STATIC= )
54-
ELSE()
55-
add_compile_definitions( STATIC=static )
56-
ENDIF(UNIT_TESTS_SWITCH)
86+
list (APPEND MINI_GMP_SRCS
87+
"vendor/mini-gmp/mini-gmp-helpers.c"
88+
"vendor/mini-gmp/mini-gmp.c"
89+
)
90+
list (APPEND POSEIDON_SRCS
91+
"vendor/poseidon/sources/f251.c"
92+
"vendor/poseidon/sources/poseidon.c"
93+
"vendor/poseidon/sources/poseidon_rc.c"
94+
)
5795

5896
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
5997
add_compile_definitions(FIRMWARE_HASH_CALC=1)
@@ -63,12 +101,17 @@ endif()
63101

64102
if("${CMAKE_BUILD_PLATFORM}" STREQUAL "Device")
65103
include(utilities/cmake/firmware/firmware.cmake)
66-
else()
104+
else() # Simulator or default
67105
include(utilities/cmake/simulator/simulator.cmake)
68106
endif()
69107

70108
# Include nanopb source headers
71-
target_include_directories( ${EXECUTABLE} PRIVATE vendor/nanopb generated/proto vendor/mini-gmp vendor/poseidon/sources)
109+
target_include_directories( ${EXECUTABLE} PRIVATE
110+
vendor/nanopb
111+
generated/proto
112+
vendor/mini-gmp
113+
vendor/poseidon/sources
114+
)
72115

73116
# Enable support for dynamically allocated fields in nanopb
74117
# Ref: vendor/nanopb/pb.h

0 commit comments

Comments
 (0)