protected static void doProjectUpdate(IProgressMonitor monitor, IProject[] project) throws CoreException { monitor.beginTask( MakeUIPlugin.getResourceString("UpdateMakeProjectAction.monitor.update"), project.length * 4); // $NON-NLS-1$ try { for (int i = 0; i < project.length; i++) { // remove old builder project[i].refreshLocal(IResource.DEPTH_ONE, new SubProgressMonitor(monitor, 1)); MakeProjectNature.removeFromBuildSpec( project[i], MakeCorePlugin.OLD_BUILDER_ID, new SubProgressMonitor(monitor, 1)); // convert .cdtproject CCorePlugin.getDefault().mapCProjectOwner(project[i], MakeCorePlugin.MAKE_PROJECT_ID, true); // add new nature MakeProjectNature.addNature(project[i], new SubProgressMonitor(monitor, 1)); // move existing build properties to new IMakeBuilderInfo newInfo = MakeCorePlugin.createBuildInfo(project[i], MakeBuilder.BUILDER_ID); final int LOCATION = 0, FULL_ARGS = 1, INC_ARGS = 2, STOP_ERORR = 3, USE_DEFAULT = 4; QualifiedName[] qName = new QualifiedName[USE_DEFAULT + 1]; qName[LOCATION] = new QualifiedName(CCorePlugin.PLUGIN_ID, "buildLocation"); // $NON-NLS-1$ qName[FULL_ARGS] = new QualifiedName(CCorePlugin.PLUGIN_ID, "buildFullArguments"); // $NON-NLS-1$ qName[INC_ARGS] = new QualifiedName(CCorePlugin.PLUGIN_ID, "buildIncrementalArguments"); // $NON-NLS-1$ qName[STOP_ERORR] = new QualifiedName(CCorePlugin.PLUGIN_ID, "stopOnError"); // $NON-NLS-1$ qName[USE_DEFAULT] = new QualifiedName(CCorePlugin.PLUGIN_ID, "useDefaultBuildCmd"); // $NON-NLS-1$ String property = project[i].getPersistentProperty(qName[LOCATION]); if (property != null) { newInfo.setBuildAttribute(IMakeCommonBuildInfo.BUILD_COMMAND, property); } property = project[i].getPersistentProperty(qName[FULL_ARGS]); if (property != null) { newInfo.setBuildAttribute(IMakeCommonBuildInfo.BUILD_ARGUMENTS, property); } property = project[i].getPersistentProperty(qName[STOP_ERORR]); if (property != null) { newInfo.setStopOnError(Boolean.valueOf(property).booleanValue()); } property = project[i].getPersistentProperty(qName[USE_DEFAULT]); if (property != null) { newInfo.setUseDefaultBuildCmd(Boolean.valueOf(property).booleanValue()); } for (int j = 0; j < qName.length; j++) { project[i].setPersistentProperty(qName[j], null); } IProgressMonitor subMon = new SubProgressMonitor(monitor, 1, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK); project[i].accept(new TargetConvertVisitor(subMon), 0); monitor.worked(1); } } finally { monitor.done(); } }
protected void createSettingControls(Composite parent) { Group group = ControlFactory.createGroup(parent, MakeUIPlugin.getResourceString(MAKE_SETTING_GROUP), 1); stopOnErrorButton = new Button(group, SWT.CHECK); stopOnErrorButton.setText(MakeUIPlugin.getResourceString(MAKE_SETTING_STOP_ERROR)); if (fBuildInfo.isStopOnError()) { stopOnErrorButton.setSelection(true); } stopOnErrorButton.setEnabled(fBuildInfo.isDefaultBuildCmd()); }
/** * @param project - project where to get build command from * @return build command from project settings. */ public static String getProjectBuildCommand(IProject project) { IMakeTargetManager targetManager = MakeCorePlugin.getDefault().getTargetManager(); String[] targetBuilders = targetManager.getTargetBuilders(project); if (targetBuilders == null || targetBuilders.length == 0) { return DEFAULT_BUILD_COMMAND; } String builderId = targetManager.getBuilderID(targetBuilders[0]); String buildCommand = DEFAULT_BUILD_COMMAND; try { IMakeBuilderInfo buildInfo = MakeCorePlugin.createBuildInfo(project, builderId); buildCommand = buildInfo.getBuildCommand().toString().trim(); } catch (CoreException e) { // keep default value } return buildCommand; }
@Override public void performDefaults() { // Missing builder info if (fBuildInfo == null) { return; } IMakeBuilderInfo info; if (getContainer().getProject() != null) { info = MakeCorePlugin.createBuildInfo(fPrefs, fBuilderID, false); } else { info = MakeCorePlugin.createBuildInfo(fPrefs, fBuilderID, true); } if (info.isStopOnError()) stopOnErrorButton.setSelection(true); else stopOnErrorButton.setSelection(false); if (info.getBuildCommand() != null) { StringBuffer cmd = new StringBuffer(info.getBuildCommand().toOSString()); if (!info.isDefaultBuildCmd()) { String args = info.getBuildArguments(); if (args != null && !args.equals("")) { // $NON-NLS-1$ cmd.append(" "); // $NON-NLS-1$ cmd.append(args); } } buildCommand.setText(cmd.toString()); } if (info.isDefaultBuildCmd()) { buildCommand.setEnabled(false); argumentVariablesButton.setEnabled(false); stopOnErrorButton.setEnabled(true); } else { buildCommand.setEnabled(true); argumentVariablesButton.setEnabled(true); stopOnErrorButton.setEnabled(false); } defButton.setSelection(info.isDefaultBuildCmd()); autoButton.setSelection(info.isAutoBuildEnable()); autoVariableButton.setEnabled(info.isAutoBuildEnable()); targetAuto.setEnabled(info.isAutoBuildEnable()); targetAuto.setText(info.getAutoBuildTarget()); incrButton.setSelection(info.isIncrementalBuildEnabled()); incrVariableButton.setEnabled(info.isIncrementalBuildEnabled()); targetIncr.setText(info.getIncrementalBuildTarget()); targetIncr.setEnabled(info.isIncrementalBuildEnabled()); cleanButton.setSelection(info.isCleanBuildEnabled()); cleanVariableButton.setEnabled(info.isCleanBuildEnabled()); targetClean.setText(info.getCleanBuildTarget()); targetClean.setEnabled(info.isCleanBuildEnabled()); }
protected void createBuilderWorkingDirControls(Composite parent) { Group group = ControlFactory.createGroup(parent, MakeUIPlugin.getResourceString(MAKE_BUILD_DIR_GROUP), 1); GridLayout layout = new GridLayout(); layout.numColumns = 2; layout.makeColumnsEqualWidth = false; group.setLayout(layout); group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); Label label = ControlFactory.createLabel(group, MakeUIPlugin.getResourceString(MAKE_BUILD_DIR_LABEL)); ((GridData) (label.getLayoutData())).horizontalAlignment = GridData.BEGINNING; ((GridData) (label.getLayoutData())).grabExcessHorizontalSpace = false; buildLocation = ControlFactory.createTextField(group, SWT.SINGLE | SWT.BORDER); ((GridData) (buildLocation.getLayoutData())).horizontalAlignment = GridData.FILL; ((GridData) (buildLocation.getLayoutData())).grabExcessHorizontalSpace = true; buildLocation.addListener( SWT.Modify, new Listener() { public void handleEvent(Event e) { getContainer().updateContainer(); } }); Composite buttons = ControlFactory.createComposite(group, 4); layout = new GridLayout(4, false); layout.marginHeight = layout.marginWidth = 0; buttons.setLayout(layout); GridData gd = new GridData(GridData.FILL_HORIZONTAL); gd.horizontalSpan = 2; buttons.setLayoutData(gd); Label emptyLabel = ControlFactory.createLabel(buttons, ""); // $NON-NLS-1$ emptyLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); Button browseWorkspace = new Button(buttons, SWT.NONE); browseWorkspace.setText(MakeUIPlugin.getResourceString(MAKE_BUILD_DIR_BROWSE_WORKSPACE)); browseWorkspace.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { ContainerSelectionDialog dialog = new ContainerSelectionDialog( getShell(), getContainer().getProject(), true, MakeUIPlugin.getResourceString( "SettingsBlock.title.selectLocationToBuildFrom")); //$NON-NLS-1$ if (dialog.open() == Window.OK) { Object[] selection = dialog.getResult(); if (selection.length > 0) { buildLocation.setText(((IPath) selection[0]).toOSString()); } } } }); Button browseFilesystem = new Button(buttons, SWT.NONE); browseFilesystem.setText(MakeUIPlugin.getResourceString(MAKE_BUILD_DIR_BROWSE_FILESYSTEM)); browseFilesystem.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { DirectoryDialog dialog = new DirectoryDialog(getShell(), SWT.NONE); dialog.setText( MakeUIPlugin.getResourceString( "SettingsBlock.title.selectLocationToBuildFrom")); //$NON-NLS-1$ dialog.setFilterPath(getContainer().getProject().toString()); String directory = dialog.open(); if (directory != null) { if (directory.trim().length() > 0) { buildLocation.setText(directory); } } } }); buildLocation.setText( fBuildInfo.getBuildAttribute(IMakeCommonBuildInfo.BUILD_LOCATION, "")); // $NON-NLS-1$ locationVariablesButton = addVariablesButton(buttons, buildLocation); }
protected void createWorkBenchBuildControls(Composite parent) { SelectionAdapter selectionAdapter = new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { targetAuto.setEnabled(autoButton.getSelection()); autoVariableButton.setEnabled(autoButton.getSelection()); targetIncr.setEnabled(incrButton.getSelection()); incrVariableButton.setEnabled(incrButton.getSelection()); targetClean.setEnabled(cleanButton.getSelection()); cleanVariableButton.setEnabled(cleanButton.getSelection()); getContainer().updateContainer(); } }; Group group = ControlFactory.createGroup( parent, MakeUIPlugin.getResourceString(MAKE_WORKBENCH_BUILD_GROUP), 1); GridLayout layout = new GridLayout(); layout.numColumns = 3; layout.makeColumnsEqualWidth = false; group.setLayout(layout); group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); Label label = new Label(group, SWT.NONE); label.setText(MakeUIPlugin.getResourceString(MAKE_WORKBENCH_BUILD_TYPE)); label = new Label(group, SWT.NONE); label.setText(MakeUIPlugin.getResourceString(MAKE_WORKBENCH_BUILD_TARGET)); GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL); gd.horizontalSpan = 2; label.setLayoutData(gd); autoButton = ControlFactory.createCheckBox( group, MakeUIPlugin.getResourceString(MAKE_WORKBENCH_BUILD_AUTO)); autoButton.addSelectionListener(selectionAdapter); autoButton.setSelection(fBuildInfo.isAutoBuildEnable()); targetAuto = ControlFactory.createTextField(group, SWT.SINGLE | SWT.BORDER); targetAuto.setText( fBuildInfo.getBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_AUTO, "")); // $NON-NLS-1$ ((GridData) (targetAuto.getLayoutData())).horizontalAlignment = GridData.FILL; ((GridData) (targetAuto.getLayoutData())).grabExcessHorizontalSpace = true; addControlAccessibleListener( targetAuto, MakeUIPlugin.getResourceString(MAKE_BUILD_AUTO_TARGET)); autoVariableButton = addVariablesButton(group, targetAuto); String noteTitle = MakeUIPlugin.getResourceString("SettingsBlock.makeWorkbench.note"); // $NON-NLS-1$ String noteMessage = MakeUIPlugin.getResourceString( "SettingsBlock.makeWorkbench.autobuildMessage"); //$NON-NLS-1$ Composite noteControl = createNoteComposite(JFaceResources.getDialogFont(), group, noteTitle, noteMessage); gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL); gd.horizontalSpan = 3; noteControl.setLayoutData(gd); incrButton = ControlFactory.createCheckBox( group, MakeUIPlugin.getResourceString(MAKE_WORKBENCH_BUILD_INCR)); incrButton.addSelectionListener(selectionAdapter); incrButton.setSelection(fBuildInfo.isIncrementalBuildEnabled()); targetIncr = ControlFactory.createTextField(group, SWT.SINGLE | SWT.BORDER); targetIncr.setText( fBuildInfo.getBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_INCREMENTAL, "")); // $NON-NLS-1$ ((GridData) (targetIncr.getLayoutData())).horizontalAlignment = GridData.FILL; ((GridData) (targetIncr.getLayoutData())).grabExcessHorizontalSpace = true; addControlAccessibleListener( targetIncr, MakeUIPlugin.getResourceString(MAKE_BUILD_INCREMENTAL_TARGET)); incrVariableButton = addVariablesButton(group, targetIncr); cleanButton = ControlFactory.createCheckBox( group, MakeUIPlugin.getResourceString(MAKE_WORKBENCH_BUILD_CLEAN)); cleanButton.addSelectionListener(selectionAdapter); cleanButton.setSelection(fBuildInfo.isCleanBuildEnabled()); targetClean = ControlFactory.createTextField(group, SWT.SINGLE | SWT.BORDER); targetClean.setText( fBuildInfo.getBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_CLEAN, "")); // $NON-NLS-1$ ((GridData) (targetClean.getLayoutData())).horizontalAlignment = GridData.FILL; ((GridData) (targetClean.getLayoutData())).grabExcessHorizontalSpace = true; addControlAccessibleListener( targetClean, MakeUIPlugin.getResourceString(MAKE_BUILD_CLEAN_TARGET)); cleanVariableButton = addVariablesButton(group, targetClean); selectionAdapter.widgetSelected(null); }
protected void createBuildCmdControls(Composite parent) { Group group = ControlFactory.createGroup(parent, MakeUIPlugin.getResourceString(MAKE_CMD_GROUP), 1); GridLayout layout = new GridLayout(); layout.numColumns = 3; layout.makeColumnsEqualWidth = false; group.setLayout(layout); group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); defButton = ControlFactory.createCheckBox(group, MakeUIPlugin.getResourceString(MAKE_CMD_USE_DEFAULT)); defButton.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (defButton.getSelection() == true) { buildCommand.setEnabled(false); argumentVariablesButton.setEnabled(false); stopOnErrorButton.setEnabled(true); getContainer().updateContainer(); } else { buildCommand.setEnabled(true); argumentVariablesButton.setEnabled(true); stopOnErrorButton.setEnabled(false); getContainer().updateContainer(); } } }); GridData gd = new GridData(GridData.FILL_HORIZONTAL); gd.horizontalSpan = 3; defButton.setLayoutData(gd); Label label = ControlFactory.createLabel(group, MakeUIPlugin.getResourceString(MAKE_CMD_LABEL)); ((GridData) (label.getLayoutData())).horizontalAlignment = GridData.BEGINNING; ((GridData) (label.getLayoutData())).grabExcessHorizontalSpace = false; buildCommand = ControlFactory.createTextField(group, SWT.SINGLE | SWT.BORDER); ((GridData) (buildCommand.getLayoutData())).horizontalAlignment = GridData.FILL; ((GridData) (buildCommand.getLayoutData())).grabExcessHorizontalSpace = true; buildCommand.addListener( SWT.Modify, new Listener() { public void handleEvent(Event e) { getContainer().updateContainer(); } }); if (fBuildInfo.getBuildAttribute(IMakeCommonBuildInfo.BUILD_COMMAND, null) != null) { StringBuffer cmd = new StringBuffer( fBuildInfo.getBuildAttribute(IMakeCommonBuildInfo.BUILD_COMMAND, "")); // $NON-NLS-1$ if (!fBuildInfo.isDefaultBuildCmd()) { String args = fBuildInfo.getBuildAttribute(IMakeCommonBuildInfo.BUILD_ARGUMENTS, ""); // $NON-NLS-1$ if (args != null && !args.equals("")) { // $NON-NLS-1$ cmd.append(" "); // $NON-NLS-1$ cmd.append(args); } } buildCommand.setText(cmd.toString()); } argumentVariablesButton = addVariablesButton(group, buildCommand); if (fBuildInfo.isDefaultBuildCmd()) { buildCommand.setEnabled(false); argumentVariablesButton.setEnabled(false); } defButton.setSelection(fBuildInfo.isDefaultBuildCmd()); }