name: Qt Build on: push: branches: - master pull_request: env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) BUILD_TYPE: Release jobs: Windows: runs-on: windows-latest steps: - uses: actions/checkout@v2 - name: Fetch submodules run: git submodule update --init --recursive - name: Setup Qt uses: jurplel/install-qt-action@v3 with: arch: win64_msvc2019_64 version: 6.2.0 - name: Setup Vulkan SDK uses: humbletim/setup-vulkan-sdk@v1.2.0 with: vulkan-query-version: latest vulkan-use-cache: true vulkan-components: Vulkan-Headers, Vulkan-Loader, SPIRV-Tools, Glslang - name: Configure CMake run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DENABLE_USER_BUILD=ON -DENABLE_QT_GUI=ON - name: Build run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} - name: Deploy run: | mkdir upload move build/Release/Alber.exe upload windeployqt --dir upload upload/Alber.exe - name: Upload executable uses: actions/upload-artifact@v2 with: name: Windows executable path: upload MacOS: runs-on: macos-13 steps: - uses: actions/checkout@v2 - name: Fetch submodules run: git submodule update --init --recursive - name: Setup Vulkan SDK uses: humbletim/setup-vulkan-sdk@v1.2.0 with: vulkan-query-version: latest vulkan-use-cache: true vulkan-components: Vulkan-Headers, Vulkan-Loader, SPIRV-Tools, Glslang - name: Install bundle dependencies run: | brew install --overwrite python@3.12 && brew install dylibbundler imagemagick - name: Install qt run: brew install qt && which macdeployqt - name: Configure CMake run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DENABLE_USER_BUILD=ON -DENABLE_QT_GUI=ON - name: Build run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} - name: Run bundle script run: | chmod +x .github/mac-bundle-qt.sh ./.github/mac-bundle-qt.sh - name: Sign the App run: codesign --force -s - -vvvv Alber.app - name: Zip it up run: zip -r Alber Alber.app - name: Upload MacOS App uses: actions/upload-artifact@v2 with: name: MacOS Alber App Bundle path: 'Alber.zip' Linux: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Fetch submodules run: git submodule update --init --recursive - name: Install misc packages run: | sudo apt-get update && sudo apt install libx11-dev libgl1-mesa-glx mesa-common-dev libfuse2 libwayland-dev libgl1-mesa-dev sudo add-apt-repository -y ppa:savoury1/qt-6-2 sudo apt update sudo apt install qt6-base-dev qt6-base-private-dev - name: Install newer Clang run: | wget https://apt.llvm.org/llvm.sh chmod +x ./llvm.sh sudo ./llvm.sh 17 - name: Setup Vulkan SDK uses: humbletim/setup-vulkan-sdk@v1.2.0 with: vulkan-query-version: latest vulkan-use-cache: true vulkan-components: Vulkan-Headers, Vulkan-Loader, SPIRV-Tools, Glslang - name: Configure CMake run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_C_COMPILER=clang-17 -DCMAKE_CXX_COMPILER=clang++-17 -DENABLE_USER_BUILD=ON -DENABLE_QT_GUI=ON - name: Build run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} - name: Run AppImage packaging script run: | chmod +x .github/linux-appimage-qt.sh ./.github/linux-appimage-qt.sh - name: Upload executable uses: actions/upload-artifact@v2 with: name: Linux executable path: './Alber-x86_64.AppImage'