mirror of
https://github.com/redstrate/Astra.git
synced 2025-05-18 15:17:46 +00:00
Begin adding GitHub actions and Windows build scripts
This commit is contained in:
parent
5753a1fdfe
commit
67abb8f4de
4 changed files with 350 additions and 1 deletions
208
.github/workflows/main.yml
vendored
Normal file
208
.github/workflows/main.yml
vendored
Normal file
|
@ -0,0 +1,208 @@
|
||||||
|
name: Main
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ "main" ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ "main" ]
|
||||||
|
|
||||||
|
env:
|
||||||
|
CMAKE_BUILD_PARALLEL_LEVEL: 2
|
||||||
|
MAKEFLAGS: '-j 2'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os: [windows-latest, ubuntu-latest]
|
||||||
|
build_type: [Release]
|
||||||
|
c_compiler: [gcc, cl]
|
||||||
|
include:
|
||||||
|
- os: windows-latest
|
||||||
|
c_compiler: cl
|
||||||
|
cpp_compiler: cl
|
||||||
|
- os: ubuntu-latest
|
||||||
|
c_compiler: gcc
|
||||||
|
cpp_compiler: g++
|
||||||
|
exclude:
|
||||||
|
- os: windows-latest
|
||||||
|
c_compiler: gcc
|
||||||
|
- os: ubuntu-latest
|
||||||
|
c_compiler: cl
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
submodules: true
|
||||||
|
|
||||||
|
- name: Install Qt
|
||||||
|
uses: jurplel/install-qt-action@v3
|
||||||
|
with:
|
||||||
|
version: "6.6.*"
|
||||||
|
cache: true
|
||||||
|
modules: 'qtwebengine qtwebview'
|
||||||
|
|
||||||
|
- name: Set reusable strings
|
||||||
|
id: strings
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "prefix-dir=${{ github.workspace }}/prefix" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
|
- name: Setup Linux dependencies
|
||||||
|
if: runner.os == 'Linux'
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install \
|
||||||
|
gettext \
|
||||||
|
gperf \
|
||||||
|
libwayland-dev \
|
||||||
|
|
||||||
|
- name: Cache Prefix
|
||||||
|
id: cache-prefix-restore
|
||||||
|
uses: actions/cache/restore@v4
|
||||||
|
with:
|
||||||
|
path: ${{ steps.strings.outputs.prefix-dir }}
|
||||||
|
key: ${{ runner.os }}-prefix
|
||||||
|
|
||||||
|
- name: Setup Windows dependencies
|
||||||
|
if: (runner.os == 'Windows') && (steps.cache-prefix-restore.outputs.cache-hit != 'true')
|
||||||
|
shell: powershell
|
||||||
|
run: |
|
||||||
|
$ProgressPreference = 'SilentlyContinue'
|
||||||
|
|
||||||
|
Invoke-WebRequest https://xiv.zone/distrib/dependencies/gettext.zip -OutFile gettext.zip
|
||||||
|
unzip gettext.zip -d ${{ steps.strings.outputs.prefix-dir }}
|
||||||
|
|
||||||
|
Invoke-WebRequest https://xiv.zone/distrib/dependencies/iconv.zip -OutFile iconv.zip
|
||||||
|
unzip iconv.zip -d ${{ steps.strings.outputs.prefix-dir }}
|
||||||
|
|
||||||
|
Invoke-WebRequest https://xiv.zone/distrib/dependencies/icoutils.zip -OutFile icoutils.zip
|
||||||
|
unzip icoutils.zip -d ${{ steps.strings.outputs.prefix-dir }}
|
||||||
|
|
||||||
|
- name: Build zlib
|
||||||
|
if: (runner.os == 'Windows') && (steps.cache-prefix-restore.outputs.cache-hit != 'true')
|
||||||
|
run: |
|
||||||
|
git clone https://github.com/madler/zlib.git
|
||||||
|
cmake -B ${{ steps.strings.outputs.build-output-dir }}-zlib -DCMAKE_PREFIX_PATH=${{ steps.strings.outputs.prefix-dir }} -DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }} -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -S zlib -DCMAKE_INSTALL_PREFIX=${{ steps.strings.outputs.prefix-dir }} -DBUILD_TESTING=OFF
|
||||||
|
cmake --build ${{ steps.strings.outputs.build-output-dir }}-zlib --config ${{ matrix.build_type }} --target install
|
||||||
|
|
||||||
|
- name: Build Extra CMake Modules
|
||||||
|
if: steps.cache-prefix-restore.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
git clone https://invent.kde.org/frameworks/extra-cmake-modules.git
|
||||||
|
cmake -B ${{ steps.strings.outputs.build-output-dir }}-ECM -DCMAKE_PREFIX_PATH=${{ steps.strings.outputs.prefix-dir }} -DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }} -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -S extra-cmake-modules -DCMAKE_INSTALL_PREFIX=${{ steps.strings.outputs.prefix-dir }} -DBUILD_TESTING=OFF
|
||||||
|
cmake --build ${{ steps.strings.outputs.build-output-dir }}-ECM --config ${{ matrix.build_type }} --target install
|
||||||
|
cmake --install ${{ steps.strings.outputs.build-output-dir }}-ECM --config ${{ matrix.build_type }}
|
||||||
|
|
||||||
|
- name: Configure KI18n
|
||||||
|
if: steps.cache-prefix-restore.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
git clone https://invent.kde.org/frameworks/ki18n.git
|
||||||
|
cmake -B ${{ steps.strings.outputs.build-output-dir }}-ki18n -DCMAKE_PREFIX_PATH=${{ steps.strings.outputs.prefix-dir }} -DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }} -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -S ki18n -DCMAKE_INSTALL_PREFIX=${{ steps.strings.outputs.prefix-dir }} -DBUILD_TESTING=OFF
|
||||||
|
|
||||||
|
- name: Windows KI18n workaround
|
||||||
|
if: (runner.os == 'Windows') && (steps.cache-prefix-restore.outputs.cache-hit != 'true')
|
||||||
|
run: |
|
||||||
|
(Get-Content -ReadCount 0 ${{ steps.strings.outputs.build-output-dir }}-ki18n/cmake/build-pofiles.cmake) -replace 'FATAL_ERROR', 'WARNING' | Set-Content ${{ steps.strings.outputs.build-output-dir }}-ki18n/cmake/build-pofiles.cmake
|
||||||
|
|
||||||
|
- name: Build KI18n
|
||||||
|
if: steps.cache-prefix-restore.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
cmake --build ${{ steps.strings.outputs.build-output-dir }}-ki18n --config ${{ matrix.build_type }} --target install
|
||||||
|
|
||||||
|
- name: Build KCoreAddons
|
||||||
|
if: steps.cache-prefix-restore.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
git clone https://invent.kde.org/frameworks/kcoreaddons.git
|
||||||
|
cmake -B ${{ steps.strings.outputs.build-output-dir }}-kca -DCMAKE_PREFIX_PATH=${{ steps.strings.outputs.prefix-dir }} -DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }} -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -S kcoreaddons -DCMAKE_INSTALL_PREFIX=${{ steps.strings.outputs.prefix-dir }} -DBUILD_TESTING=OFF
|
||||||
|
cmake --build ${{ steps.strings.outputs.build-output-dir }}-kca --config ${{ matrix.build_type }} --target install
|
||||||
|
|
||||||
|
- name: Build KConfig
|
||||||
|
if: steps.cache-prefix-restore.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
git clone https://invent.kde.org/frameworks/kconfig.git
|
||||||
|
cmake -B ${{ steps.strings.outputs.build-output-dir }}-kconfig -DCMAKE_PREFIX_PATH=${{ steps.strings.outputs.prefix-dir }} -DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }} -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -S kconfig -DCMAKE_INSTALL_PREFIX=${{ steps.strings.outputs.prefix-dir }} -DBUILD_TESTING=OFF
|
||||||
|
cmake --build ${{ steps.strings.outputs.build-output-dir }}-kconfig --config ${{ matrix.build_type }} --target install
|
||||||
|
|
||||||
|
- name: Build KArchive
|
||||||
|
if: steps.cache-prefix-restore.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
git clone https://invent.kde.org/frameworks/karchive.git
|
||||||
|
cmake -B ${{ steps.strings.outputs.build-output-dir }}-karchive -DCMAKE_PREFIX_PATH=${{ steps.strings.outputs.prefix-dir }} -DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }} -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -S karchive -DCMAKE_INSTALL_PREFIX=${{ steps.strings.outputs.prefix-dir }} -DBUILD_TESTING=OFF -DWITH_BZIP2=OFF -DWITH_LIBLZMA=OFF -DWITH_LIBZSTD=OFF # TODO: enable bzip which we need later
|
||||||
|
cmake --build ${{ steps.strings.outputs.build-output-dir }}-karchive --config ${{ matrix.build_type }} --target install
|
||||||
|
|
||||||
|
- name: Build Kirigami
|
||||||
|
if: steps.cache-prefix-restore.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
git clone https://invent.kde.org/frameworks/kirigami.git
|
||||||
|
cmake -B ${{ steps.strings.outputs.build-output-dir }}-kirigami -DCMAKE_PREFIX_PATH=${{ steps.strings.outputs.prefix-dir }} -DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }} -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -S kirigami -DCMAKE_INSTALL_PREFIX=${{ steps.strings.outputs.prefix-dir }} -DBUILD_TESTING=OFF
|
||||||
|
cmake --build ${{ steps.strings.outputs.build-output-dir }}-kirigami --config ${{ matrix.build_type }} --target install
|
||||||
|
|
||||||
|
- name: Build Kirigami Add-ons
|
||||||
|
if: steps.cache-prefix-restore.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
git clone https://invent.kde.org/libraries/kirigami-addons.git
|
||||||
|
cmake -B ${{ steps.strings.outputs.build-output-dir }}-kirigami-addons -DCMAKE_PREFIX_PATH=${{ steps.strings.outputs.prefix-dir }} -DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }} -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -S kirigami-addons -DCMAKE_INSTALL_PREFIX=${{ steps.strings.outputs.prefix-dir }} -DBUILD_TESTING=OFF
|
||||||
|
cmake --build ${{ steps.strings.outputs.build-output-dir }}-kirigami-addons --config ${{ matrix.build_type }} --target install
|
||||||
|
|
||||||
|
- name: Build Corrosion
|
||||||
|
if: steps.cache-prefix-restore.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
git clone https://github.com/corrosion-rs/corrosion.git
|
||||||
|
cmake -B ${{ steps.strings.outputs.build-output-dir }}-corrosion -DCMAKE_PREFIX_PATH=${{ steps.strings.outputs.prefix-dir }} -DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }} -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -S corrosion -DCMAKE_INSTALL_PREFIX=${{ steps.strings.outputs.prefix-dir }} -DCORROSION_BUILD_TESTS=OFF
|
||||||
|
cmake --build ${{ steps.strings.outputs.build-output-dir }}-corrosion --config ${{ matrix.build_type }} --target install
|
||||||
|
|
||||||
|
- name: Build QCoro
|
||||||
|
if: steps.cache-prefix-restore.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
git clone https://github.com/danvratil/qcoro.git
|
||||||
|
cmake -B ${{ steps.strings.outputs.build-output-dir }}-qcoro -DCMAKE_PREFIX_PATH=${{ steps.strings.outputs.prefix-dir }} -DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }} -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -S qcoro -DCMAKE_INSTALL_PREFIX=${{ steps.strings.outputs.prefix-dir }} -DBUILD_TESTING=OFF
|
||||||
|
cmake --build ${{ steps.strings.outputs.build-output-dir }}-qcoro --config ${{ matrix.build_type }} --target install
|
||||||
|
|
||||||
|
- name: Save Prefix
|
||||||
|
id: cache-prefix-save
|
||||||
|
uses: actions/cache/save@v4
|
||||||
|
with:
|
||||||
|
path: ${{ steps.strings.outputs.prefix-dir }}
|
||||||
|
key: ${{ steps.cache-prefix-restore.outputs.cache-primary-key }}
|
||||||
|
|
||||||
|
- name: Configure
|
||||||
|
run: >
|
||||||
|
cmake -B ${{ steps.strings.outputs.build-output-dir }}
|
||||||
|
-DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }}
|
||||||
|
-DCMAKE_C_COMPILER=${{ matrix.c_compiler }}
|
||||||
|
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
|
||||||
|
-DCMAKE_PREFIX_PATH=${{ steps.strings.outputs.prefix-dir }}
|
||||||
|
-DCMAKE_INSTALL_PREFIX=${{ steps.strings.outputs.build-output-dir }}/bin
|
||||||
|
-S ${{ github.workspace }}
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build_type }} --target install
|
||||||
|
|
||||||
|
- name: Copy required DLLs
|
||||||
|
if: runner.os == 'Windows'
|
||||||
|
run: |
|
||||||
|
Copy-Item -Path ${{ steps.strings.outputs.prefix-dir }}/bin/KF6ItemViews.dll -Destination ${{ steps.strings.outputs.build-output-dir }}/bin/bin
|
||||||
|
Copy-Item -Path ${{ steps.strings.outputs.prefix-dir }}/bin/KF6IconWidgets.dll -Destination ${{ steps.strings.outputs.build-output-dir }}/bin/bin
|
||||||
|
Copy-Item -Path ${{ steps.strings.outputs.prefix-dir }}/bin/KF6GuiAddons.dll -Destination ${{ steps.strings.outputs.build-output-dir }}/bin/bin
|
||||||
|
Copy-Item -Path ${{ steps.strings.outputs.prefix-dir }}/bin/KF6ColorScheme.dll -Destination ${{ steps.strings.outputs.build-output-dir }}/bin/bin
|
||||||
|
Copy-Item -Path ${{ steps.strings.outputs.prefix-dir }}/bin/intl-8.dll -Destination ${{ steps.strings.outputs.build-output-dir }}/bin/bin
|
||||||
|
Copy-Item -Path ${{ steps.strings.outputs.prefix-dir }}/bin/KF6IconThemes.dll -Destination ${{ steps.strings.outputs.build-output-dir }}/bin/bin
|
||||||
|
Copy-Item -Path ${{ steps.strings.outputs.prefix-dir }}/bin/iconv.dll -Destination ${{ steps.strings.outputs.build-output-dir }}/bin/bin
|
||||||
|
Copy-Item -Path ${{ steps.strings.outputs.prefix-dir }}/bin/zlib.dll -Destination ${{ steps.strings.outputs.build-output-dir }}/bin/bin
|
||||||
|
Copy-Item -Path $env:Qt6_DIR/bin/Qt6PrintSupport.dll -Destination ${{ steps.strings.outputs.build-output-dir }}/bin/bin
|
||||||
|
|
||||||
|
- name: Remove extra files
|
||||||
|
if: runner.os == 'Windows'
|
||||||
|
run: |
|
||||||
|
Remove-Item -Path ${{ steps.strings.outputs.build-output-dir }}/bin/bin/opengl32sw.dll
|
||||||
|
|
||||||
|
- name: Archive artifacts
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: ${{ runner.os }}-package
|
||||||
|
path: ${{ steps.strings.outputs.build-output-dir }}/bin
|
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -9,3 +9,6 @@
|
||||||
*.flatpak
|
*.flatpak
|
||||||
export/
|
export/
|
||||||
.clang-format
|
.clang-format
|
||||||
|
# Windows
|
||||||
|
local/
|
||||||
|
prefix/
|
22
scripts/windows-build.ps1
Normal file
22
scripts/windows-build.ps1
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
# SPDX-FileCopyrightText: 2024 NotNite <hi@notnite.com>
|
||||||
|
# SPDX-License-Identifier: CC0-1.0
|
||||||
|
|
||||||
|
$ErrorActionPreference = "Stop"
|
||||||
|
$PSNativeCommandUseErrorActionPreference = $true
|
||||||
|
|
||||||
|
$LocalDir = "./local"
|
||||||
|
$BuildDir = "./build"
|
||||||
|
$PrefixDir = (Get-Location).Path + "/prefix"
|
||||||
|
|
||||||
|
cmake -B "$BuildDir" "-DCMAKE_PREFIX_PATH=$PrefixDir" "-DCMAKE_CXX_COMPILER=cl" "-DCMAKE_C_COMPILER=cl" "-DCMAKE_BUILD_TYPE=Debug" "-S" . "-DCMAKE_INSTALL_PREFIX=$BuildDir"
|
||||||
|
cmake --build "$BuildDir" --config Debug --target install
|
||||||
|
|
||||||
|
Copy-Item -Path "$PrefixDir/bin/KF6ItemViews.dll" -Destination "$BuildDir/bin"
|
||||||
|
Copy-Item -Path "$PrefixDir/bin/KF6IconWidgets.dll" -Destination "$BuildDir/bin"
|
||||||
|
Copy-Item -Path "$PrefixDir/bin/KF6GuiAddons.dll" -Destination "$BuildDir/bin"
|
||||||
|
Copy-Item -Path "$PrefixDir/bin/KF6ColorScheme.dll" -Destination "$BuildDir/bin"
|
||||||
|
Copy-Item -Path "$PrefixDir/bin/intl-8.dll" -Destination "$BuildDir/bin"
|
||||||
|
Copy-Item -Path "$PrefixDir/bin/KF6IconThemes.dll" -Destination "$BuildDir/bin"
|
||||||
|
Copy-Item -Path "$PrefixDir/bin/iconv.dll" -Destination "$BuildDir/bin"
|
||||||
|
Copy-Item -Path "$PrefixDir/bin/zlibd.dll" -Destination "$BuildDir/bin"
|
||||||
|
Copy-Item -Path "$env:QTDIR/bin/Qt6PrintSupportd.dll" -Destination "$BuildDir/bin"
|
116
scripts/windows-setup.ps1
Normal file
116
scripts/windows-setup.ps1
Normal file
|
@ -0,0 +1,116 @@
|
||||||
|
# SPDX-FileCopyrightText: 2024 NotNite <hi@notnite.com>
|
||||||
|
# SPDX-License-Identifier: CC0-1.0
|
||||||
|
|
||||||
|
$ErrorActionPreference = "Stop"
|
||||||
|
$PSNativeCommandUseErrorActionPreference = $true
|
||||||
|
|
||||||
|
$LocalDir = "./local"
|
||||||
|
$BuildDir = "$LocalDir/build"
|
||||||
|
$PrefixDir = (Get-Location).Path + "/prefix"
|
||||||
|
|
||||||
|
$NumCores = [Environment]::ProcessorCount
|
||||||
|
|
||||||
|
function Configure($Name, $ExtraArgs = "") {
|
||||||
|
$Command = "cmake -B $BuildDir-$Name -DCMAKE_PREFIX_PATH=$PrefixDir -DCMAKE_CXX_COMPILER=cl -DCMAKE_C_COMPILER=cl -DCMAKE_BUILD_TYPE=Debug -S $LocalDir/$Name -DCMAKE_INSTALL_PREFIX=$PrefixDir $ExtraArgs"
|
||||||
|
Write-Output "Running $Command"
|
||||||
|
Invoke-Expression $Command
|
||||||
|
if ($LASTEXITCODE -ne 0) {
|
||||||
|
throw "Failed to configure $Name"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Clone($Name, $Url) {
|
||||||
|
if (Test-Path "$LocalDir/$Name") {
|
||||||
|
Write-Information "Skipping clone of $Name because it's source directory already exists"
|
||||||
|
} else {
|
||||||
|
git clone --depth=1 $Url "$LocalDir/$Name"
|
||||||
|
|
||||||
|
if ($LASTEXITCODE -ne 0) {
|
||||||
|
throw "Failed to clone $Name from $Url"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function CheckCompileResult($Name) {
|
||||||
|
if ($LASTEXITCODE -ne 0) {
|
||||||
|
throw "Failed to build $Name!"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(Test-Path $LocalDir)) {
|
||||||
|
New-Item -ItemType Directory -Path $LocalDir
|
||||||
|
}
|
||||||
|
|
||||||
|
# Setup Windows dependencies
|
||||||
|
Invoke-WebRequest https://xiv.zone/distrib/dependencies/gettext.zip -OutFile "$LocalDir/gettext.zip"
|
||||||
|
Expand-Archive -Path "$LocalDir/gettext.zip" -DestinationPath $PrefixDir -Force
|
||||||
|
|
||||||
|
Invoke-WebRequest https://xiv.zone/distrib/dependencies/iconv.zip -OutFile "$LocalDir/iconv.zip"
|
||||||
|
Expand-Archive -Path "$LocalDir/iconv.zip" -DestinationPath $PrefixDir -Force
|
||||||
|
|
||||||
|
Invoke-WebRequest https://xiv.zone/distrib/dependencies/icoutils.zip -OutFile "$LocalDir/icoutils.zip"
|
||||||
|
Expand-Archive -Path "$LocalDir/icoutils.zip" -DestinationPath $PrefixDir -Force
|
||||||
|
|
||||||
|
# Build zlib
|
||||||
|
Clone "zlib" "https://github.com/madler/zlib.git"
|
||||||
|
Configure "zlib" "-DBUILD_TESTING=OFF"
|
||||||
|
cmake --build "$BuildDir-zlib" --config Debug --target install
|
||||||
|
CheckCompileResult "zlib"
|
||||||
|
|
||||||
|
# Build Extra CMake Modules
|
||||||
|
Clone "extra-cmake-modules" "https://invent.kde.org/frameworks/extra-cmake-modules.git"
|
||||||
|
Configure "extra-cmake-modules" "-DBUILD_TESTING=OFF"
|
||||||
|
cmake --build "$BuildDir-extra-cmake-modules" --config Debug --target install --parallel $NumCores
|
||||||
|
cmake --install "$BuildDir-extra-cmake-modules" --config Debug
|
||||||
|
CheckCompileResult "extra-cmake-modules"
|
||||||
|
|
||||||
|
# Build KI18n
|
||||||
|
Clone "ki18n" "https://invent.kde.org/frameworks/ki18n.git"
|
||||||
|
# Workaround for Windows
|
||||||
|
Configure "ki18n" "-DBUILD_TESTING=OFF"
|
||||||
|
|
||||||
|
(Get-Content -ReadCount 0 "$BuildDir-ki18n/cmake/build-pofiles.cmake") -replace 'FATAL_ERROR', 'WARNING' | Set-Content "$BuildDir-ki18n/cmake/build-pofiles.cmake"
|
||||||
|
cmake --build "$BuildDir-ki18n" --config Debug --target install --parallel $NumCores
|
||||||
|
CheckCompileResult "ki18n"
|
||||||
|
|
||||||
|
# Build KCoreAddons
|
||||||
|
Clone "kcoreaddons" "https://invent.kde.org/frameworks/kcoreaddons.git"
|
||||||
|
Configure "kcoreaddons" "-DBUILD_TESTING=OFF"
|
||||||
|
cmake --build "$BuildDir-kcoreaddons" --config Debug --target install --parallel $NumCores
|
||||||
|
CheckCompileResult "kcoreaddons"
|
||||||
|
|
||||||
|
# Build KConfig
|
||||||
|
Clone "kconfig" "https://invent.kde.org/frameworks/kconfig.git"
|
||||||
|
Configure "kconfig" "-DBUILD_TESTING=OFF"
|
||||||
|
cmake --build "$BuildDir-kconfig" --config Debug --target install --parallel $NumCores
|
||||||
|
CheckCompileResult "kconfig"
|
||||||
|
|
||||||
|
# Build KArchive
|
||||||
|
Clone "karchive" "https://invent.kde.org/frameworks/karchive.git"
|
||||||
|
Configure "karchive" "-DBUILD_TESTING=OFF -DWITH_BZIP2=OFF -DWITH_LIBLZMA=OFF -DWITH_LIBZSTD=OFF"
|
||||||
|
cmake --build "$BuildDir-karchive" --config Debug --target install --parallel $NumCores
|
||||||
|
CheckCompileResult "karchive"
|
||||||
|
|
||||||
|
# Build Kirigami
|
||||||
|
Clone "kirigami" "https://invent.kde.org/frameworks/kirigami.git"
|
||||||
|
Configure "kirigami" "-DBUILD_TESTING=OFF"
|
||||||
|
cmake --build "$BuildDir-kirigami" --config Debug --target install --parallel $NumCores
|
||||||
|
CheckCompileResult "kirigami"
|
||||||
|
|
||||||
|
# Build Kirigami Add-ons
|
||||||
|
Clone "kirigami-addons" "https://invent.kde.org/libraries/kirigami-addons.git"
|
||||||
|
Configure "kirigami-addons" "-DBUILD_TESTING=OFF"
|
||||||
|
cmake --build "$BuildDir-kirigami-addons" --config Debug --target install --parallel $NumCores
|
||||||
|
CheckCompileResult "kirigami-addons"
|
||||||
|
|
||||||
|
# Build Corrosion
|
||||||
|
Clone "corrosion" "https://github.com/corrosion-rs/corrosion.git"
|
||||||
|
Configure "corrosion" "-DCORROSION_BUILD_TESTS=OFF"
|
||||||
|
cmake --build "$BuildDir-corrosion" --config Debug --target install --parallel $NumCores
|
||||||
|
CheckCompileResult "corrosion"
|
||||||
|
|
||||||
|
# Build QCoro
|
||||||
|
Clone "qcoro" "https://github.com/danvratil/qcoro.git"
|
||||||
|
Configure "qcoro" "-DBUILD_TESTING=OFF"
|
||||||
|
cmake --build "$BuildDir-qcoro" --config Debug --target install --parallel $NumCores
|
||||||
|
CheckCompileResult "qcoro"
|
Loading…
Add table
Reference in a new issue