Boost logo

Boost :

Subject: [boost] [build] clang-win help needed
From: Edward Diener (eldiener_at_[hidden])
Date: 2013-11-27 22:21:45

The clang-win.jam file, which was provided by 'tr1gun' as an attachment
to another thread in Boost Build, inherits its generators, flags, and
rules from msvc.jam. The lines in clang-win.jam are:

toolset.inherit-generators clang-win <toolset>clang
<toolset-clang:platform>win : msvc ;
toolset.inherit-flags clang-win : msvc :
<debug-symbols>on/<debug-store>object : YLOPTION ;
toolset.inherit-rules clang-win : msvc ;

In order to eliminate the VC++ /EH(x) option, which clang using VC++ RTL
does not use, I added into the file a rule:

rule compile.c++ ( targets * : sources * : properties * )
     C++FLAGS on $(targets) = [ set.difference
         [ on $(targets[1]) return $(C++FLAGS) ] :
         /EHs ] ;

suggested by Steve Watanabe. This effectively eliminates the /EHs option
when compiling with clang. However when a 'run' action is done, with
clang as the compiler, the compile step is never called. If I remove the
'rule compile.c++' from the clang-win.jam file the compile step is
called before the link and execute steps of the 'run' action, but of
course the compile step then issues the /EHs warning which the insertion
of the above rule eliminated.

Does anybody know why adding the above rule causes the 'run' action to
not compile the appropriate fle before attempting the link and execute ?

Boost list run by bdawes at, gregod at, cpdaniel at, john at