ant:输出文件不存在时应用可执行文件

时间:2013-10-22 08:25:17

标签: ant

我尝试创建一个ant目标,它从输入目录处理一些GLSL着色器,并将它们输出到另一个文件夹中。如果输出文件已经存在,我想避免处理。

我使用的可执行文件可以是输出目录参数,也可以是输出文件路径。

目前,我有:

<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指向输出文件夹。

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分: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 属性。