Программное отключение конструктора CDT в программно созданном проекте C

Я создаю проект C программно с помощью CDT:

    IWorkspace workspace = ResourcesPlugin.getWorkspace();
    IWorkspaceRoot root = workspace.getRoot();

    String projectName = projectNames[indices[i]];

    IProject newProjectHandle = root.getProject(projectName.replace("Examples_", ""));

    IProjectDescription description = workspace.newProjectDescription(newProjectHandle.getName());
    IProject project = CCorePlugin.getDefault().createCDTProject(description, newProjectHandle, new NullProgressMonitor());

    ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
    ICProjectDescription des = mngr.createProjectDescription(project, false);
    ManagedProject mProj = new ManagedProject(des);


    Configuration cfg = new Configuration(mProj, null, projectName + ".id", projectName);
    cfg.setManagedBuildOn(false);
    IBuilder bld = cfg.getEditableBuilder();

    bld.setManagedBuildOn(false);
    bld.setAutoBuildEnable(false);


    CConfigurationData data = cfg.getConfigurationData();
    des.createConfiguration(ManagedBuildManager.CFG_DATA_PROVIDER_ID, data);


    mngr.setProjectDescription(project, des);

Это работает точно так же, как создание проекта makefile из Мастера C.

Теперь я хочу программно удалить CDT builder из свойств проекта.

Введите описание изображения здесь

Есть ли простой способ сделать это, добавив строку или две в мой код создания проекта?

1 ответ

  1. Ok удалось изменить код так, что он создает проекты C без строителей:

                IWorkspace workspace = ResourcesPlugin.getWorkspace();
                IWorkspaceRoot root = workspace.getRoot();
    
                String projectName = projectNames[indices[i]];
    
                IProject newProjectHandle = root.getProject(projectName.replace("Examples_", ""));
    
                newProjectHandle.create(new NullProgressMonitor());
                IProjectDescription description = workspace
                        .newProjectDescription(newProjectHandle.getName());
    
                newProjectHandle = CCorePlugin.getDefault().createCProject(description,
                        newProjectHandle, new NullProgressMonitor(),
                        ManagedBuilderCorePlugin.MANAGED_MAKE_PROJECT_ID);
                IndexerPreferences.set(newProjectHandle,
                        IndexerPreferences.KEY_INCLUDE_HEURISTICS, "true");