mudlet/.devcontainer/Dockerfile
Stephen Lyons 68aa3e63cf
Infrastructure: update edbee-lib submodule & use system oniguruma if present (#9156)
#### Brief overview of PR changes/additions
With edbee-lib being revised to use a system oniguruma library instead
of compiling it from bundled source code (a change suggested by myself)
update our build processes to install the required dependency in order
for the CMake build process to make use of this change.

#### Motivation for adding to Mudlet
To make edbee-lib, and thus Mudlet, use a system provided library if it
is available rather than building it from source. This should decrease
the time to compile the application a little and to improve the
situation for packagers of the Mudlet application.

#### Other info (issues closed, discussion etc)
The change required a `FindONIGURUMA.cmake` file and I created one from
our `FindPUGIXML.cmake` file to suggest upstream to the `edbee-lib`
project, so that it could use the file when its license is MIT whereas
the Mudlet one is GPU 2.0 or later and not compatible in that direction
I have negotiated with our creators of the latter file to release it
with a public domain (a.k.a. Creative Commons Zero) waiver and I have
added suitable header text to both files.

---------

Signed-off-by: Stephen Lyons <slysven@virginmedia.com>
2026-04-06 16:28:46 +01:00

30 lines
1.7 KiB
Docker

# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.208.0/containers/cpp/.devcontainer/base.Dockerfile
# [Choice] Debian / Ubuntu version: debian-13, debian-12, debian-11, ubuntu-24.04, ubuntu-22.04
ARG VARIANT=debian-13
FROM mcr.microsoft.com/devcontainers/cpp:${VARIANT}
ENV DBUS_SESSION_BUS_ADDRESS="autolaunch:" DISPLAY=":1" LANG="en_US.UTF-8" LANGUAGE="en_US.UTF-8"
# Add deb-multimedia repo for libpcre3-dev (not available in Debian 13+)
RUN echo "deb http://www.deb-multimedia.org trixie main" >> /etc/apt/sources.list \
&& apt-get update -oAcquire::AllowInsecureRepositories=true \
&& apt-get install -y --allow-unauthenticated deb-multimedia-keyring \
&& rm -rf /var/lib/apt/lists/*
# Install C++ dependencies
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
&& apt-get -y install --no-install-recommends build-essential git libglu1-mesa-dev \
libgl1-mesa-dev liblua5.1-0-dev zlib1g-dev libhunspell-dev libpcre3-dev libpcre2-dev \
libzip-dev libboost-dev libyajl-dev libpulse-dev libsecret-1-dev lua-rex-pcre2 \
lua-filesystem lua-zip lua-sql-sqlite3 libxkbcommon-dev libonig-dev qmake6-bin \
qt6-base-dev libqt6opengl6-dev qt6-multimedia-dev qt6-tools-dev qtkeychain-qt6-dev \
luarocks ccache libpugixml-dev libqt6core5compat6-dev qt6-speech-dev ninja-build cmake \
libzstd-dev libsqlite3-dev libassimp-dev firefox-esr \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Install Lua dependencies (lua-sql-sqlite3 and lua-rex-pcre2 are already installed via apt)
RUN luarocks install luautf8 \
&& luarocks install lua-yajl \
&& luarocks install lrexlib-pcre \
&& luarocks install busted