2015-06-10 12 views
5

Ich versuche, ein paar Projekte in der Regel unter Windows mit Microsoft C++ kompiliert und kompilieren sie stattdessen mit Clang.msbuild Pfad zu CL

Auf der Oberseite gibt es clang-cl.exe, die als Drop-in-Ersatz für cl.exe entwickelt wurde. Aber auch wenn ich clang-cl.exe als cl.exe in das aktuelle Verzeichnis kopiere, ruft msbuild in manchen Fällen noch die cl.exe von Microsoft auf.

Gibt es eine Möglichkeit, msbuild 'hier zu sagen, wenn Sie Task CL ausführen, verwenden Sie diese cl.exe anstelle der üblichen'? Die Befehlszeilenoptionen von msbuild enthalten nichts, was in dieser Richtung offensichtlich ist.

Gibt es auch eine Möglichkeit, es zu sagen, Befehlszeilenparameter für cl zu liefern oder außer Kraft zu setzen, ohne die Projektdatei zu ändern?

Antwort

3

Dies ist einfach von einer Befehlszeile oder Projektdatei zu tun. Die zu konfigurierenden Eigenschaften sind $(CLToolExe) und $(CLToolPath).

in der Befehlszeile:

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

Alternativ in Ihrem .vcxproj Datei:

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

Wenn Sie Aufgabe CL direkt in Ihrem .vcxproj Datei aufrufen, im Gegensatz zu nur unter Berufung auf gemeinsame Ziele, setzen Sie einfach die entsprechenden Parameter ToolExe und ToolPath der CL-Task.