Skip to content

Commit

Permalink
making it possible to build the software inside a container
Browse files Browse the repository at this point in the history
  • Loading branch information
TooDissing committed Aug 10, 2022
1 parent b9d49d4 commit d718574
Show file tree
Hide file tree
Showing 3 changed files with 87 additions and 5 deletions.
28 changes: 28 additions & 0 deletions software/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
.gitignore
future-config
euphonium/.DS_Store
euphonium/*.d
euphonium/.idea
euphonium/.cache
euphonium/.cache/
euphonium/authBlob.json
euphonium/cmake-build-debug
euphonium/scripts-version
euphonium/wifi.config.json
euphonium/build/
euphonium/euphonium/protos
euphonium/euphonium/scripts/*.json
euphonium/euphonium/scripts/configuration/*.json
euphonium/targets/cli/build/*
euphonium/targets/esp32/*.gz
euphonium/targets/esp32/ota-checksum.txt
euphonium/targets/esp32/ota.bin
euphonium/targets/esp32/scripts_checksum.txt
euphonium/targets/esp32/scripts.tar
euphonium/targets/esp32/recovery/dependencies.lock
euphonium/targets/esp32/app/dependencies.lock
euphonium/targets/esp32/app/spiffs/*
euphonium/web/package-lock.json
euphonium/web/yarn.lock
euphonium/py/
euphonium/targets/esp32/recovery/build
38 changes: 38 additions & 0 deletions software/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
FROM espressif/idf:release-v4.4 AS base

ADD https://github.com/Kitware/CMake/releases/download/v3.20.0/cmake-3.20.0.tar.gz /tmp
WORKDIR /tmp
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update \
&& apt-get install -y build-essential libssl-dev \
libasound-dev libavahi-compat-libdnssd-dev
RUN tar -zxvf cmake-3.20.0.tar.gz \
&& cd cmake-3.20.0 \
&& ./bootstrap \
&& make -j$(nproc) \
&& make install \
&& rm -fr /tmp/cmake-3.20.0 /tmp/cmake-3.20.0.tar.gz

## Install PortAudio
ADD http://files.portaudio.com/archives/pa_stable_v190700_20210406.tgz /tmp
RUN tar -zxvf /tmp/pa_stable_v190700_20210406.tgz \
&& cd /tmp/portaudio/build \
&& cmake .. \
&& make -j$(nproc) \
&& make install \
&& rm -fr /tmp/portaudio /tmp/pa_stable_v190700_20210406.tgz

FROM base AS build

WORKDIR /workspace

## Install Python dependencies
COPY euphonium/requirements.txt euphonium/requirements.txt
RUN pip install -r euphonium/requirements.txt

COPY . .
RUN mkdir -p euphonium/targets/cli/build \
&& make -j$(nproc) cli
RUN . /opt/esp/idf/export.sh \
&& pip install -r euphonium/requirements.txt \
&& make esp32
26 changes: 21 additions & 5 deletions software/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,30 @@ else
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Linux)
COPY_FLAGS += -u
CMAKE_BUILD_ARGS += -DCMAKE_CXX_STANDARD_LIBRARIES="-lX11 -ldl"
CMAKE_BUILD_ARGS += -DCMAKE_CXX_STANDARD_LIBRARIES="-ldl"
endif
ifeq ($(UNAME_S),Darwin)
#COPY_FLAGS += -u
endif
endif

copy-config:
@echo "Copying local cofig"
cp ${COPY_FLAGS} config/* euphonium/
#esp32-cmake-config:
# cd euphonium/targets/esp32/recovery; cmake .;

ifeq ($(origin IDF_PATH),undefined)
esp32: copy-config
bash -c "source ${IDF_HOME}/export.sh; cd euphonium/targets/esp32; sh generate_full_build.sh;"
else
esp32: copy-config
cd euphonium/targets/esp32; sh generate_full_build.sh;
endif

copy-config:
@echo "Copying local cofig"
cp ${COPY_FLAGS} config/* euphonium/

cli: copy-config
cd euphonium/targets/cli/build; cmake ${CMAKE_BUILD_ARGS} ..;
mkdir -p euphonium/targets/cli/build; cd euphonium/targets/cli/build; cmake ${CMAKE_BUILD_ARGS} ..;
@$(MAKE) -C euphonium/targets/cli/build

flash-all: esp32
Expand All @@ -49,3 +57,11 @@ monitor:

flash-and-monitor: flash-all monitor
flash-spiffs-and-monitor: flash-spiffs monitor

web-ide:
cd euphonium/web-ide; npm install; npm run build;

start-ide: web-ide
cd euphonium/web-ide; npm run dev;

all: clean cli esp32 web-ide

0 comments on commit d718574

Please sign in to comment.