Bug 570463 - [Mac] Build launcher for Mac arm64

Added launcher fragment for Mac arm64.
Updated build.sh

Change-Id: I07cb09ba9c01db6fa67e09f29f73e2fc4799d2d6
Signed-off-by: Lakshmi Shanmugam <lshanmug@in.ibm.com>
diff --git a/bundles/org.eclipse.equinox.launcher.cocoa.macosx.arm64/.project b/bundles/org.eclipse.equinox.launcher.cocoa.macosx.arm64/.project
new file mode 100644
index 0000000..5efe02e
--- /dev/null
+++ b/bundles/org.eclipse.equinox.launcher.cocoa.macosx.arm64/.project
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.equinox.launcher.cocoa.macosx.arm64</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.equinox.launcher.cocoa.macosx.arm64/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.cocoa.macosx.arm64/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..a3c7374
--- /dev/null
+++ b/bundles/org.eclipse.equinox.launcher.cocoa.macosx.arm64/META-INF/MANIFEST.MF
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-Vendor: %providerName
+Bundle-SymbolicName: org.eclipse.equinox.launcher.cocoa.macosx.arm64;singleton:=true
+Bundle-Version: 1.2.100.qualifier
+Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.5.0,1.7.0)"
+Eclipse-PlatformFilter: (& (osgi.ws=cocoa) (osgi.os=macosx) (osgi.arch=arm64) )
+Bundle-Localization: launcher.cocoa.macosx.arm64
+Eclipse-BundleShape: dir
diff --git a/bundles/org.eclipse.equinox.launcher.cocoa.macosx.arm64/about.html b/bundles/org.eclipse.equinox.launcher.cocoa.macosx.arm64/about.html
new file mode 100644
index 0000000..164f781
--- /dev/null
+++ b/bundles/org.eclipse.equinox.launcher.cocoa.macosx.arm64/about.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>About</title>
+</head>
+<body lang="EN-US">
+	<h2>About This Content</h2>
+
+	<p>November 30, 2017</p>
+	<h3>License</h3>
+
+	<p>
+		The Eclipse Foundation makes available all content in this plug-in
+		(&quot;Content&quot;). Unless otherwise indicated below, the Content
+		is provided to you under the terms and conditions of the Eclipse
+		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
+		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+		For purposes of the EPL, &quot;Program&quot; will mean the Content.
+	</p>
+
+	<p>
+		If you did not receive this Content directly from the Eclipse
+		Foundation, the Content is being redistributed by another party
+		(&quot;Redistributor&quot;) and different terms and conditions may
+		apply to your use of any object code in the Content. Check the
+		Redistributor's license that was provided with the Content. If no such
+		license exists, contact the Redistributor. Unless otherwise indicated
+		below, the terms and conditions of the EPL still apply to any source
+		code in the Content and such source code may be obtained at <a
+			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+	</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.launcher.cocoa.macosx.arm64/build.properties b/bundles/org.eclipse.equinox.launcher.cocoa.macosx.arm64/build.properties
new file mode 100644
index 0000000..6d177a3
--- /dev/null
+++ b/bundles/org.eclipse.equinox.launcher.cocoa.macosx.arm64/build.properties
@@ -0,0 +1,20 @@
+###############################################################################
+# Copyright (c) 2011 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
+###############################################################################
+bin.includes = META-INF/,\
+               launcher.cocoa.macosx.arm64.properties,\
+               about.html
+               
+customBuildCallbacks=customBuildCallbacks.xml
+generateSourceBundle=false
+binaryTag=v20201225-0618
diff --git a/bundles/org.eclipse.equinox.launcher.cocoa.macosx.arm64/customBuildCallbacks.xml b/bundles/org.eclipse.equinox.launcher.cocoa.macosx.arm64/customBuildCallbacks.xml
new file mode 100644
index 0000000..3773f01
--- /dev/null
+++ b/bundles/org.eclipse.equinox.launcher.cocoa.macosx.arm64/customBuildCallbacks.xml
@@ -0,0 +1,124 @@
+<!-- ===================================================================== -->
+<!-- Custom targets called from a project's generated build.xml            -->
+<!-- Set customBuildCallbacks=<path/to/this/file> in your build.properties.-->
+<!-- ===================================================================== -->
+<project name="Build specific targets and properties" default="noDefault">
+
+	<!-- ===================================================================== -->
+	<!-- Default target                                                        -->
+	<!-- ===================================================================== -->
+	<target name="noDefault">
+		<echo message="This file must be called with explicit targets" />
+	</target>
+	
+	<!-- ===================================================================== -->
+	<!-- Steps to do before the target build.jars                              -->
+	<!-- Available parameters :                                                -->
+	<!--   build.result.folder - folder to contain the build results           -->
+	<!-- ===================================================================== -->
+	<target name="pre.build.jars">
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do after the target build.jars                               -->
+	<!-- Available parameters :                                                -->
+	<!--   build.result.folder - folder to contain the build results           -->
+	<!-- ===================================================================== -->
+	<target name="post.build.jars">	
+	</target>
+	
+	<!-- ===================================================================== -->
+	<!-- Steps to do before the target build.sources                           -->
+	<!-- Available parameters :                                                -->
+	<!--   build.result.folder - folder to contain the build results           -->
+	<!-- ===================================================================== -->
+	<target name="pre.build.sources">
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do after the target build.sources                            -->
+	<!-- Available parameters :                                                -->
+	<!--   build.result.folder - folder to contain the build results           -->
+	<!-- ===================================================================== -->
+	<target name="post.build.sources">
+	</target>
+	
+	<target name="pre.gather.bin.parts">
+		<property file="${basedir}/build.properties" />
+		<basename file="${basedir}" property="fragmentName" />
+		<available file="/gitroot/equinox/rt.equinox.binaries.git" type="dir" property="gitRepo" value="/gitroot/equinox/rt.equinox.binaries.git" />
+		<property name="gitRepo" value="ssh://git.eclipse.org/gitroot/equinox/rt.equinox.binaries.git" />
+		
+		<exec dir="${basedir}" executable="git" output="${basedir}/binary.tar" errorproperty="errorResult" >
+			<arg line="archive --format=tar --remote=${gitRepo} ${binaryTag} ${fragmentName}" />
+		</exec>
+		
+		<copy todir="${basedir}">
+			<tarfileset includes="${fragmentName}/**" src="${basedir}/binary.tar" />
+			<globmapper from="${fragmentName}/*" to="*" />
+		</copy>
+		
+		<delete file="${basedir}/binary.tar" failonerror="false" quiet="true" />
+	</target>
+	
+	<!-- ===================================================================== -->
+	<!-- Steps to do after the target gather.bin.parts                         -->
+	<!-- Available parameters :                                                -->
+	<!--   base.dir - root of the project                                      -->
+	<!--   build.result.folder - folder containing the build results           -->
+	<!--   target.folder - destination folder                                  -->
+	<!-- ===================================================================== -->
+	<target name="post.gather.bin.parts">
+		<chmod perm="755" dir="${target.folder}" includes="eclipse_*" />
+	</target>
+	
+	<!-- ===================================================================== -->
+	<!-- Steps to do before the target gather.sources                          -->
+	<!-- Available parameters :                                                -->
+	<!--   destination.temp.folder - destination folder                        -->
+	<!-- ===================================================================== -->
+	<target name="pre.gather.sources">
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do after the target gather.sources                           -->
+	<!-- Available parameters :                                                -->
+	<!--   destination.temp.folder - destination folder                        -->
+	<!-- ===================================================================== -->
+	<target name="post.gather.sources">
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do before the target gather.logs                             -->
+	<!-- Available parameters :                                                -->
+	<!--   destination.temp.folder - destination folder                        -->
+	<!-- ===================================================================== -->
+	<target name="pre.gather.logs">        
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do after the target gather.logs                              -->
+	<!-- Available parameters :                                                -->
+	<!--   destination.temp.folder - destination folder                        -->
+	<!-- ===================================================================== -->
+	<target name="post.gather.logs">       
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do before the target clean                                   -->
+	<!-- Available parameters :                                                -->
+	<!--   destination.temp.folder - destination folder                        -->
+	<!-- ===================================================================== -->
+	<target name="pre.clean">              
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do after the target clean                                    -->
+	<!-- Available parameters :                                                -->
+	<!--   plugin.destination - final destination of the build                 -->
+	<!--   build.result.folder - results of the compilation                    -->
+	<!--   temp.folder - temporary folder                                      -->
+	<!-- ===================================================================== -->
+	<target name="post.clean">             
+	</target>
+</project>
diff --git a/bundles/org.eclipse.equinox.launcher.cocoa.macosx.arm64/forceQualifierUpdate.txt b/bundles/org.eclipse.equinox.launcher.cocoa.macosx.arm64/forceQualifierUpdate.txt
new file mode 100644
index 0000000..9d4f218
--- /dev/null
+++ b/bundles/org.eclipse.equinox.launcher.cocoa.macosx.arm64/forceQualifierUpdate.txt
@@ -0,0 +1 @@
+# To force a version qualifier update add the bug here
diff --git a/bundles/org.eclipse.equinox.launcher.cocoa.macosx.arm64/launcher.cocoa.macosx.arm64.properties b/bundles/org.eclipse.equinox.launcher.cocoa.macosx.arm64/launcher.cocoa.macosx.arm64.properties
new file mode 100644
index 0000000..8db0544
--- /dev/null
+++ b/bundles/org.eclipse.equinox.launcher.cocoa.macosx.arm64/launcher.cocoa.macosx.arm64.properties
@@ -0,0 +1,15 @@
+###############################################################################
+# Copyright (c) 2008, 2009 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
+###############################################################################
+pluginName = Equinox Launcher MacOSX Cocoa ARM64 Fragment
+providerName = Eclipse.org - Equinox
diff --git a/bundles/org.eclipse.equinox.launcher.cocoa.macosx.arm64/pom.xml b/bundles/org.eclipse.equinox.launcher.cocoa.macosx.arm64/pom.xml
new file mode 100644
index 0000000..e50b061
--- /dev/null
+++ b/bundles/org.eclipse.equinox.launcher.cocoa.macosx.arm64/pom.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright (c) 2012 Eclipse Foundation.
+  All rights reserved. This program and the accompanying materials
+  are made available under the terms of the Eclipse Distribution License v1.0
+  which accompanies this distribution, and is available at
+  http://www.eclipse.org/org/documents/edl-v10.php
+ 
+  Contributors:
+     Igor Fedorenko - initial implementation
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <artifactId>launcher-binary-parent</artifactId>
+    <groupId>org.eclipse.equinox.framework</groupId>
+    <version>4.19.0-SNAPSHOT</version>
+    <relativePath>../../launcher-binary-parent</relativePath>
+  </parent>
+  <groupId>org.eclipse.equinox</groupId>
+  <artifactId>org.eclipse.equinox.launcher.cocoa.macosx.arm64</artifactId>
+  <version>1.2.100-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+
+  <properties>
+    <os>macosx</os>
+    <ws>cocoa</ws>
+    <arch>arm64</arch>
+    <skipAPIAnalysis>true</skipAPIAnalysis>
+  </properties>
+
+</project>
diff --git a/features/org.eclipse.equinox.executable.feature/library/cocoa/build.sh b/features/org.eclipse.equinox.executable.feature/library/cocoa/build.sh
index 75e3322..c457ba7 100644
--- a/features/org.eclipse.equinox.executable.feature/library/cocoa/build.sh
+++ b/features/org.eclipse.equinox.executable.feature/library/cocoa/build.sh
@@ -74,7 +74,8 @@
   JAVA_HEADERS="-I$(/usr/libexec/java_home)/include -I$(/usr/libexec/java_home)/include/darwin"
 fi
 
-ARCHS="-arch x86_64"
+ARCHS="-arch $defaultOSArch"
+
 export PROGRAM_OUTPUT DEFAULT_OS DEFAULT_OS_ARCH DEFAULT_WS ARCHS PROGRAM_OUTPUT_DIR JAVA_HEADERS 
 export MACOSX_DEPLOYMENT_TARGET=$DEPLOYMENT_TARGET