###############################################################################
#  Copyright (c) 2003, 2015 IBM Corporation and others.
#
#  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:
#     IBM Corporation - initial API and implementation
#     Martin Oberhuber (Wind River) - [303083] Split out the Spawner
###############################################################################
bin.includes = plugin.properties,\
               about.html,\
               .,\
               META-INF/,\
               about.ini,\
               about.mappings,\
               cdt_logo_icon32.png,\
               about.properties,\
               plugin.xml,\
               .options
src.includes = about.html,\
               schema/,\
               native_src/
javadoc.packages = org.eclipse.cdt.utils.*,\
                   org.eclipse.cdt.utils.pty.*,\
                   org.eclipse.cdt.utils.spawner.*
source.. = src/

