###############################################################################
#  Copyright (c) 2003, 2009 IBM Corporation and others.
#  All rights reserved. This program and the accompanying materials
#  are made available under the terms of the Eclipse Public License v1.0
#  which accompanies this distribution, and is available at
#  http://www.eclipse.org/legal/epl-v10.html
# 
#  Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
bin.includes = plugin.xml,\
               plugin.properties,\
               about.html,\
               .,\
               META-INF/,\
               .options
src.includes = schema/,\
               about.html
javadoc.packages = org.eclipse.cdt.core.*,\
                   org.eclipse.cdt.core.index.*,\
                   org.eclipse.cdt.core.model.*,\
                   org.eclipse.cdt.core.resources.*,\
                   org.eclipse.cdt.core.templateengine.*,\
                   org.eclipse.cdt.utils.*,\
                   org.eclipse.cdt.utils.elf.*,\
                   org.eclipse.cdt.utils.spawner.*
source.. = src/,\
           model/,\
           parser/,\
           browser/,\
           templateengine/,\
           utils/

jre.compilation.profile=JavaSE-1.6
javacSource=1.6
javacTarget=1.6
