2013-08-08 14 views
19

私は現在、C++ REST SDK(コードネームCasablanca)、Qt5および他のいくつかのライブラリを使用して、デスクトップアプリケーションを開発中です。CMakeおよびMsVS-NuGet

プロジェクトの設定では、CMakeを使用します。

CMakeにNuGetパッケージをインストールするには?

実際にオプションではないCMakeを再実行すると、手動で毎回インストールする必要があります。

+2

実際に間違ったツールを使っていると思われますが、これは大きな質問です。あなたが窓に特有の場合、CMakeの使用には何の意味もありません。 CMakeを使用する唯一の理由はマルチプラットフォームになることですが、NuGetパッケージを使用することはできません。もちろん、そのほとんどがマルチプラットフォームであるプロジェクトを想像することができますが、NuGetパッケージを必要とするWindows固有のコンポーネントがいくつかあります。そこにはこの質問が理にかなっています。 –

+1

しかし、私は質問がスタックオーバーフローに投稿されているはずだと思います。 –

+0

@JanHudec a)はい私は知っていますが、Qakeのようなライブラリを使用しているときは、CMakeによるプロジェクトの設定がわかります。 b)どのようにですか?これはStackOverflowにはあまりにも特異的ではありませんか? –

答えて

15

NuGetのコマンドラインリファレンスは、あなたがnuget installまたはnuget restoreコマンドを使用してパッケージをインストールすることができhttp://docs.nuget.org/docs/reference/command-line-reference

に位置しています。 nuget updateは、インストールされたパッケージを更新します(restoreは必ず実行する必要があります)。

あなたは使用してすべてのビルド前に、NuGetを実行するためにcmakeを指示することができます。

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

または設定時に

execute_processを使用します。

configure_fileを使用してナゲット設定ファイルを準備するか、適切なnuget installコマンドを直接使用することができます。

+0

私はcmakeがソリューションにナゲットを追加するつもりはないと思うので、別の設定ファイルや明示的な 'install'が必要になるでしょう。また、( 'execute_process'を介して)設定中にインストールを実行します。それはもう少し簡単で、IDEは起動時に利用可能なパッケージをすでに見ています。 –

+0

私はそれをテストしたいと思いますが、私は半年前にすでにプロジェクトを終了したと言わなければなりません...(私はまた、ナゲット関連のライブラリを使用しないことにしました) –

+0

誰かが答えを編集し、 – Sergei