115 lines
3.2 KiB
Docker
115 lines
3.2 KiB
Docker
# Base builder
|
|
FROM ubuntu:24.04 AS base
|
|
|
|
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 rm -rf /opencascade/build && mkdir build
|
|
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 \
|
|
-DBUILD_MODULE_FoundationClasses=ON \
|
|
-DBUILD_MODULE_ModelingData=ON \
|
|
-DBUILD_MODULE_ModelingAlgorithms=ON \
|
|
-DBUILD_MODULE_TKernel=ON \
|
|
-DBUILD_MODULE_TKMath=ON \
|
|
-DBUILD_MODULE_TKBRep=ON \
|
|
-DBUILD_MODULE_TKGeomBase=ON \
|
|
-DBUILD_MODULE_TKPrim=ON \
|
|
-DBUILD_MODULE_TKBO=ON \
|
|
-DBUILD_MODULE_TKG2d=ON \
|
|
-DBUILD_MODULE_TKG3d=ON \
|
|
-DBUILD_MODULE_TKShHealing=ON \
|
|
-DBUILD_MODULE_TKTopAlgo=ON \
|
|
-DBUILD_MODULE_TKBool=ON \
|
|
-DBUILD_MODULE_TKFillet=ON \
|
|
-DBUILD_MODULE_TKOffset=ON \
|
|
-DBUILD_MODULE_TKFeat=ON \
|
|
-DBUILD_MODULE_TKMesh=ON \
|
|
-DBUILD_MODULE_TKHLR=ON \
|
|
-DBUILD_MODULE_TKCDF=ON \
|
|
-DBUILD_MODULE_TKLCAF=OFF \
|
|
-DBUILD_MODULE_TKCAF=OFF \
|
|
-DBUILD_MODULE_TKXCAF=OFF \
|
|
-DBUILD_MODULE_TKXDEDRAW=OFF \
|
|
-DBUILD_MODULE_TKDRAW=OFF \
|
|
-DBUILD_MODULE_TKService=OFF \
|
|
-DBUILD_MODULE_TKV3d=OFF \
|
|
-DBUILD_MODULE_TKOpenGl=OFF \
|
|
-DBUILD_MODULE_TKIVtk=OFF \
|
|
-DBUILD_MODULE_TKIVtkDraw=OFF \
|
|
-DBUILD_MODULE_TKViewerTest=OFF \
|
|
-DBUILD_MODULE_TKD3DHost=OFF \
|
|
-DBUILD_MODULE_TKVRML=OFF \
|
|
-DBUILD_MODULE_TKXSDRAW=OFF \
|
|
-DBUILD_MODULE_TKTObj=OFF \
|
|
-DBUILD_MODULE_TKTObjDRAW=OFF \
|
|
-DBUILD_MODULE_TKStd=OFF \
|
|
-DBUILD_MODULE_TKStdL=OFF \
|
|
-DBUILD_MODULE_TKShapeSchema=OFF \
|
|
-DBUILD_MODULE_TKXml=OFF \
|
|
-DBUILD_MODULE_TKXmlL=OFF \
|
|
-DBUILD_MODULE_TKBin=OFF \
|
|
-DBUILD_MODULE_TKBinL=OFF \
|
|
-DBUILD_MODULE_TKOCAF=OFF \
|
|
-DBUILD_MODULE_TKXDECAF=OFF \
|
|
-DBUILD_MODULE_TKQADraw=OFF \
|
|
-DBUILD_MODULE_TKTopTest=OFF \
|
|
-DBUILD_MODULE_TKGeomBaseTest=OFF \
|
|
-DUSE_FREEIMAGE=OFF \
|
|
-DUSE_FREETYPE=OFF \
|
|
-DUSE_FFMPEG=OFF \
|
|
-DUSE_TBB=OFF \
|
|
-DUSE_VTK=OFF \
|
|
-DUSE_OPENGL=OFF
|
|
RUN make -j$(nproc)
|
|
RUN make install
|
|
|
|
WORKDIR /app
|
|
COPY src/occt/ ./src
|
|
RUN cmake -S src -B build -DCMAKE_PREFIX_PATH=/usr/local
|
|
RUN cmake --build build
|
|
|
|
COPY test/occt/ ./test
|
|
|
|
# Unit test runner stage
|
|
FROM ubuntu:24.04 AS unit-testing
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN apt-get update && apt-get install -y \
|
|
build-essential cmake git \
|
|
catch2 \
|
|
libfreetype-dev \
|
|
xvfb \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY --from=base /usr/local /usr/local
|
|
COPY --from=base /app/build /app/build
|
|
COPY --from=base /app/src /app/src
|
|
COPY --from=base /app/test /app/test
|
|
COPY --from=base /usr/local/include /usr/local/include
|
|
COPY --from=base /usr/local/lib /usr/local/lib
|
|
|
|
WORKDIR /app
|
|
|
|
ENV LD_LIBRARY_PATH=/usr/local/lib
|
|
|
|
RUN rm -rf build/unit-tests/*
|
|
RUN cmake -S test -B build/unit-tests -DCMAKE_PREFIX_PATH=/usr/local -DCMAKE_CXX_FLAGS="-I/usr/local/include/opencascade"
|
|
RUN cmake --build build/unit-tests
|