Boost logo

Boost-Build :

From: pbristow_at_[hidden]
Date: 2019-08-23 17:14:11


I have returned once again to getting clang-win on Windows 10 with MSVC to work.

It is compiling correctly but failing at the manifest generation station using
mt.exe.

As far as I can diagnose, the problem is now finding the correct location of
SDK.

My user-config-jam starts with

using clang-win
  : # Clang with Windows Version.
    8.0.0
  : # Location of Clang compiler .exe file(s). clang-win MUST use clang-cl
driver, not clang++.exe
     # Copied as path is "C:\LLVM\clang-800\LLVM\bin\clang-cl.exe"
     "C:/LLVM/clang-800/LLVM/bin/clang-cl.exe"
       -fuse-ld=lld # Use lld linker https://lld.llvm.org/, not clang++ nor
clang-cl.exe linker.

  : # Options.
.

--debug-configuration shows this

notice: [clang-win] using compiler '"C:/LLVM/clang-800/LLVM/bin/clang-cl.exe"
"-fuse-ld=lld"', version '8.0.0'
notice: will use 'C:/LLVM/clang-800/LLVM/bin/clang-cl.exe' '-fuse-ld=lld' for
clang-win, condition <toolset>clang-win-8.0.0
notice: [clang-win] 32: using assembler 'ml.exe'
notice: [clang-win] 32: using archiver '"C:/LLVM/clang-800/LLVM/bin\\lld-link"
/lib'
notice: [clang-win] 32: using SDK path 'C:\\Program Files (x86)\\Windows
Kits\\10\\bin\x86'
notice: [clang-win] 32: using manifest-tool '"C:\\Program Files (x86)\\Windows
Kits\\10\\bin\x86\mt.exe"'
notice: [clang-win] 32: using resource-compiler '"C:\\Program Files
(x86)\\Windows Kits\\10\\bin\x86\rc.exe"'
notice: [clang-win] 32: using mc-compiler '"C:\\Program Files (x86)\\Windows
Kits\\10\\bin\x86\mc.exe"'
notice: [clang-win] 32: using idl-compiler '"C:\\Program Files (x86)\\Windows
Kits\\10\\bin\x86\midl.exe"'
notice: [clang-win] 64: using assembler 'ml64.exe'
notice: [clang-win] 64: using archiver '"C:/LLVM/clang-800/LLVM/bin\\lld-link"
/lib'
notice: [clang-win] 64: using SDK path 'C:\\Program Files (x86)\\Windows
Kits\\10\\bin\x64'
notice: [clang-win] 64: using manifest-tool '"C:\\Program Files (x86)\\Windows
Kits\\10\\bin\x64\mt.exe"'
notice: [clang-win] 64: using resource-compiler '"C:\\Program Files
(x86)\\Windows Kits\\10\\bin\x64\rc.exe"'
notice: [clang-win] 64: using mc-compiler '"C:\\Program Files (x86)\\Windows
Kits\\10\\bin\x64\mc.exe"'
notice: [clang-win] 64: using idl-compiler '"C:\\Program Files (x86)\\Windows
Kits\\10\\bin\x64\midl.exe"'

but the correct locations are

"C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64\mt.exe"
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x86\mt.exe"

SDK path 'C:\\Program Files (x86)\\Windows
Kits\\10\\bin\\10.0.18362.0\\x86\\x86'
SDK path 'C:\\Program Files (x86)\\Windows
Kits\\10\\bin\\10.0.18362.0\\x64\\x64'

And with each update the version no 10.0.18362 will change.

I sense that I should be calling vsvarsall.bat to set up SDK location?

windir=C:\WINDOWS
WindowsLibPath=C:\Program Files (x86)\Windows
Kits\10\UnionMetadata\10.0.18362.0;C:\Program Files (x86)\Windows
Kits\10\References\10.0.18362.0
WindowsSdkBinPath=C:\Program Files (x86)\Windows Kits\10\bin\
WindowsSdkDir=C:\Program Files (x86)\Windows Kits\10\
WindowsSDKLibVersion=10.0.18362.0\
WindowsSdkVerBinPath=C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\

WindowsSDKVersion=10.0.18362.0\
WindowsSDK_ExecutablePath_x64=C:\Program Files (x86)\Microsoft
SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\
WindowsSDK_ExecutablePath_x86=C:\Program Files (x86)\Microsoft
SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\

(I have tried running from a VS cmd.exe and that looks more promising but has
trouble with linking).

I could tolerate updating this by hand as a stopgap measure to get going, but it
would be nice to get find the SDK right location working.

I note an option /MANIFEST added by Peter Dimov but an unclear what it does and
where I should put it. (I don't use the manifest info).

Suggestions most welcome.

Paul

Paul A. Bristow
Prizet Farmhouse
Kendal, Cumbria
LA8 8AB UK



Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk