Boost logo

Boost :

Subject: Re: [boost] Clang on Windows
From: John Maddock (jz.maddock_at_[hidden])
Date: 2018-03-09 18:42:39


On 09/03/2018 16:16, Egor Pugin via Boost wrote:
> Hi,
>
> Based on recent news:
> Clang 6.0.0 is out with very decent support of the latest MSVC STL (15.6).
> Chrome is built with clang on Windows.
>
> So, maybe it is good time to include clang+windows into list of
> supported configs, setup a CI worker with clang (clang-cl) on Windows?
> Currently many boost libs already work fine, but some of them require
> small tweaks like explicit BOOST_USE_WINDOWS_H etc.

A cursory check suggests the compiler is working OK and builds
Boost.Config's tests, but I'm unable to get it working at all with
Boost.Build, I'm trying:

using clang-win : : "C:/Program Files/LLVM/bin/clang-cl.exe" :
<compatibility>vc14.1 ;

In my user-config.jam - note that the <compatibility> option appears to
be required, and there is not default, likewise the semi-documented
option <compatibility>native gets rejected as invalid.

In any case this leads to:

 Â $ ../../../b2 config_info clang-win
C:\cygwin64\home\John\user-config.jam:47: Unescaped special character in
argument <cxxflags>-std:c++latest
..\..\..\libs\log\build\Jamfile.v2:45: Unescaped special character in
argument <define>$(flag)=1
M:/data/boost/boost/tools/build/src/tools\msvc.jam:900: in set-setup-command
*** argument error
* rule virtual-target.from-file ( file : file-loc : project )
* called with: (  : /M:/data/boost/boost/libs/config/test :
object(project-target)@129 )
* missing argument file
M:/data/boost/boost/tools/build/src/build\virtual-target.jam:970:see
definition of rule 'virtual-target.from-file' being called
M:/data/boost/boost/tools/build/src/tools\msvc.jam:465: in
clang-win.compile.c++
M:/data/boost/boost/tools/build/src/kernel\modules.jam:107: in
modules.call-in
M:/data/boost/boost/tools/build/src/util\indirect.jam:105: in indirect.call
M:/data/boost/boost/tools/build/src/build\virtual-target.jam:902: in execute
M:/data/boost/boost/tools/build/src/build\virtual-target.jam:821: in
class_at_action.actualize
M:/data/boost/boost/tools/build/src/build\virtual-target.jam:332: in
actualize-action
M:/data/boost/boost/tools/build/src/build\virtual-target.jam:518: in
actualize-no-scanner
M:/data/boost/boost/tools/build/src/build\virtual-target.jam:142: in
class_at_virtual-target.actualize
M:/data/boost/boost/tools/build/src/build\configure.jam:258: in
try-find-build
M:/data/boost/boost/tools/build/src/build\configure.jam:391: in
find-builds-raw
M:/data/boost/boost/tools/build/src/build\configure.jam:450: in
configure.find-builds
M:/data/boost/boost\boostcpp.jam:734: in boostcpp.deduce-address-model
M:/data/boost/boost/tools/build/src/kernel\modules.jam:107: in
modules.call-in
M:/data/boost/boost/tools/build/src/util\indirect.jam:105: in indirect.call
M:/data/boost/boost/tools/build/src/build\property.jam:144: in
property.evaluate-conditionals-in-context
M:/data/boost/boost/tools/build/src/build\targets.jam:1087: in
evaluate-requirements
M:/data/boost/boost/tools/build/src/build\targets.jam:1121: in
common-properties2
M:/data/boost/boost/tools/build/src/build\targets.jam:1017: in
targets.common-properties
M:/data/boost/boost/tools/build/src/build\targets.jam:1313: in
class_at_basic-target.generate
M:/data/boost/boost/tools/build/src/build\targets.jam:812: in
generate-really
M:/data/boost/boost/tools/build/src/build\targets.jam:784: in
class_at_main-target.generate
M:/data/boost/boost/tools/build/src\build-system.jam:797: in load
M:\data\boost\boost\tools\build\src/kernel\modules.jam:295: in import
M:\data\boost\boost\tools\build\src/kernel/bootstrap.jam:139: in boost-build
M:\data\boost\boost\boost-build.jam:17: in module scope

The unescaped character warnings are new to current develop Boost.Build,
and the rest is inscrutable to me, any ideas anyone?

Thanks, John.

PS, appveyor's CI is still on clang-5 currently.

---
This email has been checked for viruses by AVG.
http://www.avg.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk