2

現在、Firebreath を使用してプラグインを開発していますが、Firebreath の事前定義されたconfigure_template関数を使用する際に問題が発生しました。

私の知る限り、configure_template は ${VAR} または @VAR@ または @@foreach ループとして参照される変数を置き換えます。

しかし、構成ファイル (nsis インストーラー ファイル) には独自の変数が ${VAR} として定義されているため、configure_template で置き換えたくありません。

configure_file(inputfile outputfile @ONLY) の代わりに Firebreath の事前定義された configure_template を使用する理由は、configure ファイルで @@foreach ループを使用してセミコロン CMAKE 変数を解釈したいからです。

では、この問題をどのように解決すればよいでしょうか。${VAR} を無視するように既存の configure_template を簡単に変更できますか? または、構成ファイルでセミコロン CMAKE 変数を解釈する別の方法がありますか?

4

1 に答える 1

1

私は自分で1つの解決策を見つけ出すだけです。

Firebreath が提供する既存の configure_template 関数を変更して、${VAR} などの代替変数を無視することができます。変更は簡単です。1 行だけです。次のコードを変更します。

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

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

@ONLY パラメーターは、@VAR@ などの変数のみを置き換えるように CMAKE に指示します。

ただし、これは自分のファイルを構成する問題を解決できますが、Firebreath 固有の構成ファイルはすべて ${VAR} を使用するため、破損します。

だから、私の最終的な解決策は

  1. Firebreath の configure_template.cmake をコピーし、名前を変更して変更します。
  2. 私の目的を果たすために my_configure_template の修正版を使用すると、既存の configure_template の動作には影響しません。

他のソリューションは大歓迎です。

于 2013-03-11T14:05:04.100 に答える