Enable FastPFOR decoding in MLT #6682
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: qt-ci | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - main | |
| - qt-*.*.x | |
| tags: | |
| - "qt-**" | |
| paths: | |
| - CMakeLists.txt | |
| - ".github/actions/qt5-build/**" | |
| - ".github/actions/qt6-build/**" | |
| - ".github/workflows/qt-ci.yml" | |
| - "bin/**" | |
| - "expression-test/**" | |
| - "include/**" | |
| - "metrics/**" | |
| - "platform/default/**" | |
| - "platform/qt/**" | |
| - "render-test/**" | |
| - "scripts/**" | |
| - "src/**" | |
| - "test/**" | |
| - "vendor/**" | |
| - ".gitmodules" | |
| - "!**/*.md" | |
| pull_request: | |
| branches: | |
| - "*" | |
| paths: | |
| - CMakeLists.txt | |
| - ".github/actions/qt5-build/**" | |
| - ".github/actions/qt6-build/**" | |
| - ".github/workflows/qt-ci.yml" | |
| - "bin/**" | |
| - "expression-test/**" | |
| - "include/**" | |
| - "metrics/**" | |
| - "platform/default/**" | |
| - "platform/qt/**" | |
| - "render-test/**" | |
| - "scripts/**" | |
| - "src/**" | |
| - "test/**" | |
| - "vendor/**" | |
| - ".gitmodules" | |
| - "!**/*.md" | |
| concurrency: | |
| # cancel jobs on PRs only | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} | |
| jobs: | |
| build: | |
| strategy: | |
| matrix: | |
| include: | |
| - name: Linux_GCC14 | |
| os: ubuntu-24.04 | |
| build_type: RelWithDebInfo | |
| qt_version: 6.9.1 | |
| qt_target: desktop | |
| compiler: "gcc-14" | |
| - name: macOS | |
| os: macos-14 | |
| build_type: RelWithDebInfo | |
| qt_version: 6.9.1 | |
| qt_target: desktop | |
| deployment_target: 12.0 | |
| deployment_arch: "x86_64;arm64" | |
| compiler: "" | |
| # disabled due to https://github.com/llvm/llvm-project/issues/77653 | |
| # https://github.com/maplibre/maplibre-native/pull/3879#issuecomment-3406495279 | |
| # - name: macOS_LLVM | |
| # os: macos-14 | |
| # build_type: RelWithDebInfo | |
| # qt_version: 6.9.1 | |
| # qt_target: desktop | |
| # deployment_target: 12.0 | |
| # deployment_arch: "arm64" | |
| # compiler: "llvm" | |
| - name: win64_msvc2022 | |
| os: windows-2022 | |
| build_type: "RelWithDebInfo" | |
| compiler_type: x64 | |
| qt_version: 6.9.1 | |
| qt_target: desktop | |
| qt_arch: win64_msvc2022_64 | |
| qt_tools: "" | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| BUILD_TYPE: ${{ matrix.build_type }} | |
| COMPILER_TYPE: ${{ matrix.compiler_type }} | |
| DEPLOYMENT_TARGET: ${{ matrix.deployment_target }} | |
| DEPLOYMENT_ARCH: ${{ matrix.deployment_arch }} | |
| QT_VERSION: ${{ matrix.qt_version }} | |
| steps: | |
| - if: runner.os == 'Windows' | |
| run: git config --global core.longpaths true | |
| - name: Checkout | |
| uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v4 | |
| with: | |
| path: source | |
| submodules: recursive | |
| persist-credentials: false | |
| - name: Install test dependencies | |
| if: runner.os == 'Linux' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install \ | |
| libxkbcommon-x11-0 \ | |
| libxcb-cursor0 \ | |
| libxcb-icccm4 \ | |
| libxcb-image0 \ | |
| libxcb-keysyms1 \ | |
| libxcb-randr0 \ | |
| libxcb-render-util0 \ | |
| libxcb-xinerama0 \ | |
| libxcb-xfixes0 \ | |
| libegl1 \ | |
| fonts-noto-cjk | |
| - name: Install compiler (Linux) | |
| id: install_compiler | |
| if: runner.os == 'Linux' | |
| uses: rlalik/setup-cpp-compiler@e312c52f6d9664049d97c75ab084c895d9733c0c # master | |
| with: | |
| compiler: ${{ matrix.compiler }} | |
| - name: Setup compiler (Linux) | |
| if: runner.os == 'Linux' | |
| env: | |
| CC: ${{ steps.install_compiler.outputs.cc }} | |
| CXX: ${{ steps.install_compiler.outputs.cxx }} | |
| run: | | |
| { | |
| echo "CC=$CC" | |
| echo "CXX=$CXX" | |
| } >> "$GITHUB_ENV" | |
| - name: Setup compiler (macOS) | |
| if: runner.os == 'macOS' && matrix.compiler != '' | |
| env: | |
| MLN_COMPILER: ${{ matrix.compiler }} | |
| run: | | |
| # https://github.com/actions/runner-images/issues/8838#issuecomment-1817486924 | |
| brew link --overwrite [email protected] | |
| brew install "$MLN_COMPILER" | |
| echo "/opt/homebrew/opt/${MLN_COMPILER}/bin" >> "$GITHUB_PATH" | |
| { | |
| echo "CC=/opt/homebrew/opt/${MLN_COMPILER}/bin/clang" | |
| echo "CXX=/opt/homebrew/opt/${MLN_COMPILER}/bin/clang++" | |
| echo "LDFLAGS=\"-L/opt/homebrew/opt/${MLN_COMPILER}/lib\"" | |
| echo "CPPFLAGS=\"-I/opt/homebrew/opt/${MLN_COMPILER}/include\"" | |
| } >> "$GITHUB_ENV" | |
| - name: Setup Xcode | |
| if: runner.os == 'macOS' | |
| uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1.6.0 | |
| with: | |
| xcode-version: latest-stable | |
| - name: Setup MSVC | |
| if: matrix.qt_arch == 'win64_msvc2022_64' | |
| uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0 | |
| with: | |
| arch: ${{ matrix.compiler_type }} | |
| - name: Setup ninja | |
| uses: seanmiddleditch/gha-setup-ninja@3b1f8f94a2f8254bd26914c4ab9474d4f0015f67 # v6 | |
| - name: Download Qt | |
| uses: jurplel/install-qt-action@d325aaf2a8baeeda41ad0b5d39f84a6af9bcf005 # v4.3.0 | |
| with: | |
| aqtversion: ==3.1.* | |
| version: ${{ env.QT_VERSION }} | |
| dir: ${{ github.workspace }} | |
| target: ${{ matrix.qt_target }} | |
| arch: ${{ matrix.qt_arch }} | |
| tools: ${{ matrix.qt_tools }} | |
| extra: --base https://mirrors.ocf.berkeley.edu/qt/ | |
| - name: Set up ccache | |
| uses: hendrikmuhs/ccache-action@bfa03e1de4d7f7c3e80ad9109feedd05c4f5a716 # v1.2.19 | |
| with: | |
| key: Qt_${{ matrix.name }}_${{ matrix.qt_version }} | |
| max-size: 200M | |
| - name: Print cmake version | |
| run: | | |
| cmake --version | |
| which cmake | |
| - name: Build maplibre-native (macOS) | |
| if: runner.os == 'macOS' && matrix.qt_target == 'desktop' | |
| run: | | |
| mkdir build && cd build | |
| cmake ../source/ \ | |
| -G Ninja \ | |
| -DCMAKE_BUILD_TYPE="${BUILD_TYPE}" \ | |
| -DCMAKE_C_COMPILER_LAUNCHER="ccache" \ | |
| -DCMAKE_CXX_COMPILER_LAUNCHER="ccache" \ | |
| -DCMAKE_OSX_DEPLOYMENT_TARGET="${DEPLOYMENT_TARGET}" \ | |
| -DCMAKE_OSX_ARCHITECTURES="${DEPLOYMENT_ARCH}" \ | |
| -DMLN_WITH_QT=ON \ | |
| -DMLN_WITH_OPENGL=ON | |
| ninja | |
| - name: Build maplibre-native (Linux, Qt6) | |
| if: runner.os == 'Linux' | |
| run: | | |
| mkdir build && cd build | |
| qt-cmake ../source/ \ | |
| -G Ninja \ | |
| -DCMAKE_BUILD_TYPE="${BUILD_TYPE}" \ | |
| -DCMAKE_C_COMPILER_LAUNCHER="ccache" \ | |
| -DCMAKE_CXX_COMPILER_LAUNCHER="ccache" \ | |
| -DMLN_WITH_QT=ON \ | |
| -DMLN_WITH_OPENGL=ON | |
| ninja | |
| - name: Build maplibre-native (Linux, Qt6, internal libraries) | |
| if: runner.os == 'Linux' | |
| run: | | |
| mkdir build-internal && cd build-internal | |
| qt-cmake ../source/ \ | |
| -G Ninja \ | |
| -DCMAKE_BUILD_TYPE="${BUILD_TYPE}" \ | |
| -DCMAKE_C_COMPILER_LAUNCHER="ccache" \ | |
| -DCMAKE_CXX_COMPILER_LAUNCHER="ccache" \ | |
| -DMLN_WITH_QT=ON \ | |
| -DMLN_QT_WITH_INTERNAL_ICU=ON \ | |
| -DMLN_QT_WITH_INTERNAL_SQLITE=ON \ | |
| -DMLN_WITH_OPENGL=ON | |
| ninja | |
| - name: Run tests (Linux) | |
| if: runner.os == 'Linux' | |
| uses: coactions/setup-xvfb@b6b4fcfb9f5a895edadc3bc76318fae0ac17c8b3 # v1.0.1 | |
| with: | |
| run: ctest --output-on-failure | |
| working-directory: build | |
| - name: Build maplibre-native (Windows) | |
| if: runner.os == 'Windows' | |
| shell: bash | |
| run: | | |
| export PATH="$IQTA_TOOLS/$COMPILER_TYPE/bin:$PATH" | |
| echo "$PATH" | |
| mkdir build && cd build | |
| cmake.exe ../source/ \ | |
| -G"Ninja Multi-Config" \ | |
| -DCMAKE_CONFIGURATION_TYPES="${BUILD_TYPE}" \ | |
| -DCMAKE_C_COMPILER_LAUNCHER="ccache.exe" \ | |
| -DCMAKE_CXX_COMPILER_LAUNCHER="ccache.exe" \ | |
| -DMLN_WITH_QT=ON \ | |
| -DMLN_WITH_OPENGL=ON | |
| ninja.exe |