diff --git a/ci/occt.Dockerfile b/ci/occt.Dockerfile new file mode 100644 index 0000000..7289395 --- /dev/null +++ b/ci/occt.Dockerfile @@ -0,0 +1,37 @@ +FROM ubuntu:24.04 + +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get update && apt-get install -y\ + build-essential \ + git \ + cmake \ + tcl tcl-dev \ + tk tk-dev \ + libfreeimage-dev \ + libxmu-dev libxi-dev \ + libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev \ + xvfb \ + && rm -rf /var/lib/apt/lists/* + +RUN git clone https://github.com/Open-Cascade-SAS/OCCT.git opencascade +WORKDIR /opencascade +RUN git checkout V7_4_0 -b dev-branch +RUN mkdir -p build +WORKDIR /opencascade/build + +RUN cmake .. \ + -DCMAKE_BUILD_TYPE=release \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ + -DUSE_FREEIMAGE=OFF \ + -DUSE_FFMPEG=OFF \ + -DUSE_VTK=OFF \ + -DUSE_TBB=OFF +RUN make -j$(nproc) +RUN make install + +WORKDIR /app +COPY src/occt/ ./src +COPY unit-test/occt/ ./unit-test + +RUN cmake -S src -B build -DCMAKE_PREFIX_PATH=/usr/local && cmake --build build diff --git a/ci/scripts/occt.sh b/ci/scripts/occt.sh new file mode 100644 index 0000000..415ba71 --- /dev/null +++ b/ci/scripts/occt.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +set -euo pipefail + +IMAGE_NAME="occt-builder:latest" +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_PATH="$(cd "$SCRIPT_DIR/../../" && pwd)" +DOCKERFILE_PATH="$SCRIPT_DIR/../occt.Dockerfile" + +echo "Building image..." +if ! docker build -f "$DOCKERFILE_PATH" -t "$IMAGE_NAME" "$PROJECT_PATH"; then + echo "Image build failed." >&2 + exit 1 +fi + +echo "Listing /usr/local/bin..." +if ! docker run --rm "$IMAGE_NAME" ls /usr/local/bin; then + echo "Listing /usr/local/bin failed." >&2 + exit 1 +fi