#	 ***************************************************************
#	 * Copyright 2008-2010 the EasyAnt project
#	 *
#	 * See the NOTICE file distributed with this work for additional information 
#	 * regarding copyright ownership.
#  * 
#  * Licensed under the Apache License, Version 2.0 (the "License");
#  * you may not use this file except in compliance with the License.
#  * You may obtain a copy of the License at
#  * 
#  * http://www.apache.org/licenses/LICENSE-2.0
#  * 
#  * Unless required by applicable law or agreed to in writing, software
#  * distributed under the License is distributed on an "AS IS" BASIS,
#  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  * See the License for the specific language governing permissions and
#  * limitations under the License.
#	 ***************************************************************
#TODO: find a way to have a common property file shared by all build-types (std/webapp/etc..)
module.name=${ivy.module}
project.ivy.file=${easyant.file}

ant.executor.class=org.apache.easyant.core.ant.MetaBuildExecutor
use.build.repository=true

ivy.haltonmissing=false
target=${basedir}/target

# record the meta-build target directory, to be inherited by submodules
meta.target=${target}
meta.repository=${meta.target}/repository
