###############################################################################
# Copyright (c) 2005, 2007 IBM Corporation and others.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License v. 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0.
#
# SPDX-License-Identifier: EPL-2.0
#

###############################################################################
source.. = src/,\
           src corext/,\
           core refactoring/,\
           ui refactoring/
output.. = bin/
bin.includes = META-INF/,\
               .,\
               plugin.xml,\
               icons/,\
               plugin.properties,\
               schema/,\
               DocumentationViewStyleSheet.css,\
               DocumentationHoverStyleSheet.css,\
               about.html,\
               css/
