mirror of
https://github.com/Neo-Desktop/WindowsXPKg
synced 2024-12-21 12:00:16 +02:00
15cbe19006
* major refactor/overhaul move generation implementation to libumskt/* decouple CLI/Options (and JSON) from generation implementation set groundwork for future shared library use standardized PIDGEN2/PIDGEN3 naming convention create a Windows Docker file for quick compilation add Windows resouce file/header so we have an application icon on windows use icon from @Endermanch (used with permission) add support for fully-static linux/muslc-based compilation add support for a dos/windows (i486+) binary using djgpp add Dockerfile to compile gcc/djgpp/watt32/openssl to provide DOS (DPMI) binaries add @Endermanch 's Vista+ documentation update Readme for recent credits * begin work on C linkage and emscripten buildpath * Update CMake to include and build Crypto++ * move dllmain.cpp to the correct directory * add rust port info to README.md * re-add dropped changes from rebase * update build config, specify windows XP version number for crypto++ * update dos-djgpp action to use new cmake builder and options * update dos-djgpp to use UMSKT hosted forks * update other workflows to include standard header * remove crypto++ from build config for now * use the new `shell` parameter in `threeal/cmake-action` TODO: move to a stable version (v1.3.0) when ready * use full commit hash because a shortened hash is unsupported * add the required {0} parameter? * add openssl 3.1.1 to windows github runners * ensure linux matrix build compiles on the correct arch --------- Co-authored-by: Neo <321592+Neo-Desktop@users.noreply.github.com>
87 lines
3.7 KiB
Docker
87 lines
3.7 KiB
Docker
# escape=`
|
|
|
|
# This file is a part of the UMSKT Project
|
|
#
|
|
# Copyleft (C) 2019-2023 UMSKT Contributors (et.al.)
|
|
#
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU Affero General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU Affero General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Affero General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
#
|
|
# @FileCreated by Neo on 06/19/2023
|
|
# @Maintainer Neo
|
|
|
|
# Stage 1: Install Visual Studio
|
|
FROM mcr.microsoft.com/dotnet/framework/runtime:4.8.1 as visualstudio
|
|
# Download and install Build Tools for Visual Studio 2022 for native desktop workload.
|
|
#ADD https://aka.ms/vs/17/release/vs_buildtools.exe C:\TEMP\vs_buildtools.exe
|
|
ADD vs_buildtools.exe C:\TEMP\vs_buildtools.exe
|
|
RUN C:\TEMP\vs_buildtools.exe --quiet --wait --norestart --nocache `
|
|
--add Microsoft.VisualStudio.Workload.VCTools `
|
|
--add Microsoft.VisualStudio.Workload.MSBuildTools `
|
|
--add Microsoft.VisualStudio.Component.WinXP `
|
|
--includeRecommended `
|
|
--installPath C:\BuildTools \
|
|
|
|
# Stage 2: Install Chocolatey and Prereqisites
|
|
FROM visualstudio as prereqisites
|
|
WORKDIR C:\TEMP\
|
|
|
|
RUN ["powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass", "[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))"]
|
|
RUN ["powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass", "choco feature enable -n allowGlobalConfirmation"]
|
|
RUN ["powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass", "choco install git --params \"'/GitAndUnixToolsOnPath /WindowsTerminal /NoShellIntegration /NoGuiHereIntegration /NoShellHereIntegration /NoCredentialManager /SChannel'\""]
|
|
|
|
#Install OpenSSL 32bit 3.1.1
|
|
#ADD https://slproweb.com/download/Win32OpenSSL-3_1_1.msi C:\TEMP\Win32OpenSSL-3_1_1.msi
|
|
ADD Win32OpenSSL-3_1_1.msi C:\TEMP\Win32OpenSSL-3_1_1.msi
|
|
RUN msiexec /i C:\TEMP\Win32OpenSSL-3_1_1.msi /quiet /qn /norestart
|
|
|
|
#Install OpenSSL 64bit 3.1.1
|
|
#ADD https://slproweb.com/download/Win64OpenSSL-3_1_1.msi C:\TEMP\Win64OpenSSL-3_1_1.msi
|
|
ADD Win64OpenSSL-3_1_1.msi C:\TEMP\Win64OpenSSL-3_1_1.msi
|
|
RUN msiexec /i C:\TEMP\Win64OpenSSL-3_1_1.msi /quiet /qn /norestart
|
|
|
|
# Stage 3: Build the 32-bit version of UMSKT
|
|
FROM prereqisites as Build32
|
|
WORKDIR C:\umskt\
|
|
COPY . C:\umskt\
|
|
|
|
RUN C:\BuildTools\Common7\Tools\VsDevCmd.bat && `
|
|
mkdir C:\umskt\build && `
|
|
cd C:\umskt\build && `
|
|
cmake -DMSVC_MSDOS_STUB:string=..\umskt.exe .. -G "Visual Studio 17 2022" -A "Win32" -T v141_xp && `
|
|
msbuild ALL_BUILD.vcxproj /P:Configuration=Release
|
|
|
|
# Stage 4: Build the 64-bit version of UMSKT
|
|
FROM prereqisites as Build64
|
|
|
|
WORKDIR C:\umskt\
|
|
COPY . C:\umskt\
|
|
|
|
ENV OPENSSL_ROOT_DIR="C:\Program Files\OpenSSL-Win64"
|
|
RUN C:\BuildTools\Common7\Tools\VsDevCmd.bat && `
|
|
mkdir C:\umskt\build && `
|
|
cd C:\umskt\build && `
|
|
cmake .. && `
|
|
msbuild ALL_BUILD.vcxproj /P:Configuration=Release
|
|
|
|
# Stage 5: Copy binaries to an output/runtime image
|
|
FROM mcr.microsoft.com/dotnet/framework/runtime:4.8.1 as output
|
|
|
|
COPY --from=Build32 C:\umskt\build\Release\umskt.exe C:\umskt\umskt.exe
|
|
COPY --from=Build64 C:\umskt\build\Release\umskt.exe C:\umskt\umskt64.exe
|
|
|
|
#invoke via
|
|
# docker build -f Dockerfile.windows .
|
|
# docker run <hash>
|
|
# docker cp <plug>:C:\umskt umskt-win
|