我有一个嵌入式项目(使用 ESP-IDF,它使用 CMake 构建项目),其中我有一个 props.json 文件,其中包含多个设置(例如“设备类型”)。比如根据CMake的实际值通过调用and"deviceType"
打开读取props.json ,然后定义C预处理宏,如:通过使用.execute_process()
jq
DEVICE_TYPE_A
add_compile_definitions()
问题是,这只会在我修改 CMakeLists.txt 或清理整个项目时运行,但是当我只更改 props.json 时我不想重新编译每个组件我写的文件(所以,取决于设置)。我想让 CMake 每次构建项目时都读取文件而不清理它。
我做了我的研究,所以我知道有add_custom_target()
这样的add_custom_command()
行为,但是add_compile_definitions()
不能在脚本中调用。有没有解决方案来实现这一点,或者我应该只使用由配置的头文件configure_file()
而不add_compile_definitions()
理会?