This build the images in order to cross-compile on a X86_64 platform JUCE projects (especially https://github.com/FundamentalFrequency/LMN-3-DAW). This can be used on a host without invasive dependencies or in a CI. The following containers will compile binaries for those target plateforms:
| images | target arch | target os |
|---|---|---|
| iamdey/lmn-3-daw-docker-compiler:armv7 | armv7 | Raspberry Pi OS 32bits (bookworm) |
| iamdey/lmn-3-daw-docker-compiler:arm64 | arm64 | Raspberry Pi OS 64bits (bookworm) |
| iamdey/lmn-3-daw-docker-compiler:amd64 | amd64 | Ubuntu 64bits (22.04) |
Note: Target OS is an indication on which OS LMN-3 will run and the minimum version required of glibc dependency.
According to the target of the LMN-3-DAW to build:
# install armv7 and arm64 plateforms and build base image
make prepare
# build the image of the compiler for armv7
make build_armv7According to the target and version of LMN-3-DAW:
Don't forget to remove completely the build directory when changing the target arch.
cd LMN-3-DAW
docker run --rm -v $PWD:/source iamdey/lmn-3-daw-docker-compiler:armv7 /bin/bash -c '
cd /source
cmake -B build -DCMAKE_BUILD_TYPE=Debug -DPACKAGE_TESTS=OFF -DCMAKE_TOOLCHAIN_FILE=/toolchain/toolchain.cmake
cmake --build build -j8
'cd LMN-3-DAW
docker run --rm -v $PWD:/source iamdey/lmn-3-daw-docker-compiler:arm64 /bin/bash -c '
cd /source
cmake -B build -DCMAKE_BUILD_TYPE=Debug -DPACKAGE_TESTS=OFF -DCMAKE_TOOLCHAIN_FILE=/toolchain/toolchain.cmake
cmake --build build -j8
'cd LMN-3-DAW
docker run --rm -v $PWD:/source iamdey/lmn-3-daw-docker-compiler:amd64 /bin/bash -c '
cd /source
cmake -B build -DCMAKE_BUILD_TYPE=Debug -DPACKAGE_TESTS=OFF -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_FLAGS=-fuse-ld=lld
cmake --build build -j8
'This repository has been heavily inspired by https://github.com/FundamentalFrequency/juce-arm-linux-cross-compiler by Stone Preston.