2016-03-28 11 views
1

別のCMakeプロジェクト(インテグレータ)に依存するCMakeプロジェクト(myapp)があります。インテグレータプロジェクトは、ExternalProject_Addを介して宣言され、GIT_TAGパラメータを使用して、ビルドするインテグレータコードのバージョンを指定します。これはオンライン中に素晴らしい動作します。しかし、私がオフラインであればビルドの失敗の問題にぶつかります。以前にリポジトリのコピーをダウンロードしていたとしても、git repoに届かないとビルドに失敗します。 CMakeがGIT_TAGリポジトリに手を差し伸べることを止め、最後にオンラインになったときに以前ダウンロードしたコードでビルドすることはできますか?依存関係リポジトリに届かないとCMakeビルドに失敗する

+0

「UPDATE_DISCONNECTED 1」オプションの設定はどうですか? ([docs](https://cmake.org/cmake/help/v3.2/module/ExternalProject.html)を参照してください)ドキュメントによると、 "UPDATE_DISCONNECTEDが設定されていると、更新ステップは自動的には実行されません。更新ステップはステップターゲットとして追加して手動で呼び出すことができます。これは、ネットワークから切断されたときにプロジェクトをビルドできるようにする場合に便利です(ダウンロード手順でネットワークが必要な場合があります)。これはデフォルトで無効になっています。 –

+0

ありがとう、私はそれを試してみましょう。それは確かに有望だと思います。私はそのドキュメントのページを何度も読んだことがあり、そのパラメータは見ていません。一口。 – Stuart

+0

UPDATE_DISCONNECTEDは私が探していたものでした。巨大な感謝、@ダンマセック! – Stuart

答えて

1

ExternalProjectのドキュメントに基づいて、UPDATE_DISCONNECTEDというオプションがあります。

UPDATE_DISCONNECTEDが設定されている場合、メインターゲットを構築するときに更新手順は自動的に実行されません。 更新ステップはまだステップターゲットとして を追加して手動で呼び出すことができます。これは、 ネットワークから接続を解除したときにプロジェクトをビルドできるようにしたい場合に便利です(ダウンロード手順でネットワークが必要な場合があります)。この は、デフォルトでは無効になっています。

したがって、あなたはオフラインで作業できるようにするために、あなたのExternalProject_Add宣言に

UPDATE_DISCONNECTED 1 

を設定するオプションを追加する必要があります。