Skip to content

Workflow file for this run

name: Build Voxelization Toolkit Windows
on:
push:
branches:
- master
workflow_dispatch:
jobs:
build_voxec:
runs-on: windows-2019
strategy:
fail-fast: false
matrix:
python: ['3.9.11']
arch: ['x64']
steps:
- name: Checkout Repository
uses: actions/checkout@v3
with:
submodules: recursive
- name: Checkout IfcOpenShell
uses: actions/checkout@v3
with:
repository: IfcOpenShell/IfcOpenShell
path: IfcOpenShell
token: ${{ secrets.BUILD_REPO_TOKEN }}
submodules: recursive
- name: Checkout Build Repository
uses: actions/checkout@v3
with:
repository: IfcOpenShell/build-outputs
path: IfcOpenShell\_deps-vs2019-x64-installed
ref: windows-${{ matrix.arch }}
lfs: true
token: ${{ secrets.BUILD_REPO_TOKEN }}
- name: Install Dependencies
run: |
choco install -y sed 7zip.install awscli
- name: Install Python
run: |
$installer = "python-${{ matrix.python }}-amd64.exe"
$url = "https://www.python.org/ftp/python/${{ matrix.python }}/$installer"
Invoke-WebRequest -Uri $url -OutFile $installer
Start-Process -Wait -FilePath .\$installer -ArgumentList '/quiet InstallAllUsers=0 PrependPath=0 Include_test=0 TargetDir=C:\Python\${{ matrix.python }}'
Remove-Item .\$installer
- name: Unpack IfcOpenShell Dependencies
run: |
cd IfcOpenShell\_deps-vs2019-x64-installed
Get-ChildItem -Path . -Filter 'cache-*.zip' | ForEach-Object {
7z x $_.FullName
}
- name: Run IfcOpenShell Build Script
shell: cmd
run: |
setlocal EnableDelayedExpansion
SET PYTHON_VERSION=${{ matrix.python }}
for /f "tokens=1,2,3 delims=." %%a in ("%PYTHON_VERSION%") do (
set PY_VER_MAJOR_MINOR=%%a%%b
)
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
SET IFCOS_INSTALL_PYTHON=FALSE
cd IfcOpenShell\win
echo y | call build-deps.cmd vs2019-x64 Release
SET PYTHONHOME=C:\Python\${{ matrix.python }}
call run-cmake.bat vs2019-x64 -DENABLE_BUILD_OPTIMIZATIONS=On -DGLTF_SUPPORT=ON -DADD_COMMIT_SHA=ON -DVERSION_OVERRIDE=ON
call install-ifcopenshell.bat vs2019-x64 Release
- name: Compile voxec
run: |
mkdir build
cd build
cmake .. `
-DCMAKE_BUILD_TYPE=Release `
-DENABLE_PYTHON_WRAPPER=On `
-DENABLE_TESTS=Off `
-DUSE_BUILD_SCRIPT_OUTPUT=Off `
-DBoost_USE_STATIC_LIBS=On `
-DBoost_NO_BOOST_CMAKE=On `
-DCMAKE_INSTALL_PREFIX=$env:GITHUB_WORKSPACE\install `
-DIFC_INCLUDE_DIR=$env:GITHUB_WORKSPACE\IfcOpenShell\_installed-vs2019-x64\include `
-DIFC_LIBRARY_DIR=$env:GITHUB_WORKSPACE\IfcOpenShell\_installed-vs2019-x64\ifcopenshell\lib `
-DOCC_INCLUDE_DIR=$env:GITHUB_WORKSPACE\IfcOpenShell\_deps-vs2019-x64-installed\opencascade-7.8.1\inc `
-DOCC_LIBRARY_DIR=$env:GITHUB_WORKSPACE\IfcOpenShell\_deps-vs2019-x64-installed\opencascade-7.8.1\win64\lib `
-DPython_EXECUTABLE=C:\Python\${{ matrix.python }}\python.exe `
-DBOOST_ROOT=$env:GITHUB_WORKSPACE\IfcOpenShell\_deps\boost_1_86_0 `
-DSWIG_DIR=$env:GITHUB_WORKSPACE\IfcOpenShell\_installed-vs2019-x64\swigwin
cmake --build . --target install --config Release
- name: Package .zip Archives
run: |
$SHA = ${env:GITHUB_SHA}.Substring(0, 7)
$pyVersion = "${{ matrix.python }}"
$pyVersionMajor = ($pyVersion -split '\.')[0..1] -join '.'
$OUTPUT_DIR = "$env:USERPROFILE\output"
New-Item -ItemType Directory -Force -Path $OUTPUT_DIR
cd $OUTPUT_DIR
cp -r C:\Python\${{ matrix.python }}\Lib\site-packages\voxec .
cp $env:GITHUB_WORKSPACE\voxelization_toolkit\pyproject.toml .
C:\Python\${{ matrix.python }}\python.exe -m pip install build
C:\Python\${{ matrix.python }}\python.exe -m build