Пропустить компиляцию DLL, если нет изменений - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь оптимизировать нашу процедуру сборки для наших приложений, которые мы здесь имеем.Я хотел бы пропустить компиляцию нашего внутреннего файла .dll, если временная метка файла не изменилась с помощью скриптов Ant Netbeans.Я использовал Инкрементную и быструю сборку, используя Ant и Расширенная конфигурация проекта в свободной форме в качестве ориентира, но, похоже, для создания сравнения .timestamp впервая ссылка.

Есть ли способ обойти необходимость в двух целях и вместо этого проверить временную метку файла .dll?или мне просто нужно добавить еще один тег внутри моего звонка, чтобы сделать сравнение, или то, что я пытаюсь сделать, неосуществимо?Любая помощь будет принята с благодарностью, или, если известны лучшие способы сделать это, я открыт для прослушивания.Мы используем Netbeans для компиляции наших проектов и по умолчанию используем Ant.Пока что я включил фрагмент моего Ant-скрипта build.xml.Заранее спасибо!

<target name="init-skip-dll" description="initializes the skip property for the Ada dll">
    <uptodate srcfile="create-ada-dll.timestamp" targetfile="ada-dll.timestamp" property="ada-dll.skip" value="true" />
</target>

<target name="-build-dll" description="builds the Ada dll if needed" depends="init-skip-dll">
    <exec executable="gprbuild.exe">
        <arg value="-P"/>
        <arg file="..\DLL\ifccs_dll.gpr"/>
    </exec>
    <touch file="create-ada-dll.timestamp"/>
</target>

1 Ответ

0 голосов
/ 20 ноября 2018

Я не использую Ant, но та же проблема существует с Make;правила зависимостей Ada сложны и лучше всего обрабатываются безоговорочно позволяя gprbuild делать все, что нужно для обновления DLL.Gprbuild ничего не будет делать, кроме проверки зависимостей, если DLL на самом деле обновлена.

В Make это подразумевает фальшивую цель: например, для реальной цели testbed,

testbed: force
        gprbuild -p -P testbed

.PHONY: force

или для уже фальшивой цели

all:
        gprbuild -p -P build_runtime.gpr

.PHONY: all

Кстати, обратите внимание на -p, в котором говорится о создании необходимых каталогов, например, каталога объектов.

...