Files
dspico-firmware/compile.sh
2025-12-10 15:30:31 +01:00

50 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
###############################################################
# File: compile.sh
# Creation Date: 10/11/2022 (DD/MM/YYYY)
# Description: All-in-one script to update, setup and
# build the DSpico firmware.
#
# Author: pedro-javierf
# Copyright: LNH team (c) 2022, all rights reserved
################################################################
set -euo pipefail
if command -v nproc >/dev/null 2>&1; then
NPROC="$(nproc)"
else
# macOS doesn't have nproc(1). using getconf here is also more general than
# using sysctl
NPROC="$(getconf _NPROCESSORS_ONLN)"
fi
# change directory to the one containing the source code project
cd "$(dirname "$(realpath "$0")")"
# check available CMake version
echo "[>] Configuring project with CMake.."
# Clean previous build/ folders if they exist
rm -rf build/ || true
mkdir -p build
# Specify CMAKE where we want the build tree to be at.
# In our case, the build/ directory.
# The source directory will be . (the current directory,
# where the CMakeLists.txt is located).
PICO_SDK_PATH=../pico-sdk \
CMAKE_POLICY_VERSION_MINIMUM=3.5 \
cmake -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo \
-B build/ .
echo "[>] Building FIRMWARE: "
# Go and build the firmware
PICO_SDK_PATH=../pico-sdk \
CMAKE_POLICY_VERSION_MINIMUM=3.5 \
CMAKE_BUILD_PARALLEL_LEVEL="${NPROC}" \
cmake --build build
echo "[>] Build completed. Find the DSpico.uf2 file inside build/ folder"