2015-06-10 9 views
5

Próbuję wziąć kilka projektów normalnie skompilowanych w systemie Windows z Microsoft C++ i zamiast tego skompilować je z klangiem.msbuild set path to CL

Z drugiej strony istnieje clang-cl.exe, który jest zamiennikiem zamiennym dla cl.exe. Jednak nawet gdy kopiuję clang-cl.exe do bieżącego katalogu jako cl.exe, msbuild nadal w niektórych przypadkach wywołuje cl.exe Microsoft.

Czy istnieje sposób, aby powiedzieć msbuild "tutaj, podczas wykonywania Zadanie CL, użyj tego cl.exe zamiast zwykłego"? Opcje wiersza poleceń msbuild nie zawierają niczego oczywistego w tym kierunku.

Czy istnieje sposób, aby powiedzieć, aby dostarczyć lub zmienić parametry linii komend dla cl bez zmiany pliku projektu?

Odpowiedz

3

Jest to łatwe do wykonania z wiersza poleceń lub pliku projektu. Właściwości, które należy skonfigurować, to: $(CLToolExe) i $(CLToolPath).

Z wiersza poleceń:

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

Alternatywnie, wewnątrz pliku .vcxproj:

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

Jeśli dzwonisz zadania CL bezpośrednio wewnątrz pliku .vcxproj, a nie tylko opierając się na wspólne cele, wystarczy ustawić odpowiednie parametry ToolExe i ToolPath zadania CL.