###############################################################################
# Copyright (c) 2000, 2014 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
###############################################################################

#custom = true
bin.includes = bin/,\
               feature.xml,\
               feature.properties,\
               gtk_root/

####Even though marked as custom, the content of the build.properties needs to be updated to ensure correctness of RCP app exported 
#root.permissions.755=${launcherName}

root.win32.win32.x86_64=bin/win32/win32/x86_64
root.win32.win32.x86_64.permissions.755=launcher.exe

root.linux.gtk.ppc64le=bin/gtk/linux/ppc64le,gtk_root
root.linux.gtk.ppc64le.permissions.755=launcher

root.linux.gtk.aarch64=bin/gtk/linux/aarch64,gtk_root
root.linux.gtk.aarch64.permissions.755=launcher

root.macosx.cocoa.x86_64=bin/cocoa/macosx/x86_64
root.macosx.cocoa.x86_64.permissions.755=Eclipse.app/Contents/MacOS/launcher

root.macosx.cocoa.arm64=bin/cocoa/macosx/arm64
root.macosx.cocoa.arm64.permissions.755=Eclipse.app/Contents/MacOS/launcher

root.linux.gtk.x86_64=bin/gtk/linux/x86_64,gtk_root
root.linux.gtk.x86_64.permissions.755=libcairo-swt.so
