Boost logo

Boost-Build :

Subject: [Boost-build] Visual Studio 2017 and clang-cl
From: Marco Strohner (Marco.Strohner_at_[hidden])
Date: 2018-01-31 12:46:43


Hi,

I'm trying to build boost 1.66.0 with Visual Studio 2017 and Clang-cl.exe.
Currently I'm stucked with some defines that are required by boost:

I used following command line:
bjam -j8 toolset=clang -sBOOST_BUILD_USER_CONFIG=build_config --layout=tagged variant=debug,release address-model=32 link=static runtime-link=static threading=multi cxxflags=/GR- cxxflags=-std=c++11 cxxflags=-fms-extensions cxxflags=-fms-compatibility cxxflags=/EHsc define=BOOST_NO_RTTI define=BOOST_NO_TYPEID %BOOST_LIBS%

My build_config has following content:

import os ;
local LLVM_WIN = [ os.environ LLVM_WIN ] ; using clang-win
    : 5.0
    : "$(LLVM_WIN)clang-cl.exe"
        : <compatibility>vc14
    ;

In the first try I get following error:
.\boost/type_index/detail/compile_time_type_info.hpp(282,9): error: no matching function for call to 'failed_to_get_function_name'

Then I tried to use __PRETTY_FUNCTION__ for BOOST_TYPE_INDEX_FUNCTION_SIGNATURE with following result:
.\boost/type_index/detail/compile_time_type_info.hpp(81,9): error: static_assert failed "TypeIndex library is misconfigured for your compiler. Please define BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING to correct values. See section 'RTTI emulation limitations' of the documentation for more information."

I found the documentation for this define (http://www.boost.org/doc/libs/1_58_0/doc/html/BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING.html) and tried to set this define to:
-DBOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING='(39, 1, true, "T = ")'

But it doesn't work. I tried multiple different versions with (escaped) quotes but no version worked.

Does anybody know how to use these defines for a Visual Studio build with clang?

Thanks a lot.

Regards
Marco


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk