Re: B2 seems to seeking mt.exe at the wrong location (without the windows kits number)?

Edward Diener via Boost-build <[email protected]> Wed, 24 Jul 2019 14:54:05 -0400
Newsgroups gmane.comp.lib.boost.build
Message-ID <[email protected]>
On 7/24/2019 7:47 AM, Paul A Bristow via Boost-build wrote:
> I am using
> 
> VS2019 version16.20 preview 4.0  (current)
> 
> I:\boost\libs\hello_boost\example>b2 -v
> 
> B2 Version 4.0. OS=NT.
> 
>    Copyright 1993-2002 Christopher Seiwald and Perforce Software, Inc.
> 
>    Copyright 2001 David Turner.
> 
>    Copyright 2001-2004 David Abrahams.
> 
>    Copyright 2002-2019 Rene Rivera.
> 
>    Copyright 2003-2015 Vladimir Prus.
> 
>    DEFAULTS: jobs = 16
> 
> 
> I am usinga jamfile and a .bat file that has worked before, but working 
> on nearly current GIT develop.
> 
> But something seems to have changed so that clang-win no longer works, 
> failing at the link.
> 
> I:\boost\libs\hello_boost\example>b2  -j16  toolset=clang-win-8.0.0 
> address-model=64 architecture=x86 release
> 
> warning: Did not find command for MSVC toolset. If you have Visual 
> Studio 2017 installed you will need to specify the full path to the 
> command, set VS150COMNTOOLS for your installation, or build from the 
> 'Visual Studio Command Prompt for VS 2017'.
> 
> (I have ignoredthesewarnings without trouble before).
> 
> Output of the link is:
> 
> Performing configuration checks
> 
>      - default address-model    : 32-bit (cached)
> 
>      - default architecture     : x86 (cached)
> 
>      - symlinks supported       : yes (cached)
> 
>      - BOOST_COMP_GNUC >= 4.3.0 : no  (cached)
> 
> ...patience...
> 
> ...found 2277 targets...
> 
> ...updating 11 targets...
> 
> clang-win.link.dll 
> ..\..\..\bin.v2\libs\system\build\clang-win-8.0.0\release\address-model-64\threading-multi\boost_system-clangw8-mt-x64-1_71.dll
> 
> msvc.manifest.dll 
> ..\..\..\bin.v2\libs\system\build\clang-win-8.0.0\release\address-model-64\threading-multi\boost_system-clangw8-mt-x64-1_71.dll
> 
> '"C:\\Program Files (x86)\\Windows Kits\\10\\bin\x64\mt.exe"' is not 
> recognized as an internal or external command,
> 
> operable program or batch file.
> 
>          if exist 
> "..\..\..\bin.v2\libs\system\build\clang-win-8.0.0\release\address-model-64\threading-multi\boost_system-clangw8-mt-x64-1_71.dll.manifest" 
> (
> 
>               "C:\\Program Files (x86)\\Windows 
> Kits\\10\\bin\x64\mt.exe" -nologo -manifest 
> "..\..\..\bin.v2\libs\system\build\clang-win-8.0.0\release\address-model-64\threading-multi\boost_system-clangw8-mt-x64-1_71.dll.manifest" 
> "-outputresource:..\..\..\bin.v2\libs\system\build\clang-win-8.0.0\release\address-model-64\threading-multi\boost_system-clangw8-mt-x64-1_71.dll;2"
> 
>          )
> 
> ...failed msvc.manifest.dll 
> ..\..\..\bin.v2\libs\system\build\clang-win-8.0.0\release\address-model-64\threading-multi\boost_system-clangw8-mt-x64-1_71.dll 
> ..\..\..\bin.v2\libs\system\build\clang-win-8.0.0\release\address-model-64\threading-multi\boost_system-clangw8-mt-x64-1_71.lib...
> 
> Briefly:
> 
> Clang 8.0.0 compiles all OK, but fails to link missing right version of 
> mt.exe
> 
> "C:\\Program Files (x86)\\Windows Kits\\10\\bin\x64\mt.exe"
> 
>   is missing the specification ofthe sub-folder
> 
> currently\10.0.17763.0
> 
>   should beusing
> 
>   "C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\mt.exe"
> 
> What have I done to mess this up?

My testing with clang-win shows that if the backend is the latest VS2019 
release, which I have, then mt.exe is automatically found by the 
clang-win.jam code so it can later be successfully executed, but if the 
backend is VS2017 or less then you need to specify your own 
<manifest-tool> option. My manifest tool option, because I am using 
VS2017 as the backend for clang-win-8.0, is:

<manifest-tool>E:/programming/bat/mt_clangwin80.bat

where mt_clangwin80.bat is:

@echo off
call "C:\Program Files (x86)\Microsoft Visual 
Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat" >nul
set PATH=C:\Utilities\LLVM\800\x32\bin;%PATH%
mt %*

The 'set PATH etc.' 3rd line, which prepends the clang-8.0 bin directory 
to the PATH, may not be needed for the mt.exe comamnd but it can't hurt 
things, so I left it in. This works for me. It may be that whatever 
version of VS 2019 you are using isn't finding the manifest tool in the 
clang-win.jam code, so you nee3d to provide it similar to what I have done.

_______________________________________________
Unsubscribe & other changes: https://lists.boost.org/mailman/listinfo.cgi/boost-build