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@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@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@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@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