Я использую ant для создания смеси кода Java и C ++ (JNI), которая составляет здесь клиентский проект. Недавно я переключил часть сборки C ++ на использование ant с cpptasks для сборки кода C ++ вместо того, чтобы ant вызывал различные версии Visual Studio, необходимые для сборки кода.
Чтобы заставить это работать, необходимо использовать задачу exec для запуска оболочки, в которой выполняется сценарий оболочки или командный файл, для настройки среды компилятора, прежде чем запускать другой муравей, выполняющий на основе cpptasks. C ++ build. По сути, связанные с C ++ задачи сборки в основном файле сборки ant выглядят так для Windows:
<target name="blah">
<exec executable="cmd" failonerror="true">
<arg value="/C"/>
<arg line=""${cpp.compiler.path}/vsvars32.bat" && %ANT_HOME%/bin/ant -f cpp-build.xml make-cpp-stuff" />
</exec>
</target>
Невозможно избавиться от вызова vsvars32.bat, поскольку код должен быть собран с несколькими версиями VS и на машинах сборки, где ни одна из установок Visual Studio не может быть частью среды пользователя сборки.
Вышеописанное работает, но проблема, с которой я сталкиваюсь, заключается в том, что я хотел бы передать некоторые параметры командной строки (например, -verbose, -quiet, -emacs) дочернему муравью, если они были переданы родительскому. муравей. Можно ли вообще получить доступ к параметрам командной строки, данным родительскому муравью? Обратите внимание, что я говорю не об обычных определениях свойств, а о внутренних параметрах.