mirror of
https://github.com/LNH-team/dspico-firmware.git
synced 2026-06-02 17:26:50 +02:00
Fix compatibility issues in compile.sh
* Use '/usr/bin/env bash', because not all distros put bash in /bin (some in /usr/bin), and with NixOS it's even more complicated. This should make it compatible across all distros. * The 'set -euo pipefail' makes the script exit immediately on error, otherwise it tries to continue e.g. running make when the CMake configuration failed. * Change to the directory the script sits in, in case it is ever called from another directory. * With CMake 4.x, declaring compatibility with version 3.5 straight up errors. Passing the environment variable fixes this issue. See https://gitlab.kitware.com/cmake/cmake/-/issues/26613 and https://gitlab.kitware.com/cmake/cmake/-/issues/26698 for more info. * CMake doesn't always emit Makefiles by default, so use `cmake --build' to build using whatever method CMake will choose. * Compile using all available cores, instead of only using a single CPU core.
This commit is contained in:
25
compile.sh
Normal file → Executable file
25
compile.sh
Normal file → Executable file
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
###############################################################
|
###############################################################
|
||||||
# File: compile.sh
|
# File: compile.sh
|
||||||
# Creation Date: 10/11/2022 (DD/MM/YYYY)
|
# Creation Date: 10/11/2022 (DD/MM/YYYY)
|
||||||
@@ -9,26 +9,33 @@
|
|||||||
# Copyright: LNH team (c) 2022, all rights reserved
|
# Copyright: LNH team (c) 2022, all rights reserved
|
||||||
################################################################
|
################################################################
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# change directory to the one containing the source code project
|
||||||
|
cd "$(dirname "$(realpath "$0")")"
|
||||||
|
|
||||||
|
# check available CMake version
|
||||||
echo "[>] Configuring project with CMake.."
|
echo "[>] Configuring project with CMake.."
|
||||||
|
|
||||||
# Clean previous build/ folders if they exist
|
# Clean previous build/ folders if they exist
|
||||||
rm -rf build/
|
rm -rf build/ || true
|
||||||
mkdir build
|
mkdir -p build
|
||||||
|
|
||||||
# Export the SDK Path before running CMAKE
|
|
||||||
export PICO_SDK_PATH=../pico-sdk
|
|
||||||
|
|
||||||
# Specify CMAKE where we want the build tree to be at.
|
# Specify CMAKE where we want the build tree to be at.
|
||||||
# In our case, the build/ directory.
|
# In our case, the build/ directory.
|
||||||
# The source directory will be . (the current directory,
|
# The source directory will be . (the current directory,
|
||||||
# where the CMakeLists.txt is located).
|
# where the CMakeLists.txt is located).
|
||||||
cmake -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo -B build/ .
|
PICO_SDK_PATH=../pico-sdk \
|
||||||
|
CMAKE_POLICY_VERSION_MINIMUM=3.5 \
|
||||||
|
cmake -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo \
|
||||||
|
-B build/ .
|
||||||
|
|
||||||
echo "[>] Building FIRMWARE: "
|
echo "[>] Building FIRMWARE: "
|
||||||
|
|
||||||
# Go and build the firmware
|
# Go and build the firmware
|
||||||
cd build
|
PICO_SDK_PATH=../pico-sdk \
|
||||||
make
|
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"
|
echo "[>] Build completed. Find the DSpico.uf2 file inside build/ folder"
|
||||||
|
|||||||
Reference in New Issue
Block a user