[constants]
vs_path = 'C:\BuildTools'
msvc_version = '14.29.30133'
msvc_version_dir = vs_path / 'VC\Tools\MSVC' / msvc_version
msvc_x64_bindir = msvc_version_dir / 'bin\Hostx64\x64'
msvc_x64_libdir = msvc_version_dir / 'lib\x64'
wk_path = 'C:\Program Files (x86)\Windows Kits'
wk_version = '10.0.19041.0'
wk_x64_libdir = wk_path / '10\lib' / wk_version / 'um\x64'
wk_x64_crt_libdir = wk_path / '10\lib' / wk_version / 'ucrt\x64'
# Forcibly link to x64 libs when using native linker, otherwise the LIB
# variable in the env will cause link.exe to pick up libs from the cross
# msvc libdir. A better fix might be to use a wrapper script that calls
# link.exe inside the correct VS environment for x64.
msvc_x64_libs = [msvc_x64_libdir / 'msvcrt.lib', msvc_x64_libdir / 'msvcrtd.lib', msvc_x64_libdir / 'vcruntime.lib', msvc_x64_libdir / 'oldnames.lib', wk_x64_crt_libdir / 'ucrt.lib']

[host_machine]
system = 'windows'
cpu_family = 'x86_64'
cpu = 'x86_64'
endian = 'little'

[properties]
needs_exe_wrapper = true

[built-in options]
# Ensure that x64 libs are used for linking even when we're inside, say, an
# arm64 VS environment
c_link_args = ['/LIBPATH:' + wk_x64_libdir] + msvc_x64_libs
cpp_link_args = ['/LIBPATH:' + wk_x64_libdir] + msvc_x64_libs

[binaries]
lib       = msvc_x64_bindir / 'lib.exe'
c         = msvc_x64_bindir / 'cl.exe'
c_ld      = msvc_x64_bindir / 'link.exe'
cpp       = msvc_x64_bindir / 'cl.exe'
cpp_ld    = msvc_x64_bindir / 'link.exe'
pkgconfig = 'false'
