Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmake firebreath预定义功能能否配置_模板仅支持@?_Cmake_Firebreath - Fatal编程技术网

Cmake firebreath预定义功能能否配置_模板仅支持@?

Cmake firebreath预定义功能能否配置_模板仅支持@?,cmake,firebreath,Cmake,Firebreath,现在我正在使用Firebreath开发我的插件,我遇到了使用Firebreath预定义的配置_模板函数的问题 就我现在所见,configure_模板将替换引用为${VAR}或@VAR@或@foreach循环的变量 但是我的配置文件(nsis安装程序文件)有自己定义的变量${VAR},所以我不希望它被configure_模板替换 我使用Firebreath预定义的configure_模板而不是configure_文件(仅限inputfile outputfile@ONLY)的原因是我想在confi

现在我正在使用Firebreath开发我的插件,我遇到了使用Firebreath预定义的配置_模板函数的问题

就我现在所见,configure_模板将替换引用为${VAR}或@VAR@或@foreach循环的变量

但是我的配置文件(nsis安装程序文件)有自己定义的变量${VAR},所以我不希望它被configure_模板替换

我使用Firebreath预定义的configure_模板而不是configure_文件(仅限inputfile outputfile@ONLY)的原因是我想在configure文件中使用@foreach循环来解释分号CMAKE变量


那么,我应该如何解决这个问题呢?我可以很容易地修改exist configure_模板以忽略${VAR},或者有其他方法来解释配置文件中的分号CMAKE变量吗?

我只是自己想出了一个解决方案

FireSpreat提供的现有configure_模板函数可以修改为忽略替代变量,如${VAR}。修改很简单,只需一行, 更改以下代码

string(CONFIGURE "${line}" line ESCAPE_QUOTES)

@ONLY参数将告诉CMAKE仅替换以下变量@VAR@.

虽然,这可以解决配置我自己的文件的问题,但这将破坏特定于Firebreath的配置文件,因为它们都使用${VAR}

所以,我的最终解决方案是

  • 复制Firebreath的configure_template.cmake out、重命名和修改
  • 使用修改后的my_configure_模板来满足我的需要,这样就不会影响现有的configure_模板行为
  • 欢迎任何其他解决方案

    string(CONFIGURE "${line}" line ESCAPE_QUOTES @ONLY)