Compare commits

...

10 Commits

Author SHA1 Message Date
666f3c9707 Merge pull request #49 from alterware/dependabot/submodules/deps/GSL-494e6e9
build(deps): bump deps/GSL from `7e0943d` to `494e6e9`
2025-10-08 14:58:51 +02:00
dependabot[bot]
5f99276372 build(deps): bump deps/GSL from 7e0943d to 494e6e9
Bumps [deps/GSL](https://github.com/microsoft/GSL) from `7e0943d` to `494e6e9`.
- [Release notes](https://github.com/microsoft/GSL/releases)
- [Commits](7e0943d20d...494e6e988c)

---
updated-dependencies:
- dependency-name: deps/GSL
  dependency-version: 494e6e988cc55d0bc7f3763c076ec358a38c68a6
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 17:05:15 +00:00
b4aeadc28c Merge pull request #48 from alterware/dependabot/submodules/deps/GSL-7e0943d
build(deps): bump deps/GSL from `3325bbd` to `7e0943d`
2025-06-02 09:48:35 +02:00
dependabot[bot]
5e8192c049 build(deps): bump deps/GSL from 3325bbd to 7e0943d
Bumps [deps/GSL](https://github.com/microsoft/GSL) from `3325bbd` to `7e0943d`.
- [Release notes](https://github.com/microsoft/GSL/releases)
- [Commits](3325bbd33d...7e0943d20d)

---
updated-dependencies:
- dependency-name: deps/GSL
  dependency-version: 7e0943d20d3082b4f350a7e0c3088d2388e934de
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-01 17:22:44 +00:00
65dcedd308 chore: update copyright year 2025-05-03 11:54:04 +02:00
89794c0952 build: use clang on Windows too (refactor Premake for cURL) 2025-04-30 11:59:49 +02:00
7c5d17d87a Merge pull request #47 from alterware/build/update
fix: delete premake5.exe
2025-04-30 11:04:16 +02:00
85a48d780a fix: delete premake5.exe 2025-04-30 11:03:57 +02:00
2d7631129a Merge pull request #46 from alterware/build/update
build: update CI
2025-04-14 12:08:06 +02:00
640154150e build: update CI 2025-04-14 12:01:56 +02:00
6 changed files with 150 additions and 54 deletions

View File

@@ -10,7 +10,7 @@ on:
types: [opened, synchronize, reopened] types: [opened, synchronize, reopened]
env: env:
PREMAKE_VERSION: "5.0.0-beta2" PREMAKE_VERSION: "5.0.0-beta6"
concurrency: concurrency:
group: ${{ github.ref }} group: ${{ github.ref }}
@@ -24,12 +24,17 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
configuration: configuration:
- debug
- release - release
compiler:
- msvc
- clang
arch: arch:
- x86
- x64 - x64
- arm64 - arm64
include: include:
- arch: x86
platform: Win32
- arch: x64 - arch: x64
platform: x64 platform: x64
- arch: arm64 - arch: arm64
@@ -42,42 +47,39 @@ jobs:
fetch-depth: 0 fetch-depth: 0
lfs: false lfs: false
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@main
- name: Install Premake5 - name: Install Premake5
uses: diamante0018/setup-premake@master uses: diamante0018/setup-premake@master
with: with:
version: ${{ env.PREMAKE_VERSION }} version: ${{ env.PREMAKE_VERSION }}
- name: Generate project files - name: Add msbuild to PATH
uses: microsoft/setup-msbuild@main
- name: Generate project files (clang)
if: matrix.compiler == 'clang'
run: premake5 --cc=${{matrix.compiler}} vs2022
- name: Generate project files (msvc)
if: matrix.compiler == 'msvc'
run: premake5 vs2022 run: premake5 vs2022
- name: Set up problem matching - name: Set up problem matching
uses: ammaraskar/msvc-problem-matcher@master uses: ammaraskar/msvc-problem-matcher@master
- name: Build ${{matrix.arch}} ${{matrix.configuration}} binaries - name: Build ${{matrix.arch}} ${{matrix.configuration}} ${{matrix.compiler}} binaries
run: msbuild /m /v:minimal /p:Configuration=${{matrix.configuration}} /p:Platform=${{matrix.platform}} build/aw-installer.sln run: msbuild /m /p:Configuration=${{matrix.configuration}} /p:Platform=${{matrix.platform}} build/aw-installer.sln
- name: Upload ${{matrix.arch}} ${{matrix.configuration}} binaries - name: Upload ${{matrix.arch}} ${{matrix.configuration}} ${{matrix.compiler}} binaries
uses: actions/upload-artifact@main uses: actions/upload-artifact@main
with: with:
name: windows-${{matrix.arch}}-${{matrix.configuration}} name: windows-${{matrix.arch}}-${{matrix.configuration}}-${{matrix.compiler}}
path: | path: |
build/bin/${{matrix.arch}}/${{matrix.configuration}}/aw-installer.exe build/bin/${{matrix.arch}}/${{matrix.configuration}}/aw-installer.exe
build/bin/${{matrix.arch}}/${{matrix.configuration}}/aw-installer.pdb build/bin/${{matrix.arch}}/${{matrix.configuration}}/aw-installer.pdb
build-linux: prebuild-linux:
name: Build Linux name: Prebuild Linux
runs-on: ubuntu-22.04 runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
configuration:
- debug
- release
arch:
- x64
steps: steps:
- name: Check out files - name: Check out files
uses: actions/checkout@main uses: actions/checkout@main
@@ -86,24 +88,60 @@ jobs:
fetch-depth: 0 fetch-depth: 0
lfs: false lfs: false
- name: Install dependencies (x64)
if: matrix.arch == 'x64'
run: |
sudo apt-get update
sudo apt-get install libcurl4-gnutls-dev -y
- name: Install Premake5 - name: Install Premake5
uses: diamante0018/setup-premake@master uses: diamante0018/setup-premake@master
with: with:
version: ${{ env.PREMAKE_VERSION }} version: ${{ env.PREMAKE_VERSION }}
- name: Generate project files - name: Generate project files
run: premake5 --cc=clang gmake2 run: premake5 --cc=clang gmake
- name: Upload project files
uses: actions/upload-artifact@main
with:
name: linux-project-files
path: |
build/
build-linux-amd64:
name: Build Linux
runs-on: ubuntu-22.04
needs: prebuild-linux
strategy:
fail-fast: false
matrix:
configuration:
- release
arch:
- amd64
steps:
- name: Check out files
uses: actions/checkout@main
with:
submodules: true
fetch-depth: 0
lfs: false
- name: Create the build directory
run: mkdir -p build
- name: Download project files
uses: actions/download-artifact@main
with:
name: linux-project-files
path: build/
- name: Install dependencies (amd64)
if: matrix.arch == 'amd64'
run: |
sudo apt-get update
sudo apt-get install -y libcurl4-gnutls-dev
- name: Set up problem matching - name: Set up problem matching
uses: ammaraskar/gcc-problem-matcher@master uses: ammaraskar/gcc-problem-matcher@master
- name: Build ${{matrix.arch}} ${{matrix.configuration}} binaries - name: Build ${{matrix.arch}} ${{matrix.configuration}} binaries
working-directory: ${{ github.workspace }}
run: | run: |
pushd build pushd build
make config=${{matrix.configuration}}_${{matrix.arch}} -j$(nproc) make config=${{matrix.configuration}}_${{matrix.arch}} -j$(nproc)
@@ -118,6 +156,59 @@ jobs:
path: | path: |
build/bin/${{matrix.arch}}/${{matrix.configuration}}/aw-installer build/bin/${{matrix.arch}}/${{matrix.configuration}}/aw-installer
build-linux-arm64:
name: Build Linux
runs-on: ${{ matrix.os }}
needs: prebuild-linux
strategy:
fail-fast: false
matrix:
configuration:
- release
arch:
- arm64
include:
- arch: arm64
os: ubuntu-24.04-arm
steps:
- name: Check out files
uses: actions/checkout@main
with:
submodules: true
fetch-depth: 0
lfs: false
- name: Create the build directory
run: mkdir -p build
- name: Download project files
uses: actions/download-artifact@main
with:
name: linux-project-files
path: build/
- name: Install dependencies (arm64)
if: matrix.arch == 'arm64'
run: |
sudo apt-get update
sudo apt-get install -y libcurl4-gnutls-dev
- name: Build ${{matrix.arch}} ${{matrix.configuration}} binaries
working-directory: ${{ github.workspace }}
run: |
pushd build
make config=${{matrix.configuration}}_${{matrix.arch}} -j$(nproc)
env:
CC: clang
CXX: clang++
- name: Upload ${{matrix.arch}} ${{matrix.configuration}} binaries
uses: actions/upload-artifact@main
with:
name: linux-${{matrix.arch}}-${{matrix.configuration}}
path: |
build/bin/${{matrix.arch}}/${{matrix.configuration}}/aw-installer
build-macos: build-macos:
name: Build macOS name: Build macOS
runs-on: macos-latest runs-on: macos-latest
@@ -125,9 +216,9 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
configuration: configuration:
- debug
- release - release
arch: arch:
- amd64
- arm64 - arm64
steps: steps:
- name: Check out files - name: Check out files
@@ -143,7 +234,7 @@ jobs:
version: ${{ env.PREMAKE_VERSION }} version: ${{ env.PREMAKE_VERSION }}
- name: Generate project files - name: Generate project files
run: premake5 gmake2 run: premake5 gmake
- name: Set up problem matching - name: Set up problem matching
uses: ammaraskar/gcc-problem-matcher@master uses: ammaraskar/gcc-problem-matcher@master
@@ -162,7 +253,7 @@ jobs:
deploy: deploy:
name: Deploy artifacts name: Deploy artifacts
needs: [build-win, build-linux, build-macos] needs: [build-win, build-linux-amd64, build-linux-arm64, build-macos]
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.event_name == 'push' && github.ref == 'refs/heads/master' if: github.event_name == 'push' && github.ref == 'refs/heads/master'
steps: steps:
@@ -173,7 +264,7 @@ jobs:
- name: Download Release binaries - name: Download Release binaries
uses: actions/download-artifact@main uses: actions/download-artifact@main
with: with:
name: linux-x64-release name: linux-amd64-release
- name: Install SSH key - name: Install SSH key
uses: shimataro/ssh-key-action@v2.7.0 uses: shimataro/ssh-key-action@v2.7.0

View File

@@ -1,6 +1,6 @@
BSD 3-Clause License BSD 3-Clause License
Copyright (c) 2024, AlterWare Copyright (c) 2025, AlterWare
All rights reserved. All rights reserved.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without

2
deps/GSL vendored

Submodule deps/GSL updated: 3325bbd33d...494e6e988c

15
deps/premake/curl.lua vendored
View File

@@ -5,7 +5,7 @@ curl = {
function curl.import() function curl.import()
links { "curl" } links { "curl" }
filter "toolset:msc*" filter "system:windows"
links { "Crypt32.lib" } links { "Crypt32.lib" }
filter {} filter {}
@@ -13,7 +13,7 @@ function curl.import()
end end
function curl.includes() function curl.includes()
filter "toolset:msc*" filter "system:windows"
includedirs { includedirs {
path.join(curl.source, "include"), path.join(curl.source, "include"),
} }
@@ -49,7 +49,7 @@ function curl.project()
"BUILDING_LIBCURL", "BUILDING_LIBCURL",
} }
filter "toolset:msc*" filter "system:windows"
defines { defines {
"USE_SCHANNEL", "USE_SCHANNEL",
@@ -58,15 +58,6 @@ function curl.project()
} }
filter {} filter {}
filter "toolset:not msc*"
defines {
"USE_GNUTLS",
"USE_THREADS_POSIX",
}
filter {}
warnings "Off" warnings "Off"
kind "StaticLib" kind "StaticLib"

View File

@@ -41,9 +41,11 @@ configurations {"debug", "release"}
language "C++" language "C++"
cppdialect "C++20" cppdialect "C++20"
if os.istarget("darwin") then if os.istarget("linux") then
platforms {"x64", "arm64"} platforms {"x86", "amd64", "arm64"}
else elseif os.istarget("macosx") then
platforms {"amd64", "arm64"}
else
platforms {"x86", "x64", "arm64"} platforms {"x86", "x64", "arm64"}
end end
@@ -55,6 +57,10 @@ filter "platforms:x64"
architecture "x86_64" architecture "x86_64"
filter {} filter {}
filter "platforms:amd64"
architecture "x86_64"
filter {}
filter "platforms:arm64" filter "platforms:arm64"
architecture "ARM64" architecture "ARM64"
filter {} filter {}
@@ -71,15 +77,23 @@ filter { "system:linux", "system:macosx" }
filter {} filter {}
if os.istarget("linux") then if os.istarget("linux") then
filter { "toolset:clang*" } -- this supports cross-compilation for arm64
buildoptions "-stdlib=libc++" filter { "toolset:clang*", "platforms:arm64" }
linkoptions "-stdlib=libc++" buildoptions "--target=arm64-linux-gnu"
linkoptions "--target=arm64-linux-gnu"
filter {}
filter { "toolset:clang*" }
-- always try to use lld. LD or Gold will not work -- always try to use lld. LD or Gold will not work
linkoptions "-fuse-ld=lld" linkoptions "-fuse-ld=lld"
filter {} filter {}
end end
filter { "system:macosx", "platforms:amd64" }
buildoptions "-arch x86_64"
linkoptions "-arch x86_64"
filter {}
filter { "system:macosx", "platforms:arm64" } filter { "system:macosx", "platforms:arm64" }
buildoptions "-arch arm64" buildoptions "-arch arm64"
linkoptions "-arch arm64" linkoptions "-arch arm64"
@@ -94,7 +108,7 @@ flags {"NoIncrementalLink", "NoMinimalRebuild", "MultiProcessorCompile", "No64Bi
filter "configurations:release" filter "configurations:release"
optimize "Size" optimize "Size"
defines "NDEBUG" defines "NDEBUG"
flags "FatalCompileWarnings" fatalwarnings {"All"}
filter {} filter {}
filter "configurations:debug" filter "configurations:debug"
@@ -105,6 +119,7 @@ filter {}
project "aw-installer" project "aw-installer"
kind "ConsoleApp" kind "ConsoleApp"
language "C++" language "C++"
cppdialect "C++20"
pchheader "std_include.hpp" pchheader "std_include.hpp"
pchsource "src/std_include.cpp" pchsource "src/std_include.cpp"
@@ -133,6 +148,5 @@ filter {}
dependencies.imports() dependencies.imports()
group "Dependencies" group "Dependencies"
dependencies.projects() dependencies.projects()

Binary file not shown.