现在我正在使用Firebreath来开发我的插件,并且我遇到了使用Firebreath预定义 configure_template 功能的问题。
据我所知,configure_template将替换引用为$ {VAR}或@ VAR @或@@ foreach循环的变量。
但我的配置文件(nsis安装程序文件)有自己定义的变量$ {VAR},所以我不希望它被configure_template替换。
我使用Firebreath预定义的configure_template而不是configure_file(inputfile outputfile @ONLY)的原因是我想在配置文件中使用@@ foreach循环来解释分号CMAKE变量。
那么,我该如何解决这个问题呢?我可以轻松修改现有的configure_template以忽略$ {VAR},还是有其他方法可以解释配置文件中的分号CMAKE变量?
答案 0 :(得分:1)
我自己只想出一个解决方案。
可以修改Firebreath提供的现有configure_template函数,以忽略$ {VAR}等替换变量。修改很简单,只有一行, 更改以下代码
string(CONFIGURE "${line}" line ESCAPE_QUOTES)
到
string(CONFIGURE "${line}" line ESCAPE_QUOTES @ONLY)
@ONLY参数将告诉CMAKE只替换@VAR @等变量。
虽然,这可以解决配置我自己的文件的问题,但这会破坏Firebreath特定的配置文件,因为它们都使用$ {VAR}。
所以,我的最终解决方案是
欢迎任何其他解决方案。