summaryrefslogtreecommitdiff
path: root/clbootstrap.sh
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2022-08-19 18:09:25 +0200
committerBent Bisballe Nyeng <deva@aasimon.org>2022-08-19 18:09:25 +0200
commit7436d83ef371d4fee4a66bec235e102ed80275db (patch)
tree243b416b1b6e10a43b9495121af0e57522543de0 /clbootstrap.sh
parente1030dc6e69863438fe35a628bd6af9abc814b4a (diff)
Add support for msvc tool-chain (cl.exe/link.exe and lib.exe) on windows.
Diffstat (limited to 'clbootstrap.sh')
-rwxr-xr-xclbootstrap.sh50
1 files changed, 50 insertions, 0 deletions
diff --git a/clbootstrap.sh b/clbootstrap.sh
new file mode 100755
index 0000000..e3a420f
--- /dev/null
+++ b/clbootstrap.sh
@@ -0,0 +1,50 @@
+#!/bin/bash
+set -e
+set -x
+export WINEDEBUG=-all
+
+rm -f ~/.wine/drive_c/number
+
+export BASE='C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133'
+export ONECORELIB="$BASE\lib\onecore\x86"
+export WINEPATH="$BASE\bin\Hostx86\x86"
+export INCLUDE="$BASE\include"
+export UCRT="C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt"
+export UCRTLIB="C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\ucrt\x86"
+export UM="C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um"
+export UMLIB="C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\um\x86"
+export SHARED="C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared"
+echo Bootstrapping...
+
+export CL="/I\"$BASE\include\" /I\"$UCRT\" /I\"$UM\" /I\"$SHARED\" /link /LIBPATH:\"$UMLIB\" /LIBPATH:\"$ONECORELIB\" /LIBPATH:\"$UCRTLIB\""
+export LINK="/LIBPATH:\"$UMLIB\" /LIBPATH:\"$ONECORELIB\" /LIBPATH:\"$UCRTLIB\""
+export LIB="/LIBPATH:\"$UMLIB\" /LIBPATH:\"$ONECORELIB\" /LIBPATH:\"$UCRTLIB\""
+
+# https://docs.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170
+
+# set INCLUDE="$BASE\include";$UCRT;$UM;$SHARED
+# set LIB=
+# set LIBPATH=$UMLIB;$ONECORELIB;$UCRTLIB
+
+rm -Rf ctor.exe build/ configuration.cc
+
+export CXX="cl.exe"
+export CC="cl.exe"
+export AR="lib.exe"
+export LD="link.exe"
+wine cl /nologo /std:c++20 /D_X86_ /EHsc /Isrc src/bootstrap.cc /link /SUBSYSTEM:CONSOLE /out:ctor.exe
+
+#echo -e "\n\n\nHit ENTER to continue...\n\n\n"; read
+
+wine ctor.exe
+
+#echo -e "\n\n\nHit ENTER to continue...\n\n\n"; read
+
+wine cl /nologo /std:c++20 /D_X86_ /EHsc /Isrc ctor.cc build/libctor.lib /link /SUBSYSTEM:CONSOLE /out:ctor.exe
+
+#echo -e "\n\n\nHit ENTER to continue...\n\n\n"; read
+
+wine ctor.exe configure --ctor-includedir=src --ctor-libdir=build --cxx=cl.exe --cc=cl.exe --ar=lib.exe --ld=link.exe
+
+#echo -e "\n\n\nHit ENTER to continue...\n\n\n"; read
+