You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ant.apache.org by Stefan Krause <st...@snafu.de> on 2009/02/16 00:42:53 UTC

antcall and

Hello,

I recognized some strange behavior while calling a conditional target
with <antcall/>. The goal was a switch between different build modes.
Here's the code:

<project name="test" default="generate" basedir=".">
	<property name="build_mode" value="foo"/>
	<!--  -->
	<target name="init">
		<condition property="build_bar">
			<equals arg1="${build_mode}" arg2="bar" casesensitive="yes" trim="yes"/>
		</condition>
		<echo message="...  property build_bar: ${build_bar}"/>
		<condition property="build_foo">
			<isfalse value="${build_bar}"/>
		</condition>
		<echo message="...  property build_foo: ${build_foo}"/>
	</target>
	<!--  -->
	<target name="generate" depends="init">
		<echo>generate ...</echo>
		<antcall target="generate_foo"/>
		<antcall target="generate_bar"/>
		<echo>finished.</echo>
	</target>
	<!--  -->
	<target name="generate_foo" if="${build_foo}" depends="init">
		<echo>generate foo ...</echo>
	</target>
	<!--  -->
	<target name="generate_bar" if="${build_bar}" depends="init">
		<echo>generate bar ...</echo>
	</target>
</project>

The target "generate_foo" is skipped, with the verbose option I get the
follwing lines:

...
     [echo] ...  property build_foo: true

generate_foo:
Skipped because property 'true' not set.
...

Is this a bug or a feature?

(I can solve my problem by rearranging the tasks, but I'm interested in
 an explanation.)

Stefan

----

Here's the whole verbose output:

Apache Ant version 1.7.1 compiled on June 27 2008
Buildfile: build.xml
Detected Java version: 1.6 in: C:\Programme\Java\jdk1.6.0_04\jre
Detected OS: Windows XP
parsing buildfile C:\temp\build.xml with URI = file:/C:/temp/build.xml
Project base dir set to: C:\temp
[antlib:org.apache.tools.ant] Could not load definitions from resource
org/apache/tools/ant/antlib.xml. It could not be found.
Build sequence for target(s) `generate' is [init, generate]
Complete build sequence is [init, generate, generate_bar, generate_foo, ]

init:
Property "build_bar" has not been set
     [echo] ...  property build_bar: ${build_bar}
Property "build_bar" has not been set
     [echo] ...  property build_foo: true

generate:
     [echo] generate ...
Project base dir set to: C:\temp
  [antcall] calling target(s) [generate_foo] in build file C:\temp\build.xml
parsing buildfile C:\temp\build.xml with URI = file:/C:/temp/build.xml
Project base dir set to: C:\temp
Override ignored for property "build_mode"
Build sequence for target(s) `generate_foo' is [init, generate_foo]
Complete build sequence is [init, generate_foo, generate, generate_bar, ]
  [antcall] Entering C:\temp\build.xml...
Build sequence for target(s) `generate_foo' is [init, generate_foo]
Complete build sequence is [init, generate_foo, generate, generate_bar, ]

init:
Property "build_bar" has not been set
     [echo] ...  property build_bar: ${build_bar}
Property "build_bar" has not been set
Override ignored for property "build_foo"
     [echo] ...  property build_foo: true

generate_foo:
Skipped because property 'true' not set.
  [antcall] Exiting C:\temp\build.xml.
Project base dir set to: C:\temp
  [antcall] calling target(s) [generate_bar] in build file C:\temp\build.xml
parsing buildfile C:\temp\build.xml with URI = file:/C:/temp/build.xml
Project base dir set to: C:\temp
Override ignored for property "build_mode"
Build sequence for target(s) `generate_bar' is [init, generate_bar]
Complete build sequence is [init, generate_bar, generate, generate_foo, ]
  [antcall] Entering C:\temp\build.xml...
Build sequence for target(s) `generate_bar' is [init, generate_bar]
Complete build sequence is [init, generate_bar, generate, generate_foo, ]

init:
Property "build_bar" has not been set
     [echo] ...  property build_bar: ${build_bar}
Property "build_bar" has not been set
Override ignored for property "build_foo"
     [echo] ...  property build_foo: true

generate_bar:
Property "build_bar" has not been set
Property "build_bar" has not been set
Property "build_bar" has not been set
Skipped because property '${build_bar}' not set.
  [antcall] Exiting C:\temp\build.xml.
     [echo] finished.

BUILD SUCCESSFUL
Total time: 0 seconds

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org