target "Compare Target Platform - Release" with source requirements

location "http://download.eclipse.org/releases/2018-12/" eclipse-2018-12 {
	org.eclipse.platform.feature.group
	org.eclipse.sdk.feature.group
	org.eclipse.rcp.feature.group
	org.eclipse.jdt.feature.group
	org.eclipse.equinox.p2.discovery.feature.feature.group
	org.eclipse.equinox.executable.feature.group
	org.eclipse.draw2d
	org.eclipse.gef
	org.eclipse.m2m.qvt.oml.sdk.feature.group
	org.eclipse.emf.sdk.feature.group
	org.eclipse.xsd.sdk.feature.group
	org.eclipse.emf.validation.sdk.feature.group
	org.eclipse.emf.transaction.sdk.feature.group
	org.eclipse.emf.workspace.feature.group
	org.eclipse.gmf.runtime.notation.sdk.feature.group
	org.eclipse.gmf.runtime.sdk.feature.group
	org.eclipse.uml2.sdk.feature.group
}

location "http://download.eclipse.org/egit/updates-5.1" egit {
	org.eclipse.egit.feature.group
	org.eclipse.jgit.feature.group
}

location "https://download.eclipse.org/modeling/emf/compare/updates/releases/3.3/R201812111422/" emfCompare {
	org.eclipse.emf.compare.source.feature.group [3.3.5,4.0.0)
	org.eclipse.emf.compare.diagram.gmf.source.feature.group [3.3.5,4.0.0)
	org.eclipse.emf.compare.uml2.source.feature.group [3.3.5,4.0.0)
	org.eclipse.emf.compare.egit.source.feature.group [3.3.5,4.0.0)
	org.eclipse.emf.compare.ide.ui.source.feature.group [3.3.5,4.0.0)
	org.eclipse.emf.compare.rcp.ui.source.feature.group [3.3.5,4.0.0)
}

//manualUpdate
location orbit "https://download.eclipse.org/tools/orbit/downloads/drops/R20181128170323/repository/" {
	org.apache.commons.io
	org.apache.commons.io.source
	com.google.inject
	com.google.guava [21.0.0,22.0.0)
	com.google.guava.source [21.0.0,22.0.0)
	/* Egit/Jgit */
	javaewah
	org.apache.commons.compress
	org.apache.commons.lang
	org.kohsuke.args4j
	org.mockito [1.9.0,2.0.0)
	org.hamcrest
	org.hamcrest.library
	org.hamcrest.integration
	org.hamcrest.text
	org.objenesis [1.0.0,2.0.0)
}

location papyrus "http://download.eclipse.org/modeling/mdt/papyrus/updates/releases/2018-12" {
	org.eclipse.papyrus.sdk.feature.feature.group
	org.eclipse.papyrus.infra.gmfdiag.feature.feature.group
	org.eclipse.papyrus.infra.services.feature.feature.group
	org.eclipse.papyrus.views.properties.toolsmiths
}
