mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-21 13:13:44 +00:00
108 lines
3.3 KiB
YAML
108 lines
3.3 KiB
YAML
# This file was generated with the assistance of an AI coding tool.
|
|
name: ci-ifcwrap-standalone
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
pull_request:
|
|
paths: &ci_paths
|
|
- ".github/workflows/ci-ifcwrap-standalone.yml"
|
|
- "cmake/**"
|
|
- "src/ifcwrap/**"
|
|
- "src/ifcparse/**"
|
|
- "src/ifcgeom/**"
|
|
- "src/serializers/**"
|
|
- "src/ifcconvert/**"
|
|
- "src/ifcopenshell-python/**"
|
|
- "src/svgfill/**"
|
|
push:
|
|
paths: *ci_paths
|
|
|
|
env:
|
|
IFCOPENSHELL_PREFIX: ${{ github.workspace }}/ifcopenshell-install
|
|
|
|
jobs:
|
|
build-ifcopenshell:
|
|
runs-on: ubuntu-22.04
|
|
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Install C++ dependencies
|
|
run: |
|
|
sudo apt update
|
|
sudo apt-get install --no-install-recommends -y \
|
|
cmake \
|
|
bison \
|
|
gcc \
|
|
g++ \
|
|
libboost-date-time-dev \
|
|
libboost-filesystem-dev \
|
|
libboost-iostreams-dev \
|
|
libboost-program-options-dev \
|
|
libboost-regex-dev \
|
|
libboost-system-dev \
|
|
libboost-thread-dev \
|
|
libeigen3-dev \
|
|
libocct-data-exchange-dev \
|
|
libocct-draw-dev \
|
|
libocct-foundation-dev \
|
|
libocct-modeling-algorithms-dev \
|
|
libocct-modeling-data-dev \
|
|
libocct-ocaf-dev \
|
|
libocct-visualization-dev \
|
|
libpcre3-dev \
|
|
libpcre2-dev \
|
|
libtbb-dev \
|
|
libxml2-dev \
|
|
libxi-dev \
|
|
occt-misc \
|
|
tcl-dev \
|
|
tk-dev
|
|
|
|
- name: ccache
|
|
uses: hendrikmuhs/ccache-action@v1.2.23
|
|
with:
|
|
key: ci-ifcwrap-standalone-ubuntu-22.04-${{ runner.arch }}
|
|
|
|
- name: Build SWIG
|
|
# IfcOpenShell requires SWIG 4.1+, ubuntu-22.04 ships 4.0.2.
|
|
run: |
|
|
sudo apt-get remove --purge -y swig swig4.0
|
|
git clone https://github.com/swig/swig --branch v4.2.1 --depth 1
|
|
cmake -S swig -B swig/build -DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
|
|
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
|
|
cmake --build swig/build -j "$(nproc)"
|
|
sudo cmake --install swig/build
|
|
swig -version
|
|
|
|
- name: Configure minimal IfcOpenShell
|
|
run: |
|
|
cmake -S cmake -B build-ifcopenshell \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_INSTALL_PREFIX="${IFCOPENSHELL_PREFIX}" \
|
|
-DCMAKE_PREFIX_PATH=/usr \
|
|
-DCMAKE_SYSTEM_PREFIX_PATH=/usr \
|
|
-DMINIMAL_BUILD=ON \
|
|
-DBUILD_IFCPYTHON=OFF \
|
|
-DUSE_CCACHE=ON \
|
|
"-DSCHEMA_VERSIONS=4x3_add2"
|
|
|
|
- name: Build and install minimal IfcOpenShell
|
|
run: |
|
|
cmake --build build-ifcopenshell --target install -j "$(nproc)"
|
|
|
|
- name: Build and install standalone IfcPython for Python 3.11
|
|
uses: ./.github/actions/build-ifcwrap-python
|
|
with:
|
|
python-version: "3.11"
|
|
ifcopenshell-prefix: ${{ env.IFCOPENSHELL_PREFIX }}
|
|
|
|
- name: Build and install standalone IfcPython for Python 3.12
|
|
uses: ./.github/actions/build-ifcwrap-python
|
|
with:
|
|
python-version: "3.12"
|
|
ifcopenshell-prefix: ${{ env.IFCOPENSHELL_PREFIX }}
|