CMake: Wie spezifiziert man die Version von Visual C ++ mit der man arbeiten kann?

8

Ich habe mehrere Versionen von Visual Studio installiert (2010, 2012, Testversion 2015).

Wie kann ich CMake zwingen, die Makefiles für eine bestimmte VS-Version zu generieren? Standardmäßig wird für VS2015 generiert.

    
Pietro 25.11.2015, 13:14
quelle

2 Antworten

10

Zuerst können Sie überprüfen, welche Generatoren Ihre CMake-Version unterstützt (und wie sie benannt werden):

%Vor%

Dann können Sie den Generator mit

versehen
  1. cmake.exe -G "Visual Studio 11" .. (Kurzname)
  2. cmake.exe -G "Visual Studio 11 2012" .. (vollständiger Name)

Ich bevorzuge das spätere, wegen seiner Klarheit. Und normalerweise habe ich diesen Aufruf in einem Build-Skript-Wrapper:

%Vor%

Der vollständige Name wird in einen internen Cache-Variablennamen namens CMAKE_GENERATOR übertragen . Die obigen Aufrufe entsprechen also

  1. cmake -DCMAKE_GENERATOR="Visual Studio 11 2012" ..

Das gibt uns eine interessante Möglichkeit. Wenn Sie eine Datei namens PreLoad.cmake parallel zu Ihrer Hauptdatei CMakeLists.txt platzieren, können Sie den Standard (falls verfügbar) für Ihr Projekt dort erzwingen

  1. cmake.exe ..

    PreLoad.cmake

    %Vor%

Manchmal müssen Sie möglicherweise auch -T <toolset-name> oder -A <platform-name> hinzufügen:

  1. cmake.exe -G "Visual Studio 10" -T "v90" ..

Und zu guter Letzt, wenn Sie wirklich nur am Compiler interessiert sind

  1. "\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat"

    cmake.exe -G "NMake Makefiles" ..

Referenzen

Florian 25.11.2015, 20:44
quelle
0
%Vor%     
Pietro 25.11.2015 13:19
quelle