# *******************************************************************************
#  Copyright (c) 2018 Robert Bosch GmbH and others.
#  All rights reserved. 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/
# 
#   Contributors:
#  	 Robert Bosch GmbH - initial API and implementation
# 
# *******************************************************************************
source.. = src/,\
           xtend-gen/
output.. = bin/
bin.includes = META-INF/,\
               .,\
               plugin.xml,\
               epl-2.0.html,\
               about.html,\
               OSGI-INF/org.eclipse.app4mc.transformation.extensions.CustomObjectsStore.xml
src.includes = about.html,\
               epl-2.0.html
