[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'