确定 cmake 是从终端还是从 gui 执行
determine whether cmake is executing from terminal or gui
在 CMakeLists.txt
中,有没有办法知道文件是从终端还是通过 gui(某种形式,例如 ccmake
或 cmake-gui
)执行的? CMAKE_COMMAND
和 CMAKE_EDIT_COMMAND
都被填充,无论我是 运行 cmake
还是 ccmake
.
我正在搜索 variables and these two seemed the most promising. I have become enamored with colorizing cmake output,那里的许多精彩答案都有其缺点。也就是说,我可以得到:
- 它在终端中按预期工作,但在
ccmake
中有转义序列。
- 它在终端中按预期工作,但是
ccmake
终端被彩色输出(LOL)覆盖。
只是好奇 CMakeLists.txt
中是否有确定这一点的方法。脚本模式 (-P
) 的变量似乎有潜在帮助,但我想我首先需要知道哪个可执行文件 (cmake
或 ccmake
) 调用了我的 CMakeLists.txt
第一名。
据我所知,无法区分代码是从 CMake 还是从 CMake-gui 调用的。代码应该以相同的方式运行,其他一切都会给用户带来惊喜。
您可以尝试检测 CMake-gui 的一个实例是否是 运行,但这很容易出错并且不适合实际用例。
在 CMakeLists.txt
中,有没有办法知道文件是从终端还是通过 gui(某种形式,例如 ccmake
或 cmake-gui
)执行的? CMAKE_COMMAND
和 CMAKE_EDIT_COMMAND
都被填充,无论我是 运行 cmake
还是 ccmake
.
我正在搜索 variables and these two seemed the most promising. I have become enamored with colorizing cmake output,那里的许多精彩答案都有其缺点。也就是说,我可以得到:
- 它在终端中按预期工作,但在
ccmake
中有转义序列。 - 它在终端中按预期工作,但是
ccmake
终端被彩色输出(LOL)覆盖。
只是好奇 CMakeLists.txt
中是否有确定这一点的方法。脚本模式 (-P
) 的变量似乎有潜在帮助,但我想我首先需要知道哪个可执行文件 (cmake
或 ccmake
) 调用了我的 CMakeLists.txt
第一名。
据我所知,无法区分代码是从 CMake 还是从 CMake-gui 调用的。代码应该以相同的方式运行,其他一切都会给用户带来惊喜。
您可以尝试检测 CMake-gui 的一个实例是否是 运行,但这很容易出错并且不适合实际用例。