-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add new local composite action to simplify build
composite action do all necessary steps to download, build and configure add new local composite action to simplify build MSVC compiler setup fix bug in VCT2003 cache image, missing setargv.obj file for x86 target Use Visual studio numbering everywhere instead of mixing with Visual C++ compiler Toolkit numbering fix building for arm by VS2019 and VS2022
- Loading branch information
Showing
7 changed files
with
1,107 additions
and
918 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
name: load-build-tools | ||
description: Load build tools | ||
inputs: | ||
nocache: | ||
description: 'skip cache' | ||
default: '' | ||
required: false | ||
type: string | ||
# | ||
# JOM make, used instead of nmake for parallel builds | ||
# | ||
# expected filename: https://download.qt.io/official_releases/jom/jom.zip | ||
# | ||
# NASM assembler | ||
# | ||
# expected filename: https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/win32/nasm-2.15.05-win32.zip | ||
# | ||
# Infozip | ||
# | ||
# expected filename: ftp://ftp.info-zip.org/pub/infozip/win32/zip300xn.zip | ||
# expected filename: ftp://ftp.info-zip.org/pub/infozip/os2/unz600.exe | ||
# | ||
# alternate site: https://ftp.zx.net.nz/pub/archive/ftp.info-zip.org/pub/infozip/ | ||
# | ||
# OS2TK45 OS/2 header files | ||
# | ||
# expected filename: https://88watts.net/dlfile.php?F=Os2Tk45- | ||
# | ||
# OS/2 Developer's Toolkit v4.5 is available on David Azarewicz's 88watts.net | ||
# *supposedly* with permission from IBM - or so Arca Noae (which David is | ||
# involved with) claims on this page: | ||
# https://www.arcanoae.com/wiki/information-for-developers/ | ||
# It is needed only for building the IBM TCP/IP 2.0 TCP/IP backend. The SDK | ||
# for this is also available on the OS/2 Warp 4 CD. | ||
# | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Load Build Tools Cache | ||
if: inputs.nocache != 'true' | ||
uses: actions/cache@v4 | ||
id: cache-tools | ||
with: | ||
path: | | ||
${{github.workspace}}/tools | ||
${{github.workspace}}/info-zip/zip.exe | ||
${{github.workspace}}/info-zip/unzip.exe | ||
${{github.workspace}}/info-zip/os2 | ||
key: all-nasm+jom+info-zip+os2tk45 | ||
- run: mkdir -p tools | ||
if: steps.cache-tools.outputs.cache-hit != 'true' | ||
shell: bash | ||
- name: Get and unpack nasm | ||
if: steps.cache-tools.outputs.cache-hit != 'true' | ||
run: | | ||
curl -LsS -o nasm-2.15.05-win32.zip https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/win32/nasm-2.15.05-win32.zip | ||
7z x nasm-2.15.05-win32.zip -otools | ||
rm -f nasm-2.15.05-win32.zip | ||
mv tools/nasm-2.15.05 tools/nasm | ||
echo "content of tools/nasm" | ||
ls -l tools/nasm | ||
shell: bash | ||
- name: Get and unpack nasm | ||
if: steps.cache-tools.outputs.cache-hit != 'true' | ||
run: | | ||
mkdir -p tools/jom | ||
curl -LsS -o jom.zip https://download.qt.io/official_releases/jom/jom.zip | ||
7z x jom.zip -otools/jom | ||
rm -f jom.zip | ||
echo "content of tools/jom" | ||
ls -l tools/jom | ||
shell: bash | ||
- name: Get and unpack os2tk45 | ||
if: steps.cache-tools.outputs.cache-hit != 'true' | ||
run: | | ||
curl -LsS -o os2tk45.zip ${{env.OS2TK45}} | ||
7z x os2tk45.zip | ||
rm -f os2tk45.zip | ||
mv toolkit/os2tk45 tools/os2tk45 | ||
mv tools/os2tk45/h tools/os2tk45/include | ||
echo "content of tools/os2tk45" | ||
ls -l tools/os2tk45 | ||
shell: bash | ||
- name: Get and unpack Info-Zip | ||
if: steps.cache-tools.outputs.cache-hit != 'true' | ||
run: | | ||
mkdir -p info-zip/os2 | ||
curl -LsS -o zip.zip ${{env.INFOZIP_FTP}}win32/zip300xn.zip | ||
7z x zip.zip -oinfo-zip | ||
rm -f zip.zip | ||
curl -LsS -o unzip.zip ${{env.INFOZIP_FTP}}os2/unz600.exe | ||
7z x unzip.zip -oinfo-zip/os2 | ||
rm -f unzip.zip | ||
mv info-zip/os2/32-bit/* info-zip/os2/ | ||
echo "content of info-zip/os2" | ||
ls -l info-zip/os2 | ||
echo "content of info-zip" | ||
ls -l info-zip | ||
shell: bash |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
name: load-vs2003-psdk2003-sp1 | ||
description: Load Visual Studio 2003/2005 Toolkit and PSDK 2003 SP1 | ||
inputs: | ||
nocache: | ||
description: 'skip cache' | ||
default: '' | ||
required: false | ||
type: string | ||
arch: | ||
description: 'Architecture' | ||
default: '' | ||
required: false | ||
type: string | ||
# | ||
# expected filename: https://ftp.zx.net.nz/pub/dev/VC2003Toolkit/VCT2003+PSDK2003+cvtres.7z | ||
# | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Load Cache VS2003 | ||
if: inputs.nocache != 'true' | ||
uses: actions/cache@v4 | ||
id: cache-vs2003 | ||
with: | ||
path: | | ||
${{github.workspace}}\vs2003 | ||
key: all-vs2003+psdk2003sp1 | ||
- name: Get and unpack Visual C++ 2003 Toolkit and PSDK 2003 SP1 | ||
if: steps.cache-vs2003.outputs.cache-hit != 'true' | ||
run: | | ||
curl -LsS -o vs2003.7z https://ftp.zx.net.nz/pub/dev/VC2003Toolkit/VCT2003+PSDK2003+cvtres.7z | ||
7z x vs2003.7z | ||
rm -f vs2003.7z | ||
mv "Microsoft Platform SDK 2003SP1" vs2003 | ||
rm -f vs2003\Bin\Cvtres.exe | ||
echo "content of vs2003" | ||
ls -l vs2003 | ||
shell: bash | ||
- name: Setup build MSVC compiler Environment | ||
run: | | ||
rem add build MSVC compiler on the beginning of PATH | ||
rem we need cvtres.exe from current MSVC compiler only | ||
if "${{inputs.arch}}" == "x86" echo ${{github.workspace}}\vs2003\bin>> "%GITHUB_PATH%" | ||
if "${{inputs.arch}}" == "ia64" echo ${{github.workspace}}\vs2003\bin\win64;${{github.workspace}}\vs2003\bin>> "%GITHUB_PATH%" | ||
rem Don't want to pick up headers or libraries from current MSVC compiler | ||
rem we override INCLUDE and LIB environment variables to point to build MSVC compiler | ||
echo INCLUDE=${{github.workspace}}\vs2003\include>> "%GITHUB_ENV%" | ||
if "${{inputs.arch}}" == "x86" echo LIB=${{github.workspace}}\vs2003\lib;%LIB%>> "%GITHUB_ENV%" | ||
if "${{inputs.arch}}" == "ia64" echo LIB=${{github.workspace}}\vs2003\lib\ia64>> "%GITHUB_ENV%" | ||
shell: cmd | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
name: load-vs2010-psdk71 | ||
description: Load Visual Studio 2010 Toolkit and PSDK 7.1 | ||
inputs: | ||
nocache: | ||
description: 'skip cache' | ||
default: '' | ||
required: false | ||
type: string | ||
arch: | ||
description: 'Architecture' | ||
default: '' | ||
required: false | ||
type: string | ||
# | ||
# expected filename: https://ftp.zx.net.nz/pub/dev/WinSDK/win7-7.1-dn4/win7-7.1-sdk-vc.7z | ||
# expected filename: https://ftp.zx.net.nz/pub/dev/WinSDK/win7-7.1-dn4/win7-7.1-sdk-psdk.7z | ||
# expected filename: http://download.microsoft.com/download/5/B/C/5BC5DBB3-652D-4DCE-B14A-475AB85EEF6E/vcredist_x86.exe | ||
# | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Load Cache VS2010 | ||
if: inputs.nocache != 'true' | ||
uses: actions/cache@v4 | ||
id: cache-vs2010 | ||
with: | ||
path: | | ||
${{github.workspace}}\Microsoft SDKs | ||
${{github.workspace}}\Microsoft Visual Studio 10.0 | ||
${{github.workspace}}\vc10.cmd | ||
${{github.workspace}}\vs2010 | ||
key: all-vs2010-psdk71-redist | ||
- name: Get and unpack Visual C++ 2010 Toolkit | ||
if: steps.cache-vs2010.outputs.cache-hit != 'true' | ||
run: | | ||
curl -LsS -o win7-7.1-sdk-vc.7z https://ftp.zx.net.nz/pub/dev/WinSDK/win7-7.1-dn4/win7-7.1-sdk-vc.7z | ||
7z x win7-7.1-sdk-vc.7z | ||
rm -f win7-7.1-sdk-vc.7z | ||
echo "content of Microsoft Visual Studio 10.0" | ||
ls -l "Microsoft Visual Studio 10.0" | ||
shell: bash | ||
- name: Get and unpack Windows 7 Platform SDK 7.1 | ||
if: steps.cache-vs2010.outputs.cache-hit != 'true' | ||
run: | | ||
curl -LsS -o win7-7.1-sdk-psdk.7z https://ftp.zx.net.nz/pub/dev/WinSDK/win7-7.1-dn4/win7-7.1-sdk-psdk.7z | ||
7z x win7-7.1-sdk-psdk.7z | ||
rm -f win7-7.1-sdk-psdk.7z | ||
echo "content of Microsoft SDKs" | ||
ls -l "Microsoft SDKs" | ||
shell: bash | ||
- name: Get Visual C++ 2010 runtime | ||
if: steps.cache-vs2010.outputs.cache-hit != 'true' | ||
run: | | ||
mkdir -p vs2010 | ||
curl -LsS -o vs2010/vcredist_x86.exe http://download.microsoft.com/download/5/B/C/5BC5DBB3-652D-4DCE-B14A-475AB85EEF6E/vcredist_x86.exe | ||
echo "content of vs2010" | ||
ls -l vs2010 | ||
shell: bash | ||
- name: Install the VS2010 runtime | ||
working-directory: ${{ github.workspace }} | ||
run: vs2010\vcredist_x86.exe /q /norestart | ||
shell: cmd |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
name: load-open-watcom | ||
description: Load Open Watcom | ||
inputs: | ||
nocache: | ||
description: 'skip cache' | ||
default: '' | ||
required: false | ||
type: string | ||
ver: | ||
description: 'version' | ||
default: '' | ||
required: false | ||
type: string | ||
id: | ||
description: 'Identification' | ||
default: '' | ||
required: false | ||
type: string | ||
# | ||
# Open Watcom 1.9 | ||
# expected filename: https://github.com/open-watcom/open-watcom-1.9/releases/download/ow1.9/open-watcom-c-linux-1.9 | ||
# | ||
# Open Watcom 2.0 | ||
# expected filename: https://github.com/open-watcom/open-watcom-v2/releases/download/Current-build/ow-snapshot.tar.xz | ||
# | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Load Cache VS2003 | ||
if: inputs.nocache != 'true' | ||
uses: actions/cache@v4 | ||
id: cache-ow | ||
with: | ||
path: | | ||
${{github.workspace}}\watcom | ||
key: all-open-watcom-${{inputs.ver}} | ||
- name: Get and unpack Open Watcom | ||
if: steps.cache-ow.outputs.cache-hit != 'true' | ||
run: | | ||
mkdir -p watcom | ||
if [[ "${{inputs.ver}}" = "2.0" ]]; then | ||
curl -LsS -o ow-snapshot.tar.xz https://github.com/open-watcom/open-watcom-v2/releases/download/Current-build/ow-snapshot.tar.xz | ||
7z x ow-snapshot.tar.xz | ||
7z x ow-snapshot.tar -owatcom | ||
rm -f ow-snapshot.tar.xz ow-snapshot.tar | ||
else | ||
curl -LsS -o ow.zip https://github.com/open-watcom/open-watcom-1.9/releases/download/ow1.9/open-watcom-c-linux-1.9 | ||
7z x ow.zip -owatcom | ||
rm -f ow.zip | ||
fi | ||
echo "content of watcom" | ||
ls -l watcom | ||
shell: bash | ||
- name: Setup Open Watcom Environment | ||
run: | | ||
if [[ "${{runner.os}}" = "Windows" ]]; then | ||
X=\\ | ||
else | ||
X=/ | ||
fi | ||
echo "WATCOM=${{github.workspace}}${X}watcom">> "$GITHUB_ENV" | ||
echo "${{github.workspace}}${X}watcom${X}binw">> "$GITHUB_PATH" | ||
if [[ "${{runner.os}}" = "Windows" ]]; then | ||
echo "${{github.workspace}}${X}watcom${X}binnt">> "$GITHUB_PATH" | ||
else | ||
echo "${{github.workspace}}${X}watcom${X}binl">> "$GITHUB_PATH" | ||
fi | ||
if [[ "${{inputs.id}}" = "os2" ]]; then | ||
echo "INCLUDE=${{github.workspace}}${X}watcom${X}h;${{github.workspace}}${X}watcom${X}h${X}os2">> "$GITHUB_ENV" | ||
else | ||
echo "INCLUDE=${{github.workspace}}${X}watcom${X}h;${{github.workspace}}${X}watcom${X}h${X}nt">> "$GITHUB_ENV" | ||
fi | ||
shell: bash |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
name: comp-set | ||
description: 'setup build MSVC compiler environment' | ||
inputs: | ||
path: | ||
description: 'path list to add to PATH' | ||
default: '' | ||
required: false | ||
type: string | ||
include: | ||
description: 'item list to add to INCLUDE' | ||
default: '' | ||
required: false | ||
type: string | ||
lib: | ||
description: 'item list to add to LIB' | ||
default: '' | ||
required: false | ||
type: string | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Setup build MSVC compiler Environment | ||
run: | | ||
rem add build MSVC compiler on the beginning of PATH | ||
rem we need cvtres.exe from current MSVC compiler only | ||
for /f "tokens=1,2" %%a in ("${{inputs.path}}") do ( | ||
if not "%%b" == "" echo ${{github.workspace}}\%%b>> "%GITHUB_PATH%" | ||
if not "%%a" == "" echo ${{github.workspace}}\%%a>> "%GITHUB_PATH%" | ||
) | ||
rem Don't want to pick up headers or libraries from current MSVC compiler | ||
rem we override INCLUDE and LIB environment variables to point to build MSVC compiler | ||
for /f "tokens=1,2" %%a in ("${{inputs.include}}") do ( | ||
if not "%%b" == "" echo INCLUDE=${{github.workspace}}\%%a;${{github.workspace}}\%%b>> "%GITHUB_ENV%" | ||
if "%%b" == "" if not "%%a" == "" echo INCLUDE=${{github.workspace}}\%%a>> "%GITHUB_ENV%" | ||
) | ||
for /f "tokens=1,2" %%a in ("${{inputs.lib}}") do ( | ||
if not "%%b" == "" echo LIB=${{github.workspace}}\%%a;${{github.workspace}}\%%b>> "%GITHUB_ENV%" | ||
if "%%b" == "" if not "%%a" == "" echo LIB=${{github.workspace}}\%%a>> "%GITHUB_ENV%" | ||
) | ||
shell: cmd |
Oops, something went wrong.