"環境"を切り替える手段として$PATH
を編集するパッケージマネージャであるLinux、CMake、Condaを使用しています。つまり、Condaで特別なコマンドを実行すると、$PATH
は別のコンパイラを指しています。 $CONDA_PREFIX
も変更されています。CMake:環境変数が変更されたときのMakefileの再生成
デフォルトでは、CMakeはこれらの変更に対して敏感ではありません。私はそれが欲しいです。具体的には、別のGCCが$PATH
に見つかった場合、あるいは最後にcmake
の明示的呼び出しが行われてから$CONDA_PREFIX
が変更された場合に、CMakeが自動的にすべてのMakefileを再生成します。この再生成は、最上位のCMakeLists.txt
ファイルを編集するときにCMakeが行う処理と似ています。次にmake
を実行すると、すべてを再生成します。
私はCMakeを使用して簡単な方法でこれを行うことができますか?
自然なアプローチは、すべての追加の「環境」に対して新しいビルドツリーを作成するようです。 – Tsyvarev
@Tsyvarev:あなたが意味することを理解していますが、それは問題を解決しません。ユーザーが間違った(不一致の)Conda環境とCMakeビルドツリーに誤っていると、ビルドに欠陥がある可能性があります。ビルドが決してミスマッチでないことを確認しようとしています。 –
ターゲットを(add_custom_targetを介して)追加することができます。これにより、ビルドツリーが現在の環境に対応しているかどうかがチェックされます。不一致のビルドの場合、ターゲットは単に適切なメッセージで失敗する可能性があります。 CMakeを再実行することを強制する(たとえば、[そのメール(http://public.kitware.com/pipermail/cmake/2010-November/040777.html)])は、*部分的な再設定が必要な場合に便利です。しかし、コンパイラーが変更されると、実際にはきれいな構成(クリーンビルドディレクトリー上の 'cmake'呼び出し)であるすべてのコンパイラー関連のキャッシュを破棄する必要があります。 – Tsyvarev