# Copyright © SixtyFPS GmbH <info@slint.dev>
# SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0

# cSpell: ignore libxcb libxkbcommon xfixes
---
name: Install Linux dependencies
description: Set up Linux dependencies for Slint

inputs:
    extra-packages:
        description: "Extra packages to install"
        required: false
        default: ""
    force-gcc-10:
        description: 'Force GCC version 10 (default: "no")'
        required: false
        default: "no"
    old-ubuntu:
        description: "This is running on an older version of Ubuntu"
        required: false
        default: "no"

runs:
    using: composite
    steps:
        - name: Install Linux dependencies
          if: runner.os == 'Linux'
          run: |
              sudo apt-get update
              sudo apt-get install libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libxkbcommon-x11-dev libudev-dev libinput-dev libfontconfig-dev ${{ inputs.extra-packages }}
          shell: bash
        - name: Install Linux dependencies
          if: ${{ runner.os == 'Linux' && (inputs.old-ubuntu != 'true')}}
          run: |
              sudo apt-get update
              sudo apt-get install libseat-dev libsystemd-dev
          shell: bash
        - name: Install C++ compiler
          if: ${{ (runner.os == 'Linux') && (inputs.force-gcc-10 == 'true') }}
          run: |
              sudo apt-get install gcc-10 g++-10
              echo "CC=gcc-10" >> $GITHUB_ENV
              echo "CXX=g++-10" >> $GITHUB_ENV
          shell: bash
