2015-06-10 15 views
5

Sto provando a prendere un paio di progetti normalmente compilati su Windows con Microsoft C++ e invece li compilo con clang.msbuild percorso impostato su CL

Sul lato positivo, esiste clang-cl.exe che è progettato per essere un rimpiazzo di sostituzione per cl.exe. Tuttavia, anche quando copio clang-cl.exe nella directory corrente come cl.exe, in alcuni casi msbuild chiama il cl.exe di Microsoft.

C'è un modo per dire a msbuild 'qui, quando si esegue Task CL, usare questo cl.exe invece del solito'? le opzioni della riga di comando di msbuild non contengono nulla di ovvio in quella direzione.

Inoltre, c'è un modo per dirgli di fornire o sovrascrivere i parametri della riga di comando per cl senza modificare il file di progetto?

risposta

3

Questo è facile da eseguire da una riga di comando o da un file di progetto. Le proprietà che devi configurare sono $(CLToolExe) e $(CLToolPath).

Dalla riga di comando:

msbuild MyProj.vcxproj /p:CLToolExe=clang-cl.exe /p:CLToolPath=c:\whatever\path\to\the\tool 

In alternativa, il file all'interno .vcxproj:

<PropertyGroup> 
    <CLToolExe>clang-cl.exe</CLToolExe> 
    <CLToolPath>c:\whatever\path\to\the\tool</CLToolPath> 
</PropertyGroup> 

Se si chiama compito CL direttamente all'interno del vostro file di .vcxproj, piuttosto che semplicemente basandosi su obiettivi comuni, basta impostare i parametri corrispondenti ToolExe e ToolPath dell'attività CL.

Problemi correlati