【发布时间】:2017-06-15 04:08:26
【问题描述】:
在CMakeLists.txt 中,有没有办法知道文件是从终端执行还是通过 gui(某种形式,例如 ccmake 或 cmake-gui)执行?无论我运行的是 cmake 还是 ccmake,CMAKE_COMMAND 和 CMAKE_EDIT_COMMAND 都会被填充。
我正在搜索variables,这两个似乎最有希望。我已经迷上了colorizing cmake output,那里的许多精彩答案都有其缺点。也就是说,我可以得到:
- 它在终端中按预期工作,但
ccmake中有转义序列。 - 它在终端中按预期工作,但
ccmake终端被彩色输出 (LOL)覆盖。
只是好奇是否有办法在CMakeLists.txt 中确定这一点。脚本模式 (-P) 的一些变量似乎很有帮助,但我想我首先需要知道哪个可执行文件(cmake 或 ccmake)首先调用了我的CMakeLists.txt。
【问题讨论】:
-
据我所知,在 CMake 中没有办法区分 cmake 和 cmake-gui。你的用例是什么?无论如何它应该表现相同,其他一切都会令人惊讶。
-
是的,我认为也无法区分。用例非常小,老实说,我想不出任何人甚至想要这个的另一个原因。我的库能够为用户编译其外部依赖项,但不能够执行安装的最后步骤(将文件添加到需要提升权限的位置)。我添加了彩色输出以引起人们的注意(因为如果没有用户执行额外的步骤,我的应用程序就无法运行)。但是 GUI 不喜欢我的彩色输出 x0
-
您的终端应该处理彩色输出。可能您将其直接添加到输出中,这是导致问题的真正原因。
-
是的,这正是问题所在。我想我会坚持使用消息的警告变体,毕竟这就是它的用途