web-dev-qa-db-ja.com

CLionにインストールターゲットを実行させるにはどうすればよいですか?

すでにCMakeを使用している既存のプロジェクトでCLion1.2.1を評価しています。プロジェクトは、いくつかのライブラリモジュールと1つの実行可能ファイルで構成されています。

デバッグ用に実行可能ファイルと構成ファイルをbinフォルダーにまとめるために使用するインストールターゲットがあります。

...
install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_BINARY_DIR}/bin/)
install(FILES config.xml DESTINATION ${CMAKE_BINARY_DIR}/bin/)

コマンドラインでビルドするときは、次のコマンドを実行します。

make install

期待どおりにバイナリをビルドし、成功した場合は上記のインストールコマンドを実行します。

私の問題は、CLionに「インストール」ターゲットを実行させることができないことです。新しい実行/デバッグ構成を作成できると期待していましたが、[ターゲット:]ドロップダウンには、add_executable()およびadd_library()を使用して追加されたターゲットのみが含まれています。

また、[設定]ダイアログの[ビルド]オプションに「インストール」を追加してみました。ただし、これは正しくない「クリーン」を含むすべてのターゲットに対してインストールを実行します。

15
BahmanR

UPDATE:2018.1 EAP、ビルド181.3741.16 の時点で、プロジェクトでインストールターゲットが定義されている場合、CLionはcmake installの実行をサポートします。


元の回答:

CLionはまだこの機能を実装しているとは思いません。ただし、make installを実行するCMake "カスタムターゲット"add_custom_target() を使用)を追加することで、この制限を回避できます。コマンド:

add_custom_target(install_${PROJECT_NAME}
                  $(MAKE) install
                  DEPENDS ${PROJECT_NAME}
                  COMMENT "Installing ${PROJECT_NAME}")

これで、CLionの[ターゲット]メニューからinstall_YOUR_PROJECT_NAMEターゲットを「ビルド」するだけです。

更新:

よりクロスプラットフォームの手法は次のとおりです。

add_custom_target(install_${PROJECT_NAME}
                  "${CMAKE_COMMAND}" --build "${CMAKE_BINARY_DIR}" --target install
                  DEPENDS ${PROJECT_NAME}
                  COMMENT "Installing ${PROJECT_NAME}")
23
maddouri