###############################################################################
# Copyright (c) 2006, 2016 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
###############################################################################
# The chmod and links must indicate a path relative to the root directory.

# List the files and folders to be copied into the root of eclipse for all platform
# configurations
root=epl-v10.html, notice.html, configuration/, startup.jar, .eclipseproduct, eclipse.ini, readme/
root.permissions.755=eclipse,*.so*

root.win32.win32.x86=eclipse.exe, eclipsec.exe
root.linux.gtk.x86=eclipse,libcairo-swt.so,about_files/,about.html,icon.xpm
root.linux.gtk.x86_64=eclipse,libcairo-swt.so,about_files/,about.html,icon.xpm
