#! /usr/bin/env bash # file : msvc-16/msvc-16.0-32 # license : MIT; see accompanying LICENSE file # MSVC 16 32-bit setup/configuration (note: using 64-to-32 cross-compiler). # # Should set the SDKBIN, VCBIN, VCDLL, INCLUDE, and LIB variables. # if [ -z "$MSVC_INSTALLDIR" ]; then MSVC_INSTALLDIR="Microsoft Visual Studio 16.0" fi if [ -z "$MSVC_SDKVERSION" ]; then source "$src_dir/msvc-common/msvc-sdk-common" MSVC_SDKVERSION="$(windows10_sdkversion)" fi # SDK # SDK="C:\\Program Files (x86)\\Windows Kits\\10" SDKVER="$MSVC_SDKVERSION.0" SDKBIN="$SDK\\bin\\$SDKVER\\x86" INCLUDE="$SDK\\include\\$SDKVER\\shared;$SDK\\include\\$SDKVER\\um;$SDK\\include\\$SDKVER\\winrt;$SDK\\include\\$SDKVER\\cppwinrt" LIB="$SDK\\lib\\$SDKVER\\um\\x86" # CRT # CRT="C:\\Program Files (x86)\\Windows Kits\\10" CRTVER="$MSVC_SDKVERSION.0" INCLUDE="$CRT\\include\\$CRTVER\\ucrt;$INCLUDE" LIB="$CRT\\lib\\$CRTVER\\ucrt\\x86;$LIB" # VC # VC="C:\\Program Files (x86)\\$MSVC_INSTALLDIR\\VC\\Tools\\MSVC\\14.20.27404" # Note that running cross-linker may end up with the following error: # # LINK : fatal error LNK1158: cannot run 'cvtres.exe' # # The native linker doesn't fail but may run out of memory in some cases. One # workaround for the above error is to symlinking HostX64/x64/cvtres.exe into # HostX64/x86/. However, let's postpone it until really necessary. # VCBIN="$VC\\bin\\HostX64\\x86" VCDLL="$VC\\bin\\HostX64\\x64" INCLUDE="$VC\\include;$INCLUDE" IFCPATH="$VC\\ifc\\x86" LIB="$VC\\lib\\x86;$LIB"