mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-10 20:07:05 -06:00
Add Github Build Action
Signed-off-by: Tino Reichardt <milky-7zip@mcmilk.de>
This commit is contained in:
205
.github/workflows/build-win.yml
vendored
Normal file
205
.github/workflows/build-win.yml
vendored
Normal file
@@ -0,0 +1,205 @@
|
||||
|
||||
########################################################################################
|
||||
# overview for supported targets:
|
||||
# 12.0 https://learn.microsoft.com/en-us/visualstudio/releases/2013/vs2013-compatibility-vs
|
||||
# 14.0 https://learn.microsoft.com/en-us/visualstudio/releases/2015/vs2015-compatibility-vs
|
||||
# 15.0 https://learn.microsoft.com/en-us/visualstudio/releases/2017/vs2017-compatibility-vs
|
||||
# 16.0 https://learn.microsoft.com/en-us/visualstudio/releases/2019/compatibility
|
||||
# 17.0 https://learn.microsoft.com/en-us/visualstudio/releases/2022/compatibility
|
||||
# -> take 16.0 for now /TR
|
||||
########################################################################################
|
||||
|
||||
name: Build Windows binaries
|
||||
on: [push, pull_request]
|
||||
|
||||
# runs-on: windows-latest -> VS 17.0
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: windows-2019
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
arch: [ amd64, amd64_x86, amd64_arm, amd64_arm64 ]
|
||||
include:
|
||||
- arch: amd64_x86
|
||||
subsys: "5.01"
|
||||
platform: "x86"
|
||||
- arch: amd64
|
||||
subsys: "5.02"
|
||||
platform: "x64"
|
||||
- arch: amd64_arm
|
||||
subsys: "6.02"
|
||||
platform: "arm"
|
||||
- arch: amd64_arm64
|
||||
subsys: "6.02"
|
||||
platform: "arm64"
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Add msbuild to PATH
|
||||
uses: microsoft/setup-msbuild@v1.3
|
||||
with:
|
||||
vs-version: 16.11
|
||||
|
||||
- name: Enable Developer Command Prompt
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
with:
|
||||
arch: ${{ matrix.arch }}
|
||||
|
||||
- name: Compile ${{ matrix.arch }}
|
||||
shell: cmd
|
||||
run: |
|
||||
set APPVEYOR_BUILD_FOLDER=%cd%
|
||||
set CLOUD=TRUE
|
||||
set VC=17.0
|
||||
set PLATFORM=${{matrix.platform}}
|
||||
set SUBSYS=${{matrix.subsys}}
|
||||
set DEBUG=${{ matrix.debug }}
|
||||
echo "********"
|
||||
echo "APPVEYOR_BUILD_FOLDER: %APPVEYOR_BUILD_FOLDER%"
|
||||
echo "Platform: %PLATFORM%"
|
||||
echo "SUBSYS: %SUBSYS%"
|
||||
echo "Build: %DEBUG%"
|
||||
echo "GithubAction: %CLOUD%"
|
||||
cd cpp
|
||||
@echo off
|
||||
|
||||
set ROOT=%cd%\7zip
|
||||
set OUTDIR=%APPVEYOR_BUILD_FOLDER%\build\bin-%VC%-%PLATFORM%
|
||||
set ERRFILE=%APPVEYOR_BUILD_FOLDER%\build\bin-%VC%-%PLATFORM%.log
|
||||
set LFLAGS=/SUBSYSTEM:WINDOWS,%SUBSYS%
|
||||
|
||||
set > %APPVEYOR_BUILD_FOLDER%\build\env-%VC%-%PLATFORM%.txt
|
||||
mkdir %OUTDIR%
|
||||
|
||||
cd %ROOT%\Bundles\Format7zExtract
|
||||
nmake %OPTS%
|
||||
IF %errorlevel% NEQ 0 echo "Error @ 7zxa.dll" >> %ERRFILE%
|
||||
copy %PLATFORM%\7zxa.dll %OUTDIR%\7zxa.dll
|
||||
|
||||
cd %ROOT%\Bundles\Format7z
|
||||
nmake %OPTS%
|
||||
IF %errorlevel% NEQ 0 (
|
||||
echo "Error @ 7za.dll" >> %ERRFILE%
|
||||
exit -1 )
|
||||
copy %PLATFORM%\7za.dll %OUTDIR%\7za.dll
|
||||
|
||||
cd %ROOT%\Bundles\Format7zF
|
||||
nmake %OPTS%
|
||||
IF %errorlevel% NEQ 0 (
|
||||
echo "Error @ 7z.dll" >> %ERRFILE%
|
||||
exit -1 )
|
||||
copy %PLATFORM%\7z.dll %OUTDIR%\7z.dll
|
||||
|
||||
cd %ROOT%\UI\FileManager
|
||||
nmake %OPTS%
|
||||
IF %errorlevel% NEQ 0 (
|
||||
echo "Error @ 7zFM.exe" >> %ERRFILE%
|
||||
exit -1 )
|
||||
copy %PLATFORM%\7zFM.exe %OUTDIR%\7zFM.exe
|
||||
|
||||
cd %ROOT%\UI\GUI
|
||||
nmake %OPTS%
|
||||
IF %errorlevel% NEQ 0 (
|
||||
echo "Error @ 7zG.exe" >> %ERRFILE%
|
||||
exit -1 )
|
||||
copy %PLATFORM%\7zG.exe %OUTDIR%\7zG.exe
|
||||
|
||||
cd %ROOT%\UI\Explorer
|
||||
nmake %OPTS%
|
||||
IF %errorlevel% NEQ 0 (
|
||||
echo "Error @ 7-zip.dll" >> %ERRFILE%
|
||||
exit -1 )
|
||||
copy %PLATFORM%\7-zip.dll %OUTDIR%\7-zip.dll
|
||||
|
||||
cd %ROOT%\Bundles\SFXWin
|
||||
nmake %OPTS%
|
||||
IF %errorlevel% NEQ 0 (
|
||||
echo "Error @ 7z.sfx" >> %ERRFILE%
|
||||
exit -1 )
|
||||
copy %PLATFORM%\7z.sfx %OUTDIR%\7z.sfx
|
||||
|
||||
cd %ROOT%\Bundles\Codec_brotli
|
||||
nmake %OPTS%
|
||||
IF %errorlevel% NEQ 0 (
|
||||
echo "Error @ brotli.dll" >> %ERRFILE%
|
||||
exit -1 )
|
||||
copy %PLATFORM%\brotli.dll %OUTDIR%\brotli.dll
|
||||
|
||||
cd %ROOT%\Bundles\Codec_lizard
|
||||
nmake %OPTS%
|
||||
IF %errorlevel% NEQ 0 (
|
||||
echo "Error @ lizard.dll" >> %ERRFILE%
|
||||
exit -1 )
|
||||
copy %PLATFORM%\lizard.dll %OUTDIR%\lizard.dll
|
||||
|
||||
cd %ROOT%\Bundles\Codec_lz4
|
||||
nmake %OPTS%
|
||||
IF %errorlevel% NEQ 0 (
|
||||
echo "Error @ lz4.dll" >> %ERRFILE%
|
||||
exit -1 )
|
||||
copy %PLATFORM%\lz4.dll %OUTDIR%\lz4.dll
|
||||
|
||||
cd %ROOT%\Bundles\Codec_lz5
|
||||
nmake %OPTS%
|
||||
IF %errorlevel% NEQ 0 (
|
||||
echo "Error @ lz5.dll" >> %ERRFILE%
|
||||
exit -1 )
|
||||
copy %PLATFORM%\lz5.dll %OUTDIR%\lz5.dll
|
||||
|
||||
cd %ROOT%\Bundles\Codec_zstd
|
||||
nmake %OPTS%
|
||||
IF %errorlevel% NEQ 0 (
|
||||
echo "Error @ zstd.dll" >> %ERRFILE%
|
||||
exit -1 )
|
||||
copy %PLATFORM%\zstd.dll %OUTDIR%\zstd.dll
|
||||
|
||||
cd %ROOT%\Bundles\Codec_flzma2
|
||||
nmake %OPTS%
|
||||
IF %errorlevel% NEQ 0 (
|
||||
echo "Error @ flzma2.dll" >> %ERRFILE%
|
||||
exit -1 )
|
||||
copy %PLATFORM%\flzma2.dll %OUTDIR%\flzma2.dll
|
||||
|
||||
cd %ROOT%\..\..\C\Util\7zipInstall
|
||||
nmake %OPTS%
|
||||
IF %errorlevel% NEQ 0 (
|
||||
echo "Error @ Install.exe" >> %ERRFILE%
|
||||
exit -1 )
|
||||
copy %PLATFORM%\7zipInstall.exe %OUTDIR%\Install.exe
|
||||
|
||||
cd %ROOT%\..\..\C\Util\7zipUninstall
|
||||
nmake %OPTS%
|
||||
IF %errorlevel% NEQ 0 (
|
||||
echo "Error @ Uninstall.exe" >> %ERRFILE%
|
||||
exit -1 )
|
||||
copy %PLATFORM%\7zipUninstall.exe %OUTDIR%\Uninstall.exe
|
||||
|
||||
set LFLAGS=/SUBSYSTEM:CONSOLE,%SUBSYS%
|
||||
cd %ROOT%\UI\Console
|
||||
nmake %OPTS%
|
||||
IF %errorlevel% NEQ 0 (
|
||||
echo "Error @ 7z.exe" >> %ERRFILE%
|
||||
exit -1 )
|
||||
copy %PLATFORM%\7z.exe %OUTDIR%\7z.exe
|
||||
|
||||
cd %ROOT%\Bundles\SFXCon
|
||||
nmake %OPTS%
|
||||
IF %errorlevel% NEQ 0 (
|
||||
echo "Error @ 7zCon.sfx" >> %ERRFILE%
|
||||
exit -1 )
|
||||
copy %PLATFORM%\7zCon.sfx %OUTDIR%\7zCon.sfx
|
||||
|
||||
cd %ROOT%\Bundles\Alone
|
||||
nmake %OPTS%
|
||||
IF %errorlevel% NEQ 0 (
|
||||
echo "Error @ 7za.exe" >> %ERRFILE%
|
||||
exit -1 )
|
||||
copy %PLATFORM%\7za.exe %OUTDIR%\7za.exe
|
||||
|
||||
- name: Upload a Build Artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
# A file, directory or wildcard pattern that describes what to upload
|
||||
path: ${{ github.workspace }}/build/**/*
|
||||
@@ -19,9 +19,10 @@ O=o
|
||||
|
||||
!IF "$(PLATFORM)" == "x64"
|
||||
MY_ML = ml64 -WX
|
||||
#-Dx64
|
||||
!ELSEIF "$(PLATFORM)" == "arm"
|
||||
MY_ML = armasm -WX
|
||||
!ELSEIF "$(PLATFORM)" == "arm64"
|
||||
MY_ML = armasm
|
||||
!ELSE
|
||||
MY_ML = ml -WX
|
||||
# -DABI_CDECL
|
||||
@@ -116,11 +117,7 @@ CFLAGS = $(CFLAGS) -D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
!IF "$(PLATFORM)" == "x64"
|
||||
CFLAGS_O1 = $(CFLAGS) -O1
|
||||
!ELSE
|
||||
CFLAGS_O1 = $(CFLAGS) -O1
|
||||
!ENDIF
|
||||
CFLAGS_O2 = $(CFLAGS) -O2 /Ob3
|
||||
|
||||
LFLAGS = $(LFLAGS) -nologo -OPT:REF -OPT:ICF
|
||||
|
||||
Reference in New Issue
Block a user