Шаблон проекта Eclipse cdt - PullRequest
       9

Шаблон проекта Eclipse cdt

0 голосов
/ 17 января 2019

Я сделал плагин Eclipse, который был в порядке, используя Eclipse Kepler:

Require-Bundle: org.eclipse.cdt.managedbuilder.core;bundle-version="8. 0.2"
,org.eclipse.core.runtime;bundle-version="3.7.0"
,org.eclipse.cdt.managedbuilder.ui;bundle-version="8.0.2"
,org.eclipse.core.resources;bundle-version="3.7.101"
,org.eclipse.cdt;bundle-version="8.0.2"
,org.eclipse.cdt.core;bundle-version="5.3.2"

Его целью является создание пользовательского набора инструментов для компиляции файлов ARM C. С этим набором инструментов у меня есть шаблон, который копирует исходный файл для создания простого проекта ARM.

Теперь мне нужно использовать последнюю версию Eclipse (по крайней мере, Oxygen). Кажется, мой шаблон читается CDT, потому что я вижу его ярлык при открытии мастера нового проекта. Но когда я создаю проект, мой шаблон никогда не выполняется.

Это мой plugin.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!-- ?eclipse version="3.4"? -->
<plugin>   
    <extension point="org.eclipse.cdt.managedbuilder.core.buildDefinitions">
        <projectType
           buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe"
           id="com.company.product.buildDefinitions.projectType"
           isAbstract="false"
           name="product Project"
           projectEnvironmentSupplier="com.company.product.build.ExampleEnvironmentVariableSupplier">
        <configuration
              id="productManagedBuilder.configuration"
              name="BUILD">
           <toolChain
                 id="com.company.product.buildDefinitions.toolChain"
                 isAbstract="false"
                 name="product Toolchain"
                 targetTool="com.company.product.buildDefinitions.createflash">
              <builder
                    buildRunner="com.company.product.build.ExampleBuildRunner"
                    id="productManagedBuilder.builder"
                    isAbstract="false"
                    isVariableCaseSensitive="false"
                    name="product Builder"
                    superClass="org.eclipse.cdt.build.core.internal.builder"
                     >
                     <!-- attribut qui marche pour le builder en paralelle :
                     parallelBuildOn="true"
                    parallelizationNumber="4"-->
              </builder>
              <tool
                    command="gcc"
                    commandLinePattern="${TOOLCHAIN_BIN_PATH}/${TOOLCHAIN_PREFIX}${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}"
                    id="com.company.product.buildDefinitions.compiler"
                    isAbstract="false"
                    name="Compiler"
                    natureFilter="both"
                    outputFlag="-o">
                 <optionCategory
                       id="com.company.product.compiler.optionCategory"
                       name="Option">
                 </optionCategory>
                 <option
                       category="com.company.product.compiler.optionCategory"
                       defaultValue="-c -g -Wall -fno-common -O2 -mcpu=cortex-m3 -mthumb -mthumb-interwork"
                       id="com.company.product.compiler.option.other.otherflags"
                       name="Other flags"
                       valueType="string">
                 </option>
                 <option
                       browseType="directory"
                       category="com.company.product.compiler.optionCategory"
                       command="-I"
                       id="com.company.product.compiler.option.include.paths"
                       name="Include paths (-I)"
                       valueType="includePath">
                    <listOptionValue
                          builtIn="false"
                          value="../">
                    </listOptionValue>
                 </option>
                 <inputType
                       dependencyCalculator="org.eclipse.cdt.managedbuilder.makegen.gnu.DefaultGCCDependencyCalculator"
                       dependencyContentType="org.eclipse.cdt.core.cHeader"
                       dependencyExtensions="h"
                       id="com.company.product.buildDefinitions.compiler.inputType"
                       sourceContentType=" org.eclipse.cdt.core.cSource"
                       sources="c">
                 </inputType>
                 <outputType
                       buildVariable="OBJS"
                       id="com.company.product.buildDefinitions.compiler.outputType"
                       outputs="o">
                 </outputType>
                 <envVarBuildPath
                       pathType="buildpathInclude"
                       variableList="INCLUDE_PATH">
                 </envVarBuildPath>
              </tool>
              <tool
                    command="gcc"
                    commandLinePattern="${TOOLCHAIN_BIN_PATH}/${TOOLCHAIN_PREFIX}${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}"
                    id="com.company.product.buildDefinitions.linker"
                    isAbstract="false"
                    name="Linker"
                    natureFilter="cnature"
                    outputFlag="-o">
                 <optionCategory
                       id="com.company.product.linker.optionCategory"
                       name="Option">
                 </optionCategory>
                 <option
                       category="com.company.product.linker.optionCategory"
                       defaultValue="-Wall -nostartfiles -mcpu=cortex-m3 -mthumb -mthumb-interwork -T../Example.ld"
                       id="com.company.product.buildDefinitions.linker.otherflags"
                       name="Other flags"
                       valueType="string">
                 </option>
                 <option
                       browseType="none"
                       category="com.company.product.linker.optionCategory"
                       command="-l"
                       id="com.company.product.buildDefinitions.linker.libs"
                       name="Libraries (-l)"
                       valueType="libs">
                 </option>
                 <option
                       browseType="directory"
                       category="com.company.product.linker.optionCategory"
                       command="-L"
                       id="com.company.product.buildDefinitions.linker.paths"
                       name="Library search path (-L)"
                       valueType="libPaths">
                 </option>
                 <inputType
                       buildVariable="OBJS"
                       id="com.company.product.buildDefinitions.linker.inputType"
                       multipleOfType="true"
                       sourceContentType="org.eclipse.cdt.managedbuilder.core.compiledObjectFile"
                       sources="o">
                 </inputType>
                 <outputType
                       buildVariable="ELF"
                       id="com.company.product.buildDefinitions.linker.outputType"
                       outputNames="${BuildArtifactFileBaseName}.elf"
                       outputs="elf">
                 </outputType>
              </tool>
              <tool
                    command="objcopy"
                    commandLinePattern="${TOOLCHAIN_BIN_PATH}/${TOOLCHAIN_PREFIX}${COMMAND} ${BuildArtifactFileBaseName}.elf -O binary ${BuildArtifactFileBaseName}.bin "
                    id="com.company.product.buildDefinitions.createflash"
                    isAbstract="false"
                    name="Flash binary builder (bin)">
                 <inputType
                       buildVariable="ELF"
                       id="com.company.product.buildDefinitions.createflash.inputType"
                       sources="elf">
                 </inputType>
              </tool>
           </toolChain>
        </configuration>
        </projectType>
    </extension>

     <extension
           point="org.eclipse.cdt.core.templateProcessTypes">
        <processType
              name="CopyFolders"
              processRunner="com.company.product.build.CopyFolders">
           <simple
                 name="projectName">
           </simple>
        <simple
              name="folder">
        </simple>
        </processType>
     </extension>

     <extension
           point="org.eclipse.cdt.core.templates">
        <template
              id="com.company.product.build.CopyFolders"
              location="templates/ExampleBase/template.xml"
              projectType="com.company.product.buildDefinitions.projectType">
        </template>
     </extension>

     <extension
           point="org.eclipse.cdt.core.templateAssociations">
        <template
              id="com.company.product.build.CopyFolders">
           <toolChain
                 id="com.company.product.buildDefinitions.toolChain">
           </toolChain>
        </template>
     </extension>

</plugin>

Кажется, что моя точка расширения org.eclipse.cdt.core.templates с атрибутом projectType = "com.company.product.buildDefinitions.projectType" не работает с моей точкой расширения org.eclipse.cdt.managedbuilder.core. buildDefinitions, тег projectType, имеющий атрибут id = "com.company.product.buildDefinitions.projectType" при создании проекта.

Я пробовал много вещей после прочтения современной документации о шаблонах и чтения исходного кода cdt.autotools / cdt.build.crossgcc, но ничего не помогло.

Это ошибка CDT, я что-то упустил?

Спасибо за помощь.

...