CMakeLists.txt
には、ファイルが端末から実行されたかどうかを知る方法がありますか(たとえば、ccmake
またはcmake-gui
)。 CMAKE_COMMAND
とCMAKE_EDIT_COMMAND
は、cmake
またはccmake
のどちらを実行しているかにかかわらず、両方とも入力されます。cmakeが端末またはGUIから実行されているかどうかを確認する
variablesで検索していましたが、この2つが最も有望なようでした。私はcolorizing cmake outputに夢中になりました。多くの素晴らしい答えには欠点があります。すなわち、私は得ることができます:
- これは、端末では期待どおり動作しますが、
ccmake
にエスケープシーケンスがあります。 - 端末では正常に動作しますが、
ccmake
端末はで、カラー化出力(LOL)でを上書きします。
CMakeLists.txt
でこれを判断する方法があるかどうか不思議です。潜在的に役立つようなスクリプトモード(-P
)の変数がありましたが、最初にCMakeLists.txt
と呼ばれる実行可能ファイル(cmake
またはccmake
)を知る必要があると思います。
私が知る限り、CMakeをCMake内のcmake-guiと区別する方法はありません。あなたのユースケースは何ですか?とにかく同じように動作するはずです。他のすべては驚きです。 – usr1234567
ええ、それを区別することはできないと思います。ユースケースは非常に分かりました。私は正直なところ、誰もがこれを望む理由を考えることはできません。私のライブラリは、ユーザーの外部依存関係をコンパイルすることができますが、**インストールの最終ステップを実行することはできません**(アクセス許可を必要とする場所にファイルを追加することはできません)。私はこれに注意を引くために色付きの出力を追加しました(私のアプリケーションはユーザーが余分なステップを実行しなくても実行できないためです)。しかし、GUIは私のカラー化された出力を好まないx0 – sjm324
あなたの端末はカラー化された出力を扱うべきです。おそらく、それを直接出力に追加することになります。これが問題の本当の原因です。 – usr1234567