Compare commits
19 Commits
2604-proce
...
test-docu-
| Author | SHA1 | Date | |
|---|---|---|---|
| eb429cf014 | |||
| 6cd2ad4f9e | |||
| e046384d78 | |||
| 030412f244 | |||
| 8589092216 | |||
| 799e5c55ff | |||
| 1831e65c6c | |||
| d7c8336958 | |||
| 1d4df8d2ec | |||
| 048416898e | |||
| d79e4969ac | |||
| 5244e8066a | |||
| 1d859a0923 | |||
| 331948b95a | |||
| 7db0e0dc9e | |||
| e9b7417a21 | |||
| f1eba28dc1 | |||
| 839b1c755d | |||
| 07b032719d |
124
.gitea/workflows/build_and_test.yml
Normal file
124
.gitea/workflows/build_and_test.yml
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
name: Build Packages
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- '**'
|
||||||
|
tags:
|
||||||
|
- '**'
|
||||||
|
pull_request:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-rpm:
|
||||||
|
name: build:rpm (${{ matrix.distro }})
|
||||||
|
runs-on: ${{ matrix.runner }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- runner: jfjoch_rocky8
|
||||||
|
distro: rocky8
|
||||||
|
cmake_flags: -DJFJOCH_INSTALL_DRIVER_SOURCE=ON -DJFJOCH_VIEWER_BUILD=ON
|
||||||
|
- runner: jfjoch_rocky8
|
||||||
|
distro: rocky8_sls9
|
||||||
|
cmake_flags: -DJFJOCH_INSTALL_DRIVER_SOURCE=OFF -DJFJOCH_VIEWER_BUILD=OFF -DSLS9=ON
|
||||||
|
- runner: jfjoch_rocky9
|
||||||
|
distro: rocky9
|
||||||
|
cmake_flags: -DJFJOCH_INSTALL_DRIVER_SOURCE=ON -DJFJOCH_VIEWER_BUILD=ON
|
||||||
|
- runner: jfjoch_ubuntu2204
|
||||||
|
distro: ubuntu2204
|
||||||
|
cmake_flags: -DJFJOCH_INSTALL_DRIVER_SOURCE=ON -DJFJOCH_VIEWER_BUILD=ON
|
||||||
|
- runner: jfjoch_ubuntu2404
|
||||||
|
distro: ubuntu2404
|
||||||
|
cmake_flags: -DJFJOCH_INSTALL_DRIVER_SOURCE=ON -DJFJOCH_VIEWER_BUILD=ON
|
||||||
|
- runner: jfjoch_rocky8
|
||||||
|
distro: rocky8_nocuda
|
||||||
|
cmake_flags: -DJFJOCH_INSTALL_DRIVER_SOURCE=OFF -DJFJOCH_VIEWER_BUILD=OFF -DJFJOCH_USE_CUDA=OFF
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Build packages
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
mkdir -p build
|
||||||
|
cd build
|
||||||
|
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ${{ matrix.cmake_flags }} ..
|
||||||
|
ninja frontend
|
||||||
|
ninja -j16 package
|
||||||
|
shopt -s nullglob
|
||||||
|
files=( *.rpm *.deb )
|
||||||
|
if (( ${#files[@]} )); then
|
||||||
|
mv "${files[@]}" ..
|
||||||
|
else
|
||||||
|
echo "No packages found to move"
|
||||||
|
fi
|
||||||
|
python-client:
|
||||||
|
name: Generate python client
|
||||||
|
runs-on: jfjoch_rocky8
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Build python client
|
||||||
|
shell: bash
|
||||||
|
run: bash gen_python_client.sh
|
||||||
|
documentation:
|
||||||
|
name: Build documentation
|
||||||
|
runs-on: jfjoch_rocky8
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Build documentation
|
||||||
|
shell: bash
|
||||||
|
run: bash make_doc.sh
|
||||||
|
- name: Upload documentation
|
||||||
|
if: github.ref_type == 'tag'
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
git checkout --orphan gitea-pages
|
||||||
|
git reset --hard
|
||||||
|
# Remove everything except .git and public
|
||||||
|
git clean -fdx -e public -e .git
|
||||||
|
|
||||||
|
# Move public contents to root and remove the now-empty public dir
|
||||||
|
shopt -s dotglob nullglob
|
||||||
|
mv public/* .
|
||||||
|
rm -rf public
|
||||||
|
git add .
|
||||||
|
git commit -m "Deploy site"
|
||||||
|
git push -f https://${{secrets.GITHUB_TOKEN}}@gitea.psi.ch/${{ github.repository }}.git gitea-pages
|
||||||
|
gpu-test:
|
||||||
|
name: GPU test
|
||||||
|
runs-on: jfjoch_rocky8
|
||||||
|
container:
|
||||||
|
image: gitea.psi.ch/leonarski_f/jfjoch_rocky8:2509
|
||||||
|
options: --gpus all
|
||||||
|
steps:
|
||||||
|
- name: List GPUs
|
||||||
|
shell: bash
|
||||||
|
run: nvidia-smi
|
||||||
|
unit-tests:
|
||||||
|
name: Unit tests
|
||||||
|
runs-on: jfjoch_rocky8
|
||||||
|
container:
|
||||||
|
image: gitea.psi.ch/leonarski_f/jfjoch_rocky8:2509
|
||||||
|
options: --gpus all
|
||||||
|
timeout-minutes: 90
|
||||||
|
env:
|
||||||
|
CTEST_OUTPUT_ON_FAILURE: '1'
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Build tests
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
mkdir -p build
|
||||||
|
cd build
|
||||||
|
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ..
|
||||||
|
ninja -j48 jfjoch_test jfjoch_hdf5_test
|
||||||
|
- name: Run unit tests
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
cd build/tests
|
||||||
|
./jfjoch_test
|
||||||
|
- name: Run hdf5 test
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
cd build/tools
|
||||||
|
./jfjoch_hdf5_test ../../tests/test_data/compression_benchmark.h5
|
||||||
119
CMakeLists.txt
119
CMakeLists.txt
@@ -198,48 +198,99 @@ IF (NOT JFJOCH_WRITER_ONLY)
|
|||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
||||||
SET(CMAKE_INSTALL_PREFIX /opt/jfjoch CACHE PATH "Default directory" FORCE)
|
SET(CMAKE_INSTALL_PREFIX /opt/jfjoch CACHE PATH "Default directory" FORCE)
|
||||||
ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
||||||
|
|
||||||
# Set Package Name
|
# Set Package Name
|
||||||
# Initialize CPACK_COMPONENTS_ALL with common components
|
# Initialize CPACK_COMPONENTS_ALL with common components
|
||||||
SET(CPACK_COMPONENTS_ALL jfjoch writer)
|
set(CPACK_COMPONENTS_ALL jfjoch writer)
|
||||||
IF (SLS9)
|
if (SLS9)
|
||||||
SET(CPACK_PACKAGE_NAME "jfjoch-slsdet9")
|
set(CPACK_PACKAGE_NAME "jfjoch-slsdet9")
|
||||||
ELSE()
|
else()
|
||||||
SET(CPACK_PACKAGE_NAME "jfjoch")
|
set(CPACK_PACKAGE_NAME "jfjoch")
|
||||||
ENDIF()
|
endif()
|
||||||
SET(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION /usr/src /usr/share /usr/share/dbus-1 /usr/share/dbus-1/services)
|
|
||||||
|
|
||||||
IF (JFJOCH_INSTALL_DRIVER_SOURCE)
|
# Add optional components
|
||||||
LIST(APPEND CPACK_COMPONENTS_ALL driver-dkms)
|
if (JFJOCH_INSTALL_DRIVER_SOURCE)
|
||||||
SET(CPACK_RPM_DRIVER-DKMS_PACKAGE_REQUIRES "dkms, gcc, bash, sed")
|
list(APPEND CPACK_COMPONENTS_ALL driver-dkms)
|
||||||
SET(CPACK_RPM_DRIVER-DKMS_PACKAGE_ARCHITECTURE "noarch")
|
else()
|
||||||
SET(CPACK_RPM_DRIVER-DKMS_POST_INSTALL_SCRIPT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/fpga/pcie_driver/postinstall.sh)
|
set(CPACK_COMPONENTS_ALL jfjoch writer)
|
||||||
SET(CPACK_RPM_DRIVER-DKMS_PRE_UNINSTALL_SCRIPT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/fpga/pcie_driver/preuninstall.sh)
|
endif()
|
||||||
ELSE()
|
|
||||||
SET(CPACK_COMPONENTS_ALL jfjoch writer)
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
IF (JFJOCH_VIEWER_BUILD)
|
if (JFJOCH_VIEWER_BUILD)
|
||||||
LIST(APPEND CPACK_COMPONENTS_ALL viewer)
|
list(APPEND CPACK_COMPONENTS_ALL viewer)
|
||||||
ENDIF()
|
endif()
|
||||||
|
|
||||||
SET(CPACK_GENERATOR RPM)
|
# Common metadata
|
||||||
SET(CPACK_RPM_COMPONENT_INSTALL ON)
|
set(CPACK_PACKAGE_CONTACT "Filip Leonarski <filip.leonarski@psi.ch>")
|
||||||
SET(CPACK_RPM_MAIN_COMPONENT jfjoch)
|
set(CPACK_PACKAGE_VENDOR "Paul Scherrer Institut")
|
||||||
SET(CPACK_RPM_PACKAGE_RELEASE_DIST ON)
|
set(CPACK_PACKAGE_VERSION ${JFJOCH_VERSION})
|
||||||
SET(CPACK_RPM_FILE_NAME "RPM-DEFAULT")
|
|
||||||
SET(CPACK_RPM_PACKAGE_VERSION ${JFJOCH_VERSION})
|
|
||||||
SET(CPACK_RPM_PACKAGE_RELEASE 1)
|
|
||||||
SET(CPACK_RPM_PACKAGE_SUMMARY "Jungfraujoch data acquisition system")
|
|
||||||
SET(CPACK_RPM_PACKAGE_DESCRIPTION "Jungfraujoch")
|
|
||||||
|
|
||||||
SET(CPACK_PACKAGE_CONTACT "Filip Leonarski <filip.leonarski@psi.ch>")
|
# OS-aware packaging: DEB on Debian/Ubuntu, RPM on RHEL/Rocky
|
||||||
# Set The Vendor Name
|
if (EXISTS "/etc/debian_version")
|
||||||
SET(CPACK_PACKAGE_VENDOR "Paul Scherrer Institut")
|
set(CPACK_PACKAGE_LICENSE "GPL-3.0-only")
|
||||||
|
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE")
|
||||||
|
|
||||||
|
# Debian/Ubuntu: .deb with components
|
||||||
|
set(CPACK_GENERATOR "DEB")
|
||||||
|
set(CPACK_DEB_COMPONENT_INSTALL ON)
|
||||||
|
set(CPACK_DEBIAN_MAIN_COMPONENT jfjoch)
|
||||||
|
set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT")
|
||||||
|
|
||||||
|
# Enable automatic shlib dependency discovery
|
||||||
|
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
|
||||||
|
|
||||||
|
# Optional DEB metadata (tune as needed)
|
||||||
|
set(CPACK_DEBIAN_PACKAGE_SECTION "science")
|
||||||
|
# set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://example.org/jfjoch")
|
||||||
|
|
||||||
|
# DKMS component (maps from RPM settings)
|
||||||
|
if (JFJOCH_INSTALL_DRIVER_SOURCE)
|
||||||
|
# Dependencies and arch for the DKMS component
|
||||||
|
# Note: component name "driver-dkms" maps to variable suffix "DRIVER_DKMS"
|
||||||
|
set(CPACK_DEBIAN_DRIVER_DKMS_PACKAGE_DEPENDS "dkms, gcc, bash, sed")
|
||||||
|
set(CPACK_DEBIAN_DRIVER_DKMS_PACKAGE_ARCHITECTURE "all")
|
||||||
|
|
||||||
|
# Provide Debian control scripts (postinst/prerm).
|
||||||
|
# We rename existing scripts to Debian control names at configure time.
|
||||||
|
set(_dkms_ctrl_dir "${CMAKE_CURRENT_BINARY_DIR}/cpack-debian-driver-dkms")
|
||||||
|
file(MAKE_DIRECTORY "${_dkms_ctrl_dir}")
|
||||||
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fpga/pcie_driver/postinstall.sh
|
||||||
|
${_dkms_ctrl_dir}/postinst COPYONLY)
|
||||||
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fpga/pcie_driver/preuninstall.sh
|
||||||
|
${_dkms_ctrl_dir}/prerm COPYONLY)
|
||||||
|
set(CPACK_DEBIAN_DRIVER_DKMS_PACKAGE_CONTROL_EXTRA
|
||||||
|
"${_dkms_ctrl_dir}/postinst;${_dkms_ctrl_dir}/prerm")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
elseif (EXISTS "/etc/redhat-release")
|
||||||
|
# RHEL/Rocky: .rpm with components (original behavior)
|
||||||
|
set(CPACK_GENERATOR "RPM")
|
||||||
|
set(CPACK_RPM_COMPONENT_INSTALL ON)
|
||||||
|
set(CPACK_RPM_MAIN_COMPONENT jfjoch)
|
||||||
|
set(CPACK_RPM_PACKAGE_RELEASE_DIST ON)
|
||||||
|
set(CPACK_RPM_FILE_NAME "RPM-DEFAULT")
|
||||||
|
set(CPACK_RPM_PACKAGE_VERSION ${JFJOCH_VERSION})
|
||||||
|
set(CPACK_RPM_PACKAGE_RELEASE 1)
|
||||||
|
set(CPACK_RPM_PACKAGE_SUMMARY "Jungfraujoch data acquisition system")
|
||||||
|
set(CPACK_RPM_PACKAGE_DESCRIPTION "Jungfraujoch")
|
||||||
|
set(CPACK_RPM_PACKAGE_LICENSE "GPLv3")
|
||||||
|
set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION
|
||||||
|
/usr/src /usr/share /usr/share/dbus-1 /usr/share/dbus-1/services)
|
||||||
|
|
||||||
|
# DKMS component scripts and requirements for RPM
|
||||||
|
if (JFJOCH_INSTALL_DRIVER_SOURCE)
|
||||||
|
set(CPACK_RPM_DRIVER-DKMS_PACKAGE_REQUIRES "dkms, gcc, bash, sed")
|
||||||
|
set(CPACK_RPM_DRIVER-DKMS_PACKAGE_ARCHITECTURE "noarch")
|
||||||
|
set(CPACK_RPM_DRIVER-DKMS_POST_INSTALL_SCRIPT_FILE
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/fpga/pcie_driver/postinstall.sh)
|
||||||
|
set(CPACK_RPM_DRIVER-DKMS_PRE_UNINSTALL_SCRIPT_FILE
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/fpga/pcie_driver/preuninstall.sh)
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
# Fallback if OS is unknown
|
||||||
|
set(CPACK_GENERATOR "TGZ")
|
||||||
|
endif()
|
||||||
|
|
||||||
# Set The License Information
|
|
||||||
SET(CPACK_RPM_PACKAGE_LICENSE "GPLv3")
|
|
||||||
|
|
||||||
INCLUDE(CPack)
|
INCLUDE(CPack)
|
||||||
|
|||||||
128
docker/rocky8/Dockerfile
Normal file
128
docker/rocky8/Dockerfile
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
FROM nvidia/cuda:12.9.1-devel-rockylinux8
|
||||||
|
LABEL authors="leonarski_f"
|
||||||
|
|
||||||
|
ARG OPENSSL_VERSION=3.3.2
|
||||||
|
ARG QT_VERSION=6.9.0
|
||||||
|
ARG NODE_MAJOR=22
|
||||||
|
ARG EIGEN_TAG=3.4.0
|
||||||
|
|
||||||
|
# Update base and install common utilities
|
||||||
|
RUN dnf -y update && \
|
||||||
|
dnf -y install --enablerepo=devel \
|
||||||
|
dnf-plugins-core \
|
||||||
|
epel-release \
|
||||||
|
git \
|
||||||
|
which \
|
||||||
|
ca-certificates \
|
||||||
|
wget \
|
||||||
|
tar \
|
||||||
|
xz \
|
||||||
|
make \
|
||||||
|
cmake \
|
||||||
|
gcc-toolset-13 \
|
||||||
|
gcc-toolset-13-gcc \
|
||||||
|
gcc-toolset-13-gcc-c++ \
|
||||||
|
gcc-toolset-13-gdb \
|
||||||
|
rpm-build \
|
||||||
|
rpmdevtools \
|
||||||
|
numactl-devel \
|
||||||
|
openssl-devel \
|
||||||
|
redhat-rpm-config \
|
||||||
|
ninja-build \
|
||||||
|
libxcb-devel \
|
||||||
|
xcb-util-wm-devel \
|
||||||
|
xcb-util-image-devel \
|
||||||
|
xcb-util-keysyms-devel \
|
||||||
|
xcb-util-renderutil-devel \
|
||||||
|
libxkbcommon-devel \
|
||||||
|
libX11-devel \
|
||||||
|
libXext-devel \
|
||||||
|
libXrender-devel \
|
||||||
|
libXi-devel \
|
||||||
|
libXrandr-devel \
|
||||||
|
libXcursor-devel \
|
||||||
|
libXfixes-devel \
|
||||||
|
libXinerama-devel \
|
||||||
|
mesa-libGL-devel \
|
||||||
|
mesa-libEGL-devel \
|
||||||
|
dbus-devel \
|
||||||
|
zlib-devel \
|
||||||
|
glib2-devel \
|
||||||
|
fontconfig-devel \
|
||||||
|
zlib-static \
|
||||||
|
java-21-openjdk-headless \
|
||||||
|
java-21-openjdk-devel \
|
||||||
|
perl \
|
||||||
|
perl-IPC-Cmd \
|
||||||
|
python3 \
|
||||||
|
python3-pip \
|
||||||
|
python3-setuptools \
|
||||||
|
python3-wheel \
|
||||||
|
freetype-devel && \
|
||||||
|
dnf clean all && rm -rf /var/cache/dnf
|
||||||
|
|
||||||
|
RUN set -eux; \
|
||||||
|
cd /tmp; \
|
||||||
|
curl -LO https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz; \
|
||||||
|
tar -xf openssl-${OPENSSL_VERSION}.tar.gz; \
|
||||||
|
cd openssl-${OPENSSL_VERSION}; \
|
||||||
|
./Configure linux-x86_64 no-shared no-module no-tests --prefix=/opt/openssl-${OPENSSL_VERSION} --libdir=lib; \
|
||||||
|
make -j"$(nproc)"; \
|
||||||
|
make install_sw; \
|
||||||
|
cd /; rm -rf /tmp/openssl-${OPENSSL_VERSION} /tmp/openssl-${OPENSSL_VERSION}.tar.gz
|
||||||
|
|
||||||
|
# Expose static OpenSSL to CMake/pkg-config
|
||||||
|
ENV OPENSSL_ROOT_DIR=/opt/openssl-${OPENSSL_VERSION}
|
||||||
|
ENV PKG_CONFIG_PATH=${OPENSSL_ROOT_DIR}/lib/pkgconfig:${OPENSSL_ROOT_DIR}/lib64/pkgconfig:${PKG_CONFIG_PATH}
|
||||||
|
|
||||||
|
# Install a recent Node.js (NodeSource). Change NODE_MAJOR if you want another major version.
|
||||||
|
RUN curl -fsSL https://rpm.nodesource.com/setup_${NODE_MAJOR}.x | bash - && \
|
||||||
|
dnf -y install nodejs && \
|
||||||
|
dnf clean all && rm -rf /var/cache/dnf && \
|
||||||
|
node --version && npm --version && (corepack enable || true)
|
||||||
|
|
||||||
|
RUN git clone --depth 1 --branch ${EIGEN_TAG} https://gitlab.com/libeigen/eigen.git /tmp/eigen && \
|
||||||
|
cd /tmp/eigen && \
|
||||||
|
mkdir build && \
|
||||||
|
cd build && \
|
||||||
|
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/eigen && \
|
||||||
|
make install && \
|
||||||
|
rm -rf /tmp/eigen
|
||||||
|
|
||||||
|
# Make GCC/G++ 13 the default for builds
|
||||||
|
ENV GCC_TOOLSET_ROOT=/opt/rh/gcc-toolset-13/root
|
||||||
|
ENV PATH=${GCC_TOOLSET_ROOT}/usr/bin:${PATH}
|
||||||
|
ENV CC=${GCC_TOOLSET_ROOT}/usr/bin/gcc
|
||||||
|
ENV CXX=${GCC_TOOLSET_ROOT}/usr/bin/g++
|
||||||
|
|
||||||
|
ARG QT_PREFIX=/opt/qt-${QT_VERSION}-static
|
||||||
|
RUN set -eux; \
|
||||||
|
cd /tmp; \
|
||||||
|
curl -LO https://download.qt.io/official_releases/qt/6.9/${QT_VERSION}/single/qt-everywhere-src-${QT_VERSION}.tar.xz; \
|
||||||
|
tar -xf qt-everywhere-src-${QT_VERSION}.tar.xz; \
|
||||||
|
mkdir -p qt-everywhere-src-${QT_VERSION}/build && cd qt-everywhere-src-${QT_VERSION}/build; \
|
||||||
|
cmake -G Ninja \
|
||||||
|
-DQT_BUILD_SUBMODULES="qtbase;qtshadertools;qtdeclarative;qtcharts" \
|
||||||
|
-DBUILD_SHARED_LIBS=OFF \
|
||||||
|
-DQT_BUILD_TESTS=OFF \
|
||||||
|
-DQT_BUILD_EXAMPLES=OFF \
|
||||||
|
-DQT_FEATURE_dbus=ON \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=${QT_PREFIX} \
|
||||||
|
-DCMAKE_C_COMPILER=${CC} \
|
||||||
|
-DCMAKE_CXX_COMPILER=${CXX} \
|
||||||
|
-DQT_FEATURE_openssl=ON \
|
||||||
|
-DQT_FEATURE_openssl_linked=ON \
|
||||||
|
-DOPENSSL_USE_STATIC_LIBS=TRUE \
|
||||||
|
..; \
|
||||||
|
cmake --build . -j"$(nproc)"; \
|
||||||
|
cmake --install .; \
|
||||||
|
cd /; rm -rf /tmp/qt-everywhere-src-${QT_VERSION} /tmp/qt-everywhere-src-${QT_VERSION}.tar.xz
|
||||||
|
|
||||||
|
ENV CMAKE_PREFIX_PATH=/opt/qt-${QT_VERSION}-static:/opt/eigen
|
||||||
|
|
||||||
|
# Set workdir for your project
|
||||||
|
WORKDIR /workspace
|
||||||
|
|
||||||
|
# Default entrypoint prints tool versions and hints.
|
||||||
|
CMD ["/bin/bash", "-l"]
|
||||||
128
docker/rocky9/Dockerfile
Normal file
128
docker/rocky9/Dockerfile
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
FROM nvidia/cuda:13.0.1-devel-rockylinux9
|
||||||
|
LABEL authors="leonarski_f"
|
||||||
|
|
||||||
|
ARG OPENSSL_VERSION=3.3.2
|
||||||
|
ARG QT_VERSION=6.9.0
|
||||||
|
ARG NODE_MAJOR=22
|
||||||
|
ARG EIGEN_TAG=3.4.0
|
||||||
|
|
||||||
|
# Update base, enable CRB (RHEL/Rocky 9), and install toolchain + Qt deps
|
||||||
|
RUN dnf -y update && \
|
||||||
|
dnf -y install \
|
||||||
|
'dnf-command(config-manager)' && \
|
||||||
|
dnf config-manager --set-enabled crb && \
|
||||||
|
dnf -y install --enablerepo=devel \
|
||||||
|
dnf-plugins-core \
|
||||||
|
epel-release \
|
||||||
|
git \
|
||||||
|
which \
|
||||||
|
ca-certificates \
|
||||||
|
wget \
|
||||||
|
tar \
|
||||||
|
xz \
|
||||||
|
make \
|
||||||
|
cmake \
|
||||||
|
gcc-toolset-13 \
|
||||||
|
gcc-toolset-13-gcc \
|
||||||
|
gcc-toolset-13-gcc-c++ \
|
||||||
|
gcc-toolset-13-gdb \
|
||||||
|
rpm-build \
|
||||||
|
rpmdevtools \
|
||||||
|
numactl-devel \
|
||||||
|
redhat-rpm-config \
|
||||||
|
ninja-build \
|
||||||
|
python3 \
|
||||||
|
perl \
|
||||||
|
pkgconf-pkg-config \
|
||||||
|
libxcb-devel \
|
||||||
|
xcb-util-wm-devel \
|
||||||
|
xcb-util-image-devel \
|
||||||
|
xcb-util-keysyms-devel \
|
||||||
|
xcb-util-renderutil-devel \
|
||||||
|
libxkbcommon-devel \
|
||||||
|
libX11-devel \
|
||||||
|
libXext-devel \
|
||||||
|
libXrender-devel \
|
||||||
|
libXi-devel \
|
||||||
|
libXrandr-devel \
|
||||||
|
libXcursor-devel \
|
||||||
|
libXfixes-devel \
|
||||||
|
libXinerama-devel \
|
||||||
|
mesa-libGL-devel \
|
||||||
|
mesa-libEGL-devel \
|
||||||
|
dbus-devel \
|
||||||
|
zlib-devel \
|
||||||
|
glib2-devel \
|
||||||
|
zlib-static \
|
||||||
|
fontconfig-devel \
|
||||||
|
freetype-devel && \
|
||||||
|
dnf clean all && rm -rf /var/cache/dnf
|
||||||
|
|
||||||
|
RUN set -eux; \
|
||||||
|
cd /tmp; \
|
||||||
|
curl -LO https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz; \
|
||||||
|
tar -xf openssl-${OPENSSL_VERSION}.tar.gz; \
|
||||||
|
cd openssl-${OPENSSL_VERSION}; \
|
||||||
|
./Configure linux-x86_64 no-shared no-module no-tests --prefix=/opt/openssl-${OPENSSL_VERSION} --libdir=lib; \
|
||||||
|
make -j"$(nproc)"; \
|
||||||
|
make install_sw; \
|
||||||
|
cd /; rm -rf /tmp/openssl-${OPENSSL_VERSION} /tmp/openssl-${OPENSSL_VERSION}.tar.gz
|
||||||
|
|
||||||
|
# Expose static OpenSSL to CMake/pkg-config
|
||||||
|
ENV OPENSSL_ROOT_DIR=/opt/openssl-${OPENSSL_VERSION}
|
||||||
|
ENV PKG_CONFIG_PATH=${OPENSSL_ROOT_DIR}/lib/pkgconfig:${OPENSSL_ROOT_DIR}/lib64/pkgconfig:${PKG_CONFIG_PATH}
|
||||||
|
|
||||||
|
# Install a recent Node.js (NodeSource). Change NODE_MAJOR if you want another major version.
|
||||||
|
RUN curl -fsSL https://rpm.nodesource.com/setup_${NODE_MAJOR}.x | bash - && \
|
||||||
|
dnf -y install nodejs && \
|
||||||
|
dnf clean all && rm -rf /var/cache/dnf && \
|
||||||
|
node --version && npm --version && (corepack enable || true)
|
||||||
|
|
||||||
|
# Header-only Eigen (clone a specific tag)
|
||||||
|
RUN git clone --depth 1 --branch ${EIGEN_TAG} https://gitlab.com/libeigen/eigen.git /tmp/eigen && \
|
||||||
|
cd /tmp/eigen && \
|
||||||
|
mkdir build && \
|
||||||
|
cd build && \
|
||||||
|
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/eigen && \
|
||||||
|
make install && \
|
||||||
|
rm -rf /tmp/eigen
|
||||||
|
|
||||||
|
# Make GCC/G++ 13 the default for builds
|
||||||
|
ENV GCC_TOOLSET_ROOT=/opt/rh/gcc-toolset-13/root
|
||||||
|
ENV PATH=${GCC_TOOLSET_ROOT}/usr/bin:${PATH}
|
||||||
|
ENV CC=${GCC_TOOLSET_ROOT}/usr/bin/gcc
|
||||||
|
ENV CXX=${GCC_TOOLSET_ROOT}/usr/bin/g++
|
||||||
|
|
||||||
|
# Build and install static Qt 6.9 with Core, Gui, Widgets, Charts, DBus
|
||||||
|
ARG QT_PREFIX=/opt/qt-${QT_VERSION}-static
|
||||||
|
RUN set -eux; \
|
||||||
|
cd /tmp; \
|
||||||
|
curl -LO https://download.qt.io/official_releases/qt/6.9/${QT_VERSION}/single/qt-everywhere-src-${QT_VERSION}.tar.xz; \
|
||||||
|
tar -xf qt-everywhere-src-${QT_VERSION}.tar.xz; \
|
||||||
|
mkdir -p qt-everywhere-src-${QT_VERSION}/build && cd qt-everywhere-src-${QT_VERSION}/build; \
|
||||||
|
cmake -G Ninja \
|
||||||
|
-DQT_BUILD_SUBMODULES="qtbase;qtshadertools;qtdeclarative;qtcharts" \
|
||||||
|
-DBUILD_SHARED_LIBS=OFF \
|
||||||
|
-DQT_BUILD_TESTS=OFF \
|
||||||
|
-DQT_BUILD_EXAMPLES=OFF \
|
||||||
|
-DQT_FEATURE_dbus=ON \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=${QT_PREFIX} \
|
||||||
|
-DCMAKE_C_COMPILER=${CC} \
|
||||||
|
-DCMAKE_CXX_COMPILER=${CXX} \
|
||||||
|
-DQT_FEATURE_openssl=ON \
|
||||||
|
-DQT_FEATURE_openssl_linked=ON \
|
||||||
|
-DOPENSSL_USE_STATIC_LIBS=TRUE \
|
||||||
|
..; \
|
||||||
|
cmake --build . -j"$(nproc)"; \
|
||||||
|
cmake --install .; \
|
||||||
|
cd /; rm -rf /tmp/qt-everywhere-src-${QT_VERSION} /tmp/qt-everywhere-src-${QT_VERSION}.tar.xz
|
||||||
|
|
||||||
|
# Make Qt and Eigen discoverable by CMake
|
||||||
|
ENV CMAKE_PREFIX_PATH=/opt/qt-${QT_VERSION}-static:/opt/eigen
|
||||||
|
|
||||||
|
# Set workdir for your project
|
||||||
|
WORKDIR /workspace
|
||||||
|
|
||||||
|
# Default entrypoint: interactive shell
|
||||||
|
CMD ["/bin/bash", "-l"]
|
||||||
136
docker/ubuntu2204/Dockerfile
Normal file
136
docker/ubuntu2204/Dockerfile
Normal file
@@ -0,0 +1,136 @@
|
|||||||
|
# Ubuntu 22.04 (Jammy) base with CUDA 13 devel toolchain
|
||||||
|
FROM nvidia/cuda:13.0.1-devel-ubuntu22.04
|
||||||
|
LABEL authors="leonarski_f"
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
ARG OPENSSL_VERSION=3.3.2
|
||||||
|
ARG QT_VERSION=6.9.0
|
||||||
|
ARG NODE_MAJOR=22
|
||||||
|
ARG EIGEN_TAG=3.4.0
|
||||||
|
|
||||||
|
# Update base and install toolchain + Qt dependencies
|
||||||
|
# Notes:
|
||||||
|
# - GCC/G++ 13 are installed from jammy-backports
|
||||||
|
# - XCB/X11/OpenGL/EGL/DBus/fontconfig/freetype/zlib headers installed for building static Qt
|
||||||
|
RUN set -eux; \
|
||||||
|
apt-get update; \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
ca-certificates \
|
||||||
|
curl \
|
||||||
|
wget \
|
||||||
|
git \
|
||||||
|
tar \
|
||||||
|
xz-utils \
|
||||||
|
build-essential \
|
||||||
|
cmake \
|
||||||
|
ninja-build \
|
||||||
|
python3 \
|
||||||
|
perl \
|
||||||
|
pkg-config \
|
||||||
|
gdb \
|
||||||
|
file \
|
||||||
|
dpkg-dev \
|
||||||
|
fakeroot \
|
||||||
|
libnuma-dev \
|
||||||
|
libxcb1-dev \
|
||||||
|
libx11-dev \
|
||||||
|
libxext-dev \
|
||||||
|
libxrender-dev \
|
||||||
|
libxi-dev \
|
||||||
|
libxrandr-dev \
|
||||||
|
libxcursor-dev \
|
||||||
|
libxfixes-dev \
|
||||||
|
libxinerama-dev \
|
||||||
|
libxkbcommon-dev \
|
||||||
|
libx11-xcb-dev \
|
||||||
|
libxcb-image0-dev \
|
||||||
|
libxcb-icccm4-dev \
|
||||||
|
libxcb-keysyms1-dev \
|
||||||
|
libxcb-render-util0-dev \
|
||||||
|
libxcb-util-dev \
|
||||||
|
libxcb-randr0-dev \
|
||||||
|
libxcb-xkb-dev \
|
||||||
|
libxcb-shm0-dev \
|
||||||
|
libgl1-mesa-dev \
|
||||||
|
libegl1-mesa-dev \
|
||||||
|
libdbus-1-dev \
|
||||||
|
zlib1g-dev \
|
||||||
|
libglib2.0-dev \
|
||||||
|
libfontconfig1-dev \
|
||||||
|
libfreetype6-dev; \
|
||||||
|
apt-get -y install gcc-12 g++-12; \
|
||||||
|
apt-get clean; \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Build a static OpenSSL
|
||||||
|
RUN set -eux; \
|
||||||
|
cd /tmp; \
|
||||||
|
curl -LO https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz; \
|
||||||
|
tar -xf openssl-${OPENSSL_VERSION}.tar.gz; \
|
||||||
|
cd openssl-${OPENSSL_VERSION}; \
|
||||||
|
./Configure linux-x86_64 no-shared no-module no-tests --prefix=/opt/openssl-${OPENSSL_VERSION} --libdir=lib; \
|
||||||
|
make -j"$(nproc)"; \
|
||||||
|
make install_sw; \
|
||||||
|
cd /; rm -rf /tmp/openssl-${OPENSSL_VERSION} /tmp/openssl-${OPENSSL_VERSION}.tar.gz
|
||||||
|
|
||||||
|
# Expose static OpenSSL to CMake/pkg-config
|
||||||
|
ENV OPENSSL_ROOT_DIR=/opt/openssl-${OPENSSL_VERSION}
|
||||||
|
ENV PKG_CONFIG_PATH=${OPENSSL_ROOT_DIR}/lib/pkgconfig:${OPENSSL_ROOT_DIR}/lib64/pkgconfig:${PKG_CONFIG_PATH}
|
||||||
|
|
||||||
|
# Install a recent Node.js (NodeSource)
|
||||||
|
RUN set -eux; \
|
||||||
|
curl -fsSL https://deb.nodesource.com/setup_${NODE_MAJOR}.x | bash -; \
|
||||||
|
apt-get update; \
|
||||||
|
apt-get install -y --no-install-recommends nodejs; \
|
||||||
|
apt-get clean; \
|
||||||
|
rm -rf /var/lib/apt/lists/*; \
|
||||||
|
node --version; npm --version; (corepack enable || true)
|
||||||
|
|
||||||
|
# Header-only Eigen (specific tag)
|
||||||
|
RUN git clone --depth 1 --branch ${EIGEN_TAG} https://gitlab.com/libeigen/eigen.git /tmp/eigen && \
|
||||||
|
cd /tmp/eigen && \
|
||||||
|
mkdir build && \
|
||||||
|
cd build && \
|
||||||
|
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/eigen && \
|
||||||
|
make install && \
|
||||||
|
rm -rf /tmp/eigen
|
||||||
|
|
||||||
|
# Use GCC/G++ 12 for builds
|
||||||
|
ENV CC=/usr/bin/gcc-12
|
||||||
|
ENV CXX=/usr/bin/g++-12
|
||||||
|
ENV PATH=/usr/bin:${PATH}
|
||||||
|
|
||||||
|
# Build and install static Qt 6.9 with Core, Gui, Widgets, Charts, DBus
|
||||||
|
ARG QT_PREFIX=/opt/qt-${QT_VERSION}-static
|
||||||
|
RUN set -eux; \
|
||||||
|
cd /tmp; \
|
||||||
|
curl -LO https://download.qt.io/official_releases/qt/6.9/${QT_VERSION}/single/qt-everywhere-src-${QT_VERSION}.tar.xz; \
|
||||||
|
tar -xf qt-everywhere-src-${QT_VERSION}.tar.xz; \
|
||||||
|
mkdir -p qt-everywhere-src-${QT_VERSION}/build && cd qt-everywhere-src-${QT_VERSION}/build; \
|
||||||
|
cmake -G Ninja \
|
||||||
|
-DQT_BUILD_SUBMODULES="qtbase;qtshadertools;qtdeclarative;qtcharts" \
|
||||||
|
-DBUILD_SHARED_LIBS=OFF \
|
||||||
|
-DQT_BUILD_TESTS=OFF \
|
||||||
|
-DQT_BUILD_EXAMPLES=OFF \
|
||||||
|
-DQT_FEATURE_dbus=ON \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=${QT_PREFIX} \
|
||||||
|
-DCMAKE_C_COMPILER=${CC} \
|
||||||
|
-DCMAKE_CXX_COMPILER=${CXX} \
|
||||||
|
-DQT_FEATURE_openssl=ON \
|
||||||
|
-DQT_FEATURE_openssl_linked=ON \
|
||||||
|
-DOPENSSL_USE_STATIC_LIBS=TRUE \
|
||||||
|
..; \
|
||||||
|
cmake --build . -j"$(nproc)"; \
|
||||||
|
cmake --install .; \
|
||||||
|
cd /; rm -rf /tmp/qt-everywhere-src-${QT_VERSION} /tmp/qt-everywhere-src-${QT_VERSION}.tar.xz
|
||||||
|
|
||||||
|
# Make Qt and Eigen discoverable by CMake
|
||||||
|
ENV CMAKE_PREFIX_PATH=/opt/qt-${QT_VERSION}-static:/opt/eigen
|
||||||
|
|
||||||
|
# Set workdir for your project
|
||||||
|
WORKDIR /workspace
|
||||||
|
|
||||||
|
# Default entrypoint: interactive shell
|
||||||
|
CMD ["/bin/bash", "-l"]
|
||||||
133
docker/ubuntu2404/Dockerfile
Normal file
133
docker/ubuntu2404/Dockerfile
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
# Ubuntu 24.04 (Noble) base with CUDA 13 devel toolchain
|
||||||
|
FROM nvidia/cuda:13.0.1-devel-ubuntu24.04
|
||||||
|
LABEL authors="leonarski_f"
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
ARG OPENSSL_VERSION=3.3.2
|
||||||
|
ARG QT_VERSION=6.9.0
|
||||||
|
ARG NODE_MAJOR=22
|
||||||
|
ARG EIGEN_TAG=3.4.0
|
||||||
|
|
||||||
|
# Update base and install toolchain + Qt dependencies
|
||||||
|
RUN set -eux; \
|
||||||
|
apt-get update; \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
ca-certificates \
|
||||||
|
curl \
|
||||||
|
wget \
|
||||||
|
git \
|
||||||
|
which \
|
||||||
|
tar \
|
||||||
|
xz-utils \
|
||||||
|
build-essential \
|
||||||
|
cmake \
|
||||||
|
ninja-build \
|
||||||
|
python3 \
|
||||||
|
perl \
|
||||||
|
pkg-config \
|
||||||
|
gdb \
|
||||||
|
file \
|
||||||
|
dpkg-dev \
|
||||||
|
fakeroot \
|
||||||
|
libnuma-dev \
|
||||||
|
libxcb1-dev \
|
||||||
|
libx11-dev \
|
||||||
|
libxext-dev \
|
||||||
|
libxrender-dev \
|
||||||
|
libxi-dev \
|
||||||
|
libxrandr-dev \
|
||||||
|
libxcursor-dev \
|
||||||
|
libxfixes-dev \
|
||||||
|
libxinerama-dev \
|
||||||
|
libxkbcommon-dev \
|
||||||
|
libx11-xcb-dev \
|
||||||
|
libxcb-image0-dev \
|
||||||
|
libxcb-icccm4-dev \
|
||||||
|
libxcb-keysyms1-dev \
|
||||||
|
libxcb-render-util0-dev \
|
||||||
|
libxcb-util-dev \
|
||||||
|
libxcb-randr0-dev \
|
||||||
|
libxcb-xkb-dev \
|
||||||
|
libxcb-shm0-dev \
|
||||||
|
libgl1-mesa-dev \
|
||||||
|
libegl1-mesa-dev \
|
||||||
|
libdbus-1-dev \
|
||||||
|
zlib1g-dev \
|
||||||
|
libglib2.0-dev \
|
||||||
|
libfontconfig1-dev \
|
||||||
|
libfreetype6-dev; \
|
||||||
|
apt-get clean; \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Build a static OpenSSL
|
||||||
|
RUN set -eux; \
|
||||||
|
cd /tmp; \
|
||||||
|
curl -LO https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz; \
|
||||||
|
tar -xf openssl-${OPENSSL_VERSION}.tar.gz; \
|
||||||
|
cd openssl-${OPENSSL_VERSION}; \
|
||||||
|
./Configure linux-x86_64 no-shared no-module no-tests --prefix=/opt/openssl-${OPENSSL_VERSION} --libdir=lib; \
|
||||||
|
make -j"$(nproc)"; \
|
||||||
|
make install_sw; \
|
||||||
|
cd /; rm -rf /tmp/openssl-${OPENSSL_VERSION} /tmp/openssl-${OPENSSL_VERSION}.tar.gz
|
||||||
|
|
||||||
|
# Expose static OpenSSL to CMake/pkg-config
|
||||||
|
ENV OPENSSL_ROOT_DIR=/opt/openssl-${OPENSSL_VERSION}
|
||||||
|
ENV PKG_CONFIG_PATH=${OPENSSL_ROOT_DIR}/lib/pkgconfig:${OPENSSL_ROOT_DIR}/lib64/pkgconfig:${PKG_CONFIG_PATH}
|
||||||
|
|
||||||
|
# Install Node.js 22 (NodeSource)
|
||||||
|
RUN set -eux; \
|
||||||
|
curl -fsSL https://deb.nodesource.com/setup_${NODE_MAJOR}.x | bash -; \
|
||||||
|
apt-get update; \
|
||||||
|
apt-get install -y --no-install-recommends nodejs; \
|
||||||
|
apt-get clean; \
|
||||||
|
rm -rf /var/lib/apt/lists/*; \
|
||||||
|
node --version; npm --version; (corepack enable || true)
|
||||||
|
|
||||||
|
# Header-only Eigen (specific tag)
|
||||||
|
RUN git clone --depth 1 --branch ${EIGEN_TAG} https://gitlab.com/libeigen/eigen.git /tmp/eigen && \
|
||||||
|
cd /tmp/eigen && \
|
||||||
|
mkdir build && \
|
||||||
|
cd build && \
|
||||||
|
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/eigen && \
|
||||||
|
make install && \
|
||||||
|
rm -rf /tmp/eigen
|
||||||
|
|
||||||
|
# Use GCC/G++ 13 for builds (default on Ubuntu 24.04)
|
||||||
|
ENV CC=/usr/bin/gcc
|
||||||
|
ENV CXX=/usr/bin/g++
|
||||||
|
RUN gcc --version && g++ --version
|
||||||
|
|
||||||
|
# Build and install static Qt 6.9 with Core, Gui, Widgets, Charts, DBus
|
||||||
|
ARG QT_PREFIX=/opt/qt-${QT_VERSION}-static
|
||||||
|
RUN set -eux; \
|
||||||
|
cd /tmp; \
|
||||||
|
curl -LO https://download.qt.io/official_releases/qt/6.9/${QT_VERSION}/single/qt-everywhere-src-${QT_VERSION}.tar.xz; \
|
||||||
|
tar -xf qt-everywhere-src-${QT_VERSION}.tar.xz; \
|
||||||
|
mkdir -p qt-everywhere-src-${QT_VERSION}/build && cd qt-everywhere-src-${QT_VERSION}/build; \
|
||||||
|
cmake -G Ninja \
|
||||||
|
-DQT_BUILD_SUBMODULES="qtbase;qtshadertools;qtdeclarative;qtcharts" \
|
||||||
|
-DBUILD_SHARED_LIBS=OFF \
|
||||||
|
-DQT_BUILD_TESTS=OFF \
|
||||||
|
-DQT_BUILD_EXAMPLES=OFF \
|
||||||
|
-DQT_FEATURE_dbus=ON \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=${QT_PREFIX} \
|
||||||
|
-DCMAKE_C_COMPILER=${CC} \
|
||||||
|
-DCMAKE_CXX_COMPILER=${CXX} \
|
||||||
|
-DQT_FEATURE_openssl=ON \
|
||||||
|
-DQT_FEATURE_openssl_linked=ON \
|
||||||
|
-DOPENSSL_USE_STATIC_LIBS=TRUE \
|
||||||
|
..; \
|
||||||
|
cmake --build . -j"$(nproc)"; \
|
||||||
|
cmake --install .; \
|
||||||
|
cd /; rm -rf /tmp/qt-everywhere-src-${QT_VERSION} /tmp/qt-everywhere-src-${QT_VERSION}.tar.xz
|
||||||
|
|
||||||
|
# Make Qt and Eigen discoverable by CMake
|
||||||
|
ENV CMAKE_PREFIX_PATH=/opt/qt-${QT_VERSION}-static:/opt/eigen
|
||||||
|
|
||||||
|
# Set workdir for your project
|
||||||
|
WORKDIR /workspace
|
||||||
|
|
||||||
|
# Default entrypoint: interactive shell
|
||||||
|
CMD ["/bin/bash", "-l"]
|
||||||
Reference in New Issue
Block a user