First Commit

This commit is contained in:
2025-11-18 14:18:26 -07:00
parent 33eb6e3707
commit 27277ec342
6106 changed files with 3571167 additions and 0 deletions

View File

@@ -0,0 +1,73 @@
#
# This file is part of KDDockWidgets.
#
# SPDX-FileCopyrightText: 2024 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
# Author: Sérgio Martins <sergio.martins@kdab.com>
#
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
#
# Contact KDAB at <info@kdab.com> for commercial licensing options.
# Dockerfile for qt6-asan GitHub Action
# Instructions for manual inspection:
# docker build -t kddw-qt6-asan .
# docker run -it -v /data/sources/kddockwidgets/:/kddockwidgets/ kddw-qt6-asan
# cd /kddockwidgets/
# cmake --preset=dev-asan6
# cd build-dev-asan6 && ninja
# ctest -j12
# To prepare an image for GitHub actions we import and export to remove layers
# so the image occupies less space:
# docker build -t kddw-qt6-asan .
# docker run -it kddw-qt6-asan # and exit
# docker ps # to check sha
# docker export -o mycontainer.tar <container_sha>
# docker import mycontainer.tar
# docker images # to check sha
# docker tag <image_sha> iamsergio/kddw-qt6-asan
# docker push iamsergio/kddw-qt6-asan
FROM ubuntu:24.04
MAINTAINER Sergio Martins (sergio.martins@kdab.com)
ENV TZ=Europe/Berlin
ENV LC_CTYPE=C.UTF-8
ENV PATH=$PATH:/Qt6/bin/
ENV LD_LIBRARY_PATH=/Qt6/lib/
ENV QT_QUICK_BACKEND=software
ENV LSAN_OPTIONS=detect_leaks=0
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt update
RUN apt install build-essential software-properties-common lld git cmake ninja-build \
mesa-common-dev libglu1-mesa-dev libglib2.0-dev libfontconfig \
libxkbcommon-dev mesa-utils libgl1-mesa-dev libglu1-mesa-dev \
libxslt-dev libspdlog-dev -y
RUN mkdir /sources/
RUN git clone https://code.qt.io/qt/qt5.git /sources/qt6
RUN cd /sources/qt6 && git switch 6.6 && perl init-repository --module-subset=qtbase,qtshadertools,qtdeclarative
# Build qtbase first, so we can delete its build dir to save space, as GitHub has storage limits
RUN mkdir /build/ && cd /build/ && /sources/qt6/qtbase/configure -prefix /Qt6/ -debug -sanitize address -- -DQT_BUILD_EXAMPLES=OFF
RUN cmake --build /build/ --parallel
RUN cmake --install /build/
RUN rm -rf /build/
# qtshadertools
RUN mkdir /build/ && cd /build/ && qt-cmake -G Ninja /sources/qt6/qtshadertools/
RUN cmake --build /build/ --parallel
RUN cmake --install /build/
RUN rm -rf /build/
# qtdeclarative
RUN mkdir /build/ && cd /build/ && qt-cmake -G Ninja /sources/qt6/qtdeclarative/
RUN cmake --build /build/ --parallel
RUN cmake --install /build/
RUN rm -rf /build/
RUN rm -rf /sources/