通过源代码向客户提供软件,我想删除#ifdef
(#ifdef
或#else
部分)中封装的代码。我想通过目标属性调用CMake的install()
来执行此操作。使用get_target_property()
,我可以获取已启用定义的列表,但我无法通过undef
或add_target_definition()
将set_target_property()
'ed宏添加到该列表中.c
个文件。我可以想象有适用于这种情况的解决方案,但我无法在SO和Google找到答案。
install()
机制提供已启用和已禁用的定义列表?.c
文件中删除已禁用的代码行的最佳方法是什么?非常感谢任何帮助。
亲切的问候, Floxtrott
答案 0 :(得分:0)
我怀疑是否过滤掉你提到的这些问题是正确的方法。我会使用特定的Git分支并在常规基础上重新定义它们。
使用CMake,你很难做到这一点。它没有提供操作C源代码的工具。你可以生成一些标题,但基本上就是这样。
如果您坚持过滤,请使用Perl或Python。