0

入力ディレクトリからいくつかのGLSLシェーダーを処理するantターゲットを作成し、それらを別のフォルダーに出力しようとしました。また、出力ファイルが既に存在する場合は処理を避けたいと思います。

私が使用する実行可能ファイルは、出力ディレクトリ引数を取るか、出力ファイル パスを直接取ることができます。

現在、私は持っています:

<target name="optimize_programs">
    <apply executable="TOOLS/glsl_processor" dir="." verbose="true" >
        <srcfile/>
        <arg value="-output_directory=OUTPUT/PROGRAMS/" />
        <fileset dir="INPUT/PROGRAMS/OPENGLES2" includes="**/*.glfx" />
        <flattenmapper />
    </apply>
</target>

シェーダーは正しく処理されますが、問題は、出力ファイルが既に存在する場合でも、毎回処理されることです。

これは、flattenmapper が glsl_processor の出力を認識していないためだと思われます。

glsl_processor にファイルを出力する場所を伝えるために使用しようとしました:

<target name="optimize_programs">
    <apply executable="TOOLS/glsl_processor" dir="." verbose="true" >
        <srcfile/>
        <targetfile/>
        <fileset dir="INPUT/PROGRAMS/OPENGLES2" includes="**/*.glfx" />
        <flattenmapper />
    </apply>
</target>

しかし、targetfile が出力フォルダーを指すようにする方法がわかりません。

何か案が?

ありがとう!

4

1 に答える 1

1

答えは実際には非常に簡単です。

<target name="optimize_programs">
    <apply executable="TOOLS/glsl_processor" dir="INPUT/PROGRAMS/OPENGLES2/" dest="OUTPUT/PROGRAMS" verbose="true" >
        <targetfile/>
        <srcfile/>
        <fileset dir="INPUT/PROGRAMS/OPENGLES2" includes="**/*.glfx" />
        <mapper type="glob" from="*.glfx" to="*.glfx"/>
    </apply>
</target>

適用タスクのdest属性を埋めることができませんでした。

于 2013-10-22T12:11:47.837 に答える