From: Boost-users [mailto:boost-users-bounces@lists.boost.org] On Behalf Of degski via Boost-users
Sent: 30 November 2018 20:40
To: boost-users@lists.boost.org
Cc: degski
Subject: Re: [Boost-users] LLVM bitcode for Boost libraries?
On Fri, 30 Nov 2018 at 16:09, Osman Zakir via Boost-users <boost-users@lists.boost.org> wrote:
So you mean I should use Clang-C2/Clang with Microsoft CodeGen, aka the clang-cl compiler? Either way, how do I change the compiler toolchain when building Boost?
No, that's dead for a [quite] while now, just get and install Clang/LLVM from https://releases.llvm.org/download.html#7.0.0.
AFAIK, the final Boost-1.69 release [or current dev branch] will allow for building with clang-cl **and lld-link** [Thanks to Peter Dimov]. You'll need to have a project-jam file something like this:
import option ;
using clang-win : : "C:\\Program Files\\LLVM\\bin\\clang-cl.exe" -fuse-ld=lld :
<compatibility>vc14
<compileflags>-fmsc-version=1915
<compileflags>-fms-compatibility
<compileflags>-fno-delayed-template-parsing
<compileflags>-flto=thin
<cxxflags>"/std:c++17"
<cxxflags>"/Zc:forScope"
<cxxflags>"/Zc:wchar_t"
<cxxflags>"/EHsc"
<cxxflags>"/Zc:inline"
<cxxflags>"/Gd"
<cxxflags>"/diagnostics:classic"
<cxxflags>-Wno-unknown-argument
<cxxflags>-Wno-unknown-pragmas
<cxxflags>-Wno-macro-redefined
<cxxflags>-Wno-unused-variable
<cxxflags>-Wno-mismatched-tags
<cxxflags>-Wno-deprecated-declarations
<cxxflags>-D_UNICODE
<cxxflags>-DUNICODE
<cxxflags>-DBOOST_USE_WINDOWS_H
<cxxflags>-DBOOST_NO_ANSI_APIS
<cxxflags>-DBOOST_USE_WINAPI_VERSION=0x1000
<cxxflags>-DBOOST_USE_WINDOWS_H=1
<cxxflags>-DNOMINMAX
<cxxflags>-DWIN32_LEAN_AND_MEAN
<cxxflags>-D_CRT_SECURE_NO_WARNINGS
;
But you'll have to adjust that to your needs.
Before I bash my head against this configuration again, please can you confirm that this does this work for you to build the Boost libraries **on Windows** so that one can use the Boost.Test library (not header-only)?
Am I right on thinking that
All the / items are to allow compilation of MSVC stuff.
Is it essential to use <cxxflags>"/EHsc" ? when
test suite using Boost. emits a warning that EHa should be enabled:
warning C4535: calling _set_se_translator() requires /EHa
All the –Wno- items are to deal with a blizzard of warnings from MSVC stuff?
<cxxflags>-D_CRT_SECURE_NO_WARNINGS is need to avoid C runtime warnings.
And all the other –D items are only needed if you want to use more than empty project console applications?