##
#  Copyright (c) 2009-2010 Thales Corporate Services S.A.S.
#
#  This program and the accompanying materials
#  are made available under the terms of the Eclipse Public License 2.0
#  which accompanies this distribution, and is available at
#  https://www.eclipse.org/legal/epl-2.0
#
#  SPDX-License-Identifier: EPL-2.0
# 
#  Contributors:
#      Thales Corporate Services S.A.S - initial API and implementation
##
source.. = src/
source.ant_tasks/egf.ant.tasks.jar = tasks/
output.. = bin/
output.ant_tasks/egf.ant.tasks.jar = bin.tasks/
bin.includes = META-INF/,\
               .,\
               .options,\
               plugin.properties,\
               examples/,\
               about.html,\
               ant_tasks/egf.ant.tasks.jar,\
               plugin.xml
jars.compile.order = .,\
                     ant_tasks/egf.ant.tasks.jar               
src.includes = about.html
exclude.. = **/doc-files/**
exclude.ant_tasks/egf.ant.tasks.jar = **/doc-files/**
