gha/msvc: Bump Qt to 6.10.0 #1219
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | name: macos-macports-build | |
| on: [push, pull_request] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| macos: | |
| name: ${{ matrix.config.name }} | |
| runs-on: ${{ matrix.config.os }} | |
| env: | |
| CLANG_VERSION: 20 | |
| PYTHON_VERSION: "3.13" | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| config: | |
| - name: Talipot build on macOS 15 x86_64 | |
| os: macos-15-intel | |
| - name: Talipot build on macOS 14 arm64 | |
| os: macos-14 | |
| - name: Talipot build on macOS 15 arm64 | |
| os: macos-15 | |
| - name: Talipot build on macOS 26 arm64 | |
| os: macos-26 | |
| steps: | |
| - name: Checkout Talipot code | |
| uses: actions/checkout@v5 | |
| - name: Compute environment variable | |
| run: | | |
| PYTHON_VERSION_NO_DOT=$(echo $PYTHON_VERSION | sed 's/\.//') | |
| echo "PYTHON_VERSION_NO_DOT=$PYTHON_VERSION_NO_DOT" >> $GITHUB_ENV | |
| - name: Install MacPorts | |
| run: | | |
| curl -LO https://raw.githubusercontent.com/GiovanniBussi/macports-ci/master/macports-ci | |
| source ./macports-ci install --sync=rsync | |
| source ./macports-ci ccache | |
| - name: Install Talipot build dependencies | |
| run: sudo port -N install | |
| cmake | |
| clang-${{ env.CLANG_VERSION }} | |
| ccache | |
| coreutils | |
| zlib | |
| qhull | |
| yajl | |
| zstd | |
| graphviz | |
| libgit2 | |
| python${{ env.PYTHON_VERSION_NO_DOT }} | |
| pkgconfig | |
| cppunit | |
| freetype | |
| fontconfig | |
| fribidi | |
| glew | |
| qt5-qtbase | |
| qt5-qttools | |
| quazip | |
| py${{ env.PYTHON_VERSION_NO_DOT }}-pip | |
| - name: Prepare ccache timestamp | |
| id: get-current-date | |
| run: | | |
| echo "date=$(date -u "+%Y-%m-%d-%H-%m-%S")" >> $GITHUB_OUTPUT | |
| shell: bash | |
| - name: Get ccache directory | |
| id: get-cccache-dir | |
| run: | | |
| ccache_dir=$(ccache -sv | grep "Cache directory" | awk '{print $3}') | |
| echo "ccache-dir=$ccache_dir" >> $GITHUB_OUTPUT | |
| shell: bash | |
| - name: Cache files | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ${{ steps.get-cccache-dir.outputs.ccache-dir }} | |
| /Users/runner/.macports-ci-ccache | |
| key: ${{ matrix.config.os }}-ccache-${{ steps.get-current-date.outputs.date }} | |
| restore-keys: | | |
| ${{ matrix.config.os }}-ccache- | |
| - name: Install Sphinx | |
| run: pip-${{ env.PYTHON_VERSION }} install sphinx | |
| - name: Install sip | |
| run: sudo pip-${{ env.PYTHON_VERSION }} install 'sip != 6.13.0' | |
| - name: Save MacPorts ccache | |
| run: source ./macports-ci ccache --save | |
| - name: Create build directory | |
| run: mkdir build | |
| - name: Configure Talipot core build with CMake | |
| working-directory: ./build | |
| run: cmake .. -DCMAKE_BUILD_TYPE=Release | |
| -DCMAKE_INSTALL_PREFIX=$PWD/install | |
| -DCMAKE_C_COMPILER=/opt/local/bin/clang-mp-${{ env.CLANG_VERSION }} | |
| -DCMAKE_CXX_COMPILER=/opt/local/bin/clang++-mp-${{ env.CLANG_VERSION }} | |
| -DCMAKE_SHARED_LINKER_FLAGS="-L/opt/local/libexec/llvm-${{ env.CLANG_VERSION }}/lib | |
| -Wl,-rpath,/opt/local/libexec/llvm-${{ env.CLANG_VERSION }}/lib" | |
| -DCMAKE_EXE_LINKER_FLAGS="-L/opt/local/libexec/llvm-${{ env.CLANG_VERSION }}/lib | |
| -Wl,-rpath,/opt/local/libexec/llvm-${{ env.CLANG_VERSION }}/lib" | |
| -DPython3_EXECUTABLE=/opt/local/bin/python${{ env.PYTHON_VERSION }} | |
| -DTALIPOT_BUILD_TESTS=ON | |
| -DTALIPOT_USE_CCACHE=ON | |
| -DTALIPOT_BUILD_DOC=OFF | |
| -DTALIPOT_BUILD_CORE_ONLY=ON | |
| - name: Talipot core build | |
| working-directory: ./build | |
| run: make -j4 | |
| - name: Install Talipot core build | |
| working-directory: ./build | |
| run: make -j4 install | |
| - name: Run Talipot core build unit tests | |
| working-directory: ./build | |
| run: make tests | |
| - name: Configure Talipot complete build with CMake | |
| working-directory: ./build | |
| run: cmake . | |
| -DTALIPOT_BUILD_CORE_ONLY=OFF | |
| -DTALIPOT_BUILD_DOC=ON | |
| -DTALIPOT_USE_QT6=OFF | |
| - name: Talipot complete build | |
| working-directory: ./build | |
| run: make -j4 | |
| - name: Install Talipot complete build | |
| working-directory: ./build | |
| run: make -j4 install | |
| - name: Run Talipot complete build unit tests | |
| working-directory: ./build | |
| run: make tests | |
| - name: Check Talipot application can be executed | |
| working-directory: ./build/install/bin | |
| run: ./talipot --check-application-starts --debug-plugins-load | |
| - name: Generate Talipot dmg bundle | |
| working-directory: ./build | |
| run: make bundle | |
| - name: Check bundled Talipot can be installed and executed | |
| working-directory: ./build | |
| run: | | |
| sudo port -Nfp uninstall installed | |
| hdiutil attach Talipot*.dmg | |
| cp -r /Volumes/Talipot*/Talipot*.app /Applications/ | |
| sudo xattr -r -d com.apple.quarantine /Applications/Talipot*.app | |
| rm -rf ~/.Talipot* | |
| /Applications/Talipot*.app/Contents/MacOS/Talipot \ | |
| --check-application-starts \ | |
| --debug-plugins-load | |
| hdiutil detach /Volumes/Talipot* | |
| - name: Upload Talipot bundle to GitHub Actions artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: Talipot-macOS-bundles-${{ matrix.config.os }} | |
| path: ./build/Talipot*.dmg | |
| - name: Get Talipot version | |
| working-directory: ./build | |
| id: get-talipot-version | |
| run: | | |
| echo "version=$(bash talipot-config --version)" >> $GITHUB_OUTPUT | |
| - name: Upload Talipot bundle to github prerelease | |
| if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') | |
| uses: ncipollo/release-action@v1 | |
| with: | |
| allowUpdates: true | |
| name: Talipot v${{ steps.get-talipot-version.outputs.version }} | |
| prerelease: true | |
| artifacts: ./build/Talipot*.dmg | |
| token: ${{ secrets.GITHUB_TOKEN }} |