<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Jun 8, 2015 at 11:55 AM, Hans Wennborg <span dir="ltr"><<a href="mailto:hans@chromium.org" target="_blank">hans@chromium.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="">On Mon, Jun 8, 2015 at 11:44 AM, Russell Wallace<br>
<<a href="mailto:russell.wallace@gmail.com">russell.wallace@gmail.com</a>> wrote:<br>
> I'm trying to compile some large programs with clang on Windows (with a view<br>
> to compiling to bit code and then running some whole program optimisations<br>
> on the bit code).<br>
><br>
> Take for example the Python 2.7 interpreter:<br>
><br>
> As is typically the case, the usual build procedure involves running msbuild<br>
> which invokes the Microsoft compiler.<br>
><br>
> The most obvious procedure would then be to substitute clang-cl.exe for<br>
> cl.exe and thereby take advantage of msbuild supplying correct flags,<br>
> include paths et cetera.<br>
><br>
> What's the recommended procedure for this - rename clang-cl.exe to cl.exe<br>
> and put it earlier in your path?<br>
<br>
</span>Yes, that's how Clang's Visual Studio integration currently works.<br>
<span class=""><br>
> clang-cl requires some extra flags to get it to generate bit code instead of<br>
> object files - what's the recommended way to get that when msbuild doesn't<br>
> by default supply such flags?<br>
<br>
</span>I'm not that familiar with msbuild, but in Visual Studio you can add<br>
extra flags for your project under Configuration Properties -> C/C++<br>
-> Command Line.</blockquote><div><br></div><div>If you are feeling particularly evil and hackish, you can use the undocumented CCC_OVERRIDE_OPTIONS environment variable:</div><div><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_tools_driver_driver.cpp-3Fview-3Dmarkup-23l98&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=Mfk2qtn1LTDThVkh6-oGglNfMADXfJdty4_bhmuhMHA&m=UF3bgXXKDiGWV3kF9ww1-g_Qg3L-UolPzSePT4YeYp0&s=ndkfxRheJ4miABkC0eElVcDgZwldPp_NK9Ok-VwYB6A&e=">http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/driver/driver.cpp?view=markup#l98</a></div><div><br></div><div>Ultimately, you need to get -emit-llvm-bc down to clang -cc1. You'll probably need to play with -Xclang to make that happen.</div></div></div></div>