<?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"
    xmlns:workingsets="http://www.eclipse.org/oomph/workingsets/1.0"
    xsi:schemaLocation="http://www.eclipse.org/oomph/setup/git/1.0 https://raw.githubusercontent.com/eclipse-oomph/oomph/master/setups/models/Git.ecore http://www.eclipse.org/oomph/setup/jdt/1.0 https://raw.githubusercontent.com/eclipse-oomph/oomph/master/setups/models/JDT.ecore http://www.eclipse.org/oomph/setup/pde/1.0 https://raw.githubusercontent.com/eclipse-oomph/oomph/master/setups/models/PDE.ecore http://www.eclipse.org/oomph/predicates/1.0 https://raw.githubusercontent.com/eclipse-oomph/oomph/master/setups/models/Predicates.ecore http://www.eclipse.org/oomph/setup/targlets/1.0 https://raw.githubusercontent.com/eclipse-oomph/oomph/master/setups/models/SetupTarglets.ecore http://www.eclipse.org/oomph/setup/workingsets/1.0 https://raw.githubusercontent.com/eclipse-oomph/oomph/master/setups/models/SetupWorkingSets.ecore http://www.eclipse.org/oomph/workingsets/1.0 https://raw.githubusercontent.com/eclipse-oomph/oomph/master/setups/models/WorkingSets.ecore"
    name="cdt"
    label="CDT">
  <annotation
      source="http://www.eclipse.org/oomph/setup/ConfigurationReference">
    <reference
        href="CDTConfiguration.setup#/"/>
  </annotation>
  <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.eclipse.cdt.feature.group"/>
    <repository
        url="https://download.eclipse.org/technology/swtbot/releases/latest"/>
    <repository
        url="https://download.eclipse.org/tools/cdt/releases/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-21"
      location="${jre.location-21}">
    <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"
      value="${eclipse.target.platform.latest}"
      defaultValue=""
      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"
        includeSources="false"
        includeAllPlatforms="true"
        includeAllRequirements="false">
      <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.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.examples.dsf.feature.group"/>
      <requirement
          name="org.eclipse.cdt.gnu.multicorevisualizer.feature.group"/>
      <requirement
          name="org.eclipse.cdt.jsoncdb.arm"/>
      <requirement
          name="org.eclipse.cdt.jsoncdb.hpenonstop"/>
      <requirement
          name="org.eclipse.cdt.jsoncdb.intel"/>
      <requirement
          name="org.eclipse.cdt.jsoncdb.microsoft"/>
      <requirement
          name="org.eclipse.cdt.jsoncdb.nvidia"/>
      <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.sdk.feature.group"/>
      <requirement
          name="org.eclipse.cdt.testsrunner.feature.feature.group"/>
      <requirement
          name="org.eclipse.cdt.unittest.feature.feature.group"/>
      <requirement
          name="org.eclipse.cdt.util"/>
      <requirement
          name="org.eclipse.cdt.visualizer.feature.group"/>
      <requirement
          name="org.eclipse.launchbar.remote.feature.group"/>
      <requirement
          name="org.eclipse.remote.feature.group"/>
      <requirement
          name="org.eclipse.remote.console.feature.group"/>
      <requirement
          name="org.eclipse.remote.proxy.feature.group"/>
      <requirement
          name="org.eclipse.remote.serial.feature.group"/>
      <requirement
          name="org.eclipse.remote.telnet.feature.group"/>
      <requirement
          name="org.eclipse.tm.terminal.connector.cdtserial.feature.feature.group"/>
      <requirement
          name="org.eclipse.tm.terminal.connector.remote.feature.feature.group"/>
      <requirement
          name="org.eclipse.cdt.lsp.feature.feature.group"/>
      <repositoryList
          name="CDT Latest Released">
        <repository
            url="https://download.eclipse.org/tools/cdt/releases/12.4/cdt-12.4.0/"/>
        <repository
            url="https://download.eclipse.org/tools/cdt/releases/cdt-lsp-3.5/cdt-lsp-3.5.0/"/>
      </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>
    <configSections
        name="branch">
      <properties
          key="autoSetupRebase"
          value="always"/>
    </configSections>
    <description>CDT</description>
  </setupTask>
  <setupTask
      xsi:type="git:GitCloneTask"
      id="github.clone.cdt-lsp"
      remoteURI="eclipse-cdt/cdt-lsp"
      checkoutBranch="main">
    <annotation
        source="http://www.eclipse.org/oomph/setup/InducedChoices">
      <detail
          key="inherit">
        <value>github.remoteURIs</value>
      </detail>
      <detail
          key="label">
        <value>CDT LSP GitHub Repository</value>
      </detail>
      <detail
          key="target">
        <value>remoteURI</value>
      </detail>
    </annotation>
    <configSections
        name="branch">
      <properties
          key="autoSetupRebase"
          value="always"/>
    </configSections>
    <description>CDT LSP</description>
  </setupTask>
  <setupTask
      xsi:type="setup.targlets:TargletTask"
      programArguments="-consolelog"
      vmArguments="-Xms40m -Xmx512M -ea">
    <targlet
        name="CDT"
        includeAllPlatforms="true"
        includeBinaryEquivalents="false">
      <requirement
          name="org.eclipse.license.feature.group"/>
      <requirement
          name="org.eclipse.equinox.executable.feature.group"/>
      <requirement
          name="org.eclipse.linuxtools.docker.feature.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.tm4e.feature.feature.group"/>
      <requirement
          name="org.eclipse.tm4e.language_pack.feature.feature.group"/>
      <requirement
          name="*"/>
      <sourceLocator
          rootFolder="${github.clone.cdt.location}"
          locateNestedProjects="true"/>
      <sourceLocator
          rootFolder="${github.clone.cdt-lsp.location}"
          locateNestedProjects="true"/>
      <repositoryList>
        <repository
            url="https://download.eclipse.org/cbi/updates/license"/>
        <repository
            url="https://download.eclipse.org/linuxtools/updates-docker-nightly"/>
        <repository
            url="https://download.eclipse.org/lsp4e/snapshots"/>
        <repository
            url="https://download.eclipse.org/modeling/emf/emf/builds/nightly/latest"/>
        <repository
            url="https://download.eclipse.org/tm4e/snapshots"/>
        <repository
            url="https://download.eclipse.org/tools/cdt/builds/cdt/main/"/>
        <repository
            url="https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/release"/>
        <repository
            url="https://download.eclipse.org/technology/swtbot/releases/latest"/>
        <repository
            url="https://download.eclipse.org/wildwebdeveloper/releases/latest"/>
        <repository
            url="https://download.eclipse.org/mylyn/updates/nightly/latest"/>
      </repositoryList>
    </targlet>
  </setupTask>
  <setupTask
      xsi:type="setup.workingsets:WorkingSetTask"
      id="cdt.workingsets">
    <workingSet
        name="CDT">
      <predicate
          xsi:type="predicates:AndPredicate">
        <operand
            xsi:type="predicates:RepositoryPredicate"
            project="org.eclipse.cdt"/>
        <operand
            xsi:type="workingsets:ExclusionPredicate"
            excludedWorkingSet="//'cdt.workingsets'/@workingSets[name='CDT%20Json%20CDB'] //'cdt.workingsets'/@workingSets[name='CDT%20JTag'] //'cdt.workingsets'/@workingSets[name='CDT%20Launch'] //'cdt.workingsets'/@workingSets[name='CDT%20Launchbar'] //'cdt.workingsets'/@workingSets[name='CDT%20Releng'] //'cdt.workingsets'/@workingSets[name='CDT%20Remote'] //'cdt.workingsets'/@workingSets[name='CDT%20Build'] //'cdt.workingsets'/@workingSets[name='CDT%20CMake'] //'cdt.workingsets'/@workingSets[name='CDT%20Codan'] //'cdt.workingsets'/@workingSets[name='CDT%20Core'] //'cdt.workingsets'/@workingSets[name='CDT%20Cross'] //'cdt.workingsets'/@workingSets[name='CDT%20Debug'] //'cdt.workingsets'/@workingSets[name='CDT%20DSF'] //'cdt.workingsets'/@workingSets[name='CDT%20DSF%20GDB'] //'cdt.workingsets'/@workingSets[name='CDT%20Doc'] //'cdt.workingsets'/@workingSets[name='CDT%20LLVM'] //'cdt.workingsets'/@workingSets[name='CDT%20Memory'] //'cdt.workingsets'/@workingSets[name='CDT%20Serial'] //'cdt.workingsets'/@workingSets[name='CDT%20Tests%20Runner'] //'cdt.workingsets'/@workingSets[name='CDT%20Tools%20Templates'] //'cdt.workingsets'/@workingSets[name='CDT%20Unit%20Test'] //'cdt.workingsets'/@workingSets[name='CDT%20Util'] //'cdt.workingsets'/@workingSets[name='CDT%20Visualizer'] //'cdt.workingsets'/@workingSets[name='CDT%20Windows']"/>
      </predicate>
    </workingSet>
    <workingSet
        name="CDT Build">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt"
          relativePathPattern="build/.*"/>
    </workingSet>
    <workingSet
        name="CDT CMake">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt"
          relativePathPattern="cmake/.*"/>
    </workingSet>
    <workingSet
        name="CDT Codan">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt"
          relativePathPattern="codan/.*"/>
    </workingSet>
    <workingSet
        name="CDT Core">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt"
          relativePathPattern="core/.*"/>
    </workingSet>
    <workingSet
        name="CDT Cross">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt"
          relativePathPattern="cross/.*"/>
    </workingSet>
    <workingSet
        name="CDT Debug">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt"
          relativePathPattern="debug/.*"/>
    </workingSet>
    <workingSet
        name="CDT Doc">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt"
          relativePathPattern="doc/.*"/>
    </workingSet>
    <workingSet
        name="CDT DSF">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt"
          relativePathPattern="dsf/.*"/>
    </workingSet>
    <workingSet
        name="CDT DSF GDB">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt"
          relativePathPattern="dsf-gdb/.*"/>
    </workingSet>
    <workingSet
        name="CDT Json CDB">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt"
          relativePathPattern="jsoncdb/.*"/>
    </workingSet>
    <workingSet
        name="CDT JTag">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt"
          relativePathPattern="jtag/.*"/>
    </workingSet>
    <workingSet
        name="CDT Launch">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt"
          relativePathPattern="launch/.*"/>
    </workingSet>
    <workingSet
        name="CDT Launchbar">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt"
          relativePathPattern="launchbar/.*"/>
    </workingSet>
    <workingSet
        name="CDT LLVM">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt"
          relativePathPattern="llvm/.*"/>
    </workingSet>
    <workingSet
        name="CDT LSP">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt.lsp"/>
    </workingSet>
    <workingSet
        name="CDT Memory">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt"
          relativePathPattern="memory/.*"/>
    </workingSet>
    <workingSet
        name="CDT Serial">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt"
          relativePathPattern="serial/.*"/>
    </workingSet>
    <workingSet
        name="CDT Releng">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt"
          relativePathPattern="releng/.*"/>
    </workingSet>
    <workingSet
        name="CDT Remote">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt"
          relativePathPattern="remote/.*"/>
    </workingSet>
    <workingSet
        name="CDT Tests Runner">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt"
          relativePathPattern="testsrunner/.*"/>
    </workingSet>
    <workingSet
        name="CDT Tools Templates">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt"
          relativePathPattern="tools\.templates/.*"/>
    </workingSet>
    <workingSet
        name="CDT Unit Test">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt"
          relativePathPattern="unittest/.*"/>
    </workingSet>
    <workingSet
        name="CDT Util">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt"
          relativePathPattern="util/.*"/>
    </workingSet>
    <workingSet
        name="CDT Visualizer">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt"
          relativePathPattern="visualizer/.*"/>
    </workingSet>
    <workingSet
        name="CDT Windows">
      <predicate
          xsi:type="predicates:RepositoryPredicate"
          project="org.eclipse.cdt"
          relativePathPattern="windows/.*"/>
    </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>
