2013-08-08 11 views
19

Ich entwickle derzeit eine Desktop-Anwendung, die das C++ REST SDK (Codename Casablanca), Qt5 und einige andere Bibliotheken verwendet.CMake und MsVS-NuGet

Für den Projektaufbau verwende ich CMake.

Wie bekomme ich CMake, um NuGet Pakete zu installieren?

Ich muss es jetzt jedes Mal manuell installieren, wenn ich CMake erneut ausführen, was nicht wirklich eine Option ist.

+2

Das ist eine gute Frage, obwohl ich vermute, dass Sie tatsächlich falsches Werkzeug für den Job verwenden. Wenn Sie Windows-spezifisch sind, ist CMake nicht sinnvoll. Der einzige Grund, CMake zu verwenden, ist es, plattformübergreifend zu sein, aber Sie können NuGet-Pakete nicht viel benutzen. Natürlich kann ich mir ein Projekt vorstellen, bei dem das meiste plattformübergreifend ist, aber eine windowsspezifische Komponente hat, die NuGet-Pakete benötigt und da macht diese Frage Sinn. –

+1

Ich denke jedoch, dass die Frage zu Stack Overflow hätte gepostet werden sollen. –

+0

@JanHudec a) Ja, ich weiß das, aber die Projekteinrichtung über CMake ist die einfachste, die ich kenne, wenn ich Bibliotheken wie Qt verwende. b) wie das? Ist das nicht etwas zu spezifisch für StackOverflow? –

Antwort

15

Die Befehlszeilenreferenz von NuGet befindet sich an http://docs.nuget.org/docs/reference/command-line-reference

Sie können Pakete installieren Sie den Befehl nuget install oder nuget restore verwenden. nuget update aktualisiert die installierten Pakete (restore muss vor dem Ausführen ausgeführt werden).

Sie können Cmake anweisen NuGet vor jedem Build ausgeführt werden unter Verwendung von:

add_custom_command(TARGET ${PROJECT_NAME} 
    PRE_BUILD 
    COMMAND nuget restore ${CMAKE_BINARY_DIR}\yourSolution.sln 
) 

oder configure Zeit execute_process verwenden.

Sie können die nugget-Konfigurationsdatei mit configure_file vorbereiten oder die entsprechenden nuget install Befehle direkt verwenden.

+0

Ich glaube nicht, dass CMake bereit sein wird, die Nugets in die Lösung zu integrieren, daher wird wahrscheinlich eine separate Konfigurationsdatei oder explizite "Installation" benötigt. Ich würde die Installation auch schon während der Konfiguration ausführen (über 'execute_process').Es ist ein wenig einfacher und die IDE wird die Pakete bereits beim Start sehen. –

+0

während ich das testen möchte, muss ich sagen, dass ich das projekt bereits vor einem halben jahr geschlossen habe ... (ich entschied mich auch, die nugget-verwandte bibliothek nicht zu verwenden) –

+0

könnte jemand die antwort bearbeiten und direkt oneliner schreiben? – Sergei