1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-04 06:45:43 +02:00
cdt/releng/CDT.setup
Ed Merks 5481522e1f
Bug 580505 - Fix and improve CDT.setup (#34)
Don't install org.eclipse.pde.api.tools.ee.feature.feature.group because
it's no longer in the latest update site, and that causes problems like
this one as noticed by a user:

https://www.eclipse.org/forums/index.php?t=msg&th=1111320&goto=1854139&#msg_1854139

Move all the tasks up to the project level.

Include a * requirement on the CDT targlet so that all projects are
imported by the targlet task with no need for a separate import task.
Probably many of the explicitly listed requirements are no longer needed
because all requirements of all projects in the clone are resolved now
automatically.  Also ensure that all platforms are resolved so that all
of CDT fragments are imported.

Move the Git clone task before the modular targlet task so that the
clone is available during the first resolution.

Add an EclipseIni task so that the CDT.setup is redirected into the
local clone's version such that you can modify that setup and test it
locally via Help -> Perform Setup tasks (and so that Navigate -> Open
Setup -> CDT opens the editable workspace version).

https://bugs.eclipse.org/bugs/show_bug.cgi?id=580505
2022-08-11 12:07:53 -04:00

393 lines
17 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<setup:Project
xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:git="http://www.eclipse.org/oomph/setup/git/1.0"
xmlns:jdt="http://www.eclipse.org/oomph/setup/jdt/1.0"
xmlns:pde="http://www.eclipse.org/oomph/setup/pde/1.0"
xmlns:predicates="http://www.eclipse.org/oomph/predicates/1.0"
xmlns:setup="http://www.eclipse.org/oomph/setup/1.0"
xmlns:setup.p2="http://www.eclipse.org/oomph/setup/p2/1.0"
xmlns:setup.targlets="http://www.eclipse.org/oomph/setup/targlets/1.0"
xmlns:setup.workingsets="http://www.eclipse.org/oomph/setup/workingsets/1.0"
xsi:schemaLocation="http://www.eclipse.org/oomph/setup/git/1.0 http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/models/Git.ecore http://www.eclipse.org/oomph/setup/jdt/1.0 http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/models/JDT.ecore http://www.eclipse.org/oomph/setup/pde/1.0 http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/models/PDE.ecore http://www.eclipse.org/oomph/predicates/1.0 http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/models/Predicates.ecore http://www.eclipse.org/oomph/setup/targlets/1.0 http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/models/SetupTarglets.ecore http://www.eclipse.org/oomph/setup/workingsets/1.0 http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/models/SetupWorkingSets.ecore"
name="cdt"
label="CDT">
<setupTask
xsi:type="setup.p2:P2Task">
<requirement
name="org.eclipse.swtbot.ide.feature.group"/>
<requirement
name="org.eclipse.swtbot.generator.feature.feature.group"/>
<requirement
name="org.eclipse.platform.feature.group"/>
<requirement
name="org.eclipse.rcp.feature.group"/>
<requirement
name="org.eclipse.jdt.feature.group"/>
<requirement
name="org.eclipse.pde.feature.group"/>
<requirement
name="org.sonatype.tycho.m2e.feature.feature.group"/>
<repository
url="http://download.eclipse.org/technology/swtbot/releases/latest"/>
<repository
url="https://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-tycho/0.9.0/N/LATEST/"/>
<description>Install the tools needed in the IDE to work with the source code for ${scope.project.label}</description>
</setupTask>
<setupTask
xsi:type="setup:EclipseIniTask"
option="-Xmx"
value="1g"
vm="true">
<description>Set the heap space needed to work with the projects of ${scope.project.label}</description>
</setupTask>
<setupTask
xsi:type="setup:ResourceCreationTask"
excludedTriggers="STARTUP MANUAL"
targetURL="${workspace.location|uri}/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml"
encoding="UTF-8">
<description>Initialize JDT's package explorer to show working sets as its root objects</description>
<content>
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?>
&lt;section name=&quot;Workbench&quot;>
&lt;section name=&quot;org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart&quot;>
&lt;item value=&quot;true&quot; key=&quot;group_libraries&quot;/>
&lt;item value=&quot;false&quot; key=&quot;linkWithEditor&quot;/>
&lt;item value=&quot;2&quot; key=&quot;layout&quot;/>
&lt;item value=&quot;2&quot; key=&quot;rootMode&quot;/>
&lt;item value=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;#x0D;&amp;#x0A;&amp;lt;packageExplorer configured=&amp;quot;true&amp;quot; group_libraries=&amp;quot;1&amp;quot; layout=&amp;quot;2&amp;quot; linkWithEditor=&amp;quot;0&amp;quot; rootMode=&amp;quot;2&amp;quot; sortWorkingSets=&amp;quot;false&amp;quot; workingSetName=&amp;quot;&amp;quot;&amp;gt;&amp;#x0D;&amp;#x0A;&amp;lt;localWorkingSetManager&amp;gt;&amp;#x0D;&amp;#x0A;&amp;lt;workingSet editPageId=&amp;quot;org.eclipse.jdt.internal.ui.OthersWorkingSet&amp;quot; factoryID=&amp;quot;org.eclipse.ui.internal.WorkingSetFactory&amp;quot; id=&amp;quot;1382792884467_1&amp;quot; label=&amp;quot;Other Projects&amp;quot; name=&amp;quot;Other Projects&amp;quot;/&amp;gt;&amp;#x0D;&amp;#x0A;&amp;lt;/localWorkingSetManager&amp;gt;&amp;#x0D;&amp;#x0A;&amp;lt;activeWorkingSet workingSetName=&amp;quot;Other Projects&amp;quot;/&amp;gt;&amp;#x0D;&amp;#x0A;&amp;lt;allWorkingSets workingSetName=&amp;quot;Other Projects&amp;quot;/&amp;gt;&amp;#x0D;&amp;#x0A;&amp;lt;/packageExplorer&amp;gt;&quot; key=&quot;memento&quot;/>
&lt;/section>
&lt;/section>
</content>
</setupTask>
<setupTask
xsi:type="jdt:JRETask"
version="JavaSE-11"
location="${jre.location-11}">
<description>Define the JRE needed to compile and run the Java projects of ${scope.project.label}</description>
</setupTask>
<setupTask
xsi:type="setup:VariableTask"
name="eclipse.target.platform"
defaultValue="${eclipse.target.platform.latest}"
storageURI="scope://Workspace"/>
<setupTask
xsi:type="setup.targlets:TargletTask"
id="api.baseline.targlet"
targetName="Modular API Baseline Target"
activateTarget="false">
<targlet
name="${scope.project.label}"
activeRepositoryList="CDT Latest Released">
<requirement
name="org.eclipse.cdt.autotools.feature.group"/>
<requirement
name="org.eclipse.cdt.build.crossgcc.feature.group"/>
<requirement
name="org.eclipse.cdt.cmake.feature.group"/>
<requirement
name="org.eclipse.cdt.core.autotools.feature.group"/>
<requirement
name="org.eclipse.cdt.debug.dap.feature.group"/>
<requirement
name="org.eclipse.cdt.debug.dap.gdbjtag.feature.group"/>
<requirement
name="org.eclipse.cdt.debug.gdbjtag.feature.group"/>
<requirement
name="org.eclipse.cdt.debug.standalone.feature.group"/>
<requirement
name="org.eclipse.cdt.debug.ui.memory.feature.group"/>
<requirement
name="org.eclipse.cdt.docker.launcher.feature.group"/>
<requirement
name="org.eclipse.cdt.feature.group"/>
<requirement
name="org.eclipse.cdt.gdb.feature.group"/>
<requirement
name="org.eclipse.cdt.gnu.build.feature.group"/>
<requirement
name="org.eclipse.cdt.gnu.debug.feature.group"/>
<requirement
name="org.eclipse.cdt.gnu.dsf.feature.group"/>
<requirement
name="org.eclipse.cdt.gnu.multicorevisualizer.feature.group"/>
<requirement
name="org.eclipse.cdt.examples.dsf.feature.group"/>
<requirement
name="org.eclipse.cdt.launch.remote.feature.group"/>
<requirement
name="org.eclipse.cdt.launch.serial.feature.feature.group"/>
<requirement
name="org.eclipse.cdt.llvm.dsf.lldb.feature.group"/>
<requirement
name="org.eclipse.cdt.managedbuilder.llvm.feature.group"/>
<requirement
name="org.eclipse.cdt.meson.feature.group"/>
<requirement
name="org.eclipse.cdt.msw.feature.group"/>
<requirement
name="org.eclipse.cdt.native.feature.group"/>
<requirement
name="org.eclipse.cdt.platform.feature.group"/>
<requirement
name="org.eclipse.cdt.qt.feature.group"/>
<requirement
name="org.eclipse.cdt.sdk.feature.group"/>
<requirement
name="org.eclipse.cdt.testsrunner.feature.feature.group"/>
<requirement
name="org.eclipse.cdt.visualizer.feature.group"/>
<requirement
name="org.eclipse.launchbar.feature.group"/>
<requirement
name="org.eclipse.launchbar.remote.feature.group"/>
<requirement
name="org.eclipse.tm.terminal.connector.cdtserial.feature.feature.group"/>
<requirement
name="org.eclipse.tm.terminal.connector.local.feature.feature.group"/>
<requirement
name="org.eclipse.tm.terminal.connector.remote.feature.feature.group"/>
<requirement
name="org.eclipse.tm.terminal.connector.ssh.feature.feature.group"/>
<requirement
name="org.eclipse.tm.terminal.connector.telnet.feature.feature.group"/>
<requirement
name="org.eclipse.tm.terminal.control.feature.feature.group"/>
<requirement
name="org.eclipse.tm.terminal.feature.feature.group"/>
<requirement
name="org.eclipse.tm.terminal.view.feature.feature.group"/>
<repositoryList
name="CDT Latest Released">
<repository
url="https://download.eclipse.org/eclipse/updates/4.23/R-4.23-202203080310"/>
<repository
url="https://download.eclipse.org/egit/updates-6.1/"/>
<repository
url="https://download.eclipse.org/linuxtools/update-docker-5.6.0/"/>
<repository
url="https://download.eclipse.org/lsp4e/releases/0.20.2/"/>
<repository
url="https://download.eclipse.org/modeling/emf/emf/builds/release/2.28/"/>
<repository
url="https://download.eclipse.org/mylyn/docs/releases/3.0.42/"/>
<repository
url="https://download.eclipse.org/mylyn/drops/3.25.2/v20200831-1956"/>
<repository
url="https://download.eclipse.org/tm4e/releases/0.4.3/"/>
<repository
url="https://download.eclipse.org/tools/cdt/releases/10.6/cdt-10.6.0/">
<annotation>
<detail
key="description">
<value>
OMG! We have circular dependency that involves 'java.package; org.eclipse.cdt.utils.pty 0.0.0'
but it gets resolved here as we have CDT repo below.
</value>
</detail>
</annotation>
</repository>
<repository
url="https://download.eclipse.org/tools/orbit/downloads/drops/R20220302172233/repository/"/>
<repository
url="https://download.eclipse.org/tools/ptp/builds/remote/3.0/2021-09/"/>
</repositoryList>
</targlet>
</setupTask>
<setupTask
xsi:type="pde:APIBaselineFromTargetTask"
predecessor="api.baseline.targlet"
name="Modular API Baseline"
targetName="Modular API Baseline Target"
version="0.0.0">
<description>An API baseline based on the target platform named 'Modular API Baseline Target'</description>
</setupTask>
<setupTask
xsi:type="git:GitCloneTask"
id="github.clone.cdt"
remoteURI="eclipse-cdt/cdt"
checkoutBranch="main">
<annotation
source="http://www.eclipse.org/oomph/setup/InducedChoices">
<detail
key="inherit">
<value>github.remoteURIs</value>
</detail>
<detail
key="label">
<value>CDT Github Repository</value>
</detail>
<detail
key="target">
<value>remoteURI</value>
</detail>
</annotation>
<description>CDT</description>
</setupTask>
<setupTask
xsi:type="setup.targlets:TargletTask"
programArguments="-consolelog"
vmArguments="-Xms40m -Xmx512M -ea">
<targlet
name="CDT"
includeAllPlatforms="true">
<requirement
name="org.eclipse.license.feature.group"/>
<requirement
name="com.google.gson"/>
<requirement
name="com.sun.jna"
versionRange="5.8.0"/>
<requirement
name="com.sun.jna.platform"
versionRange="5.8.0"/>
<requirement
name="com.sun.xml.bind"
versionRange="2.3.3"/>
<requirement
name="jakarta.xml.bind"
versionRange="2.3.3"/>
<requirement
name="javax.activation"
versionRange="1.2.2"/>
<requirement
name="javax.xml.stream"/>
<requirement
name="net.sourceforge.lpg.lpgjavaruntime"/>
<requirement
name="org.antlr.runtime"/>
<requirement
name="org.apache.commons.compress"/>
<requirement
name="org.apache.log4j"/>
<requirement
name="org.assertj"/>
<requirement
name="org.eclipse.egit.feature.group"/>
<requirement
name="org.eclipse.equinox.executable.feature.group"/>
<requirement
name="org.eclipse.jdt.annotation"/>
<requirement
name="org.eclipse.launchbar.feature.group"/>
<requirement
name="org.eclipse.launchbar.remote.feature.group"/>
<requirement
name="org.eclipse.linuxtools.docker.feature.feature.group"/>
<requirement
name="org.eclipse.lsp4e"/>
<requirement
name="org.eclipse.lsp4e.debug"/>
<requirement
name="org.eclipse.remote.console.feature.group"/>
<requirement
name="org.eclipse.remote.feature.group"/>
<requirement
name="org.eclipse.remote.serial.feature.group"/>
<requirement
name="org.eclipse.sdk.feature.group"/>
<requirement
name="org.eclipse.swtbot.eclipse.feature.group"/>
<requirement
name="org.eclipse.swtbot.eclipse.test.junit.feature.group"/>
<requirement
name="org.eclipse.swtbot.feature.group"/>
<requirement
name="org.eclipse.test.feature.group"/>
<requirement
name="org.eclipse.tm.terminal.connector.cdtserial.feature.feature.group"/>
<requirement
name="org.eclipse.tm.terminal.control"/>
<requirement
name="org.eclipse.tm.terminal.feature.feature.group"/>
<requirement
name="org.eclipse.tm4e.feature.feature.group"/>
<requirement
name="org.freemarker"/>
<requirement
name="org.hamcrest"/>
<requirement
name="org.hamcrest.core"/>
<requirement
name="org.junit"/>
<requirement
name="org.junit.jupiter.api"/>
<requirement
name="org.mockito"/>
<requirement
name="org.slf4j.impl.log4j12"/>
<requirement
name="org.yaml.snakeyaml"/>
<requirement
name="org.eclipse.unittest.ui"/>
<requirement
name="*"/>
<sourceLocator
rootFolder="${github.clone.cdt.location}"
locateNestedProjects="true"/>
<repositoryList>
<repository
url="https://download.eclipse.org/cbi/updates/license/"/>
<repository
url="https://download.eclipse.org/eclipse/updates/4.22/R-4.22-202111241800/"/>
<repository
url="https://download.eclipse.org/egit/updates/"/>
<repository
url="https://download.eclipse.org/linuxtools/updates-docker-nightly/"/>
<repository
url="https://download.eclipse.org/lsp4e/releases/0.20.2/"/>
<repository
url="https://download.eclipse.org/modeling/emf/emf/builds/release/latest/"/>
<repository
url="https://download.eclipse.org/mylyn/docs/releases/3.0.42/"/>
<repository
url="https://download.eclipse.org/mylyn/drops/3.25.2/v20200831-1956"/>
<repository
url="https://download.eclipse.org/technology/swtbot/releases/3.1.0/"/>
<repository
url="https://download.eclipse.org/tm4e/releases/0.4.3/"/>
<repository
url="https://download.eclipse.org/tools/cdt/releases/10.6/cdt-10.6.0/">
<annotation>
<detail
key="description">
<value>We explicitly have CDT in target platform so that developers can develop org.eclipse.cdt.core/ui without requiring all the projects from CDT in their workspace.</value>
</detail>
</annotation>
</repository>
<repository
url="https://download.eclipse.org/tools/orbit/downloads/drops/R20220302172233/repository/"/>
<repository
url="https://download.eclipse.org/tools/ptp/builds/remote/3.0/2021-09"/>
<repository
url="https://download.eclipse.org/wildwebdeveloper/snapshots/"/>
</repositoryList>
</targlet>
</setupTask>
<setupTask
xsi:type="setup.workingsets:WorkingSetTask">
<workingSet
name="CDT">
<predicate
xsi:type="predicates:RepositoryPredicate"
project="org.eclipse.cdt-feature"/>
</workingSet>
<description>The dynamic working sets for ${scope.project.label}</description>
</setupTask>
<stream name="main">
<setupTask
xsi:type="setup:EclipseIniTask"
option="-Doomph.redirection.cdt"
value="=https://raw.githubusercontent.com/eclipse-cdt/cdt/main/releng/CDT.setup->${github.clone.cdt.location|uri}/releng/CDT.setup"
vm="true">
<description>Set an Oomph redirection system property to redirect the logical location of this setup to its physical location in the Git clone.</description>
</setupTask>
</stream>
<logicalProjectContainer
xsi:type="setup:ProjectCatalog"
href="index:/org.eclipse.setup#//@projectCatalogs[name='org.eclipse']"/>
<description>C/C++ Development Tools</description>
</setup:Project>