在ant中使用文件集应用映射程序
这似乎是一个常见的问题,但我还没有找到重复的答案 我有一堆对象文件,如果其中任何一个文件发生了更改,它们都需要传递给linker exec。我有一个在ant中使用文件集应用映射程序,ant,Ant,这似乎是一个常见的问题,但我还没有找到重复的答案 我有一堆对象文件,如果其中任何一个文件发生了更改,它们都需要传递给linker exec。我有一个apply任务,如下所示: ,但我希望我可以通过指定一个额外的文件集或类似的东西来完成它。您的问题不是任务,而是。与大多数构建系统一样,Ant试图通过不处理未更改的文件来节省时间。映射程序正在将源文件(后缀为*.o的文件)映射到目标文件(后缀为myapp.exe的文件)。这正是你想要的 您可能需要使用子实体指定输出文件名: <apply ex
apply
任务,如下所示:
,但我希望我可以通过指定一个额外的文件集或类似的东西来完成它。您的问题不是
任务,而是
。与大多数构建系统一样,Ant试图通过不处理未更改的文件来节省时间。映射程序正在将源文件(后缀为*.o
的文件)映射到目标文件(后缀为myapp.exe
的文件)。这正是你想要的
您可能需要使用
子实体指定输出文件名:
<apply executable="link.exe">
<arg value="/out"/>
<arg value="myapp.exe"/>
<fileset dir="obj">
<include name="**/*.o"/>
</fileset>
</apply>
谢谢您的第一个代码片段将导致link.exe
在每个构建上运行(正如我相信您在讨论最新版本
时提到的)。正如我的问题所暗示的,我已经用最新任务实现了一个解决方案,但是如果可能的话,我更愿意使用apply
。由于apply
既支持uptodate
检查(通过mapper
)又支持文件集
,我原以为它可以在没有明确的uptodate
任务的情况下完成?
<uptodate property="needs.linking"
targetfile="myapp.exe">
<srcfiles dir="obj">
<include name="**/*.o"/>
</srcfiles>
</uptodate>
<target name="linker"
if="needs.linking">
<apply executable="link.exe">
...
</target>