我将variable_watch(rtmidi_static_LIB_DEPENDS)添加到CMakeLists.txt的开头。然后我运行(cd build && cmake -DCMAKE_BUILD_TYPE=Debug .. --trace)。我希望这将允许我看到依赖项何时添加到rtmidi_static_LIB_DEPENDS中。 目前rtmidi_static目标是在deps/rtmidi_build/CMakeLists.txt中创建的,我得到了以下跟踪文...
variable_watch(<variable name> []) 如果指定的变量发生改变,将会输出一条消息。如果指定了命令,命令将会执行。
它只是保留“全局变量”缓存的状态。 该project()命令触发CMake的大多数检测魔术(包括从Toolchain.txt文件读取)。 工具链文件被读取两次。一次在检测到make / compile系统之前,一次在内部之后生成CMakeSystem.cmake。 所述variable_watch()钩可以随时触发,所以在其中最优“命令来执行”被称为范围是未定义的。
CMD#79 : variable_watch 监视CMake变量的改变。 variable_watch(<variable name> []) 如果给定的变量发生了变化,关于正在被改写的变脸的消息会被打印出来。如果指定了command选项,这条命令会被执行。这条命令会接受这样的参数:COMMAND(<variable> <access> <value> <current list file> <stack>) CMD#80: ...
unset(<variable> [CACHE | PARENT_SCOPE])# 取消设置环境变量# Unset Environment Variableunset(ENV{<variable>}) 1. 2. 3. 4. 5. 6. 7. 8. variable_watch variable_watch — CMake 3.24.0-rc3 Documentation # 观察 CMake 变量的变化variable_watch(<variable> [])# 如果指定的...
只需将输出强制输出到标准输出,方法是在主variable_watch()调用之前向主CMakeLists.txt添加一些project()调用,如下所示: 代码语言:javascript 复制 variable_watch(__CMAKE_C_COMPILER_OUTPUT) variable_watch(__CMAKE_CXX_COMPILER_OUTPUT) 保存临时文件 要保留try_compile的临时文件,请将--debug-trycompile添加到...
cmVariableWatchCallbackData { bool InCallback; std::string Command; }; //--- static void cmVariableWatchCommandVariableAccessed( const std::string& variable, int access_type, void* client_data, const char* newValue, const cmMakefile* mf) { cmVariableWatchCallbackData* data = ...
string,target_link_libraries,try_compile,try_run,unset,variable_watch,while 每条命令的具体含义是:
SET(CMAKE_BUILD_TYPE Debug CACHE) 意味着该值将从该点永久更新到配置运行结束。跟踪此值发生变化的违规位置的一个好方法是使用cmake的variable_watch。在主CMakelists.txt文件中添加以下行 variable_watch(CMAKE_BUILD_TYPE) 每次访问此变量时,这将打印到标准错误。要将其记录到日志文件中,请执行以下操作: ...
此外, 还可以自行探索, 例如 Watch Variable 等基本的调试功能, 都有提供; CMake script 命令行输入的参数,通过 message 打印后,也在 Output->CMake/Build 看到了输出。 总之, 如果你在 C/C++ 构建过程中使用了 CMake script, 无论是想调试 CMake 执行时候的相关报错, 还是希望研读 VCPKG 等包管理器的...