[meta-ti] [PATCH 3/6] eclipse-plugin.bbclass: added eclipse plugin bbclass
Ivan Pang
i-pang at ti.com
Wed Jul 5 15:16:29 PDT 2017
Signed-off-by: Ivan Pang <i-pang at ti.com>
---
classes/eclipse-plugin.bbclass | 182 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 182 insertions(+)
create mode 100644 classes/eclipse-plugin.bbclass
diff --git a/classes/eclipse-plugin.bbclass b/classes/eclipse-plugin.bbclass
new file mode 100644
index 0000000..35af07c
--- /dev/null
+++ b/classes/eclipse-plugin.bbclass
@@ -0,0 +1,182 @@
+
+ECLIPSE_PLUGIN_EXTENSION_FILE = ".eclipseextension"
+create_eclipse_plugin_extension() {
+ mkdir -p "${D}${ECLIPSE_PLUGIN_DIR}"
+ cat > "${D}${ECLIPSE_PLUGIN_DIR}/${ECLIPSE_PLUGIN_EXTENSION_FILE}" << EOF
+id=org.eclipse.platform
+name=Eclipse Platform
+version=3.2.0
+EOF
+}
+
+
+ECLIPSE_PLUGIN_FEATURE_DIR = "features/${ECLIPSE_PLUGIN_RTSC}.product_${ECLIPSE_PLUGIN_VERSION}"
+ECLIPSE_PLUGIN_FEATURE_FILE = "${ECLIPSE_PLUGIN_FEATURE_DIR}/feature.xml"
+create_eclipse_plugin_feature() {
+ mkdir -p "${D}${ECLIPSE_PLUGIN_DIR}/${ECLIPSE_PLUGIN_FEATURE_DIR}"
+
+ cat > "${D}${ECLIPSE_PLUGIN_DIR}/${ECLIPSE_PLUGIN_FEATURE_FILE}" << EOF
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="${ECLIPSE_PLUGIN_RTSC}.product_${ECLIPSE_PLUGIN_VERSION}"
+ label="${ECLIPSE_PLUGIN_NAME}"
+ version="${ECLIPSE_PLUGIN_VERSION}"
+ provider-name="${ECLIPSE_PLUGIN_PROVIDER}">
+
+ <description url="${ECLIPSE_PLUGIN_DESC_URL}">
+ ${ECLIPSE_PLUGIN_DESC}
+ </description>
+
+ <copyright>
+ ${ECLIPSE_PLUGIN_COPYRIGHT}
+ </copyright>
+
+ <license>
+ Released under the Eclipse Public License 1.0 (http://www.eclipse.org/legal/epl-v10.html)
+ </license>
+
+ <plugin
+ id="${ECLIPSE_PLUGIN_RTSC}.product_${ECLIPSE_PLUGIN_VERSION}"
+ version="${ECLIPSE_PLUGIN_VERSION}"
+ unpack="false" />
+
+</feature>
+EOF
+}
+
+ECLIPSE_PLUGIN_PLUGIN_DIR = "plugins/${ECLIPSE_PLUGIN_RTSC}.product_${ECLIPSE_PLUGIN_VERSION}"
+ECLIPSE_PLUGIN_PLUGIN_FILE = "${ECLIPSE_PLUGIN_PLUGIN_DIR}/plugin.xml"
+create_eclipse_plugin_plugin() {
+ mkdir -pv "${D}${ECLIPSE_PLUGIN_DIR}/${ECLIPSE_PLUGIN_PLUGIN_DIR}"
+
+ cat > "${D}${ECLIPSE_PLUGIN_DIR}/${ECLIPSE_PLUGIN_PLUGIN_FILE}" << EOF
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin
+ name="${ECLIPSE_PLUGIN_NAME} ${ECLIPSE_PLUGIN_VERSION}"
+ id="${ECLIPSE_PLUGIN_RTSC}.product_${ECLIPSE_PLUGIN_VERSION}"
+ version="${ECLIPSE_PLUGIN_VERSION}"
+ provider-name="${ECLIPSE_PLUGIN_PROVIDER}">
+EOF
+
+ if [ ! -z "${ECLIPSE_PLUGIN_CDOC}" ]
+ then
+ cat >> "${D}${ECLIPSE_PLUGIN_DIR}/${ECLIPSE_PLUGIN_PLUGIN_FILE}" << EOF
+ <extension point="org.eclipse.help.toc">
+ <toc file="toc_top.xml" primary="true"/>
+ <toc file="toc_cdoc.xml"/>
+ </extension>
+EOF
+ fi
+
+ cat >> "${D}${ECLIPSE_PLUGIN_DIR}/${ECLIPSE_PLUGIN_PLUGIN_FILE}" << EOF
+ <extension point="org.eclipse.help.contentProducer">
+ <contentProducer>
+ <producer class="org.eclipse.rtsc.xdctools.ui.help.HelpContentProducer"/>
+ </contentProducer>
+ </extension>
+
+ <extension point="org.eclipse.rtsc.xdctools.ui.productInfo">
+ <repository location="${ECLIPSE_PLUGIN_REPO}"/>
+ <docs location="${ECLIPSE_PLUGIN_DOCS}"/>
+ <info
+ installLocation="${ECLIPSE_PLUGIN_ROOT}"
+ productName="${ECLIPSE_PLUGIN_NAME}"
+ versionNumber="${ECLIPSE_PLUGIN_VERSION}"
+ />
+ </extension>
+
+
+ <extension point="org.eclipse.rtsc.xdctools.managedbuild.core.rtscProductTypes">
+ <productType
+ id="${ECLIPSE_PLUGIN_RTSC}"
+ name="${ECLIPSE_PLUGIN_NAME}"
+ folderPrefix="${ECLIPSE_FOLDER_PREFIX}"
+ rootMacroName="${ECLIPSE_ROOT_MACRO}"/>
+ </extension>
+
+ <extension point="org.eclipse.rtsc.xdctools.managedbuild.core.rtscProducts">
+ <product
+ productTypeId="${ECLIPSE_PLUGIN_RTSC}"
+ version="${ECLIPSE_PLUGIN_VERSION}"/>
+ </extension>
+
+</plugin>
+EOF
+}
+
+ECLIPSE_PLUGIN_TOC_FILE = "${ECLIPSE_PLUGIN_PLUGIN_DIR}/toc_top.xml"
+ECLIPSE_PLUGIN_CDOC_FILE = "${ECLIPSE_PLUGIN_PLUGIN_DIR}/toc_cdoc.xml"
+create_eclipse_plugin_toc() {
+ cat > "${D}${ECLIPSE_PLUGIN_DIR}/${ECLIPSE_PLUGIN_TOC_FILE}" << EOF
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+
+<toc label="${ECLIPSE_PLUGIN_NAME} ${ECLIPSE_PLUGIN_VERSION}">
+ <topic label="API Reference"><link toc="toc_cdoc.xml"/></topic>
+</toc>
+EOF
+
+ cat > "${D}${ECLIPSE_PLUGIN_DIR}/${ECLIPSE_PLUGIN_CDOC_FILE}" << EOF
+<?xml version="1.0" encoding="utf-8"?>
+<?xml-stylesheet type="text/xsl" href="toc.xsl"?>
+<toc label="${ECLIPSE_PLUGIN_NAME}" topic="packages.html">
+EOF
+
+ for cdoc in ${ECLIPSE_PLUGIN_CDOC}
+ do
+ cat "${WORKDIR}/$cdoc" >> \
+ "${D}${ECLIPSE_PLUGIN_DIR}/${ECLIPSE_PLUGIN_CDOC_FILE}"
+ done
+
+ cat >> "${D}${ECLIPSE_PLUGIN_DIR}/${ECLIPSE_PLUGIN_CDOC_FILE}" << EOF
+</toc>
+EOF
+}
+
+ECLIPSE_PLUGIN_MANIFEST_DIR = "${ECLIPSE_PLUGIN_PLUGIN_DIR}/META-INF"
+ECLIPSE_PLUGIN_MANIFEST_FILE = "${ECLIPSE_PLUGIN_MANIFEST_DIR}/MANIFEST.MF"
+create_eclipse_plugin_manifest() {
+ mkdir -p "${D}${ECLIPSE_PLUGIN_DIR}/${ECLIPSE_PLUGIN_MANIFEST_DIR}"
+
+ cat > "${D}${ECLIPSE_PLUGIN_DIR}/${ECLIPSE_PLUGIN_MANIFEST_FILE}" << EOF
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: ${ECLIPSE_PLUGIN_NAME} ${ECLIPSE_PLUGIN_VERSION}
+Bundle-SymbolicName: ${ECLIPSE_PLUGIN_RTSC}.product_${ECLIPSE_PLUGIN_VERSION};singleton:=true
+Bundle-Version: ${ECLIPSE_PLUGIN_VERSION}
+Bundle-Activator: org.eclipse.rtsc.xdctools.ui.CCSActivator
+Bundle-Vendor: ${ECLIPSE_PLUGIN_PROVIDER}
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.help,
+ org.eclipse.rtsc.xdctools.ui
+Eclipse-LazyStart: true
+EOF
+}
+
+create_eclipse_plugin() {
+ create_eclipse_plugin_extension
+ create_eclipse_plugin_feature
+ create_eclipse_plugin_plugin
+
+ if [ ! -z "${ECLIPSE_PLUGIN_CDOC}" ]
+ then
+ create_eclipse_plugin_toc
+ fi
+
+ create_eclipse_plugin_manifest
+}
+
+do_install_append() {
+ bbwarn "CDOC = \"${ECLIPSE_PLUGIN_CDOC}\""
+ bbwarn "SRC_URI = \"${SRC_URI}\""
+ create_eclipse_plugin
+}
+
+def string_set(iterable):
+ return ' '.join(set(iterable))
+
+SRC_URI_append = "${@string_set('file://%s' %cdoc for cdoc in (d.getVar("ECLIPSE_PLUGIN_CDOC", True) or "").split())}"
+
+FILES_${PN} = "${ECLIPSE_PLUGIN_DIR}"
--
1.9.1
More information about the meta-ti
mailing list