74 lines
2.5 KiB
Plaintext
74 lines
2.5 KiB
Plaintext
#
|
|
# 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/
|