I do use clang on Windows with bjam and it works (until it doesn't).
This 'C:/Program' looks like problem patched by this commit -
https://github.com/boostorg/build/commit/c442d64b30a585ca114a1cb8c5ed8b33a93...
So you might need to use develop BB.
Here is my site-config.jam (you probably won't need all the stuff):
using clang
:
: "C:/Program Files/LLVM/bin/clang.exe"
: #<compileflags>-fmsc-version=1910
<ranlib>"C:/Program Files/LLVM/bin/llvm-ranlib.exe"
<archiver>"C:/Program Files/LLVM/bin/llvm-ar.exe"
<rc>"C:/Program Files (x86)/Windows Kits/10/bin/10.0.15063.0/x64/rc.exe"
<linkflags>-fuse-ld=lld
<linkflags>-llibcmtd
<cxxflags>-Wno-gnu-string-literal-operator-template
<cxxflags>-Xclang <cxxflags>-flto-visibility-public-std
<cxxflags>-fno-ms-compatibility
<cxxflags>-fno-delayed-template-parsing
<cxxflags>-Wno-dynamic-exception-spec # TODO: file bug to MS
<cxxflags>-Wno-c++11-narrowing # TODO: wut
<cxxflags>-D_WINSOCK_DEPRECATED_NO_WARNINGS # TODO: wut
<cxxflags>-std=c++2a
<cxxflags>-Wunused-command-line-argument
<cxxflags>-DBOOST_USE_WINDOWS_H
<cxxflags>-DBOOST_NO_ANSI_APIS
<cxxflags>-D_DEBUG
<cxxflags>-gcodeview
<cxxflags>-D_MT
<cxxflags>-D_WIN32
<cxxflags>-DNOMINMAX
<cxxflags>-DWIN32_LEAN_AND_MEAN
<cxxflags>-D_HAS_AUTO_PTR_ETC=1
<cxxflags>-D_ITERATOR_DEBUG_LEVEL=0
<cxxflags>-D_CRT_DECLARE_NONSTDC_NAMES=1 # clang defines
__STDC__, cl does not (see definition of _CRT_INTERNAL_NONSTDC_NAMES)
<cxxflags>-IC:/PROGRA~2/MICROS~1/2017/COMMUN~1/VC/Tools/MSVC/1411~1.255/atlmfc/include
<linkflags>-LC:/PROGRA~2/MICROS~1/2017/COMMUN~1/VC/Tools/MSVC/1411~1.255/atlmfc/lib/x64
;
It only works for x64 debug, so invocation is:
b2.exe -sBOOST_ROOT=B:\boost\ --build-dir=O:\out --disable-icu -j16
link=static runtime-link=static address-model=64 toolset=clang
variant=debug
Rene told us he is going to do things for clang on Windows, so there
is always hope.
2017-10-15 15:12 GMT+03:00 degski via Boost
On 15 October 2017 at 12:32, degski
wrote: ... so I am gonna give that a try and get back how it went.
Ok, tried that, (I think as before), this is the first clue something is wong (with quotes, obviously):
C:\boost_1_65_1>bjam -d0 --clean 'C:/Program' is not recognized as an internal or external command, operable program or batch file.
So obviously a f'in 'quotes'-problem.
This then later causes the same problem with <ranlib>"C:/Program Files/LLVM/bin/llvm-ranlib.exe" <archiver>"C:/Program Files/LLVM/bin/llvm-ar.exe". I see in boost-build (the folder I'm building in) that source files get compiled to *.obj (they exist), but they do not get assembled into a lib, because the tool-chain's exe's can't be found, due to missing quotes (that are there), wtf?
========config-project.jam=======================
import option ;
using clang : 6.0 : "C:/Program Files/LLVM/bin/clang++.exe" : <compileflags>-fmsc-version=1911 <compileflags>-DBOOST_USE_WINAPI_VERSION=0x1000 <compileflags>-DBOOST_USE_WINDOWS_H=1 <compileflags>-D_WIN32_WINNT=0x1000 <compileflags>-DNOMINMAX <ranlib>"C:/Program Files/LLVM/bin/llvm-ranlib.exe" <archiver>"C:/Program Files/LLVM/bin/llvm-ar.exe" <linkflags>-fuse-ld=lld <linkflags>-flto=thin ;
option.set keep-going : false ;
===========================================
It's an ansi codepage 850 txt file, just in case (I checked).
The quotes *are* there [in the file] of course, so I don't get it...
degski
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost