###############################################################################
# Copyright (c) 2000, 2010 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
###############################################################################
#custom = true
p2.group.id = org.eclipse.equinox.executable
customBuildCallbacks=customBuildCallbacks.xml
bin.includes = bin/,\
               feature.xml,\
               target.build.properties,\
               feature.properties,\
               gtk_root/,\
               motif_root/,\
               target.build.xml,\
               license.html,\
               epl-v10.html,\
               eclipse_update_120.jpg,\
               contributed/

#Bug 139066 Launcher feature should not contain icons and splash screen
bin.excludes=bin/**/Eclipse.icns,bin/**/icon.xpm,bin/**/*.pm,bin/**/splash.bmp
# If we need to regenerate the build.xml, this line must be included at the end of the gather.bin.parts target.
#	<move file="${feature.base}/features/org.eclipse.platform.launchers_3.1.0/target.build.properties" tofile="${feature.base}/features/org.eclipse.platform.launchers_3.1.0/build.properties"/>
