Skip to content

Create macOS arm installer #383

Create macOS arm installer

Create macOS arm installer #383

Workflow file for this run

name: Build_PAT
on:
pull_request:
branches:
- '*'
push:
branches:
- '*'
tags:
- '*'
jobs:
pat_build:
name: Build ${{ matrix.name }}
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.allow_failure }}
strategy:
# fail-fast: Default is true, switch to false to allow one platform to fail and still run others
fail-fast: false
matrix:
name: [Ubuntu, macOS-Intel, macOS-ARM, Windows_2022]
include:
- name: Ubuntu
os: ubuntu-22.04
node-version: 18
allow_failure: false
- name: macOS-Intel
os: macos-13
node-version: 18
allow_failure: false
arch: x86_64
MACOSX_DEPLOYMENT_TARGET: 10.15
- name: macOS-ARM
os: macos-14
node-version: 18
allow_failure: false
arch: arm64
MACOSX_DEPLOYMENT_TARGET: 12.1
- name: Windows_2022
os: windows-2022
node-version: 18
allow_failure: false
steps:
- uses: actions/checkout@v4
- name: Set up Node ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Install System dependencies
shell: bash
run: |
set -x
if [ "$RUNNER_OS" == "Linux" ]; then
sudo apt update
sudo apt install cmake
elif [ "$RUNNER_OS" == "macOS" ]; then
# Install Qt Installer Framework using aqtinstall
python3 -m pip install --break-system-packages aqtinstall
python3 -m aqt install-tool -O "${{ github.workspace }}/Qt/" mac desktop tools_ifw
# Add Qt IFW to PATH
QT_IFW_DIR=$(find "${{ github.workspace }}/Qt/Tools/QtInstallerFramework" -name "bin" -type d | head -1)
if [ -n "$QT_IFW_DIR" ]; then
echo "$QT_IFW_DIR" >> $GITHUB_PATH
fi
echo MACOSX_DEPLOYMENT_TARGET=${{ matrix.MACOSX_DEPLOYMENT_TARGET }} >> $GITHUB_ENV
elif [ "$RUNNER_OS" == "Windows" ]; then
# Install Qt Installer Framework using aqtinstall
python3 -m pip install --break-system-packages aqtinstall
python3 -m aqt install-tool -O "${{ github.workspace }}/Qt/" windows desktop tools_ifw
# Add Qt IFW to PATH
QT_IFW_DIR=$(find "${{ github.workspace }}/Qt/Tools/QtInstallerFramework" -name "bin" -type d | head -1)
if [ -n "$QT_IFW_DIR" ]; then
echo "$QT_IFW_DIR" >> $GITHUB_PATH
fi
#echo "Setting CMAKE_GENERATOR options equivalent to ='-G \"Visual Studio 16 2019\" -A x64'"
#echo CMAKE_GENERATOR='Visual Studio 16 2019' >> $GITHUB_ENV
#echo CMAKE_GENERATOR_PLATFORM=x64 >> $GITHUB_ENV
# C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise
# Command below no longer working and returning the version number.
# MSVC_DIR=$(cmd.exe /c "vswhere -products * -requires Microsoft.Component.MSBuild -property installationPath -latest")
MSVC_DIR="C:\Program Files\Microsoft Visual Studio\2022\Enterprise"
echo "Latest is: $MSVC_DIR"
echo "MSVC_DIR=$MSVC_DIR" >> $GITHUB_ENV
# add folder containing vcvarsall.bat
echo "$MSVC_DIR\VC\Auxiliary\Build" >> $GITHUB_PATH
fi;
N=$(nproc 2>/dev/null || sysctl -n hw.logicalcpu)
echo "There are $N threads available"
echo "N=$N" >> $GITHUB_ENV
- name: Create Build Directory
run: cmake -E make_directory ./build/
- name: Configure CMake & build (Windows)
working-directory: ./build
if: runner.os == 'Windows'
shell: cmd
run: |
call vcvarsall.bat x64
cmake -G "Visual Studio 17 2022" -A x64 ..
cmake --build . --target package -j %N% --config Release
- name: Configure CMake & build (Linux)
working-directory: ./build
if: runner.os == 'Linux'
shell: bash
run: |
set -x
cmake -DCMAKE_BUILD_TYPE=Release \
-DCPACK_BINARY_DEB=ON \
-DCPACK_BINARY_IFW=OFF \
-DCPACK_BINARY_TGZ=OFF \
-DCPACK_BINARY_TZ=OFF \
-DCPACK_BINARY_STGZ=OFF \
-DCPACK_BINARY_TBZ2=OFF \
../
cmake --build . --target package -j $N
- name: Configure CMake & build (macOS)
working-directory: ./build
if: runner.os == 'macOS'
shell: bash
run: |
set -x
if [ "${{ matrix.arch }}" = "arm64" ]; then
export MATRIX_ARCH=arm64
echo "MATRIX_ARCH=arm64" >> $GITHUB_ENV
cmake -DCMAKE_OSX_ARCHITECTURES="arm64" \
-DCMAKE_OSX_DEPLOYMENT_TARGET="${{ matrix.MACOSX_DEPLOYMENT_TARGET }}" \
-DCMAKE_BUILD_TYPE=Release \
../
else
export MATRIX_ARCH=x86_64
echo "MATRIX_ARCH=x86_64" >> $GITHUB_ENV
cmake -DCMAKE_OSX_ARCHITECTURES="x86_64" \
-DCMAKE_OSX_DEPLOYMENT_TARGET="${{ matrix.MACOSX_DEPLOYMENT_TARGET }}" \
-DCMAKE_BUILD_TYPE=Release \
../
fi
cmake --build . --target package -j $N
- name: Save artifact
uses: actions/upload-artifact@v4
with:
name: PAT-Installer-${{ matrix.name }}
path: ./build/ParametricAnalysisTool-*
#name: OpenStudio-PAT-{{ matrix.name }}-${{ github.sha }}