Skip to main content
aboutsummaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
Diffstat (limited to 'build')
-rw-r--r--build/org.eclipse.cdt.autotools-feature/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.autotools-feature/feature.xml21
-rw-r--r--build/org.eclipse.cdt.autotools.core/.classpath2
-rw-r--r--build/org.eclipse.cdt.autotools.core/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.autotools.core/.settings/org.eclipse.jdt.core.prefs38
-rw-r--r--build/org.eclipse.cdt.autotools.core/.settings/org.eclipse.jdt.ui.prefs80
-rw-r--r--build/org.eclipse.cdt.autotools.core/META-INF/MANIFEST.MF6
-rw-r--r--build/org.eclipse.cdt.autotools.core/about.html14
-rw-r--r--build/org.eclipse.cdt.autotools.core/build.properties5
-rw-r--r--build/org.eclipse.cdt.autotools.core/css/e4-dark_autotools.css28
-rw-r--r--build/org.eclipse.cdt.autotools.core/plugin.xml11
-rw-r--r--build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/AutotoolsEnvironmentVariableSupplier.java10
-rw-r--r--build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/AutotoolsNewMakeGenerator.java105
-rw-r--r--build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/AutotoolsPropertyConstants.java6
-rw-r--r--build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/ErrorParser.java14
-rw-r--r--build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/PkgconfigErrorResolution.java6
-rw-r--r--build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/VersionComparator.java4
-rw-r--r--build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/AbstractConfigurationOption.java2
-rw-r--r--build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/AutotoolsConfiguration.java12
-rw-r--r--build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/AutotoolsConfigurationManager.java10
-rw-r--r--build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/AutotoolsOptionValueHandler.java4
-rw-r--r--build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/ConfigureMessages.java2
-rw-r--r--build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/ConfigureOptionCategory.java6
-rw-r--r--build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/FlagConfigureOption.java2
-rw-r--r--build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/FlagValueConfigureOption.java2
-rw-r--r--build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/InternalConfigureOption.java2
-rw-r--r--build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/StringConfigureOption.java2
-rw-r--r--build/org.eclipse.cdt.autotools.docs/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.autotools.docs/.settings/org.eclipse.jdt.ui.prefs133
-rw-r--r--build/org.eclipse.cdt.autotools.docs/CDT/Autotools/User_Guide/Updating-This-Document.html2
-rw-r--r--build/org.eclipse.cdt.autotools.docs/CDT/Autotools/User_Guide/User-Guide.html4
-rw-r--r--build/org.eclipse.cdt.autotools.docs/META-INF/MANIFEST.MF2
-rw-r--r--build/org.eclipse.cdt.autotools.docs/about.html14
-rw-r--r--build/org.eclipse.cdt.autotools.docs/build-helper.xml4
-rw-r--r--build/org.eclipse.cdt.autotools.docs/build-index.xml2
-rw-r--r--build/org.eclipse.cdt.autotools.docs/build.properties1
-rw-r--r--build/org.eclipse.cdt.autotools.docs/pom.xml36
-rw-r--r--build/org.eclipse.cdt.autotools.docs/tools.xml10
-rw-r--r--build/org.eclipse.cdt.autotools.tests/.classpath8
-rw-r--r--build/org.eclipse.cdt.autotools.tests/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.autotools.tests/.settings/org.eclipse.jdt.core.prefs38
-rw-r--r--build/org.eclipse.cdt.autotools.tests/.settings/org.eclipse.jdt.ui.prefs80
-rw-r--r--build/org.eclipse.cdt.autotools.tests/META-INF/MANIFEST.MF8
-rw-r--r--build/org.eclipse.cdt.autotools.tests/about.html14
-rw-r--r--build/org.eclipse.cdt.autotools.tests/build.properties1
-rw-r--r--build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/AutomatedIntegrationSuite.java8
-rw-r--r--build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/AutotoolsProject0Test.java (renamed from build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/AutotoolsProjectTest0.java)2
-rw-r--r--build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/AutotoolsProject1Test.java (renamed from build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/AutotoolsProjectTest1.java)2
-rw-r--r--build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/AutotoolsProject2Test.java (renamed from build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/AutotoolsProjectTest2.java)2
-rw-r--r--build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/editors/EditorTestSuite.java (renamed from build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/editors/EditorTests.java)2
-rw-r--r--build/org.eclipse.cdt.autotools.ui.tests/.classpath8
-rw-r--r--build/org.eclipse.cdt.autotools.ui.tests/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.autotools.ui.tests/.settings/org.eclipse.jdt.core.prefs38
-rw-r--r--build/org.eclipse.cdt.autotools.ui.tests/.settings/org.eclipse.jdt.ui.prefs80
-rw-r--r--build/org.eclipse.cdt.autotools.ui.tests/META-INF/MANIFEST.MF6
-rw-r--r--build/org.eclipse.cdt.autotools.ui.tests/about.html14
-rw-r--r--build/org.eclipse.cdt.autotools.ui.tests/build.properties1
-rw-r--r--build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/AutomatedIntegrationSuite.java27
-rw-r--r--build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/SetConfigurationParameterTest.java (renamed from build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/SetConfigurationParameter.java)4
-rw-r--r--build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/TestEnvironmentVars.java2
-rw-r--r--build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/TestMakeTargets.java2
-rw-r--r--build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/TestToolActions.java2
-rw-r--r--build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/autoconf/AutoconfTestSuite.java (renamed from build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/autoconf/AutoconfTests.java)2
-rw-r--r--build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/autoconf/BaseParserTest.java21
-rw-r--r--build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/autoconf/TestTokenizer.java21
-rw-r--r--build/org.eclipse.cdt.autotools.ui/.classpath2
-rw-r--r--build/org.eclipse.cdt.autotools.ui/.settings/.api_filters9
-rw-r--r--build/org.eclipse.cdt.autotools.ui/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.autotools.ui/.settings/org.eclipse.jdt.core.prefs38
-rw-r--r--build/org.eclipse.cdt.autotools.ui/.settings/org.eclipse.jdt.ui.prefs80
-rw-r--r--build/org.eclipse.cdt.autotools.ui/META-INF/MANIFEST.MF29
-rw-r--r--build/org.eclipse.cdt.autotools.ui/about.html14
-rw-r--r--build/org.eclipse.cdt.autotools.ui/about.ini24
-rw-r--r--build/org.eclipse.cdt.autotools.ui/about.mappings9
-rw-r--r--build/org.eclipse.cdt.autotools.ui/about.properties32
-rw-r--r--build/org.eclipse.cdt.autotools.ui/build.properties6
-rw-r--r--build/org.eclipse.cdt.autotools.ui/cdt_logo_icon32.pngbin0 -> 1885 bytes
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/AutotoolsUIPlugin.java3
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/AcInitElement.java4
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/AutoconfCodeScanner.java2
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/AutoconfMacroCodeScanner.java4
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/AutoconfPartitionScanner.java2
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/InlineDataRule.java2
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/outline/AutoconfContentProvider.java2
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/outline/AutoconfLabelProvider.java10
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfCaseConditionElement.java2
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfMacroArgumentElement.java2
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfOutlineErrorHandler.java2
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfParser.java26
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfTokenizer.java68
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/Token.java2
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/LocationAdapter.java4
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/actions/AbstractAutotoolsHandler.java2
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakeConfigMacro.java2
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakeErrorHandler.java8
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakeTextHover.java6
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakefileCodeScanner.java25
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakefileContentOutlinePage.java6
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/GNUAutomakefile.java4
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/MakefilePartitionScanner.java2
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/NullMakefile.java2
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/preferences/AbstractEditorPreferencePage.java4
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/preferences/AutoconfEditorPreferencePage.java23
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/preferences/AutomakeEditorPreferencePage.java17
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/preferences/AutotoolsEditorPreferenceConstants.java4
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsBuildPropertyPage.java2
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsCategoryPropertyOptionPage.java8
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsConfigurePrefStore.java2
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsConfigurePropertyTab.java2
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsEditorPropertyTab.java8
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsToolPropertyOptionPage.java2
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsToolsPropertyTab.java2
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/text/hover/AutoconfTextHover.java20
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/AutotoolsProjectImportWizard.java4
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/AutotoolsProjectImportWizardPage.java10
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/ConfigurationLabelProvider.java2
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/ConvertToAutotoolsProjectWizardPage.java6
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/ReferenceBlock.java2
-rw-r--r--build/org.eclipse.cdt.build.gcc.core/.classpath2
-rw-r--r--build/org.eclipse.cdt.build.gcc.core/.project6
-rw-r--r--build/org.eclipse.cdt.build.gcc.core/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.build.gcc.core/.settings/org.eclipse.jdt.core.prefs38
-rw-r--r--build/org.eclipse.cdt.build.gcc.core/.settings/org.eclipse.jdt.ui.prefs80
-rw-r--r--build/org.eclipse.cdt.build.gcc.core/META-INF/MANIFEST.MF12
-rw-r--r--build/org.eclipse.cdt.build.gcc.core/about.html14
-rw-r--r--build/org.eclipse.cdt.build.gcc.core/build.properties1
-rw-r--r--build/org.eclipse.cdt.build.gcc.core/plugin.properties14
-rw-r--r--build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/GCCToolChain.java4
-rw-r--r--build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/internal/GCCPathToolChainProvider.java4
-rw-r--r--build/org.eclipse.cdt.build.gcc.ui/.classpath2
-rw-r--r--build/org.eclipse.cdt.build.gcc.ui/.project6
-rw-r--r--build/org.eclipse.cdt.build.gcc.ui/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.build.gcc.ui/.settings/org.eclipse.jdt.core.prefs38
-rw-r--r--build/org.eclipse.cdt.build.gcc.ui/.settings/org.eclipse.jdt.ui.prefs80
-rw-r--r--build/org.eclipse.cdt.build.gcc.ui/META-INF/MANIFEST.MF10
-rw-r--r--build/org.eclipse.cdt.build.gcc.ui/about.html14
-rw-r--r--build/org.eclipse.cdt.build.gcc.ui/about.ini24
-rw-r--r--build/org.eclipse.cdt.build.gcc.ui/about.mappings9
-rw-r--r--build/org.eclipse.cdt.build.gcc.ui/about.properties32
-rw-r--r--build/org.eclipse.cdt.build.gcc.ui/build.properties8
-rw-r--r--build/org.eclipse.cdt.build.gcc.ui/cdt_logo_icon32.pngbin0 -> 1885 bytes
-rw-r--r--build/org.eclipse.cdt.build.gcc.ui/plugin.properties14
-rw-r--r--build/org.eclipse.cdt.cmake-feature/.project17
-rw-r--r--build/org.eclipse.cdt.cmake-feature/build.properties2
-rw-r--r--build/org.eclipse.cdt.cmake-feature/feature.properties32
-rw-r--r--build/org.eclipse.cdt.cmake-feature/feature.xml44
-rw-r--r--build/org.eclipse.cdt.cmake.core/.project28
-rw-r--r--build/org.eclipse.cdt.cmake.core/.settings/org.eclipse.jdt.core.prefs464
-rw-r--r--build/org.eclipse.cdt.cmake.core/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--build/org.eclipse.cdt.cmake.core/META-INF/MANIFEST.MF19
-rw-r--r--build/org.eclipse.cdt.cmake.core/build.properties8
-rw-r--r--build/org.eclipse.cdt.cmake.core/plugin.xml22
-rw-r--r--build/org.eclipse.cdt.cmake.core/schema/toolChainProvider.exsd102
-rw-r--r--build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/CMakeNature.java55
-rw-r--r--build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/CMakeProjectGenerator.java90
-rw-r--r--build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/CMakeToolChainEvent.java44
-rw-r--r--build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/ICMakeToolChainFile.java57
-rw-r--r--build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/ICMakeToolChainListener.java20
-rw-r--r--build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/ICMakeToolChainManager.java96
-rw-r--r--build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/ICMakeToolChainProvider.java23
-rw-r--r--build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/Activator.java68
-rw-r--r--build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/CMakeBuildConfiguration.java338
-rw-r--r--build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/CMakeBuildConfigurationProvider.java145
-rw-r--r--build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/CMakeToolChainFile.java77
-rw-r--r--build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/CMakeToolChainManager.java240
-rw-r--r--build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/CMakeUtils.java60
-rw-r--r--build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/Messages.java35
-rw-r--r--build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/messages.properties21
-rw-r--r--build/org.eclipse.cdt.cmake.core/templates/simple/CMakeLists.txt5
-rw-r--r--build/org.eclipse.cdt.cmake.core/templates/simple/main.cpp7
-rw-r--r--build/org.eclipse.cdt.cmake.core/templates/simple/manifest.xml7
-rw-r--r--build/org.eclipse.cdt.cmake.ui.tests/.classpath7
-rw-r--r--build/org.eclipse.cdt.cmake.ui.tests/.settings/org.eclipse.jdt.core.prefs464
-rw-r--r--build/org.eclipse.cdt.cmake.ui.tests/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--build/org.eclipse.cdt.cmake.ui.tests/.settings/org.eclipse.jdt.ui.prefs133
-rw-r--r--build/org.eclipse.cdt.cmake.ui.tests/.settings/org.eclipse.pde.api.tools.prefs184
-rw-r--r--build/org.eclipse.cdt.cmake.ui.tests/.settings/org.eclipse.pde.prefs35
-rw-r--r--build/org.eclipse.cdt.cmake.ui.tests/META-INF/MANIFEST.MF12
-rw-r--r--build/org.eclipse.cdt.cmake.ui.tests/about.html36
-rw-r--r--build/org.eclipse.cdt.cmake.ui.tests/build.properties6
-rw-r--r--build/org.eclipse.cdt.cmake.ui.tests/pom.xml43
-rw-r--r--build/org.eclipse.cdt.cmake.ui.tests/src/org/eclipse/cdt/cmake/ui/internal/tests/AutomatedIntegrationSuite.java20
-rw-r--r--build/org.eclipse.cdt.cmake.ui.tests/src/org/eclipse/cdt/cmake/ui/internal/tests/NewCMakeProjectTest.java107
-rw-r--r--build/org.eclipse.cdt.cmake.ui.tests/swtbot-test-plugin.properties1
-rw-r--r--build/org.eclipse.cdt.cmake.ui/.classpath7
-rw-r--r--build/org.eclipse.cdt.cmake.ui/.project28
-rw-r--r--build/org.eclipse.cdt.cmake.ui/.settings/org.eclipse.jdt.core.prefs464
-rw-r--r--build/org.eclipse.cdt.cmake.ui/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--build/org.eclipse.cdt.cmake.ui/.settings/org.eclipse.jdt.ui.prefs133
-rw-r--r--build/org.eclipse.cdt.cmake.ui/.settings/org.eclipse.pde.api.tools.prefs184
-rw-r--r--build/org.eclipse.cdt.cmake.ui/.settings/org.eclipse.pde.prefs35
-rw-r--r--build/org.eclipse.cdt.cmake.ui/META-INF/MANIFEST.MF23
-rw-r--r--build/org.eclipse.cdt.cmake.ui/build.properties8
-rw-r--r--build/org.eclipse.cdt.cmake.ui/icons/cmake_logo-main.pngbin5140 -> 0 bytes
-rw-r--r--build/org.eclipse.cdt.cmake.ui/plugin.xml78
-rw-r--r--build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/Activator.java64
-rw-r--r--build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/CMakeBuildTab.java237
-rw-r--r--build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/CMakePreferencePage.java208
-rw-r--r--build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/CMakePropertyCombo.java68
-rw-r--r--build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/CMakePropertyText.java69
-rw-r--r--build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/EmptyCMakeProjectWizard.java50
-rw-r--r--build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/ICMakePropertyPageControl.java56
-rw-r--r--build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/Messages.java62
-rw-r--r--build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/NewCMakeProjectWizard.java57
-rw-r--r--build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/NewCMakeToolChainFilePage.java121
-rw-r--r--build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/NewCMakeToolChainFileWizard.java37
-rw-r--r--build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/messages.properties35
-rw-r--r--build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/properties/CMakePropertyPage.java304
-rw-r--r--build/org.eclipse.cdt.core.autotools-feature/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.core.autotools-feature/feature.xml13
-rw-r--r--build/org.eclipse.cdt.core.autotools.core/.classpath2
-rw-r--r--build/org.eclipse.cdt.core.autotools.core/.project6
-rw-r--r--build/org.eclipse.cdt.core.autotools.core/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.core.autotools.core/.settings/org.eclipse.jdt.core.prefs38
-rw-r--r--build/org.eclipse.cdt.core.autotools.core/.settings/org.eclipse.jdt.ui.prefs80
-rw-r--r--build/org.eclipse.cdt.core.autotools.core/META-INF/MANIFEST.MF7
-rw-r--r--build/org.eclipse.cdt.core.autotools.core/about.html14
-rw-r--r--build/org.eclipse.cdt.core.autotools.core/build.properties1
-rw-r--r--build/org.eclipse.cdt.core.autotools.core/plugin.properties1
-rw-r--r--build/org.eclipse.cdt.core.autotools.core/plugin.xml1
-rw-r--r--build/org.eclipse.cdt.core.autotools.core/src/org/eclipse/cdt/core/autotools/core/AutotoolsBuildConfiguration.java4
-rw-r--r--build/org.eclipse.cdt.core.autotools.core/src/org/eclipse/cdt/core/autotools/core/AutotoolsProjectGenerator.java2
-rw-r--r--build/org.eclipse.cdt.core.autotools.ui/.classpath2
-rw-r--r--build/org.eclipse.cdt.core.autotools.ui/.project6
-rw-r--r--build/org.eclipse.cdt.core.autotools.ui/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.core.autotools.ui/.settings/org.eclipse.jdt.core.prefs38
-rw-r--r--build/org.eclipse.cdt.core.autotools.ui/.settings/org.eclipse.jdt.ui.prefs80
-rw-r--r--build/org.eclipse.cdt.core.autotools.ui/META-INF/MANIFEST.MF5
-rw-r--r--build/org.eclipse.cdt.core.autotools.ui/about.html14
-rw-r--r--build/org.eclipse.cdt.core.autotools.ui/about.ini24
-rw-r--r--build/org.eclipse.cdt.core.autotools.ui/about.mappings9
-rw-r--r--build/org.eclipse.cdt.core.autotools.ui/about.properties32
-rw-r--r--build/org.eclipse.cdt.core.autotools.ui/build.properties7
-rw-r--r--build/org.eclipse.cdt.core.autotools.ui/cdt_logo_icon32.pngbin0 -> 1885 bytes
-rw-r--r--build/org.eclipse.cdt.gnu.build-feature/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.gnu.build-feature/feature.xml13
-rw-r--r--build/org.eclipse.cdt.make.core.tests/.classpath8
-rw-r--r--build/org.eclipse.cdt.make.core.tests/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.make.core.tests/.settings/org.eclipse.jdt.core.prefs38
-rw-r--r--build/org.eclipse.cdt.make.core.tests/.settings/org.eclipse.jdt.ui.prefs80
-rw-r--r--build/org.eclipse.cdt.make.core.tests/META-INF/MANIFEST.MF7
-rw-r--r--build/org.eclipse.cdt.make.core.tests/about.html14
-rw-r--r--build/org.eclipse.cdt.make.core.tests/build.properties4
-rw-r--r--build/org.eclipse.cdt.make.core.tests/plugin.properties14
-rw-r--r--build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/builder/tests/CDataProviderTests.java1
-rw-r--r--build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/builder/tests/StandardBuildTests.java1
-rw-r--r--build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/core/tests/AutomatedIntegrationSuite.java4
-rw-r--r--build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/core/tests/MakeTestsPlugin.java1
-rw-r--r--build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/core/tests/MakefileReaderProviderTests.java1
-rw-r--r--build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/core/tests/StandardBuildTestHelper.java1
-rw-r--r--build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/GCCPerFileBOPConsoleParserTests.java1
-rw-r--r--build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/ScannerConfigDiscoveryTests.java1
-rw-r--r--build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/ScannerConfigProfileTests.java1
-rw-r--r--build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/ScannerDiscoveryTestSuite.java (renamed from build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/ScannerDiscoveryTests.java)8
-rw-r--r--build/org.eclipse.cdt.make.core/.classpath4
-rw-r--r--build/org.eclipse.cdt.make.core/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.make.core/.settings/org.eclipse.jdt.core.prefs38
-rw-r--r--build/org.eclipse.cdt.make.core/.settings/org.eclipse.jdt.ui.prefs80
-rw-r--r--build/org.eclipse.cdt.make.core/META-INF/MANIFEST.MF7
-rw-r--r--build/org.eclipse.cdt.make.core/about.html14
-rw-r--r--build/org.eclipse.cdt.make.core/plugin.xml2
-rw-r--r--build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java7
-rw-r--r--build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeMessages.java5
-rw-r--r--build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTarget.java8
-rw-r--r--build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/CDataDiscoveredInfoCalculator.java5
-rw-r--r--build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/CDataDiscoveredInfoProcessor.java5
-rw-r--r--build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/util/LogWriter.java7
-rw-r--r--build/org.eclipse.cdt.make.core/templates/simple/Makefile12
-rw-r--r--build/org.eclipse.cdt.make.ui.tests/.classpath8
-rw-r--r--build/org.eclipse.cdt.make.ui.tests/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.make.ui.tests/.settings/org.eclipse.jdt.core.prefs38
-rw-r--r--build/org.eclipse.cdt.make.ui.tests/.settings/org.eclipse.jdt.ui.prefs80
-rw-r--r--build/org.eclipse.cdt.make.ui.tests/META-INF/MANIFEST.MF7
-rw-r--r--build/org.eclipse.cdt.make.ui.tests/about.html14
-rw-r--r--build/org.eclipse.cdt.make.ui.tests/build.properties1
-rw-r--r--build/org.eclipse.cdt.make.ui.tests/plugin.properties14
-rw-r--r--build/org.eclipse.cdt.make.ui/.classpath2
-rw-r--r--build/org.eclipse.cdt.make.ui/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.make.ui/.settings/org.eclipse.jdt.core.prefs38
-rw-r--r--build/org.eclipse.cdt.make.ui/.settings/org.eclipse.jdt.ui.prefs80
-rw-r--r--build/org.eclipse.cdt.make.ui/META-INF/MANIFEST.MF9
-rw-r--r--build/org.eclipse.cdt.make.ui/about.html14
-rw-r--r--build/org.eclipse.cdt.make.ui/build.properties3
-rw-r--r--build/org.eclipse.cdt.make.ui/css/e4-dark_make.css21
-rw-r--r--build/org.eclipse.cdt.make.ui/plugin.xml9
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/MakeEnvironmentBlock.java6
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/MakeResources.properties15
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/MakeUIPlugin.java5
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/actions/FoldingMessages.java6
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/dnd/MakeTargetDndUtil.java6
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/dnd/TextTransferDropTargetListener.java6
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/LexicalSortingAction.java6
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/part/WizardCheckboxTablePart.java7
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/preferences/AbstractMakefileEditorPreferencePage.java6
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/preferences/ColorEditor.java22
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/preferences/MakefileEditorPreferencePage.java17
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/text/ColorManager.java9
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/text/makefile/MakefileCompletionProcessor.java2
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/IMakeHelpContextIds.java7
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/MakeContentProvider.java2
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/DiscoveredPathContainerPage.java49
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/views/DeleteTargetAction.java6
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/views/MakeView.java340
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/ConvertToMakeProjectWizard.java123
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/ConvertToMakeProjectWizardPage.java116
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/MakeProjectWizardOptionPage.java139
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/NewMakeCCProjectWizard.java67
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/NewMakeCProjectWizard.java52
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/NewMakeProjectWizard.java93
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/.classpath14
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/.settings/org.eclipse.jdt.core.prefs38
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/.settings/org.eclipse.jdt.ui.prefs80
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/META-INF/MANIFEST.MF10
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/about.html14
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/plugin.properties4
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/plugin.xml370
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/Sources/sub sources/subdir.mk17
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/Sources/subdir.mk25
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/makefile23
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/sources.mk8
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/subdir.mk17
-rw-r--r--[-rwxr-xr-x]build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/test1DepCalc2.zipbin3169 -> 3169 bytes
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/Sources/sub sources/subdir.mk15
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/Sources/subdir.mk19
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/makefile23
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/sources.mk8
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/subdir.mk15
-rw-r--r--[-rwxr-xr-x]build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/test1DepCalc3.zipbin3197 -> 3197 bytes
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/Sources/sub sources/subdir.mk17
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/Sources/subdir.mk21
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/makefile23
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/sources.mk8
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/subdir.mk17
-rw-r--r--[-rwxr-xr-x]build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/test1DepCalcPreBuild.zipbin3165 -> 3165 bytes
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/1.2/Benchmarks/makefile29
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/1.2/Benchmarks/sources.mk20
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/1.2/Benchmarks/subdir.mk17
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.0/Benchmarks/makefile31
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.0/Benchmarks/objects.mk4
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.0/Benchmarks/sources.mk20
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.0/Benchmarks/subdir.mk19
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1/Benchmarks/Functions/subdir.mk17
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1/Benchmarks/makefile23
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1/Benchmarks/sources.mk8
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1/Benchmarks/subdir.mk17
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1CPP/Benchmarks/Functions/subdir.mk17
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1CPP/Benchmarks/makefile29
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1CPP/Benchmarks/sources.mk20
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1CPP/Benchmarks/subdir.mk17
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedFolder/Benchmarks/makefile23
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedFolder/Benchmarks/objects.mk4
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedFolder/Benchmarks/sources.mk6
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedFolder/Benchmarks/subdir.mk17
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedLib/Benchmarks/makefile23
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedLib/Benchmarks/objects.mk4
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedLib/Benchmarks/sources.mk4
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedLib/Benchmarks/subdir.mk11
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/makefile29
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/source1/subdir.mk15
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/source2/source21/subdir.mk15
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/source2/subdir.mk15
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/sources.mk14
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/subdir.mk15
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/singleFileExe/Benchmarks/makefile23
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/singleFileExe/Benchmarks/sources.mk6
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/singleFileExe/Benchmarks/subdir.mk15
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/twoFileSO/Benchmarks/makefile29
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/twoFileSO/Benchmarks/sources.mk14
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/twoFileSO/Benchmarks/subdir.mk17
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest1/Benchmarks/makefile23
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest1/Benchmarks/sources.mk14
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest1/Benchmarks/subdir.mk9
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest2/Benchmarks/Sources/subdir.mk9
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest2/Benchmarks/makefile24
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest2/Benchmarks/module/subdir.mk9
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest2/Benchmarks/sources.mk14
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/TestATO/Benchmarks/makefile23
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/TestATO/Benchmarks/sources.mk6
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/TestATO/Benchmarks/subdir.mk15
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/copyandDeploy/Benchmarks/Functions/subdir.mk19
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/copyandDeploy/Benchmarks/makefile25
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/copyandDeploy/Benchmarks/sources.mk10
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/copyandDeploy/Benchmarks/subdir.mk19
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/deleteFile/Benchmarks/makefile29
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/deleteFile/Benchmarks/sources.mk14
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/deleteFile/Benchmarks/subdir.mk15
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/inputTypeOption/Benchmarks/makefile23
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/inputTypeOption/Benchmarks/subdir.mk13
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedFolder/Benchmarks/makefile23
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedFolder/Benchmarks/objects.mk4
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedFolder/Benchmarks/sources.mk6
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedFolder/Benchmarks/subdir.mk17
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedLib30/Benchmarks/makefile23
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedLib30/Benchmarks/objects.mk4
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedLib30/Benchmarks/sources.mk2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedLib30/Benchmarks/subdir.mk15
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/makefile29
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/source1/subdir.mk15
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/source2/source21/subdir.mk15
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/source2/subdir.mk15
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/sources.mk14
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/subdir.mk15
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/preAndPostBuildSteps/Benchmarks/makefile26
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/preAndPostBuildSteps/Benchmarks/sources.mk14
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/preAndPostBuildSteps/Benchmarks/subdir.mk15
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/rcbsBasicTest/Benchmarks/makefile23
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/rcbsBasicTest/Benchmarks/sources.mk4
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/rcbsBasicTest/Benchmarks/subdir.mk9
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/singleFileExe/Benchmarks/makefile23
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/singleFileExe/Benchmarks/sources.mk4
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/singleFileExe/Benchmarks/subdir.mk15
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test with spaces/Benchmarks/makefile23
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test with spaces/Benchmarks/sub folder with spaces/subdir.mk11
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test with spaces/Benchmarks/subdir.mk11
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_1/Benchmarks/makefile25
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_1/Benchmarks/sources.mk16
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_1/Benchmarks/subdir.mk29
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_2/Benchmarks/makefile42
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_2/Benchmarks/sources.mk13
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_2/Benchmarks/subdir.mk6
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testFileWithNoExtension/Benchmarks/makefile23
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testFileWithNoExtension/Benchmarks/sources.mk8
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testFileWithNoExtension/Benchmarks/subdir.mk17
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testMacroSupportInBuildDefinitions/Benchmarks/makefile23
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testMacroSupportInBuildDefinitions/Benchmarks/sources.mk4
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testMacroSupportInBuildDefinitions/Benchmarks/subdir.mk9
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/twoFileSO/Benchmarks/makefile23
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/twoFileSO/Benchmarks/sources.mk4
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/twoFileSO/Benchmarks/subdir.mk17
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1/d2/d3/subdir.mk19
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1/d2/subdir.mk23
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1/subdir.mk21
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1_1/d2_1/subdir.mk19
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1_1/subdir.mk19
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/excluded_c/asd/subdir.mk17
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/excluded_c/subdir.mk17
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/ff/subdir.mk31
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/makefile32
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/objects.mk4
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/sources.mk20
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1/d2/d3/subdir.mk19
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1/d2/subdir.mk23
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1/subdir.mk21
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1_1/d2_1/subdir.mk19
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1_1/subdir.mk19
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/dir1/dd/excluded_c/asd/subdir.mk17
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/dir1/dd/excluded_c/subdir.mk17
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/dir1/dd/ff/subdir.mk31
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/makefile32
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/objects.mk4
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/sources.mk18
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/testplugin/AbstractBuilderTest.java33
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/testplugin/DiffUtil.java57
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/testplugin/ManagedBuildTestHelper.java73
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/tests/suite/AutomatedIntegrationSuite.java25
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/tests/suite/ManagedBuilderPreconditionsTests.java (renamed from build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/tests/suite/Preconditions.java)6
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/regressions/Bug_303953.java82
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/regressions/Bug_303953Test.java154
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/regressions/Bug_335476Test.java (renamed from build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/regressions/Bug_335476.java)24
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/regressions/Bug_580441Test.java70
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/regressions/RegressionTestSuite.java (renamed from build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/regressions/RegressionTests.java)10
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/BuildDescriptionModelTests.java13
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/BuildFileGenerator.java2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/BuildSystem40Tests.java4
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/CustomOptionCommandGenerator2.java34
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCleanTest.java (renamed from build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildClean.java)35
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCore20Tests.java (renamed from build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCoreTests20.java)34
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCoreTests.java4
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCore_SharedToolOptionsTests.java (renamed from build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCoreTests_SharedToolOptions.java)14
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildDependencyCalculatorTests.java12
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildDependencyLibsTests.java47
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildEnvironmentTests.java447
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildMacrosTests.java566
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedCommandLineGeneratorTest.java205
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedProject21MakefileTests.java86
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedProject30MakefileTests.java89
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedProjectUpdateTests.java18
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/MultiVersionSupportTests.java27
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/PathConverterTest.java2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ProjectConverter.java3
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ResourceBuildCoreTests.java138
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/TestPathConverter1.java2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/TestPathConverter2.java2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/TestPathConverter3.java2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/TestPathConverter4.java2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/AllLanguageSettingsProvidersMBSTestSuite.java (renamed from build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/AllLanguageSettingsProvidersMBSTests.java)9
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/BuiltinSpecsDetectorTest.java2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/CompilationDatabaseParserTest.java1028
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/GCCBuildCommandParserTest.java55
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/templateengine/tests/AllTemplateEngineTestSuite.java (renamed from build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/templateengine/tests/AllTemplateEngineTests.java)4
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/projectmodel/tests/CProjectDescriptionSerializationTests.java1
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/projectmodel/tests/ProjectModelTests.java184
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/.classpath4
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/.settings/.api_filters11
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/.settings/org.eclipse.jdt.core.prefs38
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/.settings/org.eclipse.jdt.ui.prefs80
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/META-INF/MANIFEST.MF15
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/about.html14
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/plugin.properties2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/plugin.xml23
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/schema/ManagedBuildTools.exsd2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/build/internal/core/scannerconfig/CfgScannerConfigUtil.java6
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/build/internal/core/scannerconfig/PerFileSettingsCalculator.java5
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IBuilder.java8
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IManagedCommandLineInfo.java2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IOptionPathConverter.java2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IResourceConfiguration.java5
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ITool.java7
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java119
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedCommandLineGenerator.java168
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/OptionStringValue.java13
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/envvar/IEnvironmentVariableProvider.java6
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/buildmodel/BuildDescription.java10
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/buildmodel/BuildModelMessages.java6
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/AdditionalInput.java20
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java95
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/CommonBuilder.java36
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java128
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java6
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuildMessages.java20
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuildMessages.properties20
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuilder.java243
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuilderExternalSettingsProvider.java9
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedBuildInfo.java6
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedCommandLineGenerator.java69
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedCommandLineInfo.java4
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedMakeMessages.java6
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/MultiFileInfo.java6
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Option.java44
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/PluginResources.properties1
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ResourceConfiguration.java1
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java143
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolChain.java5
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/BuildLanguageData.java7
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/ConfigurationDataProvider.java1
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/DataProviderMessages.java6
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/EnvironmentVariableProvider.java5
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/StoredBuildPathEnvironmentContainer.java5
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/language/settings/providers/CompilationDatabaseParser.java545
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/language/settings/providers/CompileCommand.java (renamed from build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/CompileCommand.java)17
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/language/settings/providers/Messages.java39
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/language/settings/providers/messages.properties22
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/BuildfileMacroSubstitutor.java13
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/MbsMacroSupplier.java2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/scannerconfig/ManagedBuildCPathEntryContainer.java6
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/AbstractBuiltinSpecsDetector.java32
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/AbstractLanguageSettingsOutputScanner.java283
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/GCCBuildCommandParser.java129
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/ToolchainBuiltinSpecsDetector.java134
-rw-r--r--[-rwxr-xr-x]build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/IManagedDependencyCalculator.java0
-rw-r--r--[-rwxr-xr-x]build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/IManagedDependencyGeneratorType.java0
-rw-r--r--[-rwxr-xr-x]build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/IManagedDependencyInfo.java0
-rw-r--r--[-rwxr-xr-x]build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/IManagedDependencyPreBuild.java0
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/DefaultGCCDependencyCalculator.java2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/DefaultGCCDependencyCalculator2Commands.java12
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/DefaultGCCDependencyCalculator3.java13
-rw-r--r--[-rwxr-xr-x]build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/GnuDependencyGroupInfo.java10
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/GnuMakefileGenerator.java292
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/IManagedBuildGnuToolInfo.java2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/ManagedBuildGnuToolInfo.java2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu2/GnuMakefileGenerator.java4799
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu2/ManagedBuildGnuToolInfo.java991
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/projectconverter/ConverterMessages.java16
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/newmake/core/IMakeCommonBuildInfo.java29
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/newmake/internal/core/MakeMessages.java6
-rw-r--r--build/org.eclipse.cdt.managedbuilder.gnu.ui/.classpath4
-rw-r--r--build/org.eclipse.cdt.managedbuilder.gnu.ui/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.gnu.ui/.settings/org.eclipse.jdt.core.prefs38
-rw-r--r--build/org.eclipse.cdt.managedbuilder.gnu.ui/.settings/org.eclipse.jdt.ui.prefs80
-rw-r--r--build/org.eclipse.cdt.managedbuilder.gnu.ui/META-INF/MANIFEST.MF8
-rw-r--r--build/org.eclipse.cdt.managedbuilder.gnu.ui/about.html14
-rw-r--r--build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.properties33
-rw-r--r--build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml400
-rw-r--r--build/org.eclipse.cdt.managedbuilder.gnu.ui/src/org/eclipse/cdt/managedbuilder/gnu/cygwin/CygwinPathResolver.java2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.classpath (renamed from build/org.eclipse.cdt.cmake.core/.classpath)2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.project (renamed from build/org.eclipse.cdt.cmake.ui.tests/.project)8
-rw-r--r--build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.settings/org.eclipse.jdt.core.prefs (renamed from build/org.eclipse.cdt.autotools.docs/.settings/org.eclipse.jdt.core.prefs)38
-rw-r--r--build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.settings/org.eclipse.jdt.launching.prefs (renamed from build/org.eclipse.cdt.autotools.docs/.settings/org.eclipse.jdt.launching.prefs)0
-rw-r--r--build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.settings/org.eclipse.jdt.ui.prefs (renamed from build/org.eclipse.cdt.cmake.core/.settings/org.eclipse.jdt.ui.prefs)80
-rw-r--r--build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.settings/org.eclipse.pde.api.tools.prefs (renamed from build/org.eclipse.cdt.cmake.core/.settings/org.eclipse.pde.api.tools.prefs)0
-rw-r--r--build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.settings/org.eclipse.pde.prefs (renamed from build/org.eclipse.cdt.cmake.core/.settings/org.eclipse.pde.prefs)0
-rw-r--r--build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/META-INF/MANIFEST.MF13
-rw-r--r--build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/about.html (renamed from build/org.eclipse.cdt.cmake.core/about.html)14
-rw-r--r--build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/build.properties18
-rw-r--r--build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/plugin.properties (renamed from build/org.eclipse.cdt.cmake.ui/plugin.properties)9
-rw-r--r--build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/plugin.xml17
-rw-r--r--build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/src/org/eclipse/cdt/managedbuilder/internal/headlessbuilderapp/HeadlessBuilderWrapper.java148
-rw-r--r--build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/src/org/eclipse/cdt/managedbuilder/internal/headlessbuilderapp/messages.properties39
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui.tests/.classpath8
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui.tests/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui.tests/.settings/org.eclipse.jdt.core.prefs38
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui.tests/.settings/org.eclipse.jdt.ui.prefs80
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui.tests/META-INF/MANIFEST.MF6
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui.tests/about.html14
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui.tests/build.properties1
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui.tests/plugin.properties14
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/.classpath4
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/.settings/.api_filters11
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/.settings/org.eclipse.jdt.core.prefs38
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/.settings/org.eclipse.jdt.ui.prefs80
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/META-INF/MANIFEST.MF11
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/about.html14
-rw-r--r--[-rwxr-xr-x]build/org.eclipse.cdt.managedbuilder.ui/plugin.properties0
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/plugin.xml7
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/schema/buildDefinitionsUI.exsd2
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.java8
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.properties8
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/commands/BuildConfigurationsJob.java7
-rw-r--r--[-rwxr-xr-x]build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/commands/Messages.properties0
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/CompilationDatabaseParserOptionPage.java309
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/Messages.java33
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/messages.properties20
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/wizards/Messages.java33
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/wizards/messages.properties18
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildBehaviourTab.java218
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildOptionSettingsUI.java107
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildStepsTab.java49
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuilderSettingsTab.java75
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/DiscoveryTab.java10
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ICustomBuildOptionEditor.java3
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ICustomBuildOptionEditor2.java46
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ManagedBuilderUIPlugin.java5
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/NewVarDialog.java8
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ToolChainEditTab.java10
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/ConvertToMakeWizardPage.java25
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/MBSCustomPageData.java27
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/MBSCustomPageManager.java71
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/MBSWizardHandler.java26
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/NewMakeProjFromExisting.java4
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/STDWizardHandler.java4
-rw-r--r--build/org.eclipse.cdt.meson-feature/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.meson-feature/feature.xml21
-rw-r--r--build/org.eclipse.cdt.meson.core/.classpath2
-rw-r--r--build/org.eclipse.cdt.meson.core/.project6
-rw-r--r--build/org.eclipse.cdt.meson.core/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.meson.core/.settings/org.eclipse.jdt.core.prefs38
-rw-r--r--build/org.eclipse.cdt.meson.core/.settings/org.eclipse.jdt.ui.prefs80
-rw-r--r--build/org.eclipse.cdt.meson.core/META-INF/MANIFEST.MF6
-rw-r--r--build/org.eclipse.cdt.meson.core/about.html14
-rw-r--r--build/org.eclipse.cdt.meson.core/build.properties1
-rw-r--r--build/org.eclipse.cdt.meson.core/plugin.properties3
-rw-r--r--build/org.eclipse.cdt.meson.core/plugin.xml1
-rw-r--r--build/org.eclipse.cdt.meson.core/src/org/eclipse/cdt/internal/meson/core/MesonBuildConfiguration.java19
-rw-r--r--build/org.eclipse.cdt.meson.core/src/org/eclipse/cdt/internal/meson/core/Messages.java2
-rw-r--r--build/org.eclipse.cdt.meson.core/src/org/eclipse/cdt/internal/meson/core/messages.properties3
-rw-r--r--build/org.eclipse.cdt.meson.core/src/org/eclipse/cdt/meson/core/MesonProjectGenerator.java7
-rw-r--r--build/org.eclipse.cdt.meson.docs/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.meson.docs/.settings/org.eclipse.jdt.core.prefs464
-rw-r--r--build/org.eclipse.cdt.meson.docs/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--build/org.eclipse.cdt.meson.docs/.settings/org.eclipse.jdt.ui.prefs133
-rw-r--r--build/org.eclipse.cdt.meson.docs/CDT/Meson/User_Guide/Updating-This-Document.html2
-rw-r--r--build/org.eclipse.cdt.meson.docs/CDT/Meson/User_Guide/User-Guide.html2
-rw-r--r--build/org.eclipse.cdt.meson.docs/META-INF/MANIFEST.MF2
-rw-r--r--build/org.eclipse.cdt.meson.docs/about.html14
-rw-r--r--build/org.eclipse.cdt.meson.docs/build-helper.xml2
-rw-r--r--build/org.eclipse.cdt.meson.docs/build-index.xml2
-rw-r--r--build/org.eclipse.cdt.meson.docs/build.properties1
-rw-r--r--build/org.eclipse.cdt.meson.docs/pom.xml36
-rw-r--r--build/org.eclipse.cdt.meson.ui.editor/.classpath3
-rw-r--r--build/org.eclipse.cdt.meson.ui.editor/.project6
-rw-r--r--build/org.eclipse.cdt.meson.ui.editor/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.meson.ui.editor/.settings/org.eclipse.jdt.core.prefs38
-rw-r--r--build/org.eclipse.cdt.meson.ui.editor/.settings/org.eclipse.jdt.ui.prefs80
-rw-r--r--build/org.eclipse.cdt.meson.ui.editor/META-INF/MANIFEST.MF4
-rw-r--r--build/org.eclipse.cdt.meson.ui.editor/about.html (renamed from build/org.eclipse.cdt.cmake.ui/about.html)14
-rw-r--r--build/org.eclipse.cdt.meson.ui.editor/build.properties4
-rw-r--r--build/org.eclipse.cdt.meson.ui.editor/src/keep.txt1
-rw-r--r--build/org.eclipse.cdt.meson.ui.tests/.classpath8
-rw-r--r--build/org.eclipse.cdt.meson.ui.tests/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.meson.ui.tests/.settings/org.eclipse.jdt.core.prefs38
-rw-r--r--build/org.eclipse.cdt.meson.ui.tests/.settings/org.eclipse.jdt.ui.prefs80
-rw-r--r--build/org.eclipse.cdt.meson.ui.tests/META-INF/MANIFEST.MF12
-rw-r--r--build/org.eclipse.cdt.meson.ui.tests/about.html14
-rw-r--r--build/org.eclipse.cdt.meson.ui.tests/build.properties5
-rw-r--r--build/org.eclipse.cdt.meson.ui.tests/plugin.properties14
-rw-r--r--build/org.eclipse.cdt.meson.ui.tests/pom.xml12
-rw-r--r--build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/AutomatedIntegrationSuite.java23
-rw-r--r--build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/NewManualNinjaTest.java49
-rw-r--r--build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/NewMesonConfigureTest.java48
-rw-r--r--build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/NewMesonProjectTest.java48
-rw-r--r--build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/CloseShellRule.java59
-rw-r--r--build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/CloseWelcomePag.java (renamed from build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/CloseWelcomePageRule.java)22
-rw-r--r--build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/ConsoleViewRule.java39
-rw-r--r--build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/ProjectExplorerViewRule.java52
-rw-r--r--build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/SWTBotViewRule.java68
-rw-r--r--build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/SWTUtils.java471
-rw-r--r--build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/TestLoggerRule.java29
-rw-r--r--build/org.eclipse.cdt.meson.ui/.classpath2
-rw-r--r--build/org.eclipse.cdt.meson.ui/.project6
-rw-r--r--build/org.eclipse.cdt.meson.ui/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--build/org.eclipse.cdt.meson.ui/.settings/org.eclipse.jdt.core.prefs38
-rw-r--r--build/org.eclipse.cdt.meson.ui/.settings/org.eclipse.jdt.ui.prefs80
-rw-r--r--build/org.eclipse.cdt.meson.ui/META-INF/MANIFEST.MF13
-rw-r--r--build/org.eclipse.cdt.meson.ui/about.html14
-rw-r--r--build/org.eclipse.cdt.meson.ui/about.ini24
-rw-r--r--build/org.eclipse.cdt.meson.ui/about.mappings9
-rw-r--r--build/org.eclipse.cdt.meson.ui/about.properties32
-rw-r--r--build/org.eclipse.cdt.meson.ui/build.properties7
-rw-r--r--build/org.eclipse.cdt.meson.ui/cdt_logo_icon32.pngbin0 -> 1885 bytes
-rw-r--r--build/org.eclipse.cdt.meson.ui/plugin.xml9
-rw-r--r--build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/internal/meson/ui/MesonBuildTab.java10
-rw-r--r--build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/internal/meson/ui/MesonProjectConfigurator.java38
-rw-r--r--build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/internal/meson/ui/SWTImagesFactory.java2
-rw-r--r--build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/internal/meson/ui/commands/RunNinjaCommandHandler.java2
-rw-r--r--build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyArgs.java3
-rw-r--r--build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyCheckbox.java11
-rw-r--r--build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyCombo.java3
-rw-r--r--build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyPage.java163
-rw-r--r--build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertySpecialCheckbox.java4
-rw-r--r--build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyText.java6
-rw-r--r--build/pom.xml12
715 files changed, 17975 insertions, 11980 deletions
diff --git a/build/org.eclipse.cdt.autotools-feature/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.autotools-feature/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.autotools-feature/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.autotools-feature/feature.xml b/build/org.eclipse.cdt.autotools-feature/feature.xml
index 669cc02d5e9..86817325b08 100644
--- a/build/org.eclipse.cdt.autotools-feature/feature.xml
+++ b/build/org.eclipse.cdt.autotools-feature/feature.xml
@@ -1,9 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2008, 2021 Contributors to the Eclipse Foundation
+
+ This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License 2.0
+ which accompanies this distribution, and is available at
+ https://www.eclipse.org/legal/epl-2.0/
+
+ SPDX-License-Identifier: EPL-2.0
+-->
<feature
id="org.eclipse.cdt.autotools"
label="%featureName"
- version="9.9.0.qualifier"
+ version="10.7.0.qualifier"
provider-name="%provider"
+ plugin="org.eclipse.cdt.autotools.ui"
license-feature="org.eclipse.license"
license-feature-version="0.0.0">
@@ -62,12 +73,4 @@
install-size="0"
version="0.0.0"/>
- <plugin
- id="org.eclipse.tools.templates.freemarker.java11"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"
- unpack="false"/>
-
</feature>
diff --git a/build/org.eclipse.cdt.autotools.core/.classpath b/build/org.eclipse.cdt.autotools.core/.classpath
index eca7bdba8f0..e801ebfb468 100644
--- a/build/org.eclipse.cdt.autotools.core/.classpath
+++ b/build/org.eclipse.cdt.autotools.core/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
diff --git a/build/org.eclipse.cdt.autotools.core/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.autotools.core/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.autotools.core/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.autotools.core/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.autotools.core/.settings/org.eclipse.jdt.core.prefs
index 2b6ecff8a01..e3a8104f9ca 100644
--- a/build/org.eclipse.cdt.autotools.core/.settings/org.eclipse.jdt.core.prefs
+++ b/build/org.eclipse.cdt.autotools.core/.settings/org.eclipse.jdt.core.prefs
@@ -30,9 +30,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -49,6 +49,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
@@ -107,6 +108,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
@@ -144,13 +146,14 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -158,21 +161,24 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@@ -264,11 +270,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@@ -299,6 +306,8 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@@ -323,13 +332,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@@ -377,6 +390,8 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do no
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@@ -413,9 +428,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@@ -454,10 +472,14 @@ org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/build/org.eclipse.cdt.autotools.core/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.autotools.core/.settings/org.eclipse.jdt.ui.prefs
index e44576346c4..d35ba9b5231 100644
--- a/build/org.eclipse.cdt.autotools.core/.settings/org.eclipse.jdt.ui.prefs
+++ b/build/org.eclipse.cdt.autotools.core/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,4 @@
+cleanup.add_all=false
cleanup.add_default_serial_version_id=true
cleanup.add_generated_serial_version_id=false
cleanup.add_missing_annotations=true
@@ -11,25 +12,72 @@ cleanup.always_use_blocks=true
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=false
cleanup.always_use_this_for_non_static_method_access=false
+cleanup.array_with_curly=false
+cleanup.arrays_fill=false
+cleanup.bitwise_conditional_expression=false
+cleanup.boolean_literal=false
+cleanup.boolean_value_rather_than_comparison=false
+cleanup.break_loop=false
+cleanup.collection_cloning=false
+cleanup.comparing_on_criteria=false
+cleanup.comparison_statement=false
+cleanup.controlflow_merge=false
cleanup.convert_functional_interfaces=false
cleanup.convert_to_enhanced_for_loop=false
+cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
+cleanup.convert_to_switch_expressions=false
cleanup.correct_indentation=false
+cleanup.do_while_rather_than_while=true
+cleanup.double_negation=false
+cleanup.else_if=false
+cleanup.embedded_if=false
+cleanup.evaluate_nullable=false
+cleanup.extract_increment=false
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
+cleanup.hash=false
+cleanup.if_condition=false
cleanup.insert_inferred_type_arguments=false
+cleanup.instanceof=false
+cleanup.instanceof_keyword=false
+cleanup.invert_equals=false
+cleanup.join=false
+cleanup.lazy_logical_operator=false
cleanup.make_local_variable_final=true
cleanup.make_parameters_final=false
cleanup.make_private_fields_final=true
cleanup.make_type_abstract_if_missing_method=false
cleanup.make_variable_declarations_final=false
+cleanup.map_cloning=false
+cleanup.merge_conditional_blocks=false
+cleanup.multi_catch=false
cleanup.never_use_blocks=false
cleanup.never_use_parentheses_in_expressions=true
+cleanup.no_string_creation=false
+cleanup.no_super=false
+cleanup.number_suffix=false
+cleanup.objects_equals=false
+cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
+cleanup.operand_factorization=false
cleanup.organize_imports=true
+cleanup.overridden_assignment=false
+cleanup.plain_replacement=false
+cleanup.precompile_regex=false
+cleanup.primitive_comparison=false
+cleanup.primitive_parsing=false
+cleanup.primitive_rather_than_wrapper=false
+cleanup.primitive_serialization=false
+cleanup.pull_out_if_from_if_else=false
+cleanup.pull_up_assignment=false
+cleanup.push_down_negation=false
cleanup.qualify_static_field_accesses_with_declaring_class=false
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
cleanup.qualify_static_member_accesses_with_declaring_class=false
cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.reduce_indentation=false
+cleanup.redundant_comparator=false
+cleanup.redundant_falling_through_block_end=false
cleanup.remove_private_constructors=true
cleanup.remove_redundant_modifiers=false
cleanup.remove_redundant_semicolons=true
@@ -37,25 +85,57 @@ cleanup.remove_redundant_type_arguments=true
cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true
cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_array_creation=false
cleanup.remove_unnecessary_casts=true
cleanup.remove_unnecessary_nls_tags=false
cleanup.remove_unused_imports=true
cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_method_parameters=false
cleanup.remove_unused_private_fields=true
cleanup.remove_unused_private_members=false
cleanup.remove_unused_private_methods=true
cleanup.remove_unused_private_types=true
+cleanup.return_expression=false
+cleanup.simplify_lambda_expression_and_method_ref=false
+cleanup.single_used_field=false
cleanup.sort_members=false
cleanup.sort_members_all=false
+cleanup.standard_comparison=false
+cleanup.static_inner_class=false
+cleanup.strictly_equal_or_different=false
+cleanup.stringbuffer_to_stringbuilder=false
+cleanup.stringbuilder=false
+cleanup.stringbuilder_for_local_vars=true
+cleanup.stringconcat_to_textblock=false
+cleanup.substring=false
+cleanup.switch=false
+cleanup.system_property=false
+cleanup.system_property_boolean=false
+cleanup.system_property_file_encoding=false
+cleanup.system_property_file_separator=false
+cleanup.system_property_line_separator=false
+cleanup.system_property_path_separator=false
+cleanup.ternary_operator=false
+cleanup.try_with_resource=false
+cleanup.unlooped_while=false
+cleanup.unreachable_block=false
cleanup.use_anonymous_class_creation=false
+cleanup.use_autoboxing=false
cleanup.use_blocks=false
cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_directly_map_method=false
cleanup.use_lambda=true
cleanup.use_parentheses_in_expressions=false
+cleanup.use_string_is_blank=false
cleanup.use_this_for_non_static_field_access=false
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
cleanup.use_this_for_non_static_method_access=false
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_unboxing=false
+cleanup.use_var=false
+cleanup.useless_continue=false
+cleanup.useless_return=false
+cleanup.valueof_rather_than_instantiation=false
cleanup_profile=_CDT
cleanup_settings_version=2
eclipse.preferences.version=1
diff --git a/build/org.eclipse.cdt.autotools.core/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.autotools.core/META-INF/MANIFEST.MF
index 0f06b2ba8b9..83c3654619f 100644
--- a/build/org.eclipse.cdt.autotools.core/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.autotools.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name.0
Bundle-SymbolicName: org.eclipse.cdt.autotools.core;singleton:=true
-Bundle-Version: 2.0.2.qualifier
+Bundle-Version: 2.1.300.qualifier
Bundle-Activator: org.eclipse.cdt.autotools.core.AutotoolsPlugin
Bundle-Localization: plugin
Require-Bundle: org.eclipse.ui;bundle-version="3.4.0",
@@ -28,9 +28,9 @@ Require-Bundle: org.eclipse.ui;bundle-version="3.4.0",
org.eclipse.cdt.remote.core;bundle-version="1.0.1"
Bundle-ActivationPolicy: lazy
Bundle-Vendor: %provider
-Export-Package: org.eclipse.cdt.autotools.core,
+Export-Package: org.eclipse.cdt.autotools.core;x-friends:="org.eclipse.cdt.autotools.ui",
org.eclipse.cdt.internal.autotools.core;x-friends:="org.eclipse.cdt.autotools.ui",
org.eclipse.cdt.internal.autotools.core.configure;x-friends:="org.eclipse.cdt.autotools.ui",
org.eclipse.cdt.internal.autotools.core.wizards;x-friends:="org.eclipse.cdt.autotools.ui"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
Automatic-Module-Name: org.eclipse.cdt.autotools.core
diff --git a/build/org.eclipse.cdt.autotools.core/about.html b/build/org.eclipse.cdt.autotools.core/about.html
index 164f781a8fd..b3134865230 100644
--- a/build/org.eclipse.cdt.autotools.core/about.html
+++ b/build/org.eclipse.cdt.autotools.core/about.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
</head>
+
<body lang="EN-US">
<h2>About This Content</h2>
@@ -16,7 +17,7 @@
(&quot;Content&quot;). Unless otherwise indicated below, the Content
is provided to you under the terms and conditions of the Eclipse
Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ available at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
@@ -29,8 +30,9 @@
license exists, contact the Redistributor. Unless otherwise indicated
below, the terms and conditions of the EPL still apply to any source
code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ href="https://www.eclipse.org/">https://www.eclipse.org</a>.
</p>
</body>
+
</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.autotools.core/build.properties b/build/org.eclipse.cdt.autotools.core/build.properties
index 70e82cc3ce5..afa7cc412cd 100644
--- a/build/org.eclipse.cdt.autotools.core/build.properties
+++ b/build/org.eclipse.cdt.autotools.core/build.properties
@@ -4,6 +4,7 @@ bin.includes = plugin.xml,\
META-INF/,\
.,\
html/,\
- about.html,\
- plugin.properties
+ about.html,\
+ plugin.properties,\
+ css/
src.includes = about.html
diff --git a/build/org.eclipse.cdt.autotools.core/css/e4-dark_autotools.css b/build/org.eclipse.cdt.autotools.core/css/e4-dark_autotools.css
new file mode 100644
index 00000000000..8283c9ad772
--- /dev/null
+++ b/build/org.eclipse.cdt.autotools.core/css/e4-dark_autotools.css
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2022 Kichwa Coders Canada Inc. and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ ******************************************************************************/
+
+IEclipsePreferences#org-eclipse-cdt-autotools-core:org-eclipse-cdt-autotools-core {
+ preferences:
+ "org.eclipse.cdt.autotools.ui.autoconf.editor.comment=98,98,98"
+ "org.eclipse.cdt.autotools.ui.autoconf.editor.keyword=221,40,103"
+ "org.eclipse.cdt.autotools.ui.autoconf.editor.var_ref=121,171,255"
+ "org.eclipse.cdt.autotools.ui.autoconf.editor.var_set=255,191,38"
+ "org.eclipse.cdt.autotools.ui.autoconf.editor.acmacro=13,64,209"
+ "org.eclipse.cdt.autotools.ui.autoconf.editor.ammacro=13,209,64"
+ "org.eclipse.cdt.autotools.ui.autoconf.editor.codeseq=18,144,195"
+ "org.eclipse.cdt.autotools.ui.autoconf.editor.default=200,200,200"
+ "org.eclipse.cdt.autotools.ui.automake.editor.comment=98,98,98"
+ "org.eclipse.cdt.autotools.ui.automake.editor.keyword=221,40,103"
+ "org.eclipse.cdt.autotools.ui.automake.editor.macro_ref=121,171,255"
+ "org.eclipse.cdt.autotools.ui.automake.editor.macro_def=255,191,38"
+ "org.eclipse.cdt.autotools.ui.automake.editor.function=18,144,195"
+ "org.eclipse.cdt.autotools.ui.automake.editor.default=200,200,200"
+}
diff --git a/build/org.eclipse.cdt.autotools.core/plugin.xml b/build/org.eclipse.cdt.autotools.core/plugin.xml
index 27493675eeb..972dcb8e1b2 100644
--- a/build/org.eclipse.cdt.autotools.core/plugin.xml
+++ b/build/org.eclipse.cdt.autotools.core/plugin.xml
@@ -652,8 +652,17 @@
class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuildCommandParser"
id="org.eclipse.cdt.autotools.core.LibtoolGCCBuildCommandParser"
name="%LibtoolGCCBuildOutputParser.name"
- parameter="(libtool:\s+compile:\s+)?((g?cc)|([gc]\+\+)|(clang))"
+ parameter="(libtool:\s+compile:\s+)?([^/\\\\]*)((g?cc)|([gc]\+\+)|(clang))"
prefer-non-shared="true">
</provider>
</extension>
+ <extension
+ point="org.eclipse.e4.ui.css.swt.theme">
+ <stylesheet
+ uri="css/e4-dark_autotools.css">
+ <themeid
+ refid="org.eclipse.e4.ui.css.theme.e4_dark">
+ </themeid>
+ </stylesheet>
+ </extension>
</plugin>
diff --git a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/AutotoolsEnvironmentVariableSupplier.java b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/AutotoolsEnvironmentVariableSupplier.java
index ad37a2f5658..4bf233c64a9 100644
--- a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/AutotoolsEnvironmentVariableSupplier.java
+++ b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/AutotoolsEnvironmentVariableSupplier.java
@@ -19,7 +19,6 @@ import org.eclipse.cdt.managedbuilder.core.IConfiguration;
import org.eclipse.cdt.managedbuilder.envvar.IBuildEnvironmentVariable;
import org.eclipse.cdt.managedbuilder.envvar.IConfigurationEnvironmentVariableSupplier;
import org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider;
-import org.eclipse.core.runtime.Platform;
/**
* Supplies some default environment variables for the Autotools toolchain. For
@@ -32,18 +31,15 @@ import org.eclipse.core.runtime.Platform;
public class AutotoolsEnvironmentVariableSupplier implements IConfigurationEnvironmentVariableSupplier {
private static class VerboseEnvironmentVariable extends EnvironmentVariable implements IBuildEnvironmentVariable {
- private static final String VERBOSE_VAR_NAME = "V";
- private static final String VERBOSE_VAR_VALUE = "1";
+ private static final String VERBOSE_VAR_NAME = "V"; //$NON-NLS-1$
+ private static final String VERBOSE_VAR_VALUE = "1"; //$NON-NLS-1$
private VerboseEnvironmentVariable(String name, String value, int op, String delimiter) {
super(name, value, op, delimiter);
}
private static boolean isVar(String name) {
- // Windows has case insensitive env var names
- return Platform.getOS().equals(Platform.OS_WIN32)
- ? name.equalsIgnoreCase(VerboseEnvironmentVariable.VERBOSE_VAR_NAME)
- : name.equals(VerboseEnvironmentVariable.VERBOSE_VAR_NAME);
+ return name.equals(VerboseEnvironmentVariable.VERBOSE_VAR_NAME);
}
private static IBuildEnvironmentVariable create() {
diff --git a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/AutotoolsNewMakeGenerator.java b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/AutotoolsNewMakeGenerator.java
index 9d765ee3a8a..296fbfdf692 100644
--- a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/AutotoolsNewMakeGenerator.java
+++ b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/AutotoolsNewMakeGenerator.java
@@ -93,6 +93,8 @@ import org.eclipse.remote.core.exception.RemoteConnectionException;
@SuppressWarnings("deprecation")
public class AutotoolsNewMakeGenerator extends MarkerGenerator {
+ private static final String EMPTY_STRING = ""; //$NON-NLS-1$
+
public static final String CONFIG_STATUS = "config.status"; //$NON-NLS-1$
public static final String MAKEFILE = "Makefile"; //$NON-NLS-1$
public static final String MAKEFILE_CVS = "Makefile.cvs"; //$NON-NLS-1$
@@ -114,7 +116,7 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
private static final String TARGET_USE_DEFAULT_CMD = "useDefaultCommand"; //$NON-NLS-1$
private static final String TARGET_ARGUMENTS = "buildArguments"; //$NON-NLS-1$
private static final String TARGET_COMMAND = "buildCommand"; //$NON-NLS-1$
- private static final String TARGET_RUN_ALL_BUILDERS = "runAllBuilders";
+ private static final String TARGET_RUN_ALL_BUILDERS = "runAllBuilders"; //$NON-NLS-1$
private static final String TARGET = "buildTarget"; //$NON-NLS-1$
private static final String DEFAULT_AUTORECONF = "autoreconf"; //$NON-NLS-1$
@@ -127,7 +129,7 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
private IPath buildLocation;
private String buildDir;
private String srcDir;
- private String winOSType = "";
+ private String winOSType = EMPTY_STRING;
private IConfiguration cfg;
private ICConfigurationDescription cdesc;
@@ -154,7 +156,7 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
buildDir = buildDirectory.toString();
srcDir = a.getConfigToolDirectory();
try {
- String resolved = ManagedBuildManager.getBuildMacroProvider().resolveValue(srcDir, "", null,
+ String resolved = ManagedBuildManager.getBuildMacroProvider().resolveValue(srcDir, EMPTY_STRING, null,
IBuildMacroProvider.CONTEXT_CONFIGURATION, c);
srcDir = resolved;
} catch (BuildMacroException e) {
@@ -169,7 +171,7 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
this.cfg = info.getDefaultConfiguration();
this.builder = cfg.getBuilder();
this.monitor = monitor;
- CUIPlugin.getDefault().getPreferenceStore().getString("dummy");
+ CUIPlugin.getDefault().getPreferenceStore().getString("dummy"); //$NON-NLS-1$
}
@Override
@@ -250,7 +252,7 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
// Create or get the handle for the build directory
IPath path = new Path(dirName);
boolean rc = true;
- if (dirName.length() == 0 || dirName.equals("."))
+ if (dirName.length() == 0 || dirName.equals(".")) //$NON-NLS-1$
path = getProjectLocation().append(dirName);
File f = path.toFile();
if (!f.exists()) {
@@ -297,7 +299,8 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
Status rc = regenerateMakefiles(icfg, reconfigure);
if (!rc.isOK()) {
if (status == null) {
- status = new MultiStatus(AutotoolsPlugin.getUniqueIdentifier(), IStatus.ERROR, "", null);
+ status = new MultiStatus(AutotoolsPlugin.getUniqueIdentifier(), IStatus.ERROR, EMPTY_STRING,
+ null);
}
status.add(rc);
}
@@ -305,14 +308,12 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
} else {
Status rc = regenerateMakefiles(cfg, reconfigure);
if (!rc.isOK()) {
- if (status == null) {
- status = new MultiStatus(AutotoolsPlugin.getUniqueIdentifier(), IStatus.ERROR, "", null);
- }
+ status = new MultiStatus(AutotoolsPlugin.getUniqueIdentifier(), IStatus.ERROR, EMPTY_STRING, null);
status.add(rc);
}
}
if (status == null) {
- status = new MultiStatus(ManagedBuilderCorePlugin.getUniqueIdentifier(), IStatus.OK, "", null);
+ status = new MultiStatus(ManagedBuilderCorePlugin.getUniqueIdentifier(), IStatus.OK, EMPTY_STRING, null);
}
return status;
}
@@ -320,7 +321,7 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
private Status regenerateMakefiles(IConfiguration icfg, boolean reconfigure) throws CoreException {
MultiStatus status;
int rc = IStatus.OK;
- String errMsg = "";
+ String errMsg = EMPTY_STRING;
boolean needFullConfigure = false;
// See if the user has cancelled the build
@@ -645,46 +646,46 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
* @return stripped command
*/
public static String stripEnvVars(String command, List<String> envVars) {
- Pattern p1 = Pattern.compile("(\\w+[=]\\\".*?\\\"\\s+)\\w+.*");
- Pattern p2 = Pattern.compile("(\\w+[=]'.*?'\\s+)\\w+.*");
- Pattern p3 = Pattern.compile("(\\w+[=][^\\s]+\\s+)\\w+.*");
- Pattern p4 = Pattern.compile("\\w+\\s+(\\w+[=]\\\".*?\\\"\\s*)+.*");
- Pattern p5 = Pattern.compile("\\w+\\s+(\\w+[=]'.*?'\\s*)+.*");
- Pattern p6 = Pattern.compile("\\w+\\s+(\\w+[=][^\\s]+).*");
+ Pattern p1 = Pattern.compile("(\\w+[=]\\\".*?\\\"\\s+)\\w+.*"); //$NON-NLS-1$
+ Pattern p2 = Pattern.compile("(\\w+[=]'.*?'\\s+)\\w+.*"); //$NON-NLS-1$
+ Pattern p3 = Pattern.compile("(\\w+[=][^\\s]+\\s+)\\w+.*"); //$NON-NLS-1$
+ Pattern p4 = Pattern.compile("\\w+\\s+(\\w+[=]\\\".*?\\\"\\s*)+.*"); //$NON-NLS-1$
+ Pattern p5 = Pattern.compile("\\w+\\s+(\\w+[=]'.*?'\\s*)+.*"); //$NON-NLS-1$
+ Pattern p6 = Pattern.compile("\\w+\\s+(\\w+[=][^\\s]+).*"); //$NON-NLS-1$
boolean finished = false;
while (!finished) {
Matcher m1 = p1.matcher(command);
if (m1.matches()) {
- command = command.replaceFirst("\\w+[=]\\\".*?\\\"", "").trim();
+ command = command.replaceFirst("\\w+[=]\\\".*?\\\"", EMPTY_STRING).trim(); //$NON-NLS-1$
String s = m1.group(1).trim();
- envVars.add(s.replaceAll("\\\"", ""));
+ envVars.add(s.replaceAll("\\\"", EMPTY_STRING)); //$NON-NLS-1$
} else {
Matcher m2 = p2.matcher(command);
if (m2.matches()) {
- command = command.replaceFirst("\\w+[=]'.*?'", "").trim();
+ command = command.replaceFirst("\\w+[=]'.*?'", EMPTY_STRING).trim(); //$NON-NLS-1$
String s = m2.group(1).trim();
- envVars.add(s.replaceAll("'", ""));
+ envVars.add(s.replaceAll("'", EMPTY_STRING)); //$NON-NLS-1$
} else {
Matcher m3 = p3.matcher(command);
if (m3.matches()) {
- command = command.replaceFirst("\\w+[=][^\\s]+", "").trim();
+ command = command.replaceFirst("\\w+[=][^\\s]+", EMPTY_STRING).trim(); //$NON-NLS-1$
envVars.add(m3.group(1).trim());
} else {
Matcher m4 = p4.matcher(command);
if (m4.matches()) {
- command = command.replaceFirst("\\w+[=]\\\".*?\\\"", "").trim();
+ command = command.replaceFirst("\\w+[=]\\\".*?\\\"", EMPTY_STRING).trim(); //$NON-NLS-1$
String s = m4.group(1).trim();
- envVars.add(s.replaceAll("\\\"", ""));
+ envVars.add(s.replaceAll("\\\"", EMPTY_STRING)); //$NON-NLS-1$
} else {
Matcher m5 = p5.matcher(command);
if (m5.matches()) {
- command = command.replaceFirst("\\w+[=]'.*?'", "").trim();
+ command = command.replaceFirst("\\w+[=]'.*?'", EMPTY_STRING).trim(); //$NON-NLS-1$
String s = m5.group(1).trim();
- envVars.add(s.replaceAll("'", ""));
+ envVars.add(s.replaceAll("'", EMPTY_STRING)); //$NON-NLS-1$
} else {
Matcher m6 = p6.matcher(command);
if (m6.matches()) {
- command = command.replaceFirst("\\w+[=][^\\s+]+", "").trim();
+ command = command.replaceFirst("\\w+[=][^\\s+]+", EMPTY_STRING).trim(); //$NON-NLS-1$
envVars.add(m6.group(1).trim());
} else {
finished = true;
@@ -707,26 +708,26 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
* @return stripped option
*/
public static String stripEnvVarsFromOption(String str, List<String> envVars) {
- Pattern p1 = Pattern.compile("(\\w+[=]\\\".*?\\\"\\s*).*");
- Pattern p2 = Pattern.compile("(\\w+[=]'.*?'\\s*).*");
- Pattern p3 = Pattern.compile("(\\w+[=][^\\s]+).*");
+ Pattern p1 = Pattern.compile("(\\w+[=]\\\".*?\\\"\\s*).*"); //$NON-NLS-1$
+ Pattern p2 = Pattern.compile("(\\w+[=]'.*?'\\s*).*"); //$NON-NLS-1$
+ Pattern p3 = Pattern.compile("(\\w+[=][^\\s]+).*"); //$NON-NLS-1$
boolean finished = false;
while (!finished) {
Matcher m1 = p1.matcher(str);
if (m1.matches()) {
- str = str.replaceFirst("\\w+[=]\\\".*?\\\"", "").trim();
+ str = str.replaceFirst("\\w+[=]\\\".*?\\\"", EMPTY_STRING).trim(); //$NON-NLS-1$
String s = m1.group(1).trim();
- envVars.add(s.replaceAll("\\\"", ""));
+ envVars.add(s.replaceAll("\\\"", EMPTY_STRING)); //$NON-NLS-1$
} else {
Matcher m2 = p2.matcher(str);
if (m2.matches()) {
- str = str.replaceFirst("\\w+[=]'.*?'", "").trim();
+ str = str.replaceFirst("\\w+[=]'.*?'", EMPTY_STRING).trim(); //$NON-NLS-1$
String s = m2.group(1).trim();
- envVars.add(s.replaceAll("'", ""));
+ envVars.add(s.replaceAll("'", EMPTY_STRING)); //$NON-NLS-1$
} else {
Matcher m3 = p3.matcher(str);
if (m3.matches()) {
- str = str.replaceFirst("\\w+[=][^\\s]+", "").trim();
+ str = str.replaceFirst("\\w+[=][^\\s]+", EMPTY_STRING).trim(); //$NON-NLS-1$
envVars.add(m3.group(1).trim());
} else {
finished = true;
@@ -766,7 +767,7 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
if (configOption != null)
command = stripEnvVars(configOption.getValue().trim(), envVars);
- String[] tokens = command.split("\\s");
+ String[] tokens = command.split("\\s"); //$NON-NLS-1$
if (tokens.length > 1) {
command = tokens[0];
for (int i = 1; i < tokens.length; ++i)
@@ -798,7 +799,7 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
if (autogenOption != null)
command = stripEnvVars(autogenOption.getValue().trim(), envVars);
- String[] tokens = command.split("\\s");
+ String[] tokens = command.split("\\s"); //$NON-NLS-1$
if (tokens.length > 1) {
command = tokens[0];
for (int i = 1; i < tokens.length; ++i)
@@ -840,8 +841,7 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
// try to resolve the build macros in any argument
try {
String resolved = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(
- configTargets[i], "", //$NON-NLS-1$
- " ", //$NON-NLS-1$
+ configTargets[i], EMPTY_STRING, " ", //$NON-NLS-1$
IBuildMacroProvider.CONTEXT_CONFIGURATION, cfg);
configTargets[i] = resolved;
} catch (BuildMacroException e) {
@@ -1062,10 +1062,10 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
private String getPathString(IPath path) {
String s = path.toString();
if (getOSName().equals(Platform.OS_WIN32)) {
- if (getWinOSType().equals("cygwin")) {
- s = s.replaceAll("^([a-zA-Z]):", "/cygdrive/$1");
+ if (getWinOSType().equals("cygwin")) { //$NON-NLS-1$
+ s = s.replaceAll("^([a-zA-Z]):", "/cygdrive/$1"); //$NON-NLS-1$ //$NON-NLS-2$
} else {
- s = s.replaceAll("^([a-zA-Z]):", "/$1");
+ s = s.replaceAll("^([a-zA-Z]):", "/$1"); //$NON-NLS-1$ //$NON-NLS-2$
}
}
return s;
@@ -1073,9 +1073,9 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
// Fix any escape characters in sh -c command arguments
private String fixEscapeChars(String s) {
- s = s.replaceAll("\\\\", "\\\\\\\\");
- s = s.replaceAll("\\(", "\\\\(");
- s = s.replaceAll("\\)", "\\\\)");
+ s = s.replaceAll("\\\\", "\\\\\\\\"); //$NON-NLS-1$ //$NON-NLS-2$
+ s = s.replaceAll("\\(", "\\\\("); //$NON-NLS-1$ //$NON-NLS-2$
+ s = s.replaceAll("\\)", "\\\\)"); //$NON-NLS-1$ //$NON-NLS-2$
return s;
}
@@ -1116,16 +1116,15 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
if (command == null)
command = arg;
else
- command += " " + arg;
+ command += " " + arg; //$NON-NLS-1$
}
- configTargets = new String[] { "-c", command };
+ configTargets = new String[] { "-c", command }; //$NON-NLS-1$
for (int i = 0; i < configTargets.length; ++i) {
// try to resolve the build macros in any argument
try {
String resolved = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(
- configTargets[i], "", //$NON-NLS-1$
- " ", //$NON-NLS-1$
+ configTargets[i], EMPTY_STRING, " ", //$NON-NLS-1$
IBuildMacroProvider.CONTEXT_CONFIGURATION, cfg);
// strip any env-var settings from options
// fix for bug #356278
@@ -1161,12 +1160,12 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
// Display command-line environment variables that have been stripped by us
// because launch showCommand won't do this.
if (additionalEnvs != null && additionalEnvs.size() > 0) {
- buf.append(AutotoolsPlugin.getResourceString("MakeGenerator.commandline.envvars"));
+ buf.append(AutotoolsPlugin.getResourceString("MakeGenerator.commandline.envvars")); //$NON-NLS-1$
buf.append(System.getProperty("line.separator", "\n")); //$NON-NLS-1$ //$NON-NLS-2$
- buf.append("\t");
+ buf.append("\t"); //$NON-NLS-1$
for (int i = 0; i < additionalEnvs.size(); ++i) {
String envvar = additionalEnvs.get(i);
- buf.append(envvar.replaceFirst("(\\w+=)(.*)", " $1\"$2\""));
+ buf.append(envvar.replaceFirst("(\\w+=)(.*)", " $1\"$2\"")); //$NON-NLS-1$ //$NON-NLS-2$
}
buf.append(System.getProperty("line.separator", "\n")); //$NON-NLS-1$ //$NON-NLS-2$
buf.append(System.getProperty("line.separator", "\n")); //$NON-NLS-1$ //$NON-NLS-2$
@@ -1474,7 +1473,7 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
Class<? extends IMakeTargetManager> c = makeTargetManager.getClass();
boolean targetsAdded = false;
try {
- Method m = c.getMethod("setTargets", IContainer.class, IMakeTarget[].class);
+ Method m = c.getMethod("setTargets", IContainer.class, IMakeTarget[].class); //$NON-NLS-1$
m.invoke(makeTargetManager, project, makeTargetArray);
targetsAdded = true;
} catch (NoSuchMethodException | IllegalArgumentException | IllegalAccessException
diff --git a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/AutotoolsPropertyConstants.java b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/AutotoolsPropertyConstants.java
index 314e7ecf232..147d142afd7 100644
--- a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/AutotoolsPropertyConstants.java
+++ b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/AutotoolsPropertyConstants.java
@@ -37,12 +37,13 @@ public class AutotoolsPropertyConstants {
public static final QualifiedName LIBTOOLIZE_TOOL = new QualifiedName(PREFIX, "LibtoolizePath"); //$NON-NLS-1$
public static final QualifiedName CLEAN_DELETE = new QualifiedName(PREFIX, "CleanDelete"); //$NON-NLS-1$
public static final QualifiedName CLEAN_MAKE_TARGET = new QualifiedName(PREFIX, "CleanMakeTarget"); //$NON-NLS-1$
- public static final QualifiedName SCANNER_USE_MAKE_W = new QualifiedName(PREFIX, "ScannerUseMakeW");
+ public static final QualifiedName SCANNER_USE_MAKE_W = new QualifiedName(PREFIX, "ScannerUseMakeW"); //$NON-NLS-1$
public static final QualifiedName AUTO_BUILD_NAME = new QualifiedName(PREFIX, "AutoBuildName"); //$NON-NLS-1$
public static final QualifiedName OPEN_INCLUDE = new QualifiedName(PREFIX, "IncludeResourceMapping"); //$NON-NLS-1$
public static final QualifiedName OPEN_INCLUDE_P = new QualifiedName(PREFIX, "PersistentIncludeResourceMapping"); //$NON-NLS-1$
- public static final QualifiedName SCANNER_INFO_DIRTY = new QualifiedName(PREFIX, "ScannerInfoDirty"); // $NON-NLSp-1$
+ public static final QualifiedName SCANNER_INFO_DIRTY = new QualifiedName(PREFIX, "ScannerInfoDirty"); //$NON-NLS-1$
+ @SuppressWarnings("nls")
public static final String[] fACVersions = { "2.13", "2.59", "2.61", "2.67", "2.68" }; //$NON-NLS-1$
public static final String AC_VERSION_2_13 = fACVersions[0];
public static final String AC_VERSION_2_59 = fACVersions[1];
@@ -51,6 +52,7 @@ public class AutotoolsPropertyConstants {
public static final String AC_VERSION_2_68 = fACVersions[4];
public static final String LATEST_AC_VERSION = fACVersions[fACVersions.length - 1];
+ @SuppressWarnings("nls")
public static final String[] fAMVersions = { "1.4-p6", "1.9.5", "1.9.6", "1.11.1" }; //$NON-NLS-1$
public static final String LATEST_AM_VERSION = fAMVersions[fAMVersions.length - 1];
diff --git a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/ErrorParser.java b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/ErrorParser.java
index 5873edf923d..a8c2ed8a5da 100644
--- a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/ErrorParser.java
+++ b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/ErrorParser.java
@@ -71,7 +71,7 @@ public class ErrorParser extends MarkerGenerator implements IErrorParser {
if (marker != null) {
// Check to see if addProblemMarker exists.
try {
- Method method = eoParser.getClass().getMethod("addProblemMarker", ProblemMarkerInfo.class);
+ Method method = eoParser.getClass().getMethod("addProblemMarker", ProblemMarkerInfo.class); //$NON-NLS-1$
try {
method.invoke(eoParser, marker);
return true;
@@ -145,7 +145,7 @@ public class ErrorParser extends MarkerGenerator implements IErrorParser {
int lineNumber = getErrorConfigLineNumber(name);
// now open configure file.
- File file = new File(sourcePath + "/configure");
+ File file = new File(sourcePath + "/configure"); //$NON-NLS-1$
// If the log file is not present there is nothing we can do.
if (!file.exists())
return null;
@@ -166,13 +166,13 @@ public class ErrorParser extends MarkerGenerator implements IErrorParser {
Matcher m = errorPattern.matcher(line);
if (m.matches()) {
String typeString = m.group(1);
- if (typeString.equals("prog"))
+ if (typeString.equals("prog")) //$NON-NLS-1$
return AutotoolsProblemMarkerInfo.Type.PROG;
- if (typeString.equals("header"))
+ if (typeString.equals("header")) //$NON-NLS-1$
return AutotoolsProblemMarkerInfo.Type.HEADER;
- if (typeString.equals("file"))
+ if (typeString.equals("file")) //$NON-NLS-1$
return AutotoolsProblemMarkerInfo.Type.FILE;
- if (typeString.equals("lib"))
+ if (typeString.equals("lib")) //$NON-NLS-1$
return AutotoolsProblemMarkerInfo.Type.LIB;
return null;
@@ -194,7 +194,7 @@ public class ErrorParser extends MarkerGenerator implements IErrorParser {
* @return
*/
private int getErrorConfigLineNumber(String name) {
- File file = new File(buildDir + "/config.log");
+ File file = new File(buildDir + "/config.log"); //$NON-NLS-1$
// If the log file is not present there is nothing we can do.
if (!file.exists())
return -1;
diff --git a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/PkgconfigErrorResolution.java b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/PkgconfigErrorResolution.java
index 8fb79eb627e..624b401a1db 100644
--- a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/PkgconfigErrorResolution.java
+++ b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/PkgconfigErrorResolution.java
@@ -62,7 +62,7 @@ public class PkgconfigErrorResolution implements IMarkerResolution {
public PkgconfigErrorResolution(String pkgconfigRequirement) {
// Get the pkgconfig package name from the requirement message.
- Pattern p = Pattern.compile("(.*?)[\\s,>,<,=].*");
+ Pattern p = Pattern.compile("(.*?)[\\s,>,<,=].*"); //$NON-NLS-1$
Matcher m = p.matcher(pkgconfigRequirement);
if (m.matches()) {
pkgName = m.group(1);
@@ -98,7 +98,7 @@ public class PkgconfigErrorResolution implements IMarkerResolution {
// Use CDT launcher to run rpm to query the package that provides
// the pkgconfig .pc file for the package in question.
ConsoleOutputStream output = new ConsoleOutputStream();
- Process proc = launcher.execute(commandPath, commandArgs, null, new Path("."), new NullProgressMonitor());
+ Process proc = launcher.execute(commandPath, commandArgs, null, new Path("."), new NullProgressMonitor()); //$NON-NLS-1$
if (proc != null) {
try {
// Close the input of the process since we will never write to
@@ -111,7 +111,7 @@ public class PkgconfigErrorResolution implements IMarkerResolution {
} else {
String result = output.readBuffer();
if (!result.startsWith("error:")) //$NON-NLS-1$
- System.out.println("need to execute update of " + result);
+ System.out.println("need to execute update of " + result); //$NON-NLS-1$
}
}
diff --git a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/VersionComparator.java b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/VersionComparator.java
index b980ec8dfc2..8160469bbd3 100644
--- a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/VersionComparator.java
+++ b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/VersionComparator.java
@@ -31,8 +31,8 @@ public class VersionComparator {
* VersionComparator.compare("1.5.1", "1.5.1") returns 0
*/
public static int compare(String v1, String v2) {
- String[] v1digits = v1.split("\\.");
- String[] v2digits = v2.split("\\.");
+ String[] v1digits = v1.split("\\."); //$NON-NLS-1$
+ String[] v2digits = v2.split("\\."); //$NON-NLS-1$
for (int i = 0; i < v1digits.length && i < v2digits.length; i++) {
int d1 = Integer.valueOf(v1digits[i]);
diff --git a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/AbstractConfigurationOption.java b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/AbstractConfigurationOption.java
index 38916f0d45b..97d7e2a2ba2 100644
--- a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/AbstractConfigurationOption.java
+++ b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/AbstractConfigurationOption.java
@@ -64,7 +64,7 @@ public abstract class AbstractConfigurationOption implements IConfigureOption {
}
public String getParameterName() {
- return "--" + getName();
+ return "--" + getName(); //$NON-NLS-1$
}
@Override
diff --git a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/AutotoolsConfiguration.java b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/AutotoolsConfiguration.java
index 6e3ce526df5..0e5514fcbd5 100644
--- a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/AutotoolsConfiguration.java
+++ b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/AutotoolsConfiguration.java
@@ -133,11 +133,11 @@ public class AutotoolsConfiguration implements IAConfiguration {
IConfigureOption.BIN),
new Option(AutotoolsOptionConstants.FLAG_CFLAGS, "cflags", AutotoolsOptionConstants.FLAG_CFLAGS_FLAGS, //$NON-NLS-1$
IConfigureOption.FLAG),
- new Option(AutotoolsOptionConstants.OPT_CFLAGS_DEBUG, "cflags_debug", IConfigureOption.FLAGVALUE), //$NON-NLS-1$ //$NON-NLS-2$
- new Option(AutotoolsOptionConstants.OPT_CFLAGS_GPROF, "cflags_gprof", IConfigureOption.FLAGVALUE), //$NON-NLS-1$ //$NON-NLS-2$
- new Option(AutotoolsOptionConstants.OPT_CFLAGS_GCOV, "cflags_gcov", IConfigureOption.FLAGVALUE), //$NON-NLS-1$ //$NON-NLS-2$
+ new Option(AutotoolsOptionConstants.OPT_CFLAGS_DEBUG, "cflags_debug", IConfigureOption.FLAGVALUE), //$NON-NLS-1$
+ new Option(AutotoolsOptionConstants.OPT_CFLAGS_GPROF, "cflags_gprof", IConfigureOption.FLAGVALUE), //$NON-NLS-1$
+ new Option(AutotoolsOptionConstants.OPT_CFLAGS_GCOV, "cflags_gcov", IConfigureOption.FLAGVALUE), //$NON-NLS-1$
new Option(AutotoolsOptionConstants.OPT_USER, IConfigureOption.MULTIARG),
- new Option(AutotoolsOptionConstants.TOOL_AUTOGEN, "autogen", "autogen.sh", IConfigureOption.TOOL), //$NON-NLS-1$
+ new Option(AutotoolsOptionConstants.TOOL_AUTOGEN, "autogen", "autogen.sh", IConfigureOption.TOOL), //$NON-NLS-1$ //$NON-NLS-2$
new Option(AutotoolsOptionConstants.CATEGORY_OPTIONS, IConfigureOption.CATEGORY),
new Option(AutotoolsOptionConstants.OPT_AUTOGENOPTS, IConfigureOption.MULTIARG), };
@@ -406,12 +406,12 @@ public class AutotoolsConfiguration implements IAConfiguration {
@Override
public void setConfigToolDirectory(String configToolDirectory) {
- setOption("configdir", configToolDirectory);
+ setOption("configdir", configToolDirectory); //$NON-NLS-1$
}
@Override
public String getConfigToolDirectory() {
- IConfigureOption option = configOptions.get("configdir");
+ IConfigureOption option = configOptions.get("configdir"); //$NON-NLS-1$
return option.getValue();
}
diff --git a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/AutotoolsConfigurationManager.java b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/AutotoolsConfigurationManager.java
index c86e682eb0e..aa418c7c7a6 100644
--- a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/AutotoolsConfigurationManager.java
+++ b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/AutotoolsConfigurationManager.java
@@ -417,19 +417,19 @@ public class AutotoolsConfigurationManager implements IResourceChangeListener {
String childName = children.get(k);
IConfigureOption childopt = cfg.getOption(childName);
p.println("<flagvalue id=\"" + childopt.getName() + "\" value=\"" //$NON-NLS-1$ //$NON-NLS-2$
- + xmlEscape(childopt.getValue()) + "\"/>"); //$NON-NLS-3$
+ + xmlEscape(childopt.getValue()) + "\"/>"); //$NON-NLS-1$
}
p.println("</flag>"); //$NON-NLS-1$
} else if (!opt.isCategory() && !opt.isFlagValue())
p.println("<option id=\"" + option.getName() + "\" value=\"" + xmlEscape(opt.getValue()) //$NON-NLS-1$ //$NON-NLS-2$
- + "\"/>"); //$NON-NLS-3$
+ + "\"/>"); //$NON-NLS-1$
}
p.println("</configuration>"); //$NON-NLS-1$
// Sync name field as this configuration is now
// officially saved
syncNameField(cfgd);
}
- p.println("</configurations>");
+ p.println("</configurations>"); //$NON-NLS-1$
}
}
} catch (IOException e) {
@@ -503,7 +503,7 @@ public class AutotoolsConfigurationManager implements IResourceChangeListener {
p.println("</configuration>"); //$NON-NLS-1$
}
}
- p.println("</configurations>");
+ p.println("</configurations>"); //$NON-NLS-1$
}
}
} catch (IOException e) {
@@ -602,7 +602,7 @@ public class AutotoolsConfigurationManager implements IResourceChangeListener {
private String createDummyId() {
for (;;) {
- String id = "TEMP_" + rand.nextInt();
+ String id = "TEMP_" + rand.nextInt(); //$NON-NLS-1$
if (tmpConfigs.get(id) == null)
return id;
}
diff --git a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/AutotoolsOptionValueHandler.java b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/AutotoolsOptionValueHandler.java
index 53249c96f28..069a0fad1ec 100644
--- a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/AutotoolsOptionValueHandler.java
+++ b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/AutotoolsOptionValueHandler.java
@@ -49,7 +49,7 @@ public class AutotoolsOptionValueHandler extends ManagedOptionValueHandler imple
// SortedSet<Integer> nums = new TreeSet<Integer>();
IConfiguration configuration = (IConfiguration) buildObject;
ICConfigurationDescription cfgd = ManagedBuildManager.getDescriptionForConfiguration(configuration);
- if (option.getName().equals("Name") && cfgd != null) {
+ if (option.getName().equals("Name") && cfgd != null) { //$NON-NLS-1$
String cfgId = cfgd.getId();
if (!value.isEmpty() && !value.equals(cfgId)) {
// we have a cloned configuration and we know that the
@@ -95,7 +95,7 @@ public class AutotoolsOptionValueHandler extends ManagedOptionValueHandler imple
private String fixName(String cfgName) {
// Replace whitespace with underscores.
- return cfgName.replaceAll("\\s", "_");
+ return cfgName.replaceAll("\\s", "_"); //$NON-NLS-1$ //$NON-NLS-2$
}
// IOptionApplicability methods
diff --git a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/ConfigureMessages.java b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/ConfigureMessages.java
index b3d6d866785..55c5a4f3e03 100644
--- a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/ConfigureMessages.java
+++ b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/ConfigureMessages.java
@@ -26,7 +26,7 @@ public class ConfigureMessages {
}
public static String getConfigureDescription(String name) {
- return getString("Option.configure." + name); //$NON-NLS-11$
+ return getString("Option.configure." + name); //$NON-NLS-1$
}
public static String getConfigureTip(String name) {
diff --git a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/ConfigureOptionCategory.java b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/ConfigureOptionCategory.java
index 9fbdc8f9eea..235b393a7fb 100644
--- a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/ConfigureOptionCategory.java
+++ b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/ConfigureOptionCategory.java
@@ -40,7 +40,7 @@ public class ConfigureOptionCategory implements IConfigureOption {
@Override
public String getParameter() {
- return "";
+ return ""; //$NON-NLS-1$
}
@Override
@@ -50,12 +50,12 @@ public class ConfigureOptionCategory implements IConfigureOption {
@Override
public String getToolTip() {
- return "";
+ return ""; //$NON-NLS-1$
}
@Override
public String getValue() {
- return "null";
+ return "null"; //$NON-NLS-1$
}
@Override
diff --git a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/FlagConfigureOption.java b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/FlagConfigureOption.java
index a4a175fcd79..2b1b684e5e5 100644
--- a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/FlagConfigureOption.java
+++ b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/FlagConfigureOption.java
@@ -43,7 +43,7 @@ public class FlagConfigureOption extends AbstractConfigurationOption {
StringBuilder parms = new StringBuilder();
// Multiple flags are designated by putting multiple flags together using "|" as delimiter
String[] flagNames = getValue().split("\\|"); //$NON-NLS-1$
- String flagSeparator = "";
+ String flagSeparator = ""; //$NON-NLS-1$
for (String flagName : flagNames) {
parms.append(flagSeparator);
flagSeparator = " "; //$NON-NLS-1$
diff --git a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/FlagValueConfigureOption.java b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/FlagValueConfigureOption.java
index 8346f5595ff..aea788dbef1 100644
--- a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/FlagValueConfigureOption.java
+++ b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/FlagValueConfigureOption.java
@@ -37,7 +37,7 @@ public class FlagValueConfigureOption extends BinConfigureOption implements IFla
@Override
public String getParameter() {
- return "";
+ return ""; //$NON-NLS-1$
}
@Override
diff --git a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/InternalConfigureOption.java b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/InternalConfigureOption.java
index e2b337542b2..9c1b414cea3 100644
--- a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/InternalConfigureOption.java
+++ b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/InternalConfigureOption.java
@@ -52,7 +52,7 @@ public class InternalConfigureOption extends AbstractConfigurationOption {
@Override
public String getParameter() {
- return "";
+ return ""; //$NON-NLS-1$
}
@Override
diff --git a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/StringConfigureOption.java b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/StringConfigureOption.java
index 747269c184b..65ad0020fc0 100644
--- a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/StringConfigureOption.java
+++ b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/configure/StringConfigureOption.java
@@ -54,7 +54,7 @@ public class StringConfigureOption extends AbstractConfigurationOption {
public String getParameter() {
if (isParmSet())
return getParameterName() + "=" + getValue(); //$NON-NLS-1$
- return "";
+ return ""; //$NON-NLS-1$
}
@Override
diff --git a/build/org.eclipse.cdt.autotools.docs/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.autotools.docs/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.autotools.docs/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.autotools.docs/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.autotools.docs/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index e44576346c4..00000000000
--- a/build/org.eclipse.cdt.autotools.docs/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,133 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_functional_interfaces=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.insert_inferred_type_arguments=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_redundant_modifiers=false
-cleanup.remove_redundant_semicolons=true
-cleanup.remove_redundant_type_arguments=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=false
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_lambda=true
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_CDT
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_CDT
-formatter_settings_version=14
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=1000
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=1000
-org.eclipse.jdt.ui.text.custom_code_templates=
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=false
-sp_cleanup.remove_redundant_semicolons=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/build/org.eclipse.cdt.autotools.docs/CDT/Autotools/User_Guide/Updating-This-Document.html b/build/org.eclipse.cdt.autotools.docs/CDT/Autotools/User_Guide/Updating-This-Document.html
index 8d9e2b496e2..be97848ade2 100644
--- a/build/org.eclipse.cdt.autotools.docs/CDT/Autotools/User_Guide/Updating-This-Document.html
+++ b/build/org.eclipse.cdt.autotools.docs/CDT/Autotools/User_Guide/Updating-This-Document.html
@@ -28,7 +28,7 @@
<h1 id="Updating_This_Document">Updating This Document</h1>
<p>This document is maintained in a collaborative wiki. If you wish to update or modify this document please visit
- <a href="http://wiki.eclipse.org/CDT/Autotools/User_Guide">http://wiki.eclipse.org/CDT/Autotools/User_Guide</a>
+ <a href="https://wiki.eclipse.org/CDT/Autotools/User_Guide">https://wiki.eclipse.org/CDT/Autotools/User_Guide</a>
</p><hr class="navigation-separator"/>
<table class="navigation" style="width: 100%;" border="0" summary="navigation">
<tr>
diff --git a/build/org.eclipse.cdt.autotools.docs/CDT/Autotools/User_Guide/User-Guide.html b/build/org.eclipse.cdt.autotools.docs/CDT/Autotools/User_Guide/User-Guide.html
index 7a67fc3ec07..24e76139ed7 100644
--- a/build/org.eclipse.cdt.autotools.docs/CDT/Autotools/User_Guide/User-Guide.html
+++ b/build/org.eclipse.cdt.autotools.docs/CDT/Autotools/User_Guide/User-Guide.html
@@ -37,9 +37,9 @@
exists or find the C compiler). The macros are written in a language called m4 and the developer is free to create their own macros to add to the repository. </p>
<p>The Autotools plug-in adds support for running the configure script prior to the build. As well, support is added for invoking the Autotools themselves as well as maintaining the files they use. An Autotools project extends a CDT Makefile project. Therefore, functionality in the CDT for supporting such a project applies to an Autotools project as well (e.g. C/C++ Property pages).</p>
<p>For more details on the GNU Autotools, see
- <a href="http://www.gnu.org/software/autoconf/">http://www.gnu.org/software/autoconf/</a> and
+ <a href="https://www.gnu.org/software/autoconf/">https://www.gnu.org/software/autoconf/</a> and
- <a href="http://www.gnu.org/software/automake/">http://www.gnu.org/software/automake/</a>
+ <a href="https://www.gnu.org/software/automake/">https://www.gnu.org/software/automake/</a>
</p><hr class="navigation-separator"/>
<table class="navigation" style="width: 100%;" border="0" summary="navigation">
<tr>
diff --git a/build/org.eclipse.cdt.autotools.docs/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.autotools.docs/META-INF/MANIFEST.MF
index f8a1fdbcf36..d910f4d5f6d 100644
--- a/build/org.eclipse.cdt.autotools.docs/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.autotools.docs/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %bundleName
Bundle-SymbolicName: org.eclipse.cdt.autotools.docs;singleton:=true
-Bundle-Version: 2.0.100.qualifier
+Bundle-Version: 2.0.1200.qualifier
Bundle-Vendor: %provider
Bundle-Localization: plugin
Require-Bundle: org.eclipse.help,
diff --git a/build/org.eclipse.cdt.autotools.docs/about.html b/build/org.eclipse.cdt.autotools.docs/about.html
index 164f781a8fd..b3134865230 100644
--- a/build/org.eclipse.cdt.autotools.docs/about.html
+++ b/build/org.eclipse.cdt.autotools.docs/about.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
</head>
+
<body lang="EN-US">
<h2>About This Content</h2>
@@ -16,7 +17,7 @@
(&quot;Content&quot;). Unless otherwise indicated below, the Content
is provided to you under the terms and conditions of the Eclipse
Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ available at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
@@ -29,8 +30,9 @@
license exists, contact the Redistributor. Unless otherwise indicated
below, the terms and conditions of the EPL still apply to any source
code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ href="https://www.eclipse.org/">https://www.eclipse.org</a>.
</p>
</body>
+
</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.autotools.docs/build-helper.xml b/build/org.eclipse.cdt.autotools.docs/build-helper.xml
index 7831830028f..17fa72e1d7e 100644
--- a/build/org.eclipse.cdt.autotools.docs/build-helper.xml
+++ b/build/org.eclipse.cdt.autotools.docs/build-helper.xml
@@ -16,7 +16,7 @@
Generate Eclipse help content for the CDT autotools user guide
</description>
- <property name="autotools.help.doc.url.base" value="http://wiki.eclipse.org"/>
+ <property name="autotools.help.doc.url.base" value="https://wiki.eclipse.org"/>
<property name="autotools.wiki.url.base" value="${autotools.help.doc.url.base}/CDT/Autotools"/>
<property name="imageFolder" value="images"/>
@@ -29,7 +29,7 @@
= Updating This Document =
This document is maintained in a collaborative wiki. If you wish to update or modify this document please visit
-http://wiki.eclipse.org/CDT/Autotools/User_Guide
+https://wiki.eclipse.org/CDT/Autotools/User_Guide
</pageAppendum>
</mediawiki-to-eclipse-help>
<replace file="CDT/Autotools/User_Guide/User-Guide.html" token="{{#eclipseproject:tools.cdt}}" value=""/>
diff --git a/build/org.eclipse.cdt.autotools.docs/build-index.xml b/build/org.eclipse.cdt.autotools.docs/build-index.xml
index 717f473343c..23a8bf4de53 100644
--- a/build/org.eclipse.cdt.autotools.docs/build-index.xml
+++ b/build/org.eclipse.cdt.autotools.docs/build-index.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
- Copyright (c) 2012 Marc-Andre Laperle, Inc. and others
+ Copyright (c) 2012 Marc-Andre Laperle and others
This program and the accompanying materials
are made available under the terms of the Eclipse Public License 2.0
which accompanies this distribution, and is available at
diff --git a/build/org.eclipse.cdt.autotools.docs/build.properties b/build/org.eclipse.cdt.autotools.docs/build.properties
index 61d14419ea6..46a812d6954 100644
--- a/build/org.eclipse.cdt.autotools.docs/build.properties
+++ b/build/org.eclipse.cdt.autotools.docs/build.properties
@@ -12,3 +12,4 @@ bin.includes = META-INF/,\
CDT/
jars.compile.order = .
+src.includes = about.html
diff --git a/build/org.eclipse.cdt.autotools.docs/pom.xml b/build/org.eclipse.cdt.autotools.docs/pom.xml
index 27a307dde24..153d239866c 100644
--- a/build/org.eclipse.cdt.autotools.docs/pom.xml
+++ b/build/org.eclipse.cdt.autotools.docs/pom.xml
@@ -1,4 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2008, 2021 Contributors to the Eclipse Foundation
+
+ This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License 2.0
+ which accompanies this distribution, and is available at
+ https://www.eclipse.org/legal/epl-2.0/
+
+ SPDX-License-Identifier: EPL-2.0
+-->
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
@@ -7,14 +17,33 @@
<parent>
<groupId>org.eclipse.cdt</groupId>
<artifactId>cdt-parent</artifactId>
- <version>9.9.0-SNAPSHOT</version>
+ <version>10.7.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
- <version>2.0.100-SNAPSHOT</version>
+ <version>2.0.1200-SNAPSHOT</version>
<artifactId>org.eclipse.cdt.autotools.docs</artifactId>
<packaging>eclipse-plugin</packaging>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.tycho</groupId>
+ <artifactId>tycho-source-plugin</artifactId>
+ <version>${tycho-version}</version>
+ <executions>
+ <execution>
+ <id>plugin-source</id>
+ <phase>none</phase>
+ </execution>
+ <execution>
+ <id>attach-source</id>
+ <phase>none</phase>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
<profiles>
<profile>
<id>build-doc</id>
@@ -28,7 +57,7 @@
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-eclipserun-plugin</artifactId>
- <version>${tycho-extras-version}</version>
+ <version>${tycho-version}</version>
<configuration>
<appArgLine>-application org.eclipse.ant.core.antRunner -buildfile build-index.xml build.index</appArgLine>
<dependencies>
@@ -104,7 +133,6 @@
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
- <version>1.8</version>
<executions>
<execution>
<phase>compile</phase>
diff --git a/build/org.eclipse.cdt.autotools.docs/tools.xml b/build/org.eclipse.cdt.autotools.docs/tools.xml
index 40c2720bbbc..d3e6fd9c054 100644
--- a/build/org.eclipse.cdt.autotools.docs/tools.xml
+++ b/build/org.eclipse.cdt.autotools.docs/tools.xml
@@ -2,10 +2,10 @@
<?NLS TYPE="org.eclipse.help.toc"?>
<toc label="GNU Tools On-line Documentation">
- <topic label="gcc" href="http://gcc.gnu.org/onlinedocs/"/>
- <topic label="binutils" href="http://sourceware.org/binutils/docs/"/>
- <topic label="autoconf" href="http://www.gnu.org/software/autoconf/manual/html_node/index.html"/>
- <topic label="automake" href="http://www.gnu.org/software/automake/manual/html_node/index.html"/>
- <topic label="pkg-config" href="http://people.freedesktop.org/~dbn/pkg-config-guide.html"/>
+ <topic label="gcc" href="https://gcc.gnu.org/onlinedocs/"/>
+ <topic label="binutils" href="https://sourceware.org/binutils/docs/"/>
+ <topic label="autoconf" href="https://www.gnu.org/software/autoconf/manual/html_node/index.html"/>
+ <topic label="automake" href="https://www.gnu.org/software/automake/manual/html_node/index.html"/>
+ <topic label="pkg-config" href="https://people.freedesktop.org/~dbn/pkg-config-guide.html"/>
<anchor id="moregnutools"/>
</toc>
diff --git a/build/org.eclipse.cdt.autotools.tests/.classpath b/build/org.eclipse.cdt.autotools.tests/.classpath
index c4a519dc515..763bbba0103 100644
--- a/build/org.eclipse.cdt.autotools.tests/.classpath
+++ b/build/org.eclipse.cdt.autotools.tests/.classpath
@@ -1,7 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry exported="true" kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="src">
+ <attributes>
+ <attribute name="test" value="true"/>
+ </attributes>
+ </classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/build/org.eclipse.cdt.autotools.tests/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.autotools.tests/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.autotools.tests/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.autotools.tests/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.autotools.tests/.settings/org.eclipse.jdt.core.prefs
index ad05599159f..5b1c443114d 100644
--- a/build/org.eclipse.cdt.autotools.tests/.settings/org.eclipse.jdt.core.prefs
+++ b/build/org.eclipse.cdt.autotools.tests/.settings/org.eclipse.jdt.core.prefs
@@ -30,9 +30,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -49,6 +49,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
@@ -107,6 +108,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
@@ -144,13 +146,14 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -158,21 +161,24 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@@ -264,11 +270,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@@ -299,6 +306,8 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@@ -323,13 +332,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@@ -377,6 +390,8 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do no
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@@ -413,9 +428,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@@ -454,10 +472,14 @@ org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/build/org.eclipse.cdt.autotools.tests/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.autotools.tests/.settings/org.eclipse.jdt.ui.prefs
index e44576346c4..d35ba9b5231 100644
--- a/build/org.eclipse.cdt.autotools.tests/.settings/org.eclipse.jdt.ui.prefs
+++ b/build/org.eclipse.cdt.autotools.tests/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,4 @@
+cleanup.add_all=false
cleanup.add_default_serial_version_id=true
cleanup.add_generated_serial_version_id=false
cleanup.add_missing_annotations=true
@@ -11,25 +12,72 @@ cleanup.always_use_blocks=true
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=false
cleanup.always_use_this_for_non_static_method_access=false
+cleanup.array_with_curly=false
+cleanup.arrays_fill=false
+cleanup.bitwise_conditional_expression=false
+cleanup.boolean_literal=false
+cleanup.boolean_value_rather_than_comparison=false
+cleanup.break_loop=false
+cleanup.collection_cloning=false
+cleanup.comparing_on_criteria=false
+cleanup.comparison_statement=false
+cleanup.controlflow_merge=false
cleanup.convert_functional_interfaces=false
cleanup.convert_to_enhanced_for_loop=false
+cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
+cleanup.convert_to_switch_expressions=false
cleanup.correct_indentation=false
+cleanup.do_while_rather_than_while=true
+cleanup.double_negation=false
+cleanup.else_if=false
+cleanup.embedded_if=false
+cleanup.evaluate_nullable=false
+cleanup.extract_increment=false
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
+cleanup.hash=false
+cleanup.if_condition=false
cleanup.insert_inferred_type_arguments=false
+cleanup.instanceof=false
+cleanup.instanceof_keyword=false
+cleanup.invert_equals=false
+cleanup.join=false
+cleanup.lazy_logical_operator=false
cleanup.make_local_variable_final=true
cleanup.make_parameters_final=false
cleanup.make_private_fields_final=true
cleanup.make_type_abstract_if_missing_method=false
cleanup.make_variable_declarations_final=false
+cleanup.map_cloning=false
+cleanup.merge_conditional_blocks=false
+cleanup.multi_catch=false
cleanup.never_use_blocks=false
cleanup.never_use_parentheses_in_expressions=true
+cleanup.no_string_creation=false
+cleanup.no_super=false
+cleanup.number_suffix=false
+cleanup.objects_equals=false
+cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
+cleanup.operand_factorization=false
cleanup.organize_imports=true
+cleanup.overridden_assignment=false
+cleanup.plain_replacement=false
+cleanup.precompile_regex=false
+cleanup.primitive_comparison=false
+cleanup.primitive_parsing=false
+cleanup.primitive_rather_than_wrapper=false
+cleanup.primitive_serialization=false
+cleanup.pull_out_if_from_if_else=false
+cleanup.pull_up_assignment=false
+cleanup.push_down_negation=false
cleanup.qualify_static_field_accesses_with_declaring_class=false
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
cleanup.qualify_static_member_accesses_with_declaring_class=false
cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.reduce_indentation=false
+cleanup.redundant_comparator=false
+cleanup.redundant_falling_through_block_end=false
cleanup.remove_private_constructors=true
cleanup.remove_redundant_modifiers=false
cleanup.remove_redundant_semicolons=true
@@ -37,25 +85,57 @@ cleanup.remove_redundant_type_arguments=true
cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true
cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_array_creation=false
cleanup.remove_unnecessary_casts=true
cleanup.remove_unnecessary_nls_tags=false
cleanup.remove_unused_imports=true
cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_method_parameters=false
cleanup.remove_unused_private_fields=true
cleanup.remove_unused_private_members=false
cleanup.remove_unused_private_methods=true
cleanup.remove_unused_private_types=true
+cleanup.return_expression=false
+cleanup.simplify_lambda_expression_and_method_ref=false
+cleanup.single_used_field=false
cleanup.sort_members=false
cleanup.sort_members_all=false
+cleanup.standard_comparison=false
+cleanup.static_inner_class=false
+cleanup.strictly_equal_or_different=false
+cleanup.stringbuffer_to_stringbuilder=false
+cleanup.stringbuilder=false
+cleanup.stringbuilder_for_local_vars=true
+cleanup.stringconcat_to_textblock=false
+cleanup.substring=false
+cleanup.switch=false
+cleanup.system_property=false
+cleanup.system_property_boolean=false
+cleanup.system_property_file_encoding=false
+cleanup.system_property_file_separator=false
+cleanup.system_property_line_separator=false
+cleanup.system_property_path_separator=false
+cleanup.ternary_operator=false
+cleanup.try_with_resource=false
+cleanup.unlooped_while=false
+cleanup.unreachable_block=false
cleanup.use_anonymous_class_creation=false
+cleanup.use_autoboxing=false
cleanup.use_blocks=false
cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_directly_map_method=false
cleanup.use_lambda=true
cleanup.use_parentheses_in_expressions=false
+cleanup.use_string_is_blank=false
cleanup.use_this_for_non_static_field_access=false
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
cleanup.use_this_for_non_static_method_access=false
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_unboxing=false
+cleanup.use_var=false
+cleanup.useless_continue=false
+cleanup.useless_return=false
+cleanup.valueof_rather_than_instantiation=false
cleanup_profile=_CDT
cleanup_settings_version=2
eclipse.preferences.version=1
diff --git a/build/org.eclipse.cdt.autotools.tests/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.autotools.tests/META-INF/MANIFEST.MF
index f3769e6abb4..6273f22969a 100644
--- a/build/org.eclipse.cdt.autotools.tests/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.autotools.tests/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %bundleName
Bundle-SymbolicName: org.eclipse.cdt.autotools.tests;singleton:=true
-Bundle-Version: 2.0.0.qualifier
+Bundle-Version: 2.1.0.qualifier
Bundle-Vendor: %provider
Bundle-Localization: plugin
Require-Bundle: org.eclipse.ui,
@@ -18,7 +18,7 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.cdt.core.tests
Bundle-ActivationPolicy: lazy
Fragment-Host: org.eclipse.cdt.autotools.core
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.eclipse.cdt.autotools.tests,
- org.eclipse.cdt.autotools.tests.editors
+Bundle-RequiredExecutionEnvironment: JavaSE-11
+Export-Package: org.eclipse.cdt.autotools.tests;x-internal:=true,
+ org.eclipse.cdt.autotools.tests.editors;x-internal:=true
Automatic-Module-Name: org.eclipse.cdt.autotools.tests
diff --git a/build/org.eclipse.cdt.autotools.tests/about.html b/build/org.eclipse.cdt.autotools.tests/about.html
index 164f781a8fd..b3134865230 100644
--- a/build/org.eclipse.cdt.autotools.tests/about.html
+++ b/build/org.eclipse.cdt.autotools.tests/about.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
</head>
+
<body lang="EN-US">
<h2>About This Content</h2>
@@ -16,7 +17,7 @@
(&quot;Content&quot;). Unless otherwise indicated below, the Content
is provided to you under the terms and conditions of the Eclipse
Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ available at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
@@ -29,8 +30,9 @@
license exists, contact the Redistributor. Unless otherwise indicated
below, the terms and conditions of the EPL still apply to any source
code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ href="https://www.eclipse.org/">https://www.eclipse.org</a>.
</p>
</body>
+
</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.autotools.tests/build.properties b/build/org.eclipse.cdt.autotools.tests/build.properties
index 94eaf7ad6a1..d8114ac0c51 100644
--- a/build/org.eclipse.cdt.autotools.tests/build.properties
+++ b/build/org.eclipse.cdt.autotools.tests/build.properties
@@ -5,3 +5,4 @@ bin.includes = META-INF/,\
plugin.properties,\
zip/,\
about.html
+src.includes = about.html
diff --git a/build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/AutomatedIntegrationSuite.java b/build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/AutomatedIntegrationSuite.java
index c234c492750..d73d172b525 100644
--- a/build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/AutomatedIntegrationSuite.java
+++ b/build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/AutomatedIntegrationSuite.java
@@ -13,14 +13,14 @@
*******************************************************************************/
package org.eclipse.cdt.autotools.tests;
-import org.eclipse.cdt.autotools.tests.editors.EditorTests;
+import org.eclipse.cdt.autotools.tests.editors.EditorTestSuite;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
/** On Windows requires either Cygwin or MinGW to be in PATH */
@RunWith(Suite.class)
-@Suite.SuiteClasses({ AutotoolsProjectTest0.class, AutotoolsProjectNatureTest.class, AutotoolsProjectTest1.class,
- AutotoolsProjectTest2.class, AutotoolsVirtualFolderTest.class, AutotoolsEnvironmentVarTest.class,
- LibtoolGCCBuildCommandParserTest.class, UpdateConfigureTest.class, EditorTests.class })
+@Suite.SuiteClasses({ AutotoolsProject0Test.class, AutotoolsProjectNatureTest.class, AutotoolsProject1Test.class,
+ AutotoolsProject2Test.class, AutotoolsVirtualFolderTest.class, AutotoolsEnvironmentVarTest.class,
+ LibtoolGCCBuildCommandParserTest.class, UpdateConfigureTest.class, EditorTestSuite.class })
public class AutomatedIntegrationSuite {
}
diff --git a/build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/AutotoolsProjectTest0.java b/build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/AutotoolsProject0Test.java
index 7fcbbbce0b5..cb3a95b6459 100644
--- a/build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/AutotoolsProjectTest0.java
+++ b/build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/AutotoolsProject0Test.java
@@ -27,7 +27,7 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-public class AutotoolsProjectTest0 {
+public class AutotoolsProject0Test {
private IProject testProject;
diff --git a/build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/AutotoolsProjectTest1.java b/build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/AutotoolsProject1Test.java
index 44b99e9a190..07fb1dba23e 100644
--- a/build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/AutotoolsProjectTest1.java
+++ b/build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/AutotoolsProject1Test.java
@@ -27,7 +27,7 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-public class AutotoolsProjectTest1 {
+public class AutotoolsProject1Test {
private IProject testProject;
diff --git a/build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/AutotoolsProjectTest2.java b/build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/AutotoolsProject2Test.java
index 99c1ef2cd8f..832fa41b852 100644
--- a/build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/AutotoolsProjectTest2.java
+++ b/build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/AutotoolsProject2Test.java
@@ -30,7 +30,7 @@ import org.junit.Test;
// This test verifies an autogen.sh project that builds configure, but
// does not run it.
-public class AutotoolsProjectTest2 {
+public class AutotoolsProject2Test {
private IProject testProject;
diff --git a/build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/editors/EditorTests.java b/build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/editors/EditorTestSuite.java
index 0a41b9b1968..6647e5de52c 100644
--- a/build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/editors/EditorTests.java
+++ b/build/org.eclipse.cdt.autotools.tests/src/org/eclipse/cdt/autotools/tests/editors/EditorTestSuite.java
@@ -18,5 +18,5 @@ import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({ AutomakeColourizationTests.class, AutomakeTextHoverTest.class, AutomakeEditorTests.class })
-public class EditorTests {
+public class EditorTestSuite {
}
diff --git a/build/org.eclipse.cdt.autotools.ui.tests/.classpath b/build/org.eclipse.cdt.autotools.ui.tests/.classpath
index eca7bdba8f0..a42a828e04a 100644
--- a/build/org.eclipse.cdt.autotools.ui.tests/.classpath
+++ b/build/org.eclipse.cdt.autotools.ui.tests/.classpath
@@ -1,7 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="src">
+ <attributes>
+ <attribute name="test" value="true"/>
+ </attributes>
+ </classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/build/org.eclipse.cdt.autotools.ui.tests/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.autotools.ui.tests/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.autotools.ui.tests/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.autotools.ui.tests/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.autotools.ui.tests/.settings/org.eclipse.jdt.core.prefs
index ad05599159f..5b1c443114d 100644
--- a/build/org.eclipse.cdt.autotools.ui.tests/.settings/org.eclipse.jdt.core.prefs
+++ b/build/org.eclipse.cdt.autotools.ui.tests/.settings/org.eclipse.jdt.core.prefs
@@ -30,9 +30,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -49,6 +49,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
@@ -107,6 +108,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
@@ -144,13 +146,14 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -158,21 +161,24 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@@ -264,11 +270,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@@ -299,6 +306,8 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@@ -323,13 +332,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@@ -377,6 +390,8 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do no
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@@ -413,9 +428,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@@ -454,10 +472,14 @@ org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/build/org.eclipse.cdt.autotools.ui.tests/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.autotools.ui.tests/.settings/org.eclipse.jdt.ui.prefs
index e44576346c4..d35ba9b5231 100644
--- a/build/org.eclipse.cdt.autotools.ui.tests/.settings/org.eclipse.jdt.ui.prefs
+++ b/build/org.eclipse.cdt.autotools.ui.tests/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,4 @@
+cleanup.add_all=false
cleanup.add_default_serial_version_id=true
cleanup.add_generated_serial_version_id=false
cleanup.add_missing_annotations=true
@@ -11,25 +12,72 @@ cleanup.always_use_blocks=true
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=false
cleanup.always_use_this_for_non_static_method_access=false
+cleanup.array_with_curly=false
+cleanup.arrays_fill=false
+cleanup.bitwise_conditional_expression=false
+cleanup.boolean_literal=false
+cleanup.boolean_value_rather_than_comparison=false
+cleanup.break_loop=false
+cleanup.collection_cloning=false
+cleanup.comparing_on_criteria=false
+cleanup.comparison_statement=false
+cleanup.controlflow_merge=false
cleanup.convert_functional_interfaces=false
cleanup.convert_to_enhanced_for_loop=false
+cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
+cleanup.convert_to_switch_expressions=false
cleanup.correct_indentation=false
+cleanup.do_while_rather_than_while=true
+cleanup.double_negation=false
+cleanup.else_if=false
+cleanup.embedded_if=false
+cleanup.evaluate_nullable=false
+cleanup.extract_increment=false
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
+cleanup.hash=false
+cleanup.if_condition=false
cleanup.insert_inferred_type_arguments=false
+cleanup.instanceof=false
+cleanup.instanceof_keyword=false
+cleanup.invert_equals=false
+cleanup.join=false
+cleanup.lazy_logical_operator=false
cleanup.make_local_variable_final=true
cleanup.make_parameters_final=false
cleanup.make_private_fields_final=true
cleanup.make_type_abstract_if_missing_method=false
cleanup.make_variable_declarations_final=false
+cleanup.map_cloning=false
+cleanup.merge_conditional_blocks=false
+cleanup.multi_catch=false
cleanup.never_use_blocks=false
cleanup.never_use_parentheses_in_expressions=true
+cleanup.no_string_creation=false
+cleanup.no_super=false
+cleanup.number_suffix=false
+cleanup.objects_equals=false
+cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
+cleanup.operand_factorization=false
cleanup.organize_imports=true
+cleanup.overridden_assignment=false
+cleanup.plain_replacement=false
+cleanup.precompile_regex=false
+cleanup.primitive_comparison=false
+cleanup.primitive_parsing=false
+cleanup.primitive_rather_than_wrapper=false
+cleanup.primitive_serialization=false
+cleanup.pull_out_if_from_if_else=false
+cleanup.pull_up_assignment=false
+cleanup.push_down_negation=false
cleanup.qualify_static_field_accesses_with_declaring_class=false
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
cleanup.qualify_static_member_accesses_with_declaring_class=false
cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.reduce_indentation=false
+cleanup.redundant_comparator=false
+cleanup.redundant_falling_through_block_end=false
cleanup.remove_private_constructors=true
cleanup.remove_redundant_modifiers=false
cleanup.remove_redundant_semicolons=true
@@ -37,25 +85,57 @@ cleanup.remove_redundant_type_arguments=true
cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true
cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_array_creation=false
cleanup.remove_unnecessary_casts=true
cleanup.remove_unnecessary_nls_tags=false
cleanup.remove_unused_imports=true
cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_method_parameters=false
cleanup.remove_unused_private_fields=true
cleanup.remove_unused_private_members=false
cleanup.remove_unused_private_methods=true
cleanup.remove_unused_private_types=true
+cleanup.return_expression=false
+cleanup.simplify_lambda_expression_and_method_ref=false
+cleanup.single_used_field=false
cleanup.sort_members=false
cleanup.sort_members_all=false
+cleanup.standard_comparison=false
+cleanup.static_inner_class=false
+cleanup.strictly_equal_or_different=false
+cleanup.stringbuffer_to_stringbuilder=false
+cleanup.stringbuilder=false
+cleanup.stringbuilder_for_local_vars=true
+cleanup.stringconcat_to_textblock=false
+cleanup.substring=false
+cleanup.switch=false
+cleanup.system_property=false
+cleanup.system_property_boolean=false
+cleanup.system_property_file_encoding=false
+cleanup.system_property_file_separator=false
+cleanup.system_property_line_separator=false
+cleanup.system_property_path_separator=false
+cleanup.ternary_operator=false
+cleanup.try_with_resource=false
+cleanup.unlooped_while=false
+cleanup.unreachable_block=false
cleanup.use_anonymous_class_creation=false
+cleanup.use_autoboxing=false
cleanup.use_blocks=false
cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_directly_map_method=false
cleanup.use_lambda=true
cleanup.use_parentheses_in_expressions=false
+cleanup.use_string_is_blank=false
cleanup.use_this_for_non_static_field_access=false
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
cleanup.use_this_for_non_static_method_access=false
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_unboxing=false
+cleanup.use_var=false
+cleanup.useless_continue=false
+cleanup.useless_return=false
+cleanup.valueof_rather_than_instantiation=false
cleanup_profile=_CDT
cleanup_settings_version=2
eclipse.preferences.version=1
diff --git a/build/org.eclipse.cdt.autotools.ui.tests/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.autotools.ui.tests/META-INF/MANIFEST.MF
index afcbfe0fc0c..b242db335dd 100644
--- a/build/org.eclipse.cdt.autotools.ui.tests/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.autotools.ui.tests/META-INF/MANIFEST.MF
@@ -2,13 +2,15 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %bundleName
Bundle-SymbolicName: org.eclipse.cdt.autotools.ui.tests
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 1.1.0.qualifier
Bundle-Localization: plugin
Require-Bundle: org.eclipse.swtbot.go,
org.eclipse.core.resources,
org.eclipse.cdt.core
Bundle-ActivationPolicy: lazy
Fragment-Host: org.eclipse.cdt.autotools.ui
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
Bundle-Vendor: %provider
Automatic-Module-Name: org.eclipse.cdt.autotools.ui.tests
+Export-Package: org.eclipse.cdt.autotools.ui.tests;x-internal:=true,
+ org.eclipse.cdt.autotools.ui.tests.autoconf;x-internal:=true
diff --git a/build/org.eclipse.cdt.autotools.ui.tests/about.html b/build/org.eclipse.cdt.autotools.ui.tests/about.html
index 164f781a8fd..b3134865230 100644
--- a/build/org.eclipse.cdt.autotools.ui.tests/about.html
+++ b/build/org.eclipse.cdt.autotools.ui.tests/about.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
</head>
+
<body lang="EN-US">
<h2>About This Content</h2>
@@ -16,7 +17,7 @@
(&quot;Content&quot;). Unless otherwise indicated below, the Content
is provided to you under the terms and conditions of the Eclipse
Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ available at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
@@ -29,8 +30,9 @@
license exists, contact the Redistributor. Unless otherwise indicated
below, the terms and conditions of the EPL still apply to any source
code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ href="https://www.eclipse.org/">https://www.eclipse.org</a>.
</p>
</body>
+
</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.autotools.ui.tests/build.properties b/build/org.eclipse.cdt.autotools.ui.tests/build.properties
index d9dac0dd8b9..0f8f2db3e18 100644
--- a/build/org.eclipse.cdt.autotools.ui.tests/build.properties
+++ b/build/org.eclipse.cdt.autotools.ui.tests/build.properties
@@ -5,3 +5,4 @@ bin.includes = META-INF/,\
plugin.properties,\
about.html
individualSourceBundles=true
+src.includes = about.html
diff --git a/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/AutomatedIntegrationSuite.java b/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/AutomatedIntegrationSuite.java
index 23582ac83c5..57740306baa 100644
--- a/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/AutomatedIntegrationSuite.java
+++ b/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/AutomatedIntegrationSuite.java
@@ -14,12 +14,7 @@
*******************************************************************************/
package org.eclipse.cdt.autotools.ui.tests;
-import java.io.IOException;
-
-import org.eclipse.cdt.autotools.ui.tests.autoconf.AutoconfTests;
-import org.eclipse.cdt.utils.spawner.ProcessFactory;
-import org.junit.Assume;
-import org.junit.BeforeClass;
+import org.eclipse.cdt.autotools.ui.tests.autoconf.AutoconfTestSuite;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@@ -30,25 +25,9 @@ import org.junit.runners.Suite;
* TestToolActions.class,
* TestEnvironmentVars.class,
* TestMakeTargets.class,
- * SetConfigurationParameter.class,
+ * SetConfigurationParameterTest.class,
*/
- AutoconfTests.class })
+ AutoconfTestSuite.class })
public class AutomatedIntegrationSuite {
- // needed for this class to compile
- @BeforeClass
- public static void beforeClassMethod() {
- // Verify that the necessary binaries are available, and if they are not,
- // the tests will be ignored.
- String[] testBinaryCommands = { "libtool --version", "autoconf --version", "automake --version" };
- try {
- for (String cmd : testBinaryCommands) {
- Process process = ProcessFactory.getFactory().exec(cmd);
- process.destroy();
- }
- } catch (IOException e) {
- // If we cannot find any binary, just ignore the tests.
- Assume.assumeNoException(e);
- }
- }
}
diff --git a/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/SetConfigurationParameter.java b/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/SetConfigurationParameterTest.java
index fcf978d3718..19ca5536edf 100644
--- a/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/SetConfigurationParameter.java
+++ b/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/SetConfigurationParameterTest.java
@@ -39,6 +39,7 @@ import org.eclipse.swtbot.swt.finder.widgets.SWTBotTable;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotText;
import org.junit.BeforeClass;
import org.junit.FixMethodOrder;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.MethodSorters;
@@ -48,9 +49,10 @@ import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
+@Ignore("Unstable tests exluded from build. See Bug 509248 and Bug 564002")
@RunWith(SWTBotJunit4ClassRunner.class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-public class SetConfigurationParameter extends AbstractTest {
+public class SetConfigurationParameterTest extends AbstractTest {
@BeforeClass
public static void initClass() {
diff --git a/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/TestEnvironmentVars.java b/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/TestEnvironmentVars.java
index 945753a967f..d5dca2a894e 100644
--- a/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/TestEnvironmentVars.java
+++ b/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/TestEnvironmentVars.java
@@ -29,10 +29,12 @@ import org.eclipse.swtbot.swt.finder.waits.Conditions;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotText;
import org.junit.FixMethodOrder;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.MethodSorters;
+@Ignore("Unstable tests exluded from build. See Bug 509248 and Bug 564002")
@RunWith(SWTBotJunit4ClassRunner.class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class TestEnvironmentVars extends AbstractTest {
diff --git a/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/TestMakeTargets.java b/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/TestMakeTargets.java
index 3c3cf0be8b1..bb89f85a905 100644
--- a/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/TestMakeTargets.java
+++ b/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/TestMakeTargets.java
@@ -29,10 +29,12 @@ import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
import org.eclipse.swtbot.swt.finder.waits.Conditions;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
import org.junit.FixMethodOrder;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.MethodSorters;
+@Ignore("Unstable tests exluded from build. See Bug 509248 and Bug 564002")
@RunWith(SWTBotJunit4ClassRunner.class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class TestMakeTargets extends AbstractTest {
diff --git a/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/TestToolActions.java b/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/TestToolActions.java
index ace227104b6..66e67582be9 100644
--- a/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/TestToolActions.java
+++ b/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/TestToolActions.java
@@ -24,10 +24,12 @@ import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
import org.junit.FixMethodOrder;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.MethodSorters;
+@Ignore("Unstable tests exluded from build. See Bug 509248 and Bug 564002")
@RunWith(SWTBotJunit4ClassRunner.class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class TestToolActions extends AbstractTest {
diff --git a/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/autoconf/AutoconfTests.java b/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/autoconf/AutoconfTestSuite.java
index 88e0a34a242..bc987881a0c 100644
--- a/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/autoconf/AutoconfTests.java
+++ b/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/autoconf/AutoconfTestSuite.java
@@ -18,6 +18,6 @@ import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({ TestMacroParser.class, TestTokenizer.class, TestShellParser.class })
-public class AutoconfTests {
+public class AutoconfTestSuite {
}
diff --git a/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/autoconf/BaseParserTest.java b/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/autoconf/BaseParserTest.java
index 6f6e87b6638..485493b6648 100644
--- a/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/autoconf/BaseParserTest.java
+++ b/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/autoconf/BaseParserTest.java
@@ -18,6 +18,7 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.fail;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
@@ -30,9 +31,12 @@ import org.eclipse.cdt.autotools.ui.editors.parser.AutoconfParser;
import org.eclipse.cdt.autotools.ui.editors.parser.IAutoconfErrorHandler;
import org.eclipse.cdt.autotools.ui.editors.parser.IAutoconfMacroValidator;
import org.eclipse.cdt.autotools.ui.editors.parser.ParseException;
+import org.eclipse.cdt.utils.spawner.ProcessFactory;
import org.eclipse.jface.text.Document;
import org.eclipse.jface.text.IDocument;
+import org.junit.Assume;
import org.junit.Before;
+import org.junit.BeforeClass;
public abstract class BaseParserTest {
@@ -42,6 +46,23 @@ public abstract class BaseParserTest {
private Set<String> macroNames;
private AutoconfMacroDetector macroDetector;
+ @BeforeClass
+ public static void beforeClassMethod() {
+ // Verify that the necessary binaries are available, and if they are not,
+ // the tests will be ignored.
+ String[][] testBinaryCommands = { { "libtool", "--version" }, { "autoconf", "--version" },
+ { "automake", "--version" } };
+ try {
+ for (String[] cmd : testBinaryCommands) {
+ Process process = ProcessFactory.getFactory().exec(cmd);
+ process.destroy();
+ }
+ } catch (IOException e) {
+ // If we cannot find any binary, just ignore the tests.
+ Assume.assumeNoException(e);
+ }
+ }
+
@Before
public void setUp() {
errors = new ArrayList<>();
diff --git a/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/autoconf/TestTokenizer.java b/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/autoconf/TestTokenizer.java
index b75d58f7be7..d1c59a75351 100644
--- a/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/autoconf/TestTokenizer.java
+++ b/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/autoconf/TestTokenizer.java
@@ -19,6 +19,7 @@ import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@@ -26,8 +27,11 @@ import org.eclipse.cdt.autotools.ui.editors.parser.AutoconfTokenizer;
import org.eclipse.cdt.autotools.ui.editors.parser.ITokenConstants;
import org.eclipse.cdt.autotools.ui.editors.parser.ParseException;
import org.eclipse.cdt.autotools.ui.editors.parser.Token;
+import org.eclipse.cdt.utils.spawner.ProcessFactory;
import org.eclipse.jface.text.Document;
import org.eclipse.jface.text.IDocument;
+import org.junit.Assume;
+import org.junit.BeforeClass;
import org.junit.Test;
/**
@@ -40,6 +44,23 @@ public class TestTokenizer {
private ArrayList<ParseException> tokenizerErrors;
+ @BeforeClass
+ public static void beforeClassMethod() {
+ // Verify that the necessary binaries are available, and if they are not,
+ // the tests will be ignored.
+ String[][] testBinaryCommands = { { "libtool", "--version" }, { "autoconf", "--version" },
+ { "automake", "--version" } };
+ try {
+ for (String[] cmd : testBinaryCommands) {
+ Process process = ProcessFactory.getFactory().exec(cmd);
+ process.destroy();
+ }
+ } catch (IOException e) {
+ // If we cannot find any binary, just ignore the tests.
+ Assume.assumeNoException(e);
+ }
+ }
+
protected IDocument createDocument(String text) {
return new Document(text);
}
diff --git a/build/org.eclipse.cdt.autotools.ui/.classpath b/build/org.eclipse.cdt.autotools.ui/.classpath
index eca7bdba8f0..e801ebfb468 100644
--- a/build/org.eclipse.cdt.autotools.ui/.classpath
+++ b/build/org.eclipse.cdt.autotools.ui/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
diff --git a/build/org.eclipse.cdt.autotools.ui/.settings/.api_filters b/build/org.eclipse.cdt.autotools.ui/.settings/.api_filters
index f7d62077297..950216df09c 100644
--- a/build/org.eclipse.cdt.autotools.ui/.settings/.api_filters
+++ b/build/org.eclipse.cdt.autotools.ui/.settings/.api_filters
@@ -1,14 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<component id="org.eclipse.cdt.autotools.ui" version="2">
- <resource path="src/org/eclipse/cdt/autotools/ui/editors/IAutotoolsEditor.java" type="org.eclipse.cdt.autotools.ui.editors.IAutotoolsEditor">
- <filter id="643846161">
- <message_arguments>
- <message_argument value="IReconcilingParticipant"/>
- <message_argument value="IAutotoolsEditor"/>
- <message_argument value="addReconcilingParticipant(IReconcilingParticipant)"/>
- </message_arguments>
- </filter>
- </resource>
<resource path="src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AbstractMakefile.java" type="org.eclipse.cdt.internal.autotools.ui.editors.automake.AbstractMakefile">
<filter id="574619656">
<message_arguments>
diff --git a/build/org.eclipse.cdt.autotools.ui/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.autotools.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.autotools.ui/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.autotools.ui/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.autotools.ui/.settings/org.eclipse.jdt.core.prefs
index 2b6ecff8a01..e3a8104f9ca 100644
--- a/build/org.eclipse.cdt.autotools.ui/.settings/org.eclipse.jdt.core.prefs
+++ b/build/org.eclipse.cdt.autotools.ui/.settings/org.eclipse.jdt.core.prefs
@@ -30,9 +30,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -49,6 +49,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
@@ -107,6 +108,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
@@ -144,13 +146,14 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -158,21 +161,24 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@@ -264,11 +270,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@@ -299,6 +306,8 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@@ -323,13 +332,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@@ -377,6 +390,8 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do no
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@@ -413,9 +428,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@@ -454,10 +472,14 @@ org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/build/org.eclipse.cdt.autotools.ui/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.autotools.ui/.settings/org.eclipse.jdt.ui.prefs
index e44576346c4..d35ba9b5231 100644
--- a/build/org.eclipse.cdt.autotools.ui/.settings/org.eclipse.jdt.ui.prefs
+++ b/build/org.eclipse.cdt.autotools.ui/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,4 @@
+cleanup.add_all=false
cleanup.add_default_serial_version_id=true
cleanup.add_generated_serial_version_id=false
cleanup.add_missing_annotations=true
@@ -11,25 +12,72 @@ cleanup.always_use_blocks=true
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=false
cleanup.always_use_this_for_non_static_method_access=false
+cleanup.array_with_curly=false
+cleanup.arrays_fill=false
+cleanup.bitwise_conditional_expression=false
+cleanup.boolean_literal=false
+cleanup.boolean_value_rather_than_comparison=false
+cleanup.break_loop=false
+cleanup.collection_cloning=false
+cleanup.comparing_on_criteria=false
+cleanup.comparison_statement=false
+cleanup.controlflow_merge=false
cleanup.convert_functional_interfaces=false
cleanup.convert_to_enhanced_for_loop=false
+cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
+cleanup.convert_to_switch_expressions=false
cleanup.correct_indentation=false
+cleanup.do_while_rather_than_while=true
+cleanup.double_negation=false
+cleanup.else_if=false
+cleanup.embedded_if=false
+cleanup.evaluate_nullable=false
+cleanup.extract_increment=false
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
+cleanup.hash=false
+cleanup.if_condition=false
cleanup.insert_inferred_type_arguments=false
+cleanup.instanceof=false
+cleanup.instanceof_keyword=false
+cleanup.invert_equals=false
+cleanup.join=false
+cleanup.lazy_logical_operator=false
cleanup.make_local_variable_final=true
cleanup.make_parameters_final=false
cleanup.make_private_fields_final=true
cleanup.make_type_abstract_if_missing_method=false
cleanup.make_variable_declarations_final=false
+cleanup.map_cloning=false
+cleanup.merge_conditional_blocks=false
+cleanup.multi_catch=false
cleanup.never_use_blocks=false
cleanup.never_use_parentheses_in_expressions=true
+cleanup.no_string_creation=false
+cleanup.no_super=false
+cleanup.number_suffix=false
+cleanup.objects_equals=false
+cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
+cleanup.operand_factorization=false
cleanup.organize_imports=true
+cleanup.overridden_assignment=false
+cleanup.plain_replacement=false
+cleanup.precompile_regex=false
+cleanup.primitive_comparison=false
+cleanup.primitive_parsing=false
+cleanup.primitive_rather_than_wrapper=false
+cleanup.primitive_serialization=false
+cleanup.pull_out_if_from_if_else=false
+cleanup.pull_up_assignment=false
+cleanup.push_down_negation=false
cleanup.qualify_static_field_accesses_with_declaring_class=false
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
cleanup.qualify_static_member_accesses_with_declaring_class=false
cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.reduce_indentation=false
+cleanup.redundant_comparator=false
+cleanup.redundant_falling_through_block_end=false
cleanup.remove_private_constructors=true
cleanup.remove_redundant_modifiers=false
cleanup.remove_redundant_semicolons=true
@@ -37,25 +85,57 @@ cleanup.remove_redundant_type_arguments=true
cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true
cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_array_creation=false
cleanup.remove_unnecessary_casts=true
cleanup.remove_unnecessary_nls_tags=false
cleanup.remove_unused_imports=true
cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_method_parameters=false
cleanup.remove_unused_private_fields=true
cleanup.remove_unused_private_members=false
cleanup.remove_unused_private_methods=true
cleanup.remove_unused_private_types=true
+cleanup.return_expression=false
+cleanup.simplify_lambda_expression_and_method_ref=false
+cleanup.single_used_field=false
cleanup.sort_members=false
cleanup.sort_members_all=false
+cleanup.standard_comparison=false
+cleanup.static_inner_class=false
+cleanup.strictly_equal_or_different=false
+cleanup.stringbuffer_to_stringbuilder=false
+cleanup.stringbuilder=false
+cleanup.stringbuilder_for_local_vars=true
+cleanup.stringconcat_to_textblock=false
+cleanup.substring=false
+cleanup.switch=false
+cleanup.system_property=false
+cleanup.system_property_boolean=false
+cleanup.system_property_file_encoding=false
+cleanup.system_property_file_separator=false
+cleanup.system_property_line_separator=false
+cleanup.system_property_path_separator=false
+cleanup.ternary_operator=false
+cleanup.try_with_resource=false
+cleanup.unlooped_while=false
+cleanup.unreachable_block=false
cleanup.use_anonymous_class_creation=false
+cleanup.use_autoboxing=false
cleanup.use_blocks=false
cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_directly_map_method=false
cleanup.use_lambda=true
cleanup.use_parentheses_in_expressions=false
+cleanup.use_string_is_blank=false
cleanup.use_this_for_non_static_field_access=false
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
cleanup.use_this_for_non_static_method_access=false
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_unboxing=false
+cleanup.use_var=false
+cleanup.useless_continue=false
+cleanup.useless_return=false
+cleanup.valueof_rather_than_instantiation=false
cleanup_profile=_CDT
cleanup_settings_version=2
eclipse.preferences.version=1
diff --git a/build/org.eclipse.cdt.autotools.ui/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.autotools.ui/META-INF/MANIFEST.MF
index 9508e0dbfb3..67310121c63 100644
--- a/build/org.eclipse.cdt.autotools.ui/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.autotools.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name.0
Bundle-SymbolicName: org.eclipse.cdt.autotools.ui;singleton:=true
-Bundle-Version: 2.0.200.qualifier
+Bundle-Version: 2.1.400.qualifier
Bundle-Activator: org.eclipse.cdt.autotools.ui.AutotoolsUIPlugin
Bundle-Localization: plugin
Bundle-Vendor: %provider
@@ -23,18 +23,19 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.cdt.remote.core;bundle-version="1.0.0",
org.eclipse.swt,
org.eclipse.ui.genericeditor;bundle-version="1.0.0"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.cdt.autotools.ui,
- org.eclipse.cdt.autotools.ui.editors,
- org.eclipse.cdt.autotools.ui.editors.outline,
- org.eclipse.cdt.autotools.ui.editors.parser,
- org.eclipse.cdt.internal.autotools.ui;x-friends:="org.eclipse.linuxtools.cdt.autotools.tests,org.eclipse.linuxtools.cdt.autotools",
- org.eclipse.cdt.internal.autotools.ui.actions;x-friends:="org.eclipse.linuxtools.cdt.autotools.tests,org.eclipse.linuxtools.cdt.autotools",
- org.eclipse.cdt.internal.autotools.ui.editors.autoconf;x-friends:="org.eclipse.linuxtools.cdt.autotools.tests,org.eclipse.linuxtools.cdt.autotools",
- org.eclipse.cdt.internal.autotools.ui.editors.automake;x-friends:="org.eclipse.linuxtools.cdt.autotools.tests,org.eclipse.linuxtools.cdt.autotools",
- org.eclipse.cdt.internal.autotools.ui.preferences;x-friends:="org.eclipse.linuxtools.cdt.autotools.tests,org.eclipse.linuxtools.cdt.autotools",
- org.eclipse.cdt.internal.autotools.ui.properties;x-friends:="org.eclipse.linuxtools.cdt.autotools.tests,org.eclipse.linuxtools.cdt.autotools",
- org.eclipse.cdt.internal.autotools.ui.text.hover;x-friends:="org.eclipse.linuxtools.cdt.autotools.tests,org.eclipse.linuxtools.cdt.autotools",
- org.eclipse.cdt.internal.autotools.ui.wizards;x-friends:="org.eclipse.linuxtools.cdt.autotools.tests,org.eclipse.linuxtools.cdt.autotools"
+Export-Package: org.eclipse.cdt.autotools.ui;x-friends:="org.eclipse.linuxtools.cdt.autotools",
+ org.eclipse.cdt.autotools.ui.editors;x-friends:="org.eclipse.linuxtools.cdt.autotools",
+ org.eclipse.cdt.autotools.ui.editors.outline;x-friends:="org.eclipse.linuxtools.cdt.autotools",
+ org.eclipse.cdt.autotools.ui.editors.parser;x-friends:="org.eclipse.linuxtools.cdt.autotools",
+ org.eclipse.cdt.internal.autotools.ui;x-friends:="org.eclipse.linuxtools.cdt.autotools",
+ org.eclipse.cdt.internal.autotools.ui.actions;x-friends:="org.eclipse.linuxtools.cdt.autotools",
+ org.eclipse.cdt.internal.autotools.ui.editors;x-friends:="org.eclipse.linuxtools.cdt.autotools",
+ org.eclipse.cdt.internal.autotools.ui.editors.autoconf;x-friends:="org.eclipse.linuxtools.cdt.autotools",
+ org.eclipse.cdt.internal.autotools.ui.editors.automake;x-friends:="org.eclipse.linuxtools.cdt.autotools",
+ org.eclipse.cdt.internal.autotools.ui.preferences;x-friends:="org.eclipse.linuxtools.cdt.autotools",
+ org.eclipse.cdt.internal.autotools.ui.properties;x-friends:="org.eclipse.linuxtools.cdt.autotools",
+ org.eclipse.cdt.internal.autotools.ui.text.hover;x-friends:="org.eclipse.linuxtools.cdt.autotools",
+ org.eclipse.cdt.internal.autotools.ui.wizards;x-friends:="org.eclipse.linuxtools.cdt.autotools"
Automatic-Module-Name: org.eclipse.cdt.autotools.ui
diff --git a/build/org.eclipse.cdt.autotools.ui/about.html b/build/org.eclipse.cdt.autotools.ui/about.html
index 164f781a8fd..b3134865230 100644
--- a/build/org.eclipse.cdt.autotools.ui/about.html
+++ b/build/org.eclipse.cdt.autotools.ui/about.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
</head>
+
<body lang="EN-US">
<h2>About This Content</h2>
@@ -16,7 +17,7 @@
(&quot;Content&quot;). Unless otherwise indicated below, the Content
is provided to you under the terms and conditions of the Eclipse
Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ available at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
@@ -29,8 +30,9 @@
license exists, contact the Redistributor. Unless otherwise indicated
below, the terms and conditions of the EPL still apply to any source
code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ href="https://www.eclipse.org/">https://www.eclipse.org</a>.
</p>
</body>
+
</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.autotools.ui/about.ini b/build/org.eclipse.cdt.autotools.ui/about.ini
new file mode 100644
index 00000000000..e07a7bb377e
--- /dev/null
+++ b/build/org.eclipse.cdt.autotools.ui/about.ini
@@ -0,0 +1,24 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%blurb
+
+# Property "windowImage" contains path to window icon (16x16)
+# needed for primary features only
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=cdt_logo_icon32.png
+
+# Property "aboutImage" contains path to product image (500x330 or 115x164)
+# needed for primary features only
+
+# Property "appName" contains name of the application (translated)
+# needed for primary features only
+
+# Property "welcomePerspective" contains the id of the perspective in which the
+# welcome page is to be opened.
+# optional
diff --git a/build/org.eclipse.cdt.autotools.ui/about.mappings b/build/org.eclipse.cdt.autotools.ui/about.mappings
new file mode 100644
index 00000000000..936a8039c3e
--- /dev/null
+++ b/build/org.eclipse.cdt.autotools.ui/about.mappings
@@ -0,0 +1,9 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+# The following should contain the build version.
+# e.g. "0=20200106-1728"
+# This value will be added automatically via the build scripts
+0=${buildId}
diff --git a/build/org.eclipse.cdt.autotools.ui/about.properties b/build/org.eclipse.cdt.autotools.ui/about.properties
new file mode 100644
index 00000000000..662eb132285
--- /dev/null
+++ b/build/org.eclipse.cdt.autotools.ui/about.properties
@@ -0,0 +1,32 @@
+###############################################################################
+# Copyright (c) 2012, 2022 Contributors to the Eclipse Foundation
+#
+# See the NOTICE file(s) distributed with this work for additional
+# information regarding copyright ownership.
+#
+# This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+###############################################################################
+# about.properties
+# contains externalized strings for about.ini
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# fill-ins are supplied by about.mappings
+# This file should be translated.
+# NOTE TO TRANSLATOR: Please do not translate the featureVersion variable.
+
+
+blurb=C/C++ Autotools support\n\
+\n\
+Version: {featureVersion}\n\
+Build id: {0}\n\
+\n\
+Copyright (c) 2012, 2022 Contributors to the Eclipse Foundation
+\n\
+See the NOTICE file(s) distributed with this work for additional\n\
+information regarding copyright ownership.\n\
+\n\
+Visit http://www.eclipse.org/cdt
diff --git a/build/org.eclipse.cdt.autotools.ui/build.properties b/build/org.eclipse.cdt.autotools.ui/build.properties
index 7984bd3b104..027c372bdb9 100644
--- a/build/org.eclipse.cdt.autotools.ui/build.properties
+++ b/build/org.eclipse.cdt.autotools.ui/build.properties
@@ -7,5 +7,9 @@ bin.includes = META-INF/,\
templates/,\
about.html,\
icons/,\
- macros/
+ macros/,\
+ cdt_logo_icon32.png,\
+ about.properties,\
+ about.mappings,\
+ about.ini
src.includes = about.html
diff --git a/build/org.eclipse.cdt.autotools.ui/cdt_logo_icon32.png b/build/org.eclipse.cdt.autotools.ui/cdt_logo_icon32.png
new file mode 100644
index 00000000000..470ca81b327
--- /dev/null
+++ b/build/org.eclipse.cdt.autotools.ui/cdt_logo_icon32.png
Binary files differ
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/AutotoolsUIPlugin.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/AutotoolsUIPlugin.java
index ce66521c174..7daee2a8020 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/AutotoolsUIPlugin.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/AutotoolsUIPlugin.java
@@ -26,6 +26,7 @@ import org.eclipse.core.runtime.Status;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
@@ -139,7 +140,7 @@ public class AutotoolsUIPlugin extends AbstractUIPlugin {
* Returns the active workbench window or <code>null</code> if none
*/
public static IWorkbenchWindow getActiveWorkbenchWindow() {
- return getDefault().getWorkbench().getActiveWorkbenchWindow();
+ return PlatformUI.getWorkbench().getActiveWorkbenchWindow();
}
/**
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/AcInitElement.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/AcInitElement.java
index 1447e6b1727..988dedb21d1 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/AcInitElement.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/AcInitElement.java
@@ -22,7 +22,7 @@ import org.eclipse.cdt.internal.autotools.core.VersionComparator;
public class AcInitElement extends AutoconfMacroElement {
- private static final String BAD_VERSION_NUMBER = "AC_INIT_badVersionNumber";
+ private static final String BAD_VERSION_NUMBER = "AC_INIT_badVersionNumber"; //$NON-NLS-1$
public AcInitElement(String name) {
super(name);
@@ -56,7 +56,7 @@ public class AcInitElement extends AutoconfMacroElement {
AutoconfElement argument = this.getChildren()[1];
// match a digit followed by a dot zero or more times
// but always end with a digit
- if (!argument.getName().matches("(\\d*\\.)*((\\d+))")) {
+ if (!argument.getName().matches("(\\d*\\.)*((\\d+))")) { //$NON-NLS-1$
throw new InvalidMacroException(AutoconfEditorMessages.getString(BAD_VERSION_NUMBER), argument);
}
}
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/AutoconfCodeScanner.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/AutoconfCodeScanner.java
index a6014b48cab..b53c868fe6d 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/AutoconfCodeScanner.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/AutoconfCodeScanner.java
@@ -120,7 +120,7 @@ public class AutoconfCodeScanner extends RuleBasedScanner {
rules.add(new AutoconfIdentifierRule(other));
// Make sure we don't treat "\#" as comment start.
- rules.add(new SingleLineRule("\\#", null, Token.UNDEFINED));
+ rules.add(new SingleLineRule("\\#", null, Token.UNDEFINED)); //$NON-NLS-1$
rules.add(new WhitespaceRule(new AutoconfWhitespaceDetector()));
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/AutoconfMacroCodeScanner.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/AutoconfMacroCodeScanner.java
index f1300431f42..697d308e2c6 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/AutoconfMacroCodeScanner.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/AutoconfMacroCodeScanner.java
@@ -81,8 +81,8 @@ public class AutoconfMacroCodeScanner extends RuleBasedScanner {
List<IRule> rules = new ArrayList<>();
// Add rule for single line comments.
- rules.add(new RestrictedEndOfLineRule("dnl", "[]", comment)); //$NON-NLS-1$
- rules.add(new RestrictedEndOfLineRule("#", "[]", comment, '\\')); //$NON-NLS-1$
+ rules.add(new RestrictedEndOfLineRule("dnl", "[]", comment)); //$NON-NLS-1$ //$NON-NLS-2$
+ rules.add(new RestrictedEndOfLineRule("#", "[]", comment, '\\')); //$NON-NLS-1$ //$NON-NLS-2$
// Add special recursive rule for strings which allows variable
// references to be internally tokenized.
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/AutoconfPartitionScanner.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/AutoconfPartitionScanner.java
index 58ede93f70c..8ce411beee1 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/AutoconfPartitionScanner.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/AutoconfPartitionScanner.java
@@ -43,7 +43,7 @@ public class AutoconfPartitionScanner extends RuleBasedPartitionScanner {
rules.add(new AutoconfMacroPartitionRule(macro));
rules.add(new EndOfLineRule("dnl", comment)); //$NON-NLS-1$
- rules.add(new SingleLineRule("\\#", null, Token.UNDEFINED));
+ rules.add(new SingleLineRule("\\#", null, Token.UNDEFINED)); //$NON-NLS-1$
rules.add(new EndOfLineRule("#", comment, '\\')); //$NON-NLS-1$
// We want to process identifiers that might have macro
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/InlineDataRule.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/InlineDataRule.java
index 31a59f02742..7c1b85a59b4 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/InlineDataRule.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/InlineDataRule.java
@@ -39,7 +39,7 @@ public class InlineDataRule implements IRule {
/** Buffer used for pattern detection */
private StringBuilder fBuffer = new StringBuilder();
- private String fStartingSequence = "<<";
+ private String fStartingSequence = "<<"; //$NON-NLS-1$
public InlineDataRule(IToken inToken) {
token = inToken;
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/outline/AutoconfContentProvider.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/outline/AutoconfContentProvider.java
index 7d198314853..29db2b4f159 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/outline/AutoconfContentProvider.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/outline/AutoconfContentProvider.java
@@ -28,7 +28,7 @@ public class AutoconfContentProvider implements ITreeContentProvider {
private IDocumentProvider documentProvider;
private AutoconfEditor editor;
- protected final static String SECTION_POSITIONS = "section_positions";
+ protected final static String SECTION_POSITIONS = "section_positions"; //$NON-NLS-1$
protected IPositionUpdater positionUpdater = new DefaultPositionUpdater(SECTION_POSITIONS);
public AutoconfContentProvider(ITextEditor editor) {
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/outline/AutoconfLabelProvider.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/outline/AutoconfLabelProvider.java
index d7f92b41c91..89342d4abda 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/outline/AutoconfLabelProvider.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/outline/AutoconfLabelProvider.java
@@ -88,21 +88,21 @@ public class AutoconfLabelProvider implements ILabelProvider {
String result;
String name = e.getName();
if (name.length() > 31)
- name = name.substring(0, 31) + "...";
+ name = name.substring(0, 31) + "..."; //$NON-NLS-1$
String var = e.getVar();
if (var != null) {
if (var.length() > 15)
- var = var.substring(0, 15) + "...";
+ var = var.substring(0, 15) + "..."; //$NON-NLS-1$
var = " " + var; //$NON-NLS-1$
} else {
- var = "";
+ var = ""; //$NON-NLS-1$
}
- result = (name + var).replaceAll("(\r|\n| |\t|\f)+", " ");
+ result = (name + var).replaceAll("(\r|\n| |\t|\f)+", " "); //$NON-NLS-1$ //$NON-NLS-2$
return result;
} else if (element instanceof String) {
return (String) element;
}
- return "";
+ return ""; //$NON-NLS-1$
}
}
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfCaseConditionElement.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfCaseConditionElement.java
index e20bb4c4d5a..77aca201956 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfCaseConditionElement.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfCaseConditionElement.java
@@ -16,7 +16,7 @@ package org.eclipse.cdt.autotools.ui.editors.parser;
public class AutoconfCaseConditionElement extends AutoconfElement {
public AutoconfCaseConditionElement() {
- super("");
+ super(""); //$NON-NLS-1$
}
public AutoconfCaseConditionElement(String name) {
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfMacroArgumentElement.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfMacroArgumentElement.java
index 672401fb43a..5bae2d108cb 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfMacroArgumentElement.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfMacroArgumentElement.java
@@ -24,7 +24,7 @@ package org.eclipse.cdt.autotools.ui.editors.parser;
public class AutoconfMacroArgumentElement extends AutoconfElement {
public AutoconfMacroArgumentElement() {
- super(""); // //$NON-NLS-N$
+ super(""); // //$NON-NLS-1$
}
public AutoconfMacroArgumentElement(String name) {
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfOutlineErrorHandler.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfOutlineErrorHandler.java
index 195bcbdd609..f8d29a38ae3 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfOutlineErrorHandler.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfOutlineErrorHandler.java
@@ -43,7 +43,7 @@ public class AutoconfOutlineErrorHandler {
try {
IPath absPath = input.getStorage().getFullPath();
IPath rootPath = root.getLocation();
- IPath relPath = new Path("");
+ IPath relPath = new Path(""); //$NON-NLS-1$
for (int i = 0; i < rootPath.segmentCount(); ++i) {
relPath = relPath.append("../"); //$NON-NLS-1$
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfParser.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfParser.java
index 02e26ddfa96..ff80904550d 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfParser.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfParser.java
@@ -56,7 +56,8 @@ public class AutoconfParser {
private AutoconfTokenizer tokenizer;
private IAutoconfMacroDetector macroDetector;
- private static final String M4_BUILTINS = "define undefine defn pushdef popdef indir builtin ifdef ifelse shift reverse cond " //$NON-NLS-1$
+ @SuppressWarnings("nls")
+ private static final String M4_BUILTINS = "define undefine defn pushdef popdef indir builtin ifdef ifelse shift reverse cond "
+ "dumpdef traceon traceoff debugmode debugfile dnl changequote changecom changeword " + "m4wrap "
+ "include sinclude divert undivert divnum len index regexp substr translit patsubst "
+ "format incr decr eval syscmd esyscmd sysval mkstemp maketemp errprint m4exit "
@@ -240,9 +241,9 @@ public class AutoconfParser {
} else {
String exp;
if (block instanceof AutoconfIfElement || block instanceof AutoconfElifElement)
- exp = "then";
+ exp = "then"; //$NON-NLS-1$
else
- exp = "do";
+ exp = "do"; //$NON-NLS-1$
handleError(token, AutoconfEditorMessages.getFormattedString(MISSING_SPECIFIER, exp));
@@ -409,7 +410,7 @@ public class AutoconfParser {
}
throw new BlockEndCondition(token);
- // 1. Check for end of statement
+ // 1. Check for end of statement
case ITokenConstants.EOL:
case ITokenConstants.SEMI:
return;
@@ -462,7 +463,7 @@ public class AutoconfParser {
INVALID_FI);
throw new BlockEndCondition(token);
- // 4. Look for for/while loops
+ // 4. Look for for/while loops
case ITokenConstants.SH_FOR:
checkLineStart(token, atStart);
parseBlock(parent, token, new AutoconfForElement());
@@ -489,7 +490,7 @@ public class AutoconfParser {
AutoconfUntilElement.class, AutoconfSelectElement.class }, INVALID_DONE);
throw new BlockEndCondition(token);
- // 5. Look for case statements
+ // 5. Look for case statements
case ITokenConstants.SH_CASE:
checkLineStart(token, atStart);
parseCaseBlock(parent, token, new AutoconfCaseElement());
@@ -507,7 +508,7 @@ public class AutoconfParser {
new Class[] { AutoconfCaseElement.class, AutoconfCaseConditionElement.class }, INVALID_ESAC);
throw new BlockEndCondition(token);
- // 6. Check for HERE documents
+ // 6. Check for HERE documents
case ITokenConstants.SH_HERE:
case ITokenConstants.SH_HERE_DASH:
@@ -584,7 +585,7 @@ public class AutoconfParser {
case ITokenConstants.EOF:
throw new BlockEndCondition(token);
- // 2. Check macro expansions
+ // 2. Check macro expansions
case ITokenConstants.WORD:
token = checkMacro(parent, token);
break;
@@ -606,6 +607,7 @@ public class AutoconfParser {
// fall through
// 5. Abort on unexpected tokens
+ //$FALL-THROUGH$
case ITokenConstants.SH_DO:
case ITokenConstants.SH_THEN:
handleError(token, AutoconfEditorMessages.getFormattedString(INVALID_SPECIFIER, token.getText()));
@@ -863,11 +865,11 @@ public class AutoconfParser {
private void validateMacroParameterCount(AutoconfMacroElement macro, Token token, int count) {
if (macro.getParameterCount() < count) {
- handleError(token, AutoconfEditorMessages.getFormattedString("M4MacroArgsTooFew", macro.getName(),
- Integer.valueOf(2))); //$NON-NLS-1$
+ handleError(token, AutoconfEditorMessages.getFormattedString("M4MacroArgsTooFew", macro.getName(), //$NON-NLS-1$
+ Integer.valueOf(2)));
} else if (macro.getParameterCount() > count) {
- handleError(token, AutoconfEditorMessages.getFormattedString("M4MacroArgsTooMany", macro.getName(),
- Integer.valueOf(2))); //$NON-NLS-1$
+ handleError(token, AutoconfEditorMessages.getFormattedString("M4MacroArgsTooMany", macro.getName(), //$NON-NLS-1$
+ Integer.valueOf(2)));
}
}
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfTokenizer.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfTokenizer.java
index 4cbb147f526..aa46faf31fc 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfTokenizer.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/AutoconfTokenizer.java
@@ -69,7 +69,7 @@ public class AutoconfTokenizer {
this.chars = document.get().toCharArray();
this.offset = 0;
- this.eofToken = new Token(ITokenConstants.EOF, "", document, chars.length, 0);
+ this.eofToken = new Token(ITokenConstants.EOF, "", document, chars.length, 0); //$NON-NLS-1$
this.m4OpenQuote = "`"; //$NON-NLS-1$
this.m4CloseQuote = "'"; //$NON-NLS-1$
@@ -179,7 +179,7 @@ public class AutoconfTokenizer {
}
if (!found) {
handleError(startOffset, offset, AutoconfEditorMessages.getFormattedString(UNMATCHED_CLOSE_COMMENT,
- m4CloseComment.equals("\n") ? "newline" : m4CloseComment)); //$NON-NLS-1$
+ m4CloseComment.equals("\n") ? "newline" : m4CloseComment)); //$NON-NLS-1$ //$NON-NLS-2$
}
return makeToken(ITokenConstants.M4_COMMENT);
}
@@ -270,35 +270,39 @@ public class AutoconfTokenizer {
String text = buffer.toString();
if (!isM4Context) {
- // detect sh tokens
- if ("case".equals(text))
- return makeToken(ITokenConstants.SH_CASE, text);
- if ("in".equals(text))
- return makeToken(ITokenConstants.SH_IN, text);
- if ("esac".equals(text))
- return makeToken(ITokenConstants.SH_ESAC, text);
- if ("while".equals(text))
- return makeToken(ITokenConstants.SH_WHILE, text);
- if ("select".equals(text))
- return makeToken(ITokenConstants.SH_SELECT, text);
- if ("until".equals(text))
- return makeToken(ITokenConstants.SH_UNTIL, text);
- if ("for".equals(text))
- return makeToken(ITokenConstants.SH_FOR, text);
- if ("do".equals(text))
- return makeToken(ITokenConstants.SH_DO, text);
- if ("done".equals(text))
- return makeToken(ITokenConstants.SH_DONE, text);
- if ("if".equals(text))
- return makeToken(ITokenConstants.SH_IF, text);
- if ("then".equals(text))
- return makeToken(ITokenConstants.SH_THEN, text);
- if ("else".equals(text))
- return makeToken(ITokenConstants.SH_ELSE, text);
- if ("elif".equals(text))
- return makeToken(ITokenConstants.SH_ELIF, text);
- if ("fi".equals(text))
- return makeToken(ITokenConstants.SH_FI, text);
+ if (text != null) {
+ // detect sh tokens
+ switch (text) {
+ case "case": //$NON-NLS-1$
+ return makeToken(ITokenConstants.SH_CASE, text);
+ case "in": //$NON-NLS-1$
+ return makeToken(ITokenConstants.SH_IN, text);
+ case "esac": //$NON-NLS-1$
+ return makeToken(ITokenConstants.SH_ESAC, text);
+ case "while": //$NON-NLS-1$
+ return makeToken(ITokenConstants.SH_WHILE, text);
+ case "select": //$NON-NLS-1$
+ return makeToken(ITokenConstants.SH_SELECT, text);
+ case "until": //$NON-NLS-1$
+ return makeToken(ITokenConstants.SH_UNTIL, text);
+ case "for": //$NON-NLS-1$
+ return makeToken(ITokenConstants.SH_FOR, text);
+ case "do": //$NON-NLS-1$
+ return makeToken(ITokenConstants.SH_DO, text);
+ case "done": //$NON-NLS-1$
+ return makeToken(ITokenConstants.SH_DONE, text);
+ case "if": //$NON-NLS-1$
+ return makeToken(ITokenConstants.SH_IF, text);
+ case "then": //$NON-NLS-1$
+ return makeToken(ITokenConstants.SH_THEN, text);
+ case "else": //$NON-NLS-1$
+ return makeToken(ITokenConstants.SH_ELSE, text);
+ case "elif": //$NON-NLS-1$
+ return makeToken(ITokenConstants.SH_ELIF, text);
+ case "fi": //$NON-NLS-1$
+ return makeToken(ITokenConstants.SH_FI, text);
+ }
+ }
}
// other identifier-looking word
@@ -360,7 +364,7 @@ public class AutoconfTokenizer {
}
if (ch != terminal) {
- handleError(startOffset, offset, AutoconfEditorMessages.getFormattedString(UNTERMINATED_STRING, "" + ch));
+ handleError(startOffset, offset, AutoconfEditorMessages.getFormattedString(UNTERMINATED_STRING, "" + ch)); //$NON-NLS-1$
}
return makeToken(type, buffer.toString());
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/Token.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/Token.java
index 16044448c6a..3a873a3af19 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/Token.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/autotools/ui/editors/parser/Token.java
@@ -82,7 +82,7 @@ public class Token implements ITokenConstants {
char[] text = document.get().toCharArray();
if (offset == 0)
return false;
- return (" \t\r\n\f".indexOf(text[offset - 1]) >= 0);
+ return (" \t\r\n\f".indexOf(text[offset - 1]) >= 0); //$NON-NLS-1$
}
}
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/LocationAdapter.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/LocationAdapter.java
index bb9e174631e..87addb2ee46 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/LocationAdapter.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/LocationAdapter.java
@@ -36,7 +36,7 @@ abstract class LocationAdapter<T> {
public abstract T getLocation(IFile file);
- public static final LocationAdapter<IPath> PATH = new LocationAdapter<IPath>() {
+ public static final LocationAdapter<IPath> PATH = new LocationAdapter<>() {
@Override
public String extractName(IPath location) {
String name = location.lastSegment();
@@ -68,7 +68,7 @@ abstract class LocationAdapter<T> {
}
};
- public static final LocationAdapter<URI> URI = new LocationAdapter<URI>() {
+ public static final LocationAdapter<URI> URI = new LocationAdapter<>() {
@Override
public String extractName(URI location) {
String path = location.getPath();
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/actions/AbstractAutotoolsHandler.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/actions/AbstractAutotoolsHandler.java
index 6cdec5f7c93..be53d49b021 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/actions/AbstractAutotoolsHandler.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/actions/AbstractAutotoolsHandler.java
@@ -359,7 +359,7 @@ public abstract class AbstractAutotoolsHandler extends AbstractHandler {
for (String arg : argumentList) {
command1.append(' ').append(arg);
}
- newArgumentList = new String[] { "-c", command1.toString() };
+ newArgumentList = new String[] { "-c", command1.toString() }; //$NON-NLS-1$
OutputStream stdout = consoleOutStream;
OutputStream stderr = consoleOutStream;
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakeConfigMacro.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakeConfigMacro.java
index 939265c2fa7..1b7592d60c8 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakeConfigMacro.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakeConfigMacro.java
@@ -28,6 +28,6 @@ public class AutomakeConfigMacro extends Directive {
@Override
public String toString() {
- return name + "\n";
+ return name + "\n"; //$NON-NLS-1$
}
}
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakeErrorHandler.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakeErrorHandler.java
index 621f4d882be..352e8d4bad7 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakeErrorHandler.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakeErrorHandler.java
@@ -27,14 +27,14 @@ import org.eclipse.jface.text.source.AnnotationModel;
import org.eclipse.ui.IEditorInput;
public class AutomakeErrorHandler {
- public static final String AUTOMAKE_ERROR_MARKER_ID = AutotoolsUIPlugin.PLUGIN_ID + ".parsefileerror";
+ public static final String AUTOMAKE_ERROR_MARKER_ID = AutotoolsUIPlugin.PLUGIN_ID + ".parsefileerror"; //$NON-NLS-1$
private IDocument document;
private AnnotationModel fAnnotationModel;
- public static final String CDT_ANNOTATION_INFO = "org.eclipse.cdt.ui.info";
- public static final String CDT_ANNOTATION_WARNING = "org.eclipse.cdt.ui.warning";
- public static final String CDT_ANNOTATION_ERROR = "org.eclipse.cdt.ui.error";
+ public static final String CDT_ANNOTATION_INFO = "org.eclipse.cdt.ui.info"; //$NON-NLS-1$
+ public static final String CDT_ANNOTATION_WARNING = "org.eclipse.cdt.ui.warning"; //$NON-NLS-1$
+ public static final String CDT_ANNOTATION_ERROR = "org.eclipse.cdt.ui.error"; //$NON-NLS-1$
// TODO: no quickfixes yet implemented, but maybe in the future
private static class AutomakeAnnotation extends Annotation implements IQuickFixableAnnotation {
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakeTextHover.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakeTextHover.java
index 24a0d3d0951..49727c3ed20 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakeTextHover.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakeTextHover.java
@@ -54,13 +54,13 @@ public class AutomakeTextHover implements ITextHover, ITextHoverExtension {
}
// Automatic variables
- if (hoverText.startsWith("$")) {
+ if (hoverText.startsWith("$")) { //$NON-NLS-1$
IDirective containingDirective = makefile.getDirectiveContainingLine(hoverLine);
if (containingDirective instanceof TargetRule) {
target = (TargetRule) containingDirective;
}
if (target == null)
- return "";
+ return ""; //$NON-NLS-1$
switch (hoverText.charAt(1)) {
case '@':
return target.getTarget().toString();
@@ -103,7 +103,7 @@ public class AutomakeTextHover implements ITextHover, ITextHoverExtension {
}
}
- return "";
+ return ""; //$NON-NLS-1$
}
@Override
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakefileCodeScanner.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakefileCodeScanner.java
index 5c220704ded..ce0f48e64e5 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakefileCodeScanner.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakefileCodeScanner.java
@@ -33,20 +33,17 @@ import org.eclipse.jface.text.rules.WordRule;
public class AutomakefileCodeScanner extends AbstractMakefileCodeScanner {
- private final static String[] keywords = { "define", "endef", "ifdef", "ifndef", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- "ifeq", "ifneq", "else", "endif", "include", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
- "-include", "sinclude", "override", "endef", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- "export", "unexport", "vpath", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- "if", "@if", "@endif" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
- private final static String[] functions = { "subst", "patsubst", "strip", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- "findstring", "filter", "sort", "dir", "notdir", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
- "suffix", "basename", "addsuffix", "addprefix", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- "join", "word", "words", "wordlist", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- "firstword", "wildcard", "error", "warning", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- "shell", "origin", "foreach", "call" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- };
+ @SuppressWarnings("nls")
+ private final static String[] keywords = { "define", "endef", "ifdef", "ifndef", "ifeq", "ifneq", "else", "endif",
+ "include", "-include", "sinclude", "override", "endef", "export", "unexport", "vpath", "if", "@if",
+ "@endif" };
+ @SuppressWarnings("nls")
+ private final static String[] functions = { "subst", "patsubst", "strip", "findstring", "filter", "sort", "dir",
+ "notdir", "suffix", "basename", "addsuffix", "addprefix", "join", "word", "words", "wordlist", "firstword",
+ "wildcard", "error", "warning", "shell", "origin", "foreach", "call" };
+
+ @SuppressWarnings("nls")
private final static String[] automaticVariables = { "$<", "$*", "$@", "$?", "$%" };
static final String[] fTokenProperties = new String[] { ColorManager.MAKE_COMMENT_COLOR,
@@ -117,7 +114,7 @@ public class AutomakefileCodeScanner extends AbstractMakefileCodeScanner {
rules.add(new AutoconfIdentifierRule(other));
// Make sure we don't treat "\#" as comment start.
- rules.add(new SingleLineRule("\\#", null, Token.UNDEFINED));
+ rules.add(new SingleLineRule("\\#", null, Token.UNDEFINED)); //$NON-NLS-1$
rules.add(new WhitespaceRule(new AutoconfWhitespaceDetector()));
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakefileContentOutlinePage.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakefileContentOutlinePage.java
index 5e86a02d75d..3160bf7d118 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakefileContentOutlinePage.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutomakefileContentOutlinePage.java
@@ -189,10 +189,10 @@ public class AutomakefileContentOutlinePage extends ContentOutlinePage {
} else if (element instanceof AutomakeIfElse) {
AutomakeIfElse ifelse = (AutomakeIfElse) element;
// FIXME: make this not a string comparison
- if (ifelse.getType().equals("if")) {
- name = "if " + ifelse.getCondition();
+ if (ifelse.getType().equals("if")) { //$NON-NLS-1$
+ name = "if " + ifelse.getCondition(); //$NON-NLS-1$
} else
- name = "else";
+ name = "else"; //$NON-NLS-1$
} else if (element instanceof AutomakeConfigMacro) {
AutomakeConfigMacro macro = (AutomakeConfigMacro) element;
name = macro.getName();
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/GNUAutomakefile.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/GNUAutomakefile.java
index 0ebd0f89875..e3d41e3588d 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/GNUAutomakefile.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/GNUAutomakefile.java
@@ -573,7 +573,7 @@ public class GNUAutomakefile extends AbstractMakefile implements IGNUMakefile {
* An Autoconf directive of the form @xxx@
*/
protected AutomakeConfigMacro parseConfigMacro(String line) {
- String extraChars = "_-";
+ String extraChars = "_-"; //$NON-NLS-1$
char[] ch = line.toCharArray();
int i = 1;
while (Character.isLetterOrDigit(ch[i]) || extraChars.indexOf(ch[i]) >= 0) {
@@ -646,7 +646,7 @@ public class GNUAutomakefile extends AbstractMakefile implements IGNUMakefile {
}
directories = dirs.toArray(new String[0]);
if (pattern == null) {
- pattern = "";
+ pattern = ""; //$NON-NLS-1$
}
return new VPath(this, pattern, directories);
}
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/MakefilePartitionScanner.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/MakefilePartitionScanner.java
index cab5a77b6c3..0a0ef3acc2a 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/MakefilePartitionScanner.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/MakefilePartitionScanner.java
@@ -75,7 +75,7 @@ public class MakefilePartitionScanner extends RuleBasedPartitionScanner {
rules.add(new MultiLineRule("ifnneq", "endif", tIf)); //$NON-NLS-1$ //$NON-NLS-2$
// Last rule must be supplied with default token!
- rules.add(new MacroDefinitionRule(tMacro, tOther)); //$NON-NLS-1$
+ rules.add(new MacroDefinitionRule(tMacro, tOther));
IPredicateRule[] result = new IPredicateRule[rules.size()];
rules.toArray(result);
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/NullMakefile.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/NullMakefile.java
index bd461cee641..3b832e0c511 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/NullMakefile.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/NullMakefile.java
@@ -59,7 +59,7 @@ public class NullMakefile extends AbstractMakefile {
@Override
public String toString() {
- return "";
+ return ""; //$NON-NLS-1$
}
@Override
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/preferences/AbstractEditorPreferencePage.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/preferences/AbstractEditorPreferencePage.java
index 4ed3f92a270..f243f97dbb8 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/preferences/AbstractEditorPreferencePage.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/preferences/AbstractEditorPreferencePage.java
@@ -217,9 +217,9 @@ public abstract class AbstractEditorPreferencePage extends PreferencePage implem
try {
int value = Integer.parseInt(number);
if (value < 0)
- status.setError(MessageFormat.format(errorMessages[1], new Object[] { number })); //$NON-NLS-1$
+ status.setError(MessageFormat.format(errorMessages[1], new Object[] { number }));
} catch (NumberFormatException e) {
- status.setError(MessageFormat.format(errorMessages[1], new Object[] { number })); //$NON-NLS-1$
+ status.setError(MessageFormat.format(errorMessages[1], new Object[] { number }));
}
}
return status;
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/preferences/AutoconfEditorPreferencePage.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/preferences/AutoconfEditorPreferencePage.java
index 424e1ee087b..bc375d8afac 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/preferences/AutoconfEditorPreferencePage.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/preferences/AutoconfEditorPreferencePage.java
@@ -18,7 +18,6 @@ package org.eclipse.cdt.internal.autotools.ui.preferences;
import java.util.ArrayList;
import java.util.List;
-import org.eclipse.cdt.autotools.ui.AutotoolsUIPlugin;
import org.eclipse.cdt.make.ui.IMakeHelpContextIds;
import org.eclipse.cdt.ui.PreferenceConstants;
import org.eclipse.jface.preference.IPreferenceStore;
@@ -31,6 +30,8 @@ import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Color;
@@ -42,8 +43,7 @@ import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.model.WorkbenchViewerComparator;
/**
@@ -52,9 +52,11 @@ import org.eclipse.ui.model.WorkbenchViewerComparator;
*/
public class AutoconfEditorPreferencePage extends AbstractEditorPreferencePage {
+ @SuppressWarnings("nls")
private static String[] fACVersions = { "2.13", "2.59", "2.61", "2.68" };
public static final String LATEST_AC_VERSION = fACVersions[fACVersions.length - 1];
+ @SuppressWarnings("nls")
private static String[] fAMVersions = { "1.4-p6", "1.9.5", "1.9.6", "1.11.1" };
public static final String LATEST_AM_VERSION = fAMVersions[fAMVersions.length - 1];
@@ -252,26 +254,27 @@ public class AutoconfEditorPreferencePage extends AbstractEditorPreferencePage {
@Override
protected Control createContents(Composite parent) {
- AutotoolsUIPlugin.getDefault().getWorkbench().getHelpSystem().setHelp(getControl(),
+ PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(),
IMakeHelpContextIds.MAKE_EDITOR_PREFERENCE_PAGE);
getOverlayStore().load();
getOverlayStore().start();
- TabFolder folder = new TabFolder(parent, SWT.NONE);
+ CTabFolder folder = new CTabFolder(parent, SWT.NONE);
folder.setLayout(new TabFolderLayout());
folder.setLayoutData(new GridData(GridData.FILL_BOTH));
- TabItem item = new TabItem(folder, SWT.NONE);
+ CTabItem item = new CTabItem(folder, SWT.NONE);
+ folder.setSelection(0);
item.setText(AutotoolsPreferencesMessages.getString("AutomakeEditorPreferencePage.syntax")); //$NON-NLS-1$
item.setControl(createSyntaxPage(folder));
- item = new TabItem(folder, SWT.NONE);
+ item = new CTabItem(folder, SWT.NONE);
item.setText(AutotoolsPreferencesMessages.getString("AutoconfEditorPreferencePage.folding")); //$NON-NLS-1$
item.setControl(createFoldingTabContent(folder));
// Allow end-user to select which version of autoconf to use for hover help
// and syntax checking of macros.
- item = new TabItem(folder, SWT.NONE);
+ item = new CTabItem(folder, SWT.NONE);
item.setText(AutotoolsPreferencesMessages.getString("AutoconfEditorPreferencePage.version")); //$NON-NLS-1$
item.setControl(createVersionTabContent(folder));
@@ -445,7 +448,7 @@ public class AutoconfEditorPreferencePage extends AbstractEditorPreferencePage {
return colorComposite;
}
- private Composite createFoldingTabContent(TabFolder folder) {
+ private Composite createFoldingTabContent(CTabFolder folder) {
Composite composite = new Composite(folder, SWT.NULL);
// assume parent page uses griddata
GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_CENTER | GridData.VERTICAL_ALIGN_FILL);
@@ -472,7 +475,7 @@ public class AutoconfEditorPreferencePage extends AbstractEditorPreferencePage {
return composite;
}
- private Composite createVersionTabContent(TabFolder folder) {
+ private Composite createVersionTabContent(CTabFolder folder) {
Composite composite = new Composite(folder, SWT.NULL);
// assume parent page uses griddata
GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_CENTER | GridData.VERTICAL_ALIGN_FILL);
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/preferences/AutomakeEditorPreferencePage.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/preferences/AutomakeEditorPreferencePage.java
index c5c5aad6d8d..2d3e47358d0 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/preferences/AutomakeEditorPreferencePage.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/preferences/AutomakeEditorPreferencePage.java
@@ -18,7 +18,6 @@ package org.eclipse.cdt.internal.autotools.ui.preferences;
import java.util.ArrayList;
import java.util.List;
-import org.eclipse.cdt.autotools.ui.AutotoolsUIPlugin;
import org.eclipse.cdt.make.ui.IMakeHelpContextIds;
import org.eclipse.cdt.ui.PreferenceConstants;
import org.eclipse.jface.preference.IPreferenceStore;
@@ -31,6 +30,8 @@ import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Color;
@@ -41,8 +42,7 @@ import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.model.WorkbenchViewerComparator;
/**
@@ -233,20 +233,21 @@ public class AutomakeEditorPreferencePage extends AbstractEditorPreferencePage {
@Override
protected Control createContents(Composite parent) {
- AutotoolsUIPlugin.getDefault().getWorkbench().getHelpSystem().setHelp(getControl(),
+ PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(),
IMakeHelpContextIds.MAKE_EDITOR_PREFERENCE_PAGE);
getOverlayStore().load();
getOverlayStore().start();
- TabFolder folder = new TabFolder(parent, SWT.NONE);
+ CTabFolder folder = new CTabFolder(parent, SWT.NONE);
folder.setLayout(new TabFolderLayout());
folder.setLayoutData(new GridData(GridData.FILL_BOTH));
- TabItem item = new TabItem(folder, SWT.NONE);
+ CTabItem item = new CTabItem(folder, SWT.NONE);
+ folder.setSelection(0);
item.setText(AutotoolsPreferencesMessages.getString("AutomakeEditorPreferencePage.syntax")); //$NON-NLS-1$
item.setControl(createSyntaxPage(folder));
- item = new TabItem(folder, SWT.NONE);
+ item = new CTabItem(folder, SWT.NONE);
item.setText(AutotoolsPreferencesMessages.getString("AutomakeEditorPreferencePage.folding")); //$NON-NLS-1$
item.setControl(createFoldingTabContent(folder));
@@ -380,7 +381,7 @@ public class AutomakeEditorPreferencePage extends AbstractEditorPreferencePage {
return colorComposite;
}
- private Composite createFoldingTabContent(TabFolder folder) {
+ private Composite createFoldingTabContent(CTabFolder folder) {
Composite composite = new Composite(folder, SWT.NULL);
// assume parent page uses griddata
GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_CENTER | GridData.VERTICAL_ALIGN_FILL);
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/preferences/AutotoolsEditorPreferenceConstants.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/preferences/AutotoolsEditorPreferenceConstants.java
index f25e4f793dd..ff52c98b411 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/preferences/AutotoolsEditorPreferenceConstants.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/preferences/AutotoolsEditorPreferenceConstants.java
@@ -59,9 +59,9 @@ public class AutotoolsEditorPreferenceConstants {
public static final String EDITOR_FOLDING_ENABLED = "editor_folding_enabled"; //$NON-NLS-1$
- public static final String AUTOCONF_VERSION = "autoconf_version";
+ public static final String AUTOCONF_VERSION = "autoconf_version"; //$NON-NLS-1$
- public static final String AUTOMAKE_VERSION = "automake_version";
+ public static final String AUTOMAKE_VERSION = "automake_version"; //$NON-NLS-1$
public static void initializeDefaultValues(IPreferenceStore store) {
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsBuildPropertyPage.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsBuildPropertyPage.java
index b394401485e..96970d81c87 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsBuildPropertyPage.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsBuildPropertyPage.java
@@ -70,7 +70,7 @@ public class AutotoolsBuildPropertyPage extends AbstractCBuildPropertyTab {
composite.setLayout(layout);
Group g = new Group(composite, SWT.SHADOW_ETCHED_IN);
- g.setText(AutotoolsPropertyMessages.getString("CleanBehavior.title"));
+ g.setText(AutotoolsPropertyMessages.getString("CleanBehavior.title")); //$NON-NLS-1$
gd = new GridData(
GridData.HORIZONTAL_ALIGN_CENTER | GridData.VERTICAL_ALIGN_BEGINNING | GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 2;
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsCategoryPropertyOptionPage.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsCategoryPropertyOptionPage.java
index b0e137a947b..674c29cee97 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsCategoryPropertyOptionPage.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsCategoryPropertyOptionPage.java
@@ -43,7 +43,7 @@ import org.eclipse.swt.widgets.Text;
public class AutotoolsCategoryPropertyOptionPage extends AbstractConfigurePropertyOptionsPage {
private static final int MARGIN = 3;
- private String catName = "";
+ private String catName = ""; //$NON-NLS-1$
private IAConfiguration cfg;
// Label class for a preference page.
@@ -153,7 +153,7 @@ public class AutotoolsCategoryPropertyOptionPage extends AbstractConfigureProper
@Override
protected void configureShell(Shell newShell) {
super.configureShell(newShell);
- newShell.setText(AutotoolsPropertyMessages.getString("NewEnvVarDialog.title"));
+ newShell.setText(AutotoolsPropertyMessages.getString("NewEnvVarDialog.title")); //$NON-NLS-1$
}
@Override
@@ -171,7 +171,7 @@ public class AutotoolsCategoryPropertyOptionPage extends AbstractConfigureProper
int fieldWidthHint = convertWidthInCharsToPixels(metrics, 50);
Label label = new Label(composite, SWT.NONE);
- label.setText(AutotoolsPropertyMessages.getString("NewEnvVarDialog.name_field"));
+ label.setText(AutotoolsPropertyMessages.getString("NewEnvVarDialog.name_field")); //$NON-NLS-1$
fTextName = new Text(composite, SWT.SINGLE | SWT.BORDER);
GridData gd = new GridData(GridData.FILL_BOTH);
gd.grabExcessHorizontalSpace = true;
@@ -188,7 +188,7 @@ public class AutotoolsCategoryPropertyOptionPage extends AbstractConfigureProper
}
});
label = new Label(composite, SWT.NONE);
- label.setText(AutotoolsPropertyMessages.getString("NewEnvVarDialog.value_field"));
+ label.setText(AutotoolsPropertyMessages.getString("NewEnvVarDialog.value_field")); //$NON-NLS-1$
fTextValue = new Text(composite, SWT.SINGLE | SWT.BORDER);
gd = new GridData(GridData.FILL_BOTH);
gd.grabExcessHorizontalSpace = true;
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsConfigurePrefStore.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsConfigurePrefStore.java
index 4630aa371b9..5cef750f1b5 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsConfigurePrefStore.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsConfigurePrefStore.java
@@ -26,7 +26,7 @@ import org.eclipse.jface.util.PropertyChangeEvent;
*/
public class AutotoolsConfigurePrefStore implements IPreferenceStore {
- public final static String EMPTY_STRING = "";
+ public final static String EMPTY_STRING = ""; //$NON-NLS-1$
public final static String ALL_OPTIONS_ID = EMPTY_STRING;
private static AutotoolsConfigurePrefStore instance = null;
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsConfigurePropertyTab.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsConfigurePropertyTab.java
index 03a985a6636..5632d2c0b53 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsConfigurePropertyTab.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsConfigurePropertyTab.java
@@ -120,7 +120,7 @@ public class AutotoolsConfigurePropertyTab extends AbstractAutotoolsCPropertyTab
fTree.addSelectionChangedListener(event -> handleOptionSelection());
fTree.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
// Create a temporary default AutotoolsConfiguration to use for label info
- IAConfiguration tmp = AutotoolsConfigurationManager.getInstance().createDefaultConfiguration("");
+ IAConfiguration tmp = AutotoolsConfigurationManager.getInstance().createDefaultConfiguration(""); //$NON-NLS-1$
fTree.setLabelProvider(new ToolListLabelProvider(tmp));
}
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsEditorPropertyTab.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsEditorPropertyTab.java
index 72d2963bc60..fd148b990a6 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsEditorPropertyTab.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsEditorPropertyTab.java
@@ -92,8 +92,8 @@ public class AutotoolsEditorPropertyTab extends AbstractAutotoolsCPropertyTab {
acVer = project.getPersistentProperty(AutotoolsPropertyConstants.AUTOCONF_VERSION);
amVer = project.getPersistentProperty(AutotoolsPropertyConstants.AUTOMAKE_VERSION);
} catch (CoreException e) {
- acVer = "";
- amVer = "";
+ acVer = ""; //$NON-NLS-1$
+ amVer = ""; //$NON-NLS-1$
}
int index = fACVersionCombo.getSelectionIndex();
String acVerSelected = fACVersionCombo.getItem(index);
@@ -179,7 +179,7 @@ public class AutotoolsEditorPropertyTab extends AbstractAutotoolsCPropertyTab {
}
void initializeACVersion() {
- String version = "";
+ String version = ""; //$NON-NLS-1$
try {
version = project.getPersistentProperty(AutotoolsPropertyConstants.AUTOCONF_VERSION);
if (version == null)
@@ -202,7 +202,7 @@ public class AutotoolsEditorPropertyTab extends AbstractAutotoolsCPropertyTab {
}
void initializeAMVersion() {
- String version = "";
+ String version = ""; //$NON-NLS-1$
try {
version = project.getPersistentProperty(AutotoolsPropertyConstants.AUTOMAKE_VERSION);
if (version == null)
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsToolPropertyOptionPage.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsToolPropertyOptionPage.java
index c982fc7969f..541c2467a04 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsToolPropertyOptionPage.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsToolPropertyOptionPage.java
@@ -29,7 +29,7 @@ import org.eclipse.swt.widgets.Composite;
public class AutotoolsToolPropertyOptionPage extends AbstractConfigurePropertyOptionsPage {
private static final int MARGIN = 3;
- private String toolName = "";
+ private String toolName = ""; //$NON-NLS-1$
private IAConfiguration cfg;
public AutotoolsToolPropertyOptionPage(ToolListElement element, IAConfiguration cfg) {
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsToolsPropertyTab.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsToolsPropertyTab.java
index 39931cc1419..d72ab455d91 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsToolsPropertyTab.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/properties/AutotoolsToolsPropertyTab.java
@@ -89,7 +89,7 @@ public class AutotoolsToolsPropertyTab extends AbstractAutotoolsCPropertyTab {
/* text window for automake path */
fAutomakePath = new Text(composite, SWT.BORDER | SWT.SINGLE);
- fAutomakePath.setToolTipText(AutotoolsPropertyMessages.getString("Autotools.automakePath.tooltip")); //$NON-NLS-1#
+ fAutomakePath.setToolTipText(AutotoolsPropertyMessages.getString("Autotools.automakePath.tooltip")); //$NON-NLS-1$
gd = new GridData(
GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_BEGINNING | GridData.FILL_HORIZONTAL);
fAutomakePath.setLayoutData(gd);
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/text/hover/AutoconfTextHover.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/text/hover/AutoconfTextHover.java
index 9217a88d08b..39ce54a840c 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/text/hover/AutoconfTextHover.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/text/hover/AutoconfTextHover.java
@@ -73,8 +73,8 @@ import org.xml.sax.SAXException;
public class AutoconfTextHover implements ITextHover, ITextHoverExtension {
- public static final String LOCAL_AUTOCONF_MACROS_DOC_NAME = "macros/acmacros";
- public static final String LOCAL_AUTOMAKE_MACROS_DOC_NAME = "macros/ammacros";
+ public static final String LOCAL_AUTOCONF_MACROS_DOC_NAME = "macros/acmacros"; //$NON-NLS-1$
+ public static final String LOCAL_AUTOMAKE_MACROS_DOC_NAME = "macros/ammacros"; //$NON-NLS-1$
public static final String AUTOCONF_MACROS_DOC_NAME = "http://www.sourceware.org/eclipse/autotools/acmacros"; //$NON-NLS-1$
public static final String AUTOMAKE_MACROS_DOC_NAME = "http://www.sourceware.org/eclipse/autotools/ammacros"; //$NON-NLS-1$
@@ -296,7 +296,7 @@ public class AutoconfTextHover implements ITextHover, ITextHoverExtension {
Element elem = document.getElementById(name);
if (null != elem) {
int prototypeCount = 0;
- buffer.append("<B>Macro:</B> ").append(name);
+ buffer.append("<B>Macro:</B> ").append(name); //$NON-NLS-1$
NodeList nl = elem.getChildNodes();
for (int i = 0; i < nl.getLength(); ++i) {
Node n = nl.item(i);
@@ -305,11 +305,11 @@ public class AutoconfTextHover implements ITextHover, ITextHoverExtension {
StringBuilder prototype = new StringBuilder();
++prototypeCount;
if (prototypeCount == 1) {
- buffer.append(" (");
+ buffer.append(" ("); //$NON-NLS-1$
} else {
- buffer.append(" <B>or</B> "); //$NON-NLS-2$
+ buffer.append(" <B>or</B> "); //$NON-NLS-1$
buffer.append(name);
- buffer.append(" (<I>"); //$NON-NLS-2$
+ buffer.append(" (<I>"); //$NON-NLS-1$
}
NodeList varList = n.getChildNodes();
for (int j = 0; j < varList.getLength(); ++j) {
@@ -322,14 +322,14 @@ public class AutoconfTextHover implements ITextHover, ITextHoverExtension {
if (prototype.length() == 0)
prototype.append(parm);
else
- prototype.append(", ").append(parm);
+ prototype.append(", ").append(parm); //$NON-NLS-1$
}
}
buffer.append(prototype).append("</I>)<br>"); //$NON-NLS-1$
}
if (nodeName.equals("synopsis")) { //$NON-NLS-1$
Node textNode = n.getLastChild();
- buffer.append("<br><B>Synopsis:</B> ");
+ buffer.append("<br><B>Synopsis:</B> "); //$NON-NLS-1$
buffer.append(textNode.getNodeValue());
}
}
@@ -444,11 +444,11 @@ public class AutoconfTextHover implements ITextHover, ITextHoverExtension {
String parm = parmNode.getNodeValue();
// Check for first optional parameter which means
// we know the minimum number of parameters needed.
- if (minParmCount < 0 && (parm.charAt(0) == '[' || parm.startsWith("...")))
+ if (minParmCount < 0 && (parm.charAt(0) == '[' || parm.startsWith("..."))) //$NON-NLS-1$
minParmCount = parmCount - 1;
// Old style documentation sometimes had '[' in
// prototypes so look for one at end of a parm too.
- else if (minParmCount < 0 && parm.endsWith("["))
+ else if (minParmCount < 0 && parm.endsWith("[")) //$NON-NLS-1$
minParmCount = parmCount;
p.setParmName(prototypeCount, parmCount - 1, parm);
}
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/AutotoolsProjectImportWizard.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/AutotoolsProjectImportWizard.java
index 69b7c15ebb5..ab02f917558 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/AutotoolsProjectImportWizard.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/AutotoolsProjectImportWizard.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2015 Mentor Graphics Corporation.
+ * Copyright (c) 2015, 2020 Mentor Graphics Corporation.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -130,7 +130,7 @@ public class AutotoolsProjectImportWizard extends NewMakeProjFromExisting {
CfgHolder cfgHolder = new CfgHolder(toolChain, null);
String s = toolChain == null ? "0" : ((ToolChain) toolChain).getId(); //$NON-NLS-1$
- Configuration config = new Configuration(mProj, (ToolChain) toolChain,
+ Configuration config = new Configuration(mProj, toolChain,
ManagedBuildManager.calculateChildId(s, null), cfgHolder.getName());
IBuilder builder = config.getEditableBuilder();
builder.setManagedBuildOn(false);
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/AutotoolsProjectImportWizardPage.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/AutotoolsProjectImportWizardPage.java
index 501032e3603..d71a7c1d37b 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/AutotoolsProjectImportWizardPage.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/AutotoolsProjectImportWizardPage.java
@@ -50,8 +50,8 @@ public class AutotoolsProjectImportWizardPage extends NewMakeProjFromExistingPag
private Button langcpp;
protected AutotoolsProjectImportWizardPage() {
- setTitle(AutotoolsWizardMessages.getResourceString("ImportWizardPage.title"));
- setDescription(AutotoolsWizardMessages.getResourceString("ImportWizardPage.description"));
+ setTitle(AutotoolsWizardMessages.getResourceString("ImportWizardPage.title")); //$NON-NLS-1$
+ setDescription(AutotoolsWizardMessages.getResourceString("ImportWizardPage.description")); //$NON-NLS-1$
}
protected IProjectType getProjectType() {
@@ -110,10 +110,10 @@ public class AutotoolsProjectImportWizardPage extends NewMakeProjFromExistingPag
AutotoolsUIPlugin.getResourceString("WizardMakeProjectConversion.monitor.convertingToMakeProject"), 7); //$NON-NLS-1$
IConfiguration defaultCfg = null;
try {
- monitor.subTask(AutotoolsUIPlugin.getResourceString("adding project nature"));
+ monitor.subTask(AutotoolsUIPlugin.getResourceString("adding project nature")); //$NON-NLS-1$
ManagedCProjectNature.addManagedNature(project, SubMonitor.convert(monitor, 1));
AutotoolsNewProjectNature.addAutotoolsNature(project, SubMonitor.convert(monitor, 1));
- monitor.subTask(AutotoolsUIPlugin.getResourceString("adding builder"));
+ monitor.subTask(AutotoolsUIPlugin.getResourceString("adding builder")); //$NON-NLS-1$
AutotoolsNewProjectNature.addAutotoolsBuilder(project, SubMonitor.convert(monitor, 1));
project.setPersistentProperty(AutotoolsPropertyConstants.SCANNER_USE_MAKE_W,
AutotoolsPropertyConstants.TRUE);
@@ -167,7 +167,7 @@ public class AutotoolsProjectImportWizardPage extends NewMakeProjFromExistingPag
}
// Save the build options
- monitor.subTask(AutotoolsUIPlugin.getResourceString("saving project"));
+ monitor.subTask(AutotoolsUIPlugin.getResourceString("saving project")); //$NON-NLS-1$
if (info != null) {
info.setValid(true);
ManagedBuildManager.saveBuildInfo(project, true);
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/ConfigurationLabelProvider.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/ConfigurationLabelProvider.java
index 172691d0fc2..ef3d3a40c6c 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/ConfigurationLabelProvider.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/ConfigurationLabelProvider.java
@@ -34,7 +34,7 @@ public class ConfigurationLabelProvider extends LabelProvider implements ITableL
else
return (tmpConfig.getName() + " ( " + tmpConfig.getDescription() + " )"); //$NON-NLS-1$ //$NON-NLS-2$
}
- return "";
+ return ""; //$NON-NLS-1$
}
@Override
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/ConvertToAutotoolsProjectWizardPage.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/ConvertToAutotoolsProjectWizardPage.java
index ef85c2263d3..282c4d9d633 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/ConvertToAutotoolsProjectWizardPage.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/ConvertToAutotoolsProjectWizardPage.java
@@ -55,9 +55,9 @@ import org.eclipse.ui.wizards.newresource.BasicNewResourceWizard;
*/
public class ConvertToAutotoolsProjectWizardPage extends ConvertProjectWizardPage {
- private static final String WZ_TITLE = "WizardAutotoolsProjectConversion.title"; //$NON-NLS-1$
- private static final String WZ_DESC = "WizardAutotoolsProjectConversion.description"; //$NON-NLS-1$
- private static final String PREFIX = "WizardAutotoolsProjectConversion";
+ private static final String PREFIX = "WizardAutotoolsProjectConversion"; //$NON-NLS-1$
+ private static final String WZ_TITLE = PREFIX + ".title"; //$NON-NLS-1$
+ private static final String WZ_DESC = PREFIX + ".description"; //$NON-NLS-1$
protected static final String MSG_ADD_NATURE = PREFIX + ".message.add_nature"; //$NON-NLS-1$
protected static final String MSG_ADD_BUILDER = PREFIX + ".message.add_builder"; //$NON-NLS-1$
protected static final String MSG_SAVE = PREFIX + ".message.save"; //$NON-NLS-1$
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/ReferenceBlock.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/ReferenceBlock.java
index 6177dabacfe..928d4bc024b 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/ReferenceBlock.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/wizards/ReferenceBlock.java
@@ -171,7 +171,7 @@ public class ReferenceBlock extends AbstractCOptionPage {
if (monitor == null) {
monitor = new NullProgressMonitor();
}
- monitor.beginTask(AutotoolsWizardMessages.getResourceString("ReferenceBlock_task_ReferenceProjects"), 1);
+ monitor.beginTask(AutotoolsWizardMessages.getResourceString("ReferenceBlock_task_ReferenceProjects"), 1); //$NON-NLS-1$
try {
IProjectDescription description = project.getDescription();
description.setReferencedProjects(refProjects);
diff --git a/build/org.eclipse.cdt.build.gcc.core/.classpath b/build/org.eclipse.cdt.build.gcc.core/.classpath
index eca7bdba8f0..e801ebfb468 100644
--- a/build/org.eclipse.cdt.build.gcc.core/.classpath
+++ b/build/org.eclipse.cdt.build.gcc.core/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
diff --git a/build/org.eclipse.cdt.build.gcc.core/.project b/build/org.eclipse.cdt.build.gcc.core/.project
index 46346d9b6c1..64c0a4ab47c 100644
--- a/build/org.eclipse.cdt.build.gcc.core/.project
+++ b/build/org.eclipse.cdt.build.gcc.core/.project
@@ -20,9 +20,15 @@
<arguments>
</arguments>
</buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
</natures>
</projectDescription>
diff --git a/build/org.eclipse.cdt.build.gcc.core/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.build.gcc.core/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.build.gcc.core/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.build.gcc.core/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.build.gcc.core/.settings/org.eclipse.jdt.core.prefs
index 2b6ecff8a01..e3a8104f9ca 100644
--- a/build/org.eclipse.cdt.build.gcc.core/.settings/org.eclipse.jdt.core.prefs
+++ b/build/org.eclipse.cdt.build.gcc.core/.settings/org.eclipse.jdt.core.prefs
@@ -30,9 +30,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -49,6 +49,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
@@ -107,6 +108,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
@@ -144,13 +146,14 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -158,21 +161,24 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@@ -264,11 +270,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@@ -299,6 +306,8 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@@ -323,13 +332,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@@ -377,6 +390,8 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do no
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@@ -413,9 +428,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@@ -454,10 +472,14 @@ org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/build/org.eclipse.cdt.build.gcc.core/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.build.gcc.core/.settings/org.eclipse.jdt.ui.prefs
index e44576346c4..d35ba9b5231 100644
--- a/build/org.eclipse.cdt.build.gcc.core/.settings/org.eclipse.jdt.ui.prefs
+++ b/build/org.eclipse.cdt.build.gcc.core/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,4 @@
+cleanup.add_all=false
cleanup.add_default_serial_version_id=true
cleanup.add_generated_serial_version_id=false
cleanup.add_missing_annotations=true
@@ -11,25 +12,72 @@ cleanup.always_use_blocks=true
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=false
cleanup.always_use_this_for_non_static_method_access=false
+cleanup.array_with_curly=false
+cleanup.arrays_fill=false
+cleanup.bitwise_conditional_expression=false
+cleanup.boolean_literal=false
+cleanup.boolean_value_rather_than_comparison=false
+cleanup.break_loop=false
+cleanup.collection_cloning=false
+cleanup.comparing_on_criteria=false
+cleanup.comparison_statement=false
+cleanup.controlflow_merge=false
cleanup.convert_functional_interfaces=false
cleanup.convert_to_enhanced_for_loop=false
+cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
+cleanup.convert_to_switch_expressions=false
cleanup.correct_indentation=false
+cleanup.do_while_rather_than_while=true
+cleanup.double_negation=false
+cleanup.else_if=false
+cleanup.embedded_if=false
+cleanup.evaluate_nullable=false
+cleanup.extract_increment=false
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
+cleanup.hash=false
+cleanup.if_condition=false
cleanup.insert_inferred_type_arguments=false
+cleanup.instanceof=false
+cleanup.instanceof_keyword=false
+cleanup.invert_equals=false
+cleanup.join=false
+cleanup.lazy_logical_operator=false
cleanup.make_local_variable_final=true
cleanup.make_parameters_final=false
cleanup.make_private_fields_final=true
cleanup.make_type_abstract_if_missing_method=false
cleanup.make_variable_declarations_final=false
+cleanup.map_cloning=false
+cleanup.merge_conditional_blocks=false
+cleanup.multi_catch=false
cleanup.never_use_blocks=false
cleanup.never_use_parentheses_in_expressions=true
+cleanup.no_string_creation=false
+cleanup.no_super=false
+cleanup.number_suffix=false
+cleanup.objects_equals=false
+cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
+cleanup.operand_factorization=false
cleanup.organize_imports=true
+cleanup.overridden_assignment=false
+cleanup.plain_replacement=false
+cleanup.precompile_regex=false
+cleanup.primitive_comparison=false
+cleanup.primitive_parsing=false
+cleanup.primitive_rather_than_wrapper=false
+cleanup.primitive_serialization=false
+cleanup.pull_out_if_from_if_else=false
+cleanup.pull_up_assignment=false
+cleanup.push_down_negation=false
cleanup.qualify_static_field_accesses_with_declaring_class=false
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
cleanup.qualify_static_member_accesses_with_declaring_class=false
cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.reduce_indentation=false
+cleanup.redundant_comparator=false
+cleanup.redundant_falling_through_block_end=false
cleanup.remove_private_constructors=true
cleanup.remove_redundant_modifiers=false
cleanup.remove_redundant_semicolons=true
@@ -37,25 +85,57 @@ cleanup.remove_redundant_type_arguments=true
cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true
cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_array_creation=false
cleanup.remove_unnecessary_casts=true
cleanup.remove_unnecessary_nls_tags=false
cleanup.remove_unused_imports=true
cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_method_parameters=false
cleanup.remove_unused_private_fields=true
cleanup.remove_unused_private_members=false
cleanup.remove_unused_private_methods=true
cleanup.remove_unused_private_types=true
+cleanup.return_expression=false
+cleanup.simplify_lambda_expression_and_method_ref=false
+cleanup.single_used_field=false
cleanup.sort_members=false
cleanup.sort_members_all=false
+cleanup.standard_comparison=false
+cleanup.static_inner_class=false
+cleanup.strictly_equal_or_different=false
+cleanup.stringbuffer_to_stringbuilder=false
+cleanup.stringbuilder=false
+cleanup.stringbuilder_for_local_vars=true
+cleanup.stringconcat_to_textblock=false
+cleanup.substring=false
+cleanup.switch=false
+cleanup.system_property=false
+cleanup.system_property_boolean=false
+cleanup.system_property_file_encoding=false
+cleanup.system_property_file_separator=false
+cleanup.system_property_line_separator=false
+cleanup.system_property_path_separator=false
+cleanup.ternary_operator=false
+cleanup.try_with_resource=false
+cleanup.unlooped_while=false
+cleanup.unreachable_block=false
cleanup.use_anonymous_class_creation=false
+cleanup.use_autoboxing=false
cleanup.use_blocks=false
cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_directly_map_method=false
cleanup.use_lambda=true
cleanup.use_parentheses_in_expressions=false
+cleanup.use_string_is_blank=false
cleanup.use_this_for_non_static_field_access=false
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
cleanup.use_this_for_non_static_method_access=false
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_unboxing=false
+cleanup.use_var=false
+cleanup.useless_continue=false
+cleanup.useless_return=false
+cleanup.valueof_rather_than_instantiation=false
cleanup_profile=_CDT
cleanup_settings_version=2
eclipse.preferences.version=1
diff --git a/build/org.eclipse.cdt.build.gcc.core/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.build.gcc.core/META-INF/MANIFEST.MF
index e9fd3792eeb..c087af01fa4 100644
--- a/build/org.eclipse.cdt.build.gcc.core/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.build.gcc.core/META-INF/MANIFEST.MF
@@ -1,15 +1,17 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
-Bundle-Name: GCC support for CDT Build Core
+Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.cdt.build.gcc.core;singleton:=true
-Bundle-Version: 1.0.1.qualifier
+Bundle-Version: 1.1.100.qualifier
Bundle-Activator: org.eclipse.cdt.build.gcc.core.internal.Activator
-Bundle-Vendor: Eclipse CDT
+Bundle-Vendor: %providerName
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.core.resources;bundle-version="3.10.0",
org.eclipse.cdt.core;bundle-version="5.12.0",
com.google.gson
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.cdt.build.gcc.core
+Export-Package: org.eclipse.cdt.build.gcc.core,
+ org.eclipse.cdt.build.gcc.core.internal;x-internal:=true
Automatic-Module-Name: org.eclipse.cdt.build.gcc.core
+Bundle-Localization: plugin
diff --git a/build/org.eclipse.cdt.build.gcc.core/about.html b/build/org.eclipse.cdt.build.gcc.core/about.html
index 164f781a8fd..b3134865230 100644
--- a/build/org.eclipse.cdt.build.gcc.core/about.html
+++ b/build/org.eclipse.cdt.build.gcc.core/about.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
</head>
+
<body lang="EN-US">
<h2>About This Content</h2>
@@ -16,7 +17,7 @@
(&quot;Content&quot;). Unless otherwise indicated below, the Content
is provided to you under the terms and conditions of the Eclipse
Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ available at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
@@ -29,8 +30,9 @@
license exists, contact the Redistributor. Unless otherwise indicated
below, the terms and conditions of the EPL still apply to any source
code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ href="https://www.eclipse.org/">https://www.eclipse.org</a>.
</p>
</body>
+
</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.build.gcc.core/build.properties b/build/org.eclipse.cdt.build.gcc.core/build.properties
index e5a949cc43c..7b3c227b84a 100644
--- a/build/org.eclipse.cdt.build.gcc.core/build.properties
+++ b/build/org.eclipse.cdt.build.gcc.core/build.properties
@@ -3,5 +3,6 @@ output.. = bin/
bin.includes = META-INF/,\
.,\
plugin.xml,\
+ plugin.properties,\
about.html
src.includes = about.html
diff --git a/build/org.eclipse.cdt.build.gcc.core/plugin.properties b/build/org.eclipse.cdt.build.gcc.core/plugin.properties
new file mode 100644
index 00000000000..bd22dec05f7
--- /dev/null
+++ b/build/org.eclipse.cdt.build.gcc.core/plugin.properties
@@ -0,0 +1,14 @@
+##################################################################################
+# Copyright (c) 2020 Torbjörn Svensson and others. All rights reserved.
+# This program and the accompanying materials are made available under the terms
+# of the Eclipse Public License 2.0 which accompanies this distribution, and is
+# available at https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+# Torbjörn Svensson - initial API and implementation
+##################################################################################
+
+pluginName = GCC support for CDT Build Core
+providerName = Eclipse CDT
diff --git a/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/GCCToolChain.java b/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/GCCToolChain.java
index 7e4a4de8804..8b1631594f6 100644
--- a/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/GCCToolChain.java
+++ b/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/GCCToolChain.java
@@ -122,7 +122,7 @@ public class GCCToolChain extends PlatformObject implements IToolChain {
IEnvironmentVariable pathVar = null;
if (envVars != null) {
for (IEnvironmentVariable envVar : envVars) {
- if (envVar.getName().equalsIgnoreCase("PATH")) { //$NON-NLS-1$
+ if (envVar.getName().equals("PATH")) { //$NON-NLS-1$
pathVar = envVar;
}
}
@@ -226,7 +226,7 @@ public class GCCToolChain extends PlatformObject implements IToolChain {
// TODO be smarter and use the id which should be the target
switch (Platform.getOS()) {
case Platform.OS_WIN32:
- return CCorePlugin.PLUGIN_ID + ".PE"; //$NON-NLS-1$
+ return CCorePlugin.PLUGIN_ID + ".PE64"; //$NON-NLS-1$
case Platform.OS_MACOSX:
return CCorePlugin.PLUGIN_ID + ".MachO64"; //$NON-NLS-1$
default:
diff --git a/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/internal/GCCPathToolChainProvider.java b/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/internal/GCCPathToolChainProvider.java
index 3ba8b73df42..9f4cedd39c6 100644
--- a/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/internal/GCCPathToolChainProvider.java
+++ b/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/internal/GCCPathToolChainProvider.java
@@ -77,10 +77,10 @@ public class GCCPathToolChainProvider implements IToolChainProvider {
break;
default:
switch (tuple[2]) {
- case "linux":
+ case "linux": //$NON-NLS-1$
gcc.setProperty(IToolChain.ATTR_OS, Platform.OS_LINUX);
break;
- case "elf":
+ case "elf": //$NON-NLS-1$
gcc.setProperty(IToolChain.ATTR_OS, tuple[1]);
break;
}
diff --git a/build/org.eclipse.cdt.build.gcc.ui/.classpath b/build/org.eclipse.cdt.build.gcc.ui/.classpath
index eca7bdba8f0..e801ebfb468 100644
--- a/build/org.eclipse.cdt.build.gcc.ui/.classpath
+++ b/build/org.eclipse.cdt.build.gcc.ui/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
diff --git a/build/org.eclipse.cdt.build.gcc.ui/.project b/build/org.eclipse.cdt.build.gcc.ui/.project
index 4142880ab75..85f34a22b81 100644
--- a/build/org.eclipse.cdt.build.gcc.ui/.project
+++ b/build/org.eclipse.cdt.build.gcc.ui/.project
@@ -20,9 +20,15 @@
<arguments>
</arguments>
</buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
</natures>
</projectDescription>
diff --git a/build/org.eclipse.cdt.build.gcc.ui/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.build.gcc.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.build.gcc.ui/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.build.gcc.ui/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.build.gcc.ui/.settings/org.eclipse.jdt.core.prefs
index 2b6ecff8a01..e3a8104f9ca 100644
--- a/build/org.eclipse.cdt.build.gcc.ui/.settings/org.eclipse.jdt.core.prefs
+++ b/build/org.eclipse.cdt.build.gcc.ui/.settings/org.eclipse.jdt.core.prefs
@@ -30,9 +30,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -49,6 +49,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
@@ -107,6 +108,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
@@ -144,13 +146,14 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -158,21 +161,24 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@@ -264,11 +270,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@@ -299,6 +306,8 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@@ -323,13 +332,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@@ -377,6 +390,8 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do no
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@@ -413,9 +428,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@@ -454,10 +472,14 @@ org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/build/org.eclipse.cdt.build.gcc.ui/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.build.gcc.ui/.settings/org.eclipse.jdt.ui.prefs
index e44576346c4..d35ba9b5231 100644
--- a/build/org.eclipse.cdt.build.gcc.ui/.settings/org.eclipse.jdt.ui.prefs
+++ b/build/org.eclipse.cdt.build.gcc.ui/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,4 @@
+cleanup.add_all=false
cleanup.add_default_serial_version_id=true
cleanup.add_generated_serial_version_id=false
cleanup.add_missing_annotations=true
@@ -11,25 +12,72 @@ cleanup.always_use_blocks=true
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=false
cleanup.always_use_this_for_non_static_method_access=false
+cleanup.array_with_curly=false
+cleanup.arrays_fill=false
+cleanup.bitwise_conditional_expression=false
+cleanup.boolean_literal=false
+cleanup.boolean_value_rather_than_comparison=false
+cleanup.break_loop=false
+cleanup.collection_cloning=false
+cleanup.comparing_on_criteria=false
+cleanup.comparison_statement=false
+cleanup.controlflow_merge=false
cleanup.convert_functional_interfaces=false
cleanup.convert_to_enhanced_for_loop=false
+cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
+cleanup.convert_to_switch_expressions=false
cleanup.correct_indentation=false
+cleanup.do_while_rather_than_while=true
+cleanup.double_negation=false
+cleanup.else_if=false
+cleanup.embedded_if=false
+cleanup.evaluate_nullable=false
+cleanup.extract_increment=false
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
+cleanup.hash=false
+cleanup.if_condition=false
cleanup.insert_inferred_type_arguments=false
+cleanup.instanceof=false
+cleanup.instanceof_keyword=false
+cleanup.invert_equals=false
+cleanup.join=false
+cleanup.lazy_logical_operator=false
cleanup.make_local_variable_final=true
cleanup.make_parameters_final=false
cleanup.make_private_fields_final=true
cleanup.make_type_abstract_if_missing_method=false
cleanup.make_variable_declarations_final=false
+cleanup.map_cloning=false
+cleanup.merge_conditional_blocks=false
+cleanup.multi_catch=false
cleanup.never_use_blocks=false
cleanup.never_use_parentheses_in_expressions=true
+cleanup.no_string_creation=false
+cleanup.no_super=false
+cleanup.number_suffix=false
+cleanup.objects_equals=false
+cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
+cleanup.operand_factorization=false
cleanup.organize_imports=true
+cleanup.overridden_assignment=false
+cleanup.plain_replacement=false
+cleanup.precompile_regex=false
+cleanup.primitive_comparison=false
+cleanup.primitive_parsing=false
+cleanup.primitive_rather_than_wrapper=false
+cleanup.primitive_serialization=false
+cleanup.pull_out_if_from_if_else=false
+cleanup.pull_up_assignment=false
+cleanup.push_down_negation=false
cleanup.qualify_static_field_accesses_with_declaring_class=false
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
cleanup.qualify_static_member_accesses_with_declaring_class=false
cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.reduce_indentation=false
+cleanup.redundant_comparator=false
+cleanup.redundant_falling_through_block_end=false
cleanup.remove_private_constructors=true
cleanup.remove_redundant_modifiers=false
cleanup.remove_redundant_semicolons=true
@@ -37,25 +85,57 @@ cleanup.remove_redundant_type_arguments=true
cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true
cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_array_creation=false
cleanup.remove_unnecessary_casts=true
cleanup.remove_unnecessary_nls_tags=false
cleanup.remove_unused_imports=true
cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_method_parameters=false
cleanup.remove_unused_private_fields=true
cleanup.remove_unused_private_members=false
cleanup.remove_unused_private_methods=true
cleanup.remove_unused_private_types=true
+cleanup.return_expression=false
+cleanup.simplify_lambda_expression_and_method_ref=false
+cleanup.single_used_field=false
cleanup.sort_members=false
cleanup.sort_members_all=false
+cleanup.standard_comparison=false
+cleanup.static_inner_class=false
+cleanup.strictly_equal_or_different=false
+cleanup.stringbuffer_to_stringbuilder=false
+cleanup.stringbuilder=false
+cleanup.stringbuilder_for_local_vars=true
+cleanup.stringconcat_to_textblock=false
+cleanup.substring=false
+cleanup.switch=false
+cleanup.system_property=false
+cleanup.system_property_boolean=false
+cleanup.system_property_file_encoding=false
+cleanup.system_property_file_separator=false
+cleanup.system_property_line_separator=false
+cleanup.system_property_path_separator=false
+cleanup.ternary_operator=false
+cleanup.try_with_resource=false
+cleanup.unlooped_while=false
+cleanup.unreachable_block=false
cleanup.use_anonymous_class_creation=false
+cleanup.use_autoboxing=false
cleanup.use_blocks=false
cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_directly_map_method=false
cleanup.use_lambda=true
cleanup.use_parentheses_in_expressions=false
+cleanup.use_string_is_blank=false
cleanup.use_this_for_non_static_field_access=false
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
cleanup.use_this_for_non_static_method_access=false
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_unboxing=false
+cleanup.use_var=false
+cleanup.useless_continue=false
+cleanup.useless_return=false
+cleanup.valueof_rather_than_instantiation=false
cleanup_profile=_CDT
cleanup_settings_version=2
eclipse.preferences.version=1
diff --git a/build/org.eclipse.cdt.build.gcc.ui/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.build.gcc.ui/META-INF/MANIFEST.MF
index a1f2c07dab1..0c15a8ae8d3 100644
--- a/build/org.eclipse.cdt.build.gcc.ui/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.build.gcc.ui/META-INF/MANIFEST.MF
@@ -1,15 +1,17 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
-Bundle-Name: GCC ToolChain Support UI
+Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.cdt.build.gcc.ui;singleton:=true
-Bundle-Version: 1.0.1.qualifier
+Bundle-Version: 1.1.300.qualifier
Bundle-Activator: org.eclipse.cdt.build.gcc.ui.internal.Activator
-Bundle-Vendor: Eclipse CDT
+Bundle-Vendor: %providerName
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.eclipse.cdt.ui;bundle-version="6.3.0",
org.eclipse.cdt.build.gcc.core;bundle-version="1.0.0",
org.eclipse.cdt.core;bundle-version="6.4.0"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
Bundle-ActivationPolicy: lazy
Automatic-Module-Name: org.eclipse.cdt.build.gcc.ui
+Export-Package: org.eclipse.cdt.build.gcc.ui.internal;x-internal:=true
+Bundle-Localization: plugin
diff --git a/build/org.eclipse.cdt.build.gcc.ui/about.html b/build/org.eclipse.cdt.build.gcc.ui/about.html
index 164f781a8fd..b3134865230 100644
--- a/build/org.eclipse.cdt.build.gcc.ui/about.html
+++ b/build/org.eclipse.cdt.build.gcc.ui/about.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
</head>
+
<body lang="EN-US">
<h2>About This Content</h2>
@@ -16,7 +17,7 @@
(&quot;Content&quot;). Unless otherwise indicated below, the Content
is provided to you under the terms and conditions of the Eclipse
Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ available at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
@@ -29,8 +30,9 @@
license exists, contact the Redistributor. Unless otherwise indicated
below, the terms and conditions of the EPL still apply to any source
code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ href="https://www.eclipse.org/">https://www.eclipse.org</a>.
</p>
</body>
+
</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.build.gcc.ui/about.ini b/build/org.eclipse.cdt.build.gcc.ui/about.ini
new file mode 100644
index 00000000000..e07a7bb377e
--- /dev/null
+++ b/build/org.eclipse.cdt.build.gcc.ui/about.ini
@@ -0,0 +1,24 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%blurb
+
+# Property "windowImage" contains path to window icon (16x16)
+# needed for primary features only
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=cdt_logo_icon32.png
+
+# Property "aboutImage" contains path to product image (500x330 or 115x164)
+# needed for primary features only
+
+# Property "appName" contains name of the application (translated)
+# needed for primary features only
+
+# Property "welcomePerspective" contains the id of the perspective in which the
+# welcome page is to be opened.
+# optional
diff --git a/build/org.eclipse.cdt.build.gcc.ui/about.mappings b/build/org.eclipse.cdt.build.gcc.ui/about.mappings
new file mode 100644
index 00000000000..936a8039c3e
--- /dev/null
+++ b/build/org.eclipse.cdt.build.gcc.ui/about.mappings
@@ -0,0 +1,9 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+# The following should contain the build version.
+# e.g. "0=20200106-1728"
+# This value will be added automatically via the build scripts
+0=${buildId}
diff --git a/build/org.eclipse.cdt.build.gcc.ui/about.properties b/build/org.eclipse.cdt.build.gcc.ui/about.properties
new file mode 100644
index 00000000000..049ff5d1575
--- /dev/null
+++ b/build/org.eclipse.cdt.build.gcc.ui/about.properties
@@ -0,0 +1,32 @@
+###############################################################################
+# Copyright (c) 2008, 2022 Contributors to the Eclipse Foundation
+#
+# See the NOTICE file(s) distributed with this work for additional
+# information regarding copyright ownership.
+#
+# This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+###############################################################################
+# about.properties
+# contains externalized strings for about.ini
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# fill-ins are supplied by about.mappings
+# This file should be translated.
+# NOTE TO TRANSLATOR: Please do not translate the featureVersion variable.
+
+
+blurb=C/C++ GNU Toolchain Build Support\n\
+\n\
+Version: {featureVersion}\n\
+Build id: {0}\n\
+\n\
+Copyright (c) 2008, 2022 Contributors to the Eclipse Foundation
+\n\
+See the NOTICE file(s) distributed with this work for additional\n\
+information regarding copyright ownership.\n\
+\n\
+Visit http://www.eclipse.org/cdt
diff --git a/build/org.eclipse.cdt.build.gcc.ui/build.properties b/build/org.eclipse.cdt.build.gcc.ui/build.properties
index 786b1df9364..6751059433d 100644
--- a/build/org.eclipse.cdt.build.gcc.ui/build.properties
+++ b/build/org.eclipse.cdt.build.gcc.ui/build.properties
@@ -3,4 +3,10 @@ output.. = bin/
bin.includes = META-INF/,\
.,\
plugin.xml,\
- about.html
+ plugin.properties,\
+ about.html,\
+ cdt_logo_icon32.png,\
+ about.properties,\
+ about.mappings,\
+ about.ini
+src.includes = about.html
diff --git a/build/org.eclipse.cdt.build.gcc.ui/cdt_logo_icon32.png b/build/org.eclipse.cdt.build.gcc.ui/cdt_logo_icon32.png
new file mode 100644
index 00000000000..470ca81b327
--- /dev/null
+++ b/build/org.eclipse.cdt.build.gcc.ui/cdt_logo_icon32.png
Binary files differ
diff --git a/build/org.eclipse.cdt.build.gcc.ui/plugin.properties b/build/org.eclipse.cdt.build.gcc.ui/plugin.properties
new file mode 100644
index 00000000000..1c265fb6a49
--- /dev/null
+++ b/build/org.eclipse.cdt.build.gcc.ui/plugin.properties
@@ -0,0 +1,14 @@
+##################################################################################
+# Copyright (c) 2020 Torbjörn Svensson and others. All rights reserved.
+# This program and the accompanying materials are made available under the terms
+# of the Eclipse Public License 2.0 which accompanies this distribution, and is
+# available at https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+# Torbjörn Svensson - initial API and implementation
+##################################################################################
+
+pluginName = GCC ToolChain Support UI
+providerName = Eclipse CDT
diff --git a/build/org.eclipse.cdt.cmake-feature/.project b/build/org.eclipse.cdt.cmake-feature/.project
deleted file mode 100644
index 4bfc1eda8ff..00000000000
--- a/build/org.eclipse.cdt.cmake-feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.cdt.cmake-feature</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.pde.FeatureBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.FeatureNature</nature>
- </natures>
-</projectDescription>
diff --git a/build/org.eclipse.cdt.cmake-feature/build.properties b/build/org.eclipse.cdt.cmake-feature/build.properties
deleted file mode 100644
index b3a611b5c93..00000000000
--- a/build/org.eclipse.cdt.cmake-feature/build.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-bin.includes = feature.xml,\
- feature.properties
diff --git a/build/org.eclipse.cdt.cmake-feature/feature.properties b/build/org.eclipse.cdt.cmake-feature/feature.properties
deleted file mode 100644
index 1297a790fed..00000000000
--- a/build/org.eclipse.cdt.cmake-feature/feature.properties
+++ /dev/null
@@ -1,32 +0,0 @@
-###############################################################################
-# Copyright (c) 2015 QNX Software Systems and others
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-###############################################################################
-# features.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=C/C++ CMake Build Support - Preview
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse CDT
-
-# "description" property - description of the feature
-description=Support for projects built using CMake
-
-# copyright
-copyright=\
-Copyright (c) 2015,2016 QNX Software Systems and others.\n\
-This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License 2.0\n\
-which accompanies this distribution, and is available at\n\
-https://www.eclipse.org/legal/epl-2.0/
diff --git a/build/org.eclipse.cdt.cmake-feature/feature.xml b/build/org.eclipse.cdt.cmake-feature/feature.xml
deleted file mode 100644
index d0046d8fadc..00000000000
--- a/build/org.eclipse.cdt.cmake-feature/feature.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
- id="org.eclipse.cdt.cmake"
- label="%featureName"
- version="9.9.0.qualifier"
- provider-name="%providerName"
- license-feature="org.eclipse.license"
- license-feature-version="0.0.0">
-
- <description>
- %description
- </description>
-
- <copyright>
- %copyright
- </copyright>
-
- <license url="%licenseURL">
- %license
- </license>
-
- <plugin
- id="org.eclipse.cdt.cmake.core"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.cdt.cmake.ui"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.tools.templates.freemarker.java11"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"
- unpack="false"/>
-
-</feature>
diff --git a/build/org.eclipse.cdt.cmake.core/.project b/build/org.eclipse.cdt.cmake.core/.project
deleted file mode 100644
index f5c8e485e7b..00000000000
--- a/build/org.eclipse.cdt.cmake.core/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.cdt.cmake.core</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/build/org.eclipse.cdt.cmake.core/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.cmake.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 2b6ecff8a01..00000000000
--- a/build/org.eclipse.cdt.cmake.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,464 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
-org.eclipse.jdt.core.formatter.align_with_spaces=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
-org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/build/org.eclipse.cdt.cmake.core/.settings/org.eclipse.jdt.launching.prefs b/build/org.eclipse.cdt.cmake.core/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index f8a131b56e0..00000000000
--- a/build/org.eclipse.cdt.cmake.core/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/build/org.eclipse.cdt.cmake.core/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.cmake.core/META-INF/MANIFEST.MF
deleted file mode 100644
index 9f085a6fbc3..00000000000
--- a/build/org.eclipse.cdt.cmake.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,19 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: CDT CMake Core
-Bundle-SymbolicName: org.eclipse.cdt.cmake.core;singleton:=true
-Bundle-Version: 1.2.200.qualifier
-Bundle-Activator: org.eclipse.cdt.cmake.core.internal.Activator
-Bundle-Vendor: Eclipse CDT
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.core.resources;bundle-version="3.11.0",
- org.eclipse.debug.core;bundle-version="3.10.0",
- org.eclipse.launchbar.core;bundle-version="2.0.0",
- org.eclipse.cdt.core;bundle-version="5.12.0",
- org.eclipse.tools.templates.freemarker;bundle-version="1.0.0";visibility:=reexport,
- com.google.gson
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.cdt.cmake.core,
- org.eclipse.cdt.cmake.core.internal;x-friends:="org.eclipse.cdt.cmake.ui"
-Automatic-Module-Name: org.eclipse.cdt.cmake.core
diff --git a/build/org.eclipse.cdt.cmake.core/build.properties b/build/org.eclipse.cdt.cmake.core/build.properties
deleted file mode 100644
index 7efa66fc577..00000000000
--- a/build/org.eclipse.cdt.cmake.core/build.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- about.html,\
- plugin.xml,\
- schema/,\
- templates/
diff --git a/build/org.eclipse.cdt.cmake.core/plugin.xml b/build/org.eclipse.cdt.cmake.core/plugin.xml
deleted file mode 100644
index b907d39959a..00000000000
--- a/build/org.eclipse.cdt.cmake.core/plugin.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
- <extension-point id="toolChainProvider" name="CMake ToolChain File Provider" schema="schema/toolChainProvider.exsd"/>
- <extension
- id="cmakeNature"
- point="org.eclipse.core.resources.natures">
- <runtime>
- <run
- class="org.eclipse.cdt.cmake.core.CMakeNature">
- </run>
- </runtime>
- </extension>
- <extension
- point="org.eclipse.cdt.core.buildConfigProvider">
- <provider
- class="org.eclipse.cdt.cmake.core.internal.CMakeBuildConfigurationProvider"
- id="org.eclipse.cdt.cmake.core.provider"
- natureId="org.eclipse.cdt.cmake.core.cmakeNature">
- </provider>
- </extension>
-</plugin>
diff --git a/build/org.eclipse.cdt.cmake.core/schema/toolChainProvider.exsd b/build/org.eclipse.cdt.cmake.core/schema/toolChainProvider.exsd
deleted file mode 100644
index 19d844273e3..00000000000
--- a/build/org.eclipse.cdt.cmake.core/schema/toolChainProvider.exsd
+++ /dev/null
@@ -1,102 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.cdt.cmake.core" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
- <appinfo>
- <meta.schema plugin="org.eclipse.cdt.cmake.core" id="toolChainProvider" name="CMake ToolChain File Provider"/>
- </appinfo>
- <documentation>
- [Enter description of this extension point.]
- </documentation>
- </annotation>
-
- <element name="extension">
- <annotation>
- <appinfo>
- <meta.element />
- </appinfo>
- </annotation>
- <complexType>
- <sequence minOccurs="1" maxOccurs="unbounded">
- <element ref="provider"/>
- </sequence>
- <attribute name="point" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="id" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- <appinfo>
- <meta.attribute translatable="true"/>
- </appinfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="provider">
- <complexType>
- <attribute name="class" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- <appinfo>
- <meta.attribute kind="java" basedOn=":org.eclipse.cdt.cmake.core.ICMakeToolChainProvider"/>
- </appinfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appinfo>
- <meta.section type="since"/>
- </appinfo>
- <documentation>
- [Enter the first release in which this extension point appears.]
- </documentation>
- </annotation>
-
- <annotation>
- <appinfo>
- <meta.section type="examples"/>
- </appinfo>
- <documentation>
- [Enter extension point usage example here.]
- </documentation>
- </annotation>
-
- <annotation>
- <appinfo>
- <meta.section type="apiinfo"/>
- </appinfo>
- <documentation>
- [Enter API information here.]
- </documentation>
- </annotation>
-
- <annotation>
- <appinfo>
- <meta.section type="implementation"/>
- </appinfo>
- <documentation>
- [Enter information about supplied implementation of this extension point.]
- </documentation>
- </annotation>
-
-
-</schema>
diff --git a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/CMakeNature.java b/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/CMakeNature.java
deleted file mode 100644
index 29729d5f193..00000000000
--- a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/CMakeNature.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.cdt.cmake.core;
-
-import org.eclipse.cdt.cmake.core.internal.Activator;
-import org.eclipse.cdt.core.build.CBuilder;
-import org.eclipse.core.resources.ICommand;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IProjectNature;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-
-public class CMakeNature implements IProjectNature {
-
- public static final String ID = Activator.getId() + ".cmakeNature"; //$NON-NLS-1$
-
- private IProject project;
-
- public static void setupBuilder(IProjectDescription projDesc) throws CoreException {
- ICommand command = projDesc.newCommand();
- CBuilder.setupBuilder(command);
- projDesc.setBuildSpec(new ICommand[] { command });
- }
-
- @Override
- public void configure() throws CoreException {
- IProjectDescription projDesc = project.getDescription();
- setupBuilder(projDesc);
- project.setDescription(projDesc, new NullProgressMonitor());
- }
-
- @Override
- public void deconfigure() throws CoreException {
- }
-
- @Override
- public IProject getProject() {
- return project;
- }
-
- @Override
- public void setProject(IProject project) {
- this.project = project;
- }
-
-}
diff --git a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/CMakeProjectGenerator.java b/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/CMakeProjectGenerator.java
deleted file mode 100644
index ab554a9ef95..00000000000
--- a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/CMakeProjectGenerator.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.cdt.cmake.core;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.cmake.core.internal.Activator;
-import org.eclipse.cdt.core.CCProjectNature;
-import org.eclipse.cdt.core.CProjectNature;
-import org.eclipse.cdt.core.build.CBuilder;
-import org.eclipse.cdt.core.model.CoreModel;
-import org.eclipse.cdt.core.model.IPathEntry;
-import org.eclipse.core.resources.ICommand;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.tools.templates.freemarker.FMProjectGenerator;
-import org.eclipse.tools.templates.freemarker.SourceRoot;
-import org.eclipse.tools.templates.freemarker.TemplateManifest;
-import org.osgi.framework.Bundle;
-
-public class CMakeProjectGenerator extends FMProjectGenerator {
-
- public CMakeProjectGenerator(String manifestFile) {
- super(manifestFile);
- }
-
- @Override
- protected void initProjectDescription(IProjectDescription description) {
- description.setNatureIds(
- new String[] { CProjectNature.C_NATURE_ID, CCProjectNature.CC_NATURE_ID, CMakeNature.ID });
- ICommand command = description.newCommand();
- CBuilder.setupBuilder(command);
- description.setBuildSpec(new ICommand[] { command });
- }
-
- @Override
- public Bundle getSourceBundle() {
- return Activator.getPlugin().getBundle();
- }
-
- @Override
- public void generate(Map<String, Object> model, IProgressMonitor monitor) throws CoreException {
- super.generate(model, monitor);
-
- List<IPathEntry> entries = new ArrayList<>();
- IProject project = getProject();
-
- // Create the source and output folders
- IFolder buildFolder = getProject().getFolder("build"); //$NON-NLS-1$
-
- TemplateManifest manifest = getManifest();
- if (manifest != null) {
- List<SourceRoot> srcRoots = getManifest().getSrcRoots();
- if (srcRoots != null && !srcRoots.isEmpty()) {
- for (SourceRoot srcRoot : srcRoots) {
- IFolder sourceFolder = project.getFolder(srcRoot.getDir());
- if (!sourceFolder.exists()) {
- sourceFolder.create(true, true, monitor);
- }
-
- entries.add(CoreModel.newSourceEntry(sourceFolder.getFullPath(),
- new IPath[] { buildFolder.getFullPath() }));
- }
- } else {
- entries.add(CoreModel.newSourceEntry(getProject().getFullPath()));
- }
- }
-
- entries.add(CoreModel.newOutputEntry(buildFolder.getFullPath(), // $NON-NLS-1$
- new IPath[] { new Path("**/CMakeFiles/**") })); //$NON-NLS-1$
- CoreModel.getDefault().create(project).setRawPathEntries(entries.toArray(new IPathEntry[entries.size()]),
- monitor);
- }
-
-}
diff --git a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/CMakeToolChainEvent.java b/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/CMakeToolChainEvent.java
deleted file mode 100644
index b118da5616c..00000000000
--- a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/CMakeToolChainEvent.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.cdt.cmake.core;
-
-/**
- * Event occured with CMake ToolChain Files, either added or removed.
- */
-public class CMakeToolChainEvent {
-
- /**
- * ToolChain file has been added.
- */
- public static final int ADDED = 1;
-
- /**
- * ToolChain File has been removed.
- */
- public static final int REMOVED = 2;
-
- private final int type;
- private final ICMakeToolChainFile toolChainFile;
-
- public CMakeToolChainEvent(int type, ICMakeToolChainFile toolChainFile) {
- this.type = type;
- this.toolChainFile = toolChainFile;
- }
-
- public int getType() {
- return type;
- }
-
- public ICMakeToolChainFile getToolChainFile() {
- return toolChainFile;
- }
-
-}
diff --git a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/ICMakeToolChainFile.java b/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/ICMakeToolChainFile.java
deleted file mode 100644
index 89ef37746fd..00000000000
--- a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/ICMakeToolChainFile.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.cdt.cmake.core;
-
-import java.nio.file.Path;
-
-import org.eclipse.cdt.core.build.IToolChain;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * A toolchain file.
- *
- * @noimplement
- * @noextend
- */
-public interface ICMakeToolChainFile {
-
- /**
- * Return the path to the toolchain file.
- *
- * @return path to the toolchain file
- */
- Path getPath();
-
- /**
- * Return the value for a property.
- *
- * @param key key of the property
- * @return the value
- */
- String getProperty(String key);
-
- /**
- * Set a property.
- *
- * @param key key of the property
- * @param value value for the property
- */
- void setProperty(String key, String value);
-
- /**
- * Return the toolchain that this toolchain file enables.
- *
- * @return the toolchain for the file
- * @throws CoreException
- */
- IToolChain getToolChain() throws CoreException;
-
-}
diff --git a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/ICMakeToolChainListener.java b/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/ICMakeToolChainListener.java
deleted file mode 100644
index 93d5b79efb8..00000000000
--- a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/ICMakeToolChainListener.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.cdt.cmake.core;
-
-/**
- * Listener for toolchain events.
- */
-public interface ICMakeToolChainListener {
-
- void handleCMakeToolChainEvent(CMakeToolChainEvent event);
-
-}
diff --git a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/ICMakeToolChainManager.java b/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/ICMakeToolChainManager.java
deleted file mode 100644
index f78a496bce2..00000000000
--- a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/ICMakeToolChainManager.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.cdt.cmake.core;
-
-import java.nio.file.Path;
-import java.util.Collection;
-import java.util.Map;
-
-import org.eclipse.cdt.core.build.IToolChain;
-
-/**
- * Manages toolchain files for CMake.
- *
- * @noimplement
- * @noextend
- */
-public interface ICMakeToolChainManager {
-
- /**
- * Create a new toolchain file object to be added later.
- *
- * @param path path where the toolchain file resides.
- * @return new toolchain objecta
- */
- ICMakeToolChainFile newToolChainFile(Path path);
-
- /**
- * Make the given toolchain file available. Also persists the path
- * and properties for the file so it's recreated on startup.
- *
- * @param file the toolchain file to be added
- */
- void addToolChainFile(ICMakeToolChainFile file);
-
- /**
- * Remove the given toolchain file.
- *
- * @param file the toolchain file to be removed
- */
- void removeToolChainFile(ICMakeToolChainFile file);
-
- /**
- * We no longer use Path as a key so trying to remove the use of this method.
- * Get by toolchain instead.
- * @deprecated
- * @return just returns null
- */
- @Deprecated
- ICMakeToolChainFile getToolChainFile(Path path);
-
- /**
- * Return toolchain files that are applicable to toolchains with the given properties.
- *
- * @param properties properties to match
- * @return toolchain files that do
- */
- Collection<ICMakeToolChainFile> getToolChainFilesMatching(Map<String, String> properties);
-
- /**
- * Return the toolchain file for the given toolchain.
- *
- * @param toolchain the toolchain
- * @return the toolchain file for the toolchain
- */
- ICMakeToolChainFile getToolChainFileFor(IToolChain toolchain);
-
- /**
- * Return all available toolchain files.
- *
- * @return all toolchain files
- */
- Collection<ICMakeToolChainFile> getToolChainFiles();
-
- /**
- * Add a listener
- *
- * @param listener the listener
- */
- void addListener(ICMakeToolChainListener listener);
-
- /**
- * Remove a listener
- *
- * @param listener the listener
- */
- void removeListener(ICMakeToolChainListener listener);
-
-}
diff --git a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/ICMakeToolChainProvider.java b/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/ICMakeToolChainProvider.java
deleted file mode 100644
index d8d18ce1050..00000000000
--- a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/ICMakeToolChainProvider.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.cdt.cmake.core;
-
-public interface ICMakeToolChainProvider {
-
- /**
- * Allows the provider to add any automatic toolchain files so the user
- * doesn't have to.
- *
- * @param manager the manager object used to add toolchain files
- */
- void init(ICMakeToolChainManager manager);
-
-}
diff --git a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/Activator.java b/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/Activator.java
deleted file mode 100644
index a0a6be95a41..00000000000
--- a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/Activator.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.cdt.cmake.core.internal;
-
-import org.eclipse.cdt.cmake.core.ICMakeToolChainManager;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Status;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-
-public class Activator extends Plugin {
-
- private static Activator plugin;
-
- @Override
- public void start(BundleContext bundleContext) throws Exception {
- super.start(bundleContext);
- Activator.plugin = this;
- bundleContext.registerService(ICMakeToolChainManager.class, new CMakeToolChainManager(), null);
- }
-
- @Override
- public void stop(BundleContext bundleContext) throws Exception {
- super.stop(bundleContext);
- Activator.plugin = null;
- }
-
- public static Activator getPlugin() {
- return plugin;
- }
-
- public static String getId() {
- return plugin.getBundle().getSymbolicName();
- }
-
- public static void log(Throwable e) {
- if (e instanceof CoreException) {
- plugin.getLog().log(((CoreException) e).getStatus());
- } else {
- plugin.getLog().log(errorStatus(e.getLocalizedMessage(), e));
- }
- }
-
- public static void error(String message, Throwable cause) {
- plugin.getLog().log(errorStatus(message, cause));
- }
-
- public static IStatus errorStatus(String message, Throwable cause) {
- return new Status(IStatus.ERROR, getId(), message, cause);
- }
-
- public static <T> T getService(Class<T> service) {
- BundleContext context = plugin.getBundle().getBundleContext();
- ServiceReference<T> ref = context.getServiceReference(service);
- return ref != null ? context.getService(ref) : null;
- }
-
-}
diff --git a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/CMakeBuildConfiguration.java b/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/CMakeBuildConfiguration.java
deleted file mode 100644
index b695684af21..00000000000
--- a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/CMakeBuildConfiguration.java
+++ /dev/null
@@ -1,338 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015, 2016 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.cdt.cmake.core.internal;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.cmake.core.ICMakeToolChainFile;
-import org.eclipse.cdt.cmake.core.ICMakeToolChainManager;
-import org.eclipse.cdt.core.ConsoleOutputStream;
-import org.eclipse.cdt.core.ErrorParserManager;
-import org.eclipse.cdt.core.IConsoleParser;
-import org.eclipse.cdt.core.build.CBuildConfiguration;
-import org.eclipse.cdt.core.build.IToolChain;
-import org.eclipse.cdt.core.envvar.EnvironmentVariable;
-import org.eclipse.cdt.core.envvar.IEnvironmentVariable;
-import org.eclipse.cdt.core.model.ICModelMarker;
-import org.eclipse.cdt.core.resources.IConsole;
-import org.eclipse.cdt.utils.Platform;
-import org.eclipse.core.resources.IBuildConfiguration;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.jobs.Job;
-
-import com.google.gson.Gson;
-
-public class CMakeBuildConfiguration extends CBuildConfiguration {
-
- public static final String CMAKE_GENERATOR = "cmake.generator"; //$NON-NLS-1$
- public static final String CMAKE_ARGUMENTS = "cmake.arguments"; //$NON-NLS-1$
- public static final String CMAKE_ENV = "cmake.environment"; //$NON-NLS-1$
- public static final String BUILD_COMMAND = "cmake.command.build"; //$NON-NLS-1$
- public static final String CLEAN_COMMAND = "cmake.command.clean"; //$NON-NLS-1$
-
- private ICMakeToolChainFile toolChainFile;
-
- public CMakeBuildConfiguration(IBuildConfiguration config, String name) throws CoreException {
- super(config, name);
-
- ICMakeToolChainManager manager = Activator.getService(ICMakeToolChainManager.class);
- toolChainFile = manager.getToolChainFileFor(getToolChain());
- }
-
- public CMakeBuildConfiguration(IBuildConfiguration config, String name, IToolChain toolChain) {
- this(config, name, toolChain, null, "run"); //$NON-NLS-1$
- }
-
- public CMakeBuildConfiguration(IBuildConfiguration config, String name, IToolChain toolChain,
- ICMakeToolChainFile toolChainFile, String launchMode) {
- super(config, name, toolChain, launchMode);
- this.toolChainFile = toolChainFile;
- }
-
- public ICMakeToolChainFile getToolChainFile() {
- return toolChainFile;
- }
-
- private boolean isLocal() throws CoreException {
- IToolChain toolchain = getToolChain();
- return (Platform.getOS().equals(toolchain.getProperty(IToolChain.ATTR_OS))
- || "linux-container".equals(toolchain.getProperty(IToolChain.ATTR_OS))) //$NON-NLS-1$
- && (Platform.getOSArch().equals(toolchain.getProperty(IToolChain.ATTR_ARCH)));
- }
-
- @Override
- public IProject[] build(int kind, Map<String, String> args, IConsole console, IProgressMonitor monitor)
- throws CoreException {
- IProject project = getProject();
-
- try {
- String generator = getProperty(CMAKE_GENERATOR);
- if (generator == null) {
- generator = "Ninja"; //$NON-NLS-1$
- }
-
- project.deleteMarkers(ICModelMarker.C_MODEL_PROBLEM_MARKER, false, IResource.DEPTH_INFINITE);
-
- ConsoleOutputStream outStream = console.getOutputStream();
-
- Path buildDir = getBuildDirectory();
-
- outStream.write(String.format(Messages.CMakeBuildConfiguration_BuildingIn, buildDir.toString()));
-
- // Make sure we have a toolchain file if cross
- if (toolChainFile == null && !isLocal()) {
- ICMakeToolChainManager manager = Activator.getService(ICMakeToolChainManager.class);
- toolChainFile = manager.getToolChainFileFor(getToolChain());
-
- if (toolChainFile == null) {
- // error
- console.getErrorStream().write(Messages.CMakeBuildConfiguration_NoToolchainFile);
- return null;
- }
- }
-
- boolean runCMake;
- switch (generator) {
- case "Ninja": //$NON-NLS-1$
- runCMake = !Files.exists(buildDir.resolve("build.ninja")); //$NON-NLS-1$
- break;
- case "Unix Makefiles": //$NON-NLS-1$
- runCMake = !Files.exists(buildDir.resolve("Makefile")); //$NON-NLS-1$
- break;
- default:
- runCMake = !Files.exists(buildDir.resolve("CMakeFiles")); //$NON-NLS-1$
- }
-
- if (runCMake) { // $NON-NLS-1$
-
- console.getOutputStream().write(String.format(Messages.CMakeBuildConfiguration_Configuring, buildDir));
- // clean output to make sure there is no content
- // incompatible with current settings (cmake config would fail)
- cleanBuildDirectory(buildDir);
-
- List<String> command = new ArrayList<>();
-
- command.add("cmake"); //$NON-NLS-1$
- command.add("-G"); //$NON-NLS-1$
- command.add(generator);
-
- if (toolChainFile != null) {
- command.add("-DCMAKE_TOOLCHAIN_FILE=" + toolChainFile.getPath().toString()); //$NON-NLS-1$
- }
-
- switch (getLaunchMode()) {
- // TODO what to do with other modes
- case "debug": //$NON-NLS-1$
- command.add("-DCMAKE_BUILD_TYPE=Debug"); //$NON-NLS-1$
- break;
- case "run": //$NON-NLS-1$
- command.add("-DCMAKE_BUILD_TYPE=Release"); //$NON-NLS-1$
- break;
- }
- command.add("-DCMAKE_EXPORT_COMPILE_COMMANDS=ON"); //$NON-NLS-1$
-
- String userArgs = getProperty(CMAKE_ARGUMENTS);
- if (userArgs != null) {
- command.addAll(Arrays.asList(userArgs.trim().split("\\s+"))); //$NON-NLS-1$
- }
-
- command.add(new File(project.getLocationURI()).getAbsolutePath());
-
- outStream.write(String.join(" ", command) + '\n'); //$NON-NLS-1$
-
- org.eclipse.core.runtime.Path workingDir = new org.eclipse.core.runtime.Path(
- getBuildDirectory().toString());
- Process p = startBuildProcess(command, new IEnvironmentVariable[0], workingDir, console, monitor);
- if (p == null) {
- console.getErrorStream().write(String.format(Messages.CMakeBuildConfiguration_Failure, "")); //$NON-NLS-1$
- return null;
- }
-
- watchProcess(p, console);
- }
-
- try (ErrorParserManager epm = new ErrorParserManager(project, getBuildDirectoryURI(), this,
- getToolChain().getErrorParserIds())) {
- epm.setOutputStream(console.getOutputStream());
-
- List<String> command = new ArrayList<>();
-
- String envStr = getProperty(CMAKE_ENV);
- List<IEnvironmentVariable> envVars = new ArrayList<>();
- if (envStr != null) {
- List<String> envList = CMakeUtils.stripEnvVars(envStr);
- for (String s : envList) {
- int index = s.indexOf("="); //$NON-NLS-1$
- if (index == -1) {
- envVars.add(new EnvironmentVariable(s));
- } else {
- envVars.add(new EnvironmentVariable(s.substring(0, index), s.substring(index + 1)));
- }
- }
- }
-
- String buildCommand = getProperty(BUILD_COMMAND);
- if (buildCommand == null) {
- command.add("cmake"); //$NON-NLS-1$
- command.add("--build"); //$NON-NLS-1$
- command.add("."); //$NON-NLS-1$
- if ("Ninja".equals(generator)) { //$NON-NLS-1$
- command.add("--"); //$NON-NLS-1$
- command.add("-v"); //$NON-NLS-1$
- }
- } else {
- command.addAll(Arrays.asList(buildCommand.split(" "))); //$NON-NLS-1$
- }
-
- outStream.write(String.join(" ", command) + '\n'); //$NON-NLS-1$
-
- org.eclipse.core.runtime.Path workingDir = new org.eclipse.core.runtime.Path(
- getBuildDirectory().toString());
- Process p = startBuildProcess(command, envVars.toArray(new IEnvironmentVariable[0]), workingDir,
- console, monitor);
- if (p == null) {
- console.getErrorStream().write(String.format(Messages.CMakeBuildConfiguration_Failure, "")); //$NON-NLS-1$
- return null;
- }
-
- watchProcess(p, new IConsoleParser[] { epm });
-
- project.refreshLocal(IResource.DEPTH_INFINITE, monitor);
-
- // Load compile_commands.json file
- processCompileCommandsFile(monitor);
-
- outStream.write(String.format(Messages.CMakeBuildConfiguration_BuildingComplete, epm.getErrorCount(),
- epm.getWarningCount(), buildDir.toString()));
- }
-
- return new IProject[] { project };
- } catch (IOException e) {
- throw new CoreException(Activator
- .errorStatus(String.format(Messages.CMakeBuildConfiguration_Building, project.getName()), e));
- }
- }
-
- @Override
- public void clean(IConsole console, IProgressMonitor monitor) throws CoreException {
- IProject project = getProject();
- try {
- String generator = getProperty(CMAKE_GENERATOR);
-
- project.deleteMarkers(ICModelMarker.C_MODEL_PROBLEM_MARKER, false, IResource.DEPTH_INFINITE);
-
- ConsoleOutputStream outStream = console.getOutputStream();
-
- Path buildDir = getBuildDirectory();
-
- if (!Files.exists(buildDir.resolve("CMakeFiles"))) { //$NON-NLS-1$
- outStream.write(Messages.CMakeBuildConfiguration_NotFound);
- return;
- }
-
- List<String> command = new ArrayList<>();
- String cleanCommand = getProperty(CLEAN_COMMAND);
- if (cleanCommand == null) {
- if (generator == null || generator.equals("Ninja")) { //$NON-NLS-1$
- command.add("ninja"); //$NON-NLS-1$
- command.add("clean"); //$NON-NLS-1$
- } else {
- command.add("make"); //$NON-NLS-1$
- command.add("clean"); //$NON-NLS-1$
- }
- } else {
- command.addAll(Arrays.asList(cleanCommand.split(" "))); //$NON-NLS-1$
- }
-
- IEnvironmentVariable[] env = new IEnvironmentVariable[0];
-
- outStream.write(String.join(" ", command) + '\n'); //$NON-NLS-1$
-
- org.eclipse.core.runtime.Path workingDir = new org.eclipse.core.runtime.Path(
- getBuildDirectory().toString());
- Process p = startBuildProcess(command, env, workingDir, console, monitor);
- if (p == null) {
- console.getErrorStream().write(String.format(Messages.CMakeBuildConfiguration_Failure, "")); //$NON-NLS-1$
- return;
- }
-
- watchProcess(p, console);
-
- outStream.write(Messages.CMakeBuildConfiguration_BuildComplete);
-
- project.refreshLocal(IResource.DEPTH_INFINITE, monitor);
- } catch (IOException e) {
- throw new CoreException(Activator
- .errorStatus(String.format(Messages.CMakeBuildConfiguration_Cleaning, project.getName()), e));
- }
- }
-
- private void processCompileCommandsFile(IProgressMonitor monitor) throws CoreException {
- IProject project = getProject();
- Path commandsFile = getBuildDirectory().resolve("compile_commands.json"); //$NON-NLS-1$
- if (Files.exists(commandsFile)) {
- List<Job> jobsList = new ArrayList<>();
- monitor.setTaskName(Messages.CMakeBuildConfiguration_ProcCompJson);
- try (FileReader reader = new FileReader(commandsFile.toFile())) {
- Gson gson = new Gson();
- CompileCommand[] commands = gson.fromJson(reader, CompileCommand[].class);
- Map<String, CompileCommand> dedupedCmds = new HashMap<>();
- for (CompileCommand command : commands) {
- dedupedCmds.put(command.getFile(), command);
- }
- for (CompileCommand command : dedupedCmds.values()) {
- processLine(command.getCommand(), jobsList);
- }
- for (Job j : jobsList) {
- try {
- j.join();
- } catch (InterruptedException e) {
- // ignore
- }
- }
- shutdown();
- } catch (IOException e) {
- throw new CoreException(Activator.errorStatus(
- String.format(Messages.CMakeBuildConfiguration_ProcCompCmds, project.getName()), e));
- }
- }
- }
-
- private void cleanDirectory(Path dir) throws IOException {
- Path[] files = Files.list(dir).toArray(Path[]::new);
- for (Path file : files) {
- if (Files.isDirectory(file))
- cleanDirectory(file);
- else
- Files.delete(file);
- }
- }
-
- private void cleanBuildDirectory(Path buildDir) throws IOException {
- if (!Files.exists(buildDir))
- return;
- if (Files.isDirectory(buildDir))
- cleanDirectory(buildDir);
- // TODO: not a directory should we do something?
- }
-}
diff --git a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/CMakeBuildConfigurationProvider.java b/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/CMakeBuildConfigurationProvider.java
deleted file mode 100644
index e9ec4ddbe2a..00000000000
--- a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/CMakeBuildConfigurationProvider.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016, 2019 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.cdt.cmake.core.internal;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.cdt.cmake.core.ICMakeToolChainFile;
-import org.eclipse.cdt.cmake.core.ICMakeToolChainManager;
-import org.eclipse.cdt.core.build.ICBuildConfiguration;
-import org.eclipse.cdt.core.build.ICBuildConfigurationManager;
-import org.eclipse.cdt.core.build.ICBuildConfigurationProvider;
-import org.eclipse.cdt.core.build.IToolChain;
-import org.eclipse.cdt.core.build.IToolChainManager;
-import org.eclipse.core.resources.IBuildConfiguration;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-
-public class CMakeBuildConfigurationProvider implements ICBuildConfigurationProvider {
-
- public static final String ID = "org.eclipse.cdt.cmake.core.provider"; //$NON-NLS-1$
-
- private ICMakeToolChainManager manager = Activator.getService(ICMakeToolChainManager.class);
- private ICBuildConfigurationManager configManager = Activator.getService(ICBuildConfigurationManager.class);
-
- @Override
- public String getId() {
- return ID;
- }
-
- @Override
- public synchronized ICBuildConfiguration getCBuildConfiguration(IBuildConfiguration config, String name)
- throws CoreException {
- if (config.getName().equals(IBuildConfiguration.DEFAULT_CONFIG_NAME)) {
- IToolChain toolChain = null;
-
- // try the toolchain for the local target
- Map<String, String> properties = new HashMap<>();
- properties.put(IToolChain.ATTR_OS, Platform.getOS());
- properties.put(IToolChain.ATTR_ARCH, Platform.getOSArch());
- IToolChainManager toolChainManager = Activator.getService(IToolChainManager.class);
- for (IToolChain tc : toolChainManager.getToolChainsMatching(properties)) {
- toolChain = tc;
- break;
- }
-
- // local didn't work, try and find one that does
- if (toolChain == null) {
- for (IToolChain tc : toolChainManager.getToolChainsMatching(new HashMap<>())) {
- toolChain = tc;
- break;
- }
- }
-
- if (toolChain != null) {
- return new CMakeBuildConfiguration(config, name, toolChain);
- } else {
- // No valid combinations
- return null;
- }
- }
- CMakeBuildConfiguration cmakeConfig = new CMakeBuildConfiguration(config, name);
- ICMakeToolChainFile tcFile = cmakeConfig.getToolChainFile();
- IToolChain toolChain = cmakeConfig.getToolChain();
- if (toolChain == null) {
- // config not complete
- return null;
- }
- if (tcFile != null && !toolChain.equals(tcFile.getToolChain())) {
- // toolchain changed
- return new CMakeBuildConfiguration(config, name, tcFile.getToolChain(), tcFile,
- cmakeConfig.getLaunchMode());
- } else {
- return cmakeConfig;
- }
- }
-
- @Override
- public ICBuildConfiguration createBuildConfiguration(IProject project, IToolChain toolChain, String launchMode,
- IProgressMonitor monitor) throws CoreException {
- // get matching toolchain file if any
- Map<String, String> properties = new HashMap<>();
- String os = toolChain.getProperty(IToolChain.ATTR_OS);
- if (os != null && !os.isEmpty()) {
- properties.put(IToolChain.ATTR_OS, os);
- }
- String arch = toolChain.getProperty(IToolChain.ATTR_ARCH);
- if (arch != null && !arch.isEmpty()) {
- properties.put(IToolChain.ATTR_ARCH, arch);
- }
- ICMakeToolChainFile file = manager.getToolChainFileFor(toolChain);
- if (file == null) {
- Collection<ICMakeToolChainFile> files = manager.getToolChainFilesMatching(properties);
- if (!files.isEmpty()) {
- file = files.iterator().next();
- }
- }
-
- // create config
- StringBuilder configName = new StringBuilder("cmake."); //$NON-NLS-1$
- configName.append(launchMode);
- if ("linux-container".equals(os)) { //$NON-NLS-1$
- String osConfigName = toolChain.getProperty("linux-container-id"); //$NON-NLS-1$
- osConfigName = osConfigName.replaceAll("/", "_"); //$NON-NLS-1$ //$NON-NLS-2$
- configName.append('.');
- configName.append(osConfigName);
- } else {
- if (os != null) {
- configName.append('.');
- configName.append(os);
- }
- if (arch != null && !arch.isEmpty()) {
- configName.append('.');
- configName.append(arch);
- }
- }
- String name = configName.toString();
- IBuildConfiguration config = null;
- // reuse any IBuildConfiguration with the same name for the project
- // so adding the CBuildConfiguration will override the old one stored
- // by the CBuildConfigurationManager
- if (configManager.hasConfiguration(this, project, name)) {
- config = project.getBuildConfig(this.getId() + '/' + name);
- }
- if (config == null) {
- config = configManager.createBuildConfiguration(this, project, name, monitor);
- }
-
- CMakeBuildConfiguration cmakeConfig = new CMakeBuildConfiguration(config, name, toolChain, file, launchMode);
- configManager.addBuildConfiguration(config, cmakeConfig);
- return cmakeConfig;
- }
-
-}
diff --git a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/CMakeToolChainFile.java b/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/CMakeToolChainFile.java
deleted file mode 100644
index b99b792451c..00000000000
--- a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/CMakeToolChainFile.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.cdt.cmake.core.internal;
-
-import java.nio.file.Path;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.cdt.cmake.core.ICMakeToolChainFile;
-import org.eclipse.cdt.core.build.IToolChain;
-import org.eclipse.cdt.core.build.IToolChainManager;
-import org.eclipse.core.runtime.CoreException;
-
-public class CMakeToolChainFile implements ICMakeToolChainFile {
-
- String n;
- private final Path path;
- private IToolChain toolchain;
-
- final Map<String, String> properties = new HashMap<>();
-
- public CMakeToolChainFile(String n, Path path) {
- this.n = n;
- this.path = path;
- }
-
- @Override
- public Path getPath() {
- return path;
- }
-
- @Override
- public String getProperty(String key) {
- return properties.get(key);
- }
-
- @Override
- public void setProperty(String key, String value) {
- properties.put(key, value);
- }
-
- @Override
- public IToolChain getToolChain() throws CoreException {
- if (toolchain == null) {
- IToolChainManager tcManager = Activator.getService(IToolChainManager.class);
- toolchain = tcManager.getToolChain(properties.get(CMakeBuildConfiguration.TOOLCHAIN_TYPE),
- properties.get(CMakeBuildConfiguration.TOOLCHAIN_ID));
-
- if (toolchain == null) {
- Collection<IToolChain> tcs = tcManager.getToolChainsMatching(properties);
- if (!tcs.isEmpty()) {
- toolchain = tcs.iterator().next();
- }
- }
- }
- return toolchain;
- }
-
- boolean matches(Map<String, String> properties) {
- for (Map.Entry<String, String> property : properties.entrySet()) {
- if (!property.getValue().equals(getProperty(property.getKey()))) {
- return false;
- }
- }
- return true;
- }
-
-}
diff --git a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/CMakeToolChainManager.java b/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/CMakeToolChainManager.java
deleted file mode 100644
index f7f2088e983..00000000000
--- a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/CMakeToolChainManager.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.cdt.cmake.core.internal;
-
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.eclipse.cdt.cmake.core.CMakeToolChainEvent;
-import org.eclipse.cdt.cmake.core.ICMakeToolChainFile;
-import org.eclipse.cdt.cmake.core.ICMakeToolChainListener;
-import org.eclipse.cdt.cmake.core.ICMakeToolChainManager;
-import org.eclipse.cdt.cmake.core.ICMakeToolChainProvider;
-import org.eclipse.cdt.core.build.IToolChain;
-import org.eclipse.cdt.core.build.IToolChainManager;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
-
-public class CMakeToolChainManager implements ICMakeToolChainManager {
-
- private Map<String, ICMakeToolChainFile> filesByToolChain;
-
- private static final String N = "n"; //$NON-NLS-1$
- private static final String PATH = "__path"; //$NON-NLS-1$
-
- private final List<ICMakeToolChainListener> listeners = new LinkedList<>();
-
- private Preferences getPreferences() {
- return InstanceScope.INSTANCE.getNode(Activator.getId()).node("cmakeToolchains"); //$NON-NLS-1$
- }
-
- public static String makeToolChainId(String tcType, String tcId) {
- return tcType + '/' + tcId;
- }
-
- public static String makeToolChainId(IToolChain toolchain) {
- return makeToolChainId(toolchain.getTypeId(), toolchain.getId());
- }
-
- private synchronized void init() {
- if (filesByToolChain == null) {
- filesByToolChain = new HashMap<>();
-
- Preferences prefs = getPreferences();
- try {
- for (String childName : prefs.childrenNames()) {
- Preferences tcNode = prefs.node(childName);
- String pathStr = tcNode.get(PATH, "/"); //$NON-NLS-1$
- String tcType = tcNode.get(CMakeBuildConfiguration.TOOLCHAIN_TYPE, "?"); //$NON-NLS-1$
- String tcId = tcNode.get(CMakeBuildConfiguration.TOOLCHAIN_ID, "?"); //$NON-NLS-1$
- Path path = Paths.get(pathStr);
- IToolChainManager tcManager = Activator.getService(IToolChainManager.class);
- IToolChain toolchain = tcManager.getToolChain(tcType, tcId);
- if (toolchain != null && Files.exists(path)) {
- ICMakeToolChainFile file = new CMakeToolChainFile(childName, path);
- for (String key : tcNode.keys()) {
- String value = tcNode.get(key, ""); //$NON-NLS-1$
- if (!value.isEmpty()) {
- file.setProperty(key, value);
- }
- }
- filesByToolChain.put(makeToolChainId(tcType, tcId), file);
- } else {
- tcNode.removeNode();
- prefs.flush();
- }
- }
- } catch (BackingStoreException | CoreException e) {
- Activator.log(e);
- }
-
- // TODO discovery
- IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(Activator.getId(),
- "toolChainProvider"); //$NON-NLS-1$
- for (IConfigurationElement element : point.getConfigurationElements()) {
- if (element.getName().equals("provider")) { //$NON-NLS-1$
- try {
- ICMakeToolChainProvider provider = (ICMakeToolChainProvider) element
- .createExecutableExtension("class"); //$NON-NLS-1$
- provider.init(this);
- } catch (ClassCastException | CoreException e) {
- Activator.log(e);
- }
- }
- }
- }
- }
-
- @Override
- public ICMakeToolChainFile newToolChainFile(Path path) {
- return new CMakeToolChainFile(null, path);
- }
-
- @Override
- public void addToolChainFile(ICMakeToolChainFile file) {
- init();
- try {
- IToolChain toolchain = file.getToolChain();
- String tcId = makeToolChainId(toolchain);
- if (filesByToolChain.containsKey(tcId)) {
- removeToolChainFile(file);
- }
- filesByToolChain.put(tcId, file);
-
- // save it
- CMakeToolChainFile realFile = (CMakeToolChainFile) file;
- Preferences prefs = getPreferences();
- String n = realFile.n;
- if (n == null) {
- n = prefs.get(N, "0"); //$NON-NLS-1$
- realFile.n = n;
- }
- prefs.put(N, Integer.toString(Integer.parseInt(n) + 1));
-
- Preferences tcNode = prefs.node(n);
- tcNode.put(PATH, file.getPath().toString());
- for (Entry<String, String> entry : realFile.properties.entrySet()) {
- tcNode.put(entry.getKey(), entry.getValue());
- }
- tcNode.put(CMakeBuildConfiguration.TOOLCHAIN_TYPE, toolchain.getTypeId());
- tcNode.put(CMakeBuildConfiguration.TOOLCHAIN_ID, toolchain.getId());
-
- prefs.flush();
-
- fireEvent(new CMakeToolChainEvent(CMakeToolChainEvent.ADDED, file));
- } catch (CoreException | BackingStoreException e) {
- Activator.log(e);
- return;
- }
- }
-
- @Override
- public void removeToolChainFile(ICMakeToolChainFile file) {
- init();
- fireEvent(new CMakeToolChainEvent(CMakeToolChainEvent.REMOVED, file));
- String tcId = makeToolChainId(file.getProperty(CMakeBuildConfiguration.TOOLCHAIN_TYPE),
- file.getProperty(CMakeBuildConfiguration.TOOLCHAIN_ID));
- filesByToolChain.remove(tcId);
-
- String n = ((CMakeToolChainFile) file).n;
- if (n != null) {
- Preferences prefs = getPreferences();
- Preferences tcNode = prefs.node(n);
- try {
- tcNode.removeNode();
- prefs.flush();
- } catch (BackingStoreException e) {
- Activator.log(e);
- }
- }
- }
-
- @Override
- public ICMakeToolChainFile getToolChainFile(Path path) {
- init();
- return null;
- }
-
- @Override
- public Collection<ICMakeToolChainFile> getToolChainFiles() {
- init();
- return Collections.unmodifiableCollection(filesByToolChain.values());
- }
-
- @Override
- public Collection<ICMakeToolChainFile> getToolChainFilesMatching(Map<String, String> properties) {
- List<ICMakeToolChainFile> matches = new ArrayList<>();
- for (ICMakeToolChainFile file : getToolChainFiles()) {
- boolean match = true;
- for (Entry<String, String> entry : properties.entrySet()) {
- if (!entry.getValue().equals(file.getProperty(entry.getKey()))) {
- match = false;
- break;
- }
- }
-
- if (match) {
- matches.add(file);
- }
- }
- return matches;
- }
-
- @Override
- public ICMakeToolChainFile getToolChainFileFor(IToolChain toolchain) {
- init();
- String id = makeToolChainId(toolchain);
- return filesByToolChain.get(id);
- }
-
- @Override
- public void addListener(ICMakeToolChainListener listener) {
- listeners.add(listener);
- }
-
- @Override
- public void removeListener(ICMakeToolChainListener listener) {
- listeners.remove(listener);
- }
-
- private void fireEvent(CMakeToolChainEvent event) {
- for (ICMakeToolChainListener listener : listeners) {
- SafeRunner.run(new ISafeRunnable() {
- @Override
- public void run() throws Exception {
- listener.handleCMakeToolChainEvent(event);
- }
-
- @Override
- public void handleException(Throwable exception) {
- Activator.log(exception);
- }
- });
- }
- }
-
-}
diff --git a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/CMakeUtils.java b/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/CMakeUtils.java
deleted file mode 100644
index 3b85f39c5a7..00000000000
--- a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/CMakeUtils.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Red Hat Inc. and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Red Hat Inc. - initial version
- *******************************************************************************/
-package org.eclipse.cdt.cmake.core.internal;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class CMakeUtils {
-
- /**
- * Parse a string containing environment variables into individual VAR=VALUE pairs.
- *
- * @param envString - String to parse
- * @return List of var=value Strings
- */
- public static List<String> stripEnvVars(String envString) {
- Pattern p1 = Pattern.compile("(\\w+[=]\\\".*?\\\").*"); //$NON-NLS-1$
- Pattern p2 = Pattern.compile("(\\w+[=]'.*?').*"); //$NON-NLS-1$
- Pattern p3 = Pattern.compile("(\\w+[=][^\\s]+).*"); //$NON-NLS-1$
- boolean finished = false;
- List<String> envVars = new ArrayList<>();
- while (!finished) {
- Matcher m1 = p1.matcher(envString);
- if (m1.matches()) {
- envString = envString.replaceFirst("\\w+[=]\\\".*?\\\"", "").trim(); //$NON-NLS-1$ //$NON-NLS-2$
- String s = m1.group(1).trim();
- envVars.add(s.replaceAll("\\\"", "")); //$NON-NLS-1$ //$NON-NLS-2$
- } else {
- Matcher m2 = p2.matcher(envString);
- if (m2.matches()) {
- envString = envString.replaceFirst("\\w+[=]'.*?'", "").trim(); //$NON-NLS-1$ //$NON-NLS-2$
- String s = m2.group(1).trim();
- envVars.add(s.replaceAll("'", "")); //$NON-NLS-1$ //$NON-NLS-2$
- } else {
- Matcher m3 = p3.matcher(envString);
- if (m3.matches()) {
- envString = envString.replaceFirst("\\w+[=][^\\s]+", "").trim(); //$NON-NLS-1$ //$NON-NLS-2$
- envVars.add(m3.group(1).trim());
- } else {
- finished = true;
- }
- }
- }
- }
- return envVars;
- }
-
-}
diff --git a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/Messages.java b/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/Messages.java
deleted file mode 100644
index 18e2f1fddac..00000000000
--- a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/Messages.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.cdt.cmake.core.internal;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
- private static final String BUNDLE_NAME = "org.eclipse.cdt.cmake.core.internal.messages"; //$NON-NLS-1$
- public static String CMakeBuildConfiguration_Building;
- public static String CMakeBuildConfiguration_BuildingIn;
- public static String CMakeBuildConfiguration_BuildingComplete;
- public static String CMakeBuildConfiguration_BuildComplete;
- public static String CMakeBuildConfiguration_Cleaning;
- public static String CMakeBuildConfiguration_Configuring;
- public static String CMakeBuildConfiguration_NotFound;
- public static String CMakeBuildConfiguration_NoToolchainFile;
- public static String CMakeBuildConfiguration_ProcCompCmds;
- public static String CMakeBuildConfiguration_ProcCompJson;
- public static String CMakeBuildConfiguration_Failure;
- static {
- // initialize resource bundle
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- private Messages() {
- }
-}
diff --git a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/messages.properties b/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/messages.properties
deleted file mode 100644
index 7af6fa76592..00000000000
--- a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/messages.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-################################################################################
-# Copyright (c) 2016 QNX Software Systems and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-################################################################################
-CMakeBuildConfiguration_Building=Building %s
-CMakeBuildConfiguration_BuildingIn=Building in: %s\n
-CMakeBuildConfiguration_BuildingComplete=Build complete (%d errors, %d warnings): %s\n
-CMakeBuildConfiguration_BuildComplete=Build complete\n
-CMakeBuildConfiguration_Configuring=Configuring in: %s\n
-CMakeBuildConfiguration_Cleaning=Cleaning %s
-CMakeBuildConfiguration_NotFound=CMakeFiles not found. Assuming clean.
-CMakeBuildConfiguration_NoToolchainFile=No CMake toolchain file found for this target.
-CMakeBuildConfiguration_ProcCompCmds=Processing compile commands %s
-CMakeBuildConfiguration_ProcCompJson=Processing compile_commands.json
-CMakeBuildConfiguration_Failure=Failure running cmake: %s\n
diff --git a/build/org.eclipse.cdt.cmake.core/templates/simple/CMakeLists.txt b/build/org.eclipse.cdt.cmake.core/templates/simple/CMakeLists.txt
deleted file mode 100644
index 6ee2edbbdc6..00000000000
--- a/build/org.eclipse.cdt.cmake.core/templates/simple/CMakeLists.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-cmake_minimum_required (VERSION 2.6)
-
-project (${projectName})
-
-add_executable(${projectName} ${projectName}.cpp)
diff --git a/build/org.eclipse.cdt.cmake.core/templates/simple/main.cpp b/build/org.eclipse.cdt.cmake.core/templates/simple/main.cpp
deleted file mode 100644
index f1d3a296cb5..00000000000
--- a/build/org.eclipse.cdt.cmake.core/templates/simple/main.cpp
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <iostream>
-using namespace std;
-
-int main(int argc, char **argv) {
- cout << "Hello world";
- return 0;
-}
diff --git a/build/org.eclipse.cdt.cmake.core/templates/simple/manifest.xml b/build/org.eclipse.cdt.cmake.core/templates/simple/manifest.xml
deleted file mode 100644
index 708c005910b..00000000000
--- a/build/org.eclipse.cdt.cmake.core/templates/simple/manifest.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<templateManifest>
- <file src="/templates/simple/CMakeLists.txt"
- dest="/${projectName}/CMakeLists.txt"/>
- <file src="/templates/simple/main.cpp"
- dest="/${projectName}/${projectName}.cpp"
- open="true"/>
-</templateManifest> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.cmake.ui.tests/.classpath b/build/org.eclipse.cdt.cmake.ui.tests/.classpath
deleted file mode 100644
index eca7bdba8f0..00000000000
--- a/build/org.eclipse.cdt.cmake.ui.tests/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/build/org.eclipse.cdt.cmake.ui.tests/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.cmake.ui.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index ad05599159f..00000000000
--- a/build/org.eclipse.cdt.cmake.ui.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,464 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=ignore
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=ignore
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
-org.eclipse.jdt.core.formatter.align_with_spaces=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
-org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/build/org.eclipse.cdt.cmake.ui.tests/.settings/org.eclipse.jdt.launching.prefs b/build/org.eclipse.cdt.cmake.ui.tests/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index f8a131b56e0..00000000000
--- a/build/org.eclipse.cdt.cmake.ui.tests/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/build/org.eclipse.cdt.cmake.ui.tests/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.cmake.ui.tests/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index e44576346c4..00000000000
--- a/build/org.eclipse.cdt.cmake.ui.tests/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,133 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_functional_interfaces=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.insert_inferred_type_arguments=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_redundant_modifiers=false
-cleanup.remove_redundant_semicolons=true
-cleanup.remove_redundant_type_arguments=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=false
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_lambda=true
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_CDT
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_CDT
-formatter_settings_version=14
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=1000
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=1000
-org.eclipse.jdt.ui.text.custom_code_templates=
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=false
-sp_cleanup.remove_redundant_semicolons=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/build/org.eclipse.cdt.cmake.ui.tests/.settings/org.eclipse.pde.api.tools.prefs b/build/org.eclipse.cdt.cmake.ui.tests/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ec9fbf321d0..00000000000
--- a/build/org.eclipse.cdt.cmake.ui.tests/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,184 +0,0 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-MISSING_EE_DESCRIPTIONS=Warning
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-changed_execution_env=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-incompatible_api_component_version_report_major_without_breaking_change=Warning
-incompatible_api_component_version_report_minor_without_api_change=Warning
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/build/org.eclipse.cdt.cmake.ui.tests/.settings/org.eclipse.pde.prefs b/build/org.eclipse.cdt.cmake.ui.tests/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 51a63ec9988..00000000000
--- a/build/org.eclipse.cdt.cmake.ui.tests/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,35 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.no.automatic.module=1
-compilers.p.not-externalized-att=2
-compilers.p.service.component.without.lazyactivation=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/build/org.eclipse.cdt.cmake.ui.tests/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.cmake.ui.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index da220c5bafd..00000000000
--- a/build/org.eclipse.cdt.cmake.ui.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,12 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Tests
-Bundle-SymbolicName: org.eclipse.cdt.cmake.ui.tests
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: Eclipse CDT
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Require-Bundle: org.eclipse.swtbot.go;bundle-version="2.7.0",
- org.eclipse.cdt.core;bundle-version="6.4.0",
- org.eclipse.core.resources;bundle-version="3.12.0",
- org.eclipse.cdt.cmake.core;bundle-version="1.2.0"
-Automatic-Module-Name: org.eclipse.cdt.cmake.ui.tests
diff --git a/build/org.eclipse.cdt.cmake.ui.tests/about.html b/build/org.eclipse.cdt.cmake.ui.tests/about.html
deleted file mode 100644
index 164f781a8fd..00000000000
--- a/build/org.eclipse.cdt.cmake.ui.tests/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
- <h2>About This Content</h2>
-
- <p>November 30, 2017</p>
- <h3>License</h3>
-
- <p>
- The Eclipse Foundation makes available all content in this plug-in
- (&quot;Content&quot;). Unless otherwise indicated below, the Content
- is provided to you under the terms and conditions of the Eclipse
- Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
- For purposes of the EPL, &quot;Program&quot; will mean the Content.
- </p>
-
- <p>
- If you did not receive this Content directly from the Eclipse
- Foundation, the Content is being redistributed by another party
- (&quot;Redistributor&quot;) and different terms and conditions may
- apply to your use of any object code in the Content. Check the
- Redistributor's license that was provided with the Content. If no such
- license exists, contact the Redistributor. Unless otherwise indicated
- below, the terms and conditions of the EPL still apply to any source
- code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
- </p>
-
-</body>
-</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.cmake.ui.tests/build.properties b/build/org.eclipse.cdt.cmake.ui.tests/build.properties
deleted file mode 100644
index e4213f4fce8..00000000000
--- a/build/org.eclipse.cdt.cmake.ui.tests/build.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- about.html,\
- swtbot-test-plugin.properties
diff --git a/build/org.eclipse.cdt.cmake.ui.tests/pom.xml b/build/org.eclipse.cdt.cmake.ui.tests/pom.xml
deleted file mode 100644
index e2b29abeb4b..00000000000
--- a/build/org.eclipse.cdt.cmake.ui.tests/pom.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
- xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.eclipse.cdt</groupId>
- <artifactId>cdt-parent</artifactId>
- <version>9.9.0-SNAPSHOT</version>
- <relativePath>../../pom.xml</relativePath>
- </parent>
-
- <artifactId>org.eclipse.cdt.cmake.ui.tests</artifactId>
- <version>1.0.0-SNAPSHOT</version>
- <packaging>eclipse-test-plugin</packaging>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.eclipse.tycho</groupId>
- <artifactId>target-platform-configuration</artifactId>
- <version>${tycho-version}</version>
- <configuration>
- <dependency-resolution>
- <extraRequirements>
- <requirement>
- <type>p2-installable-unit</type>
- <id>org.eclipse.cdt.feature.group</id>
- <versionRange>0.0.0</versionRange>
- </requirement>
- <requirement>
- <type>p2-installable-unit</type>
- <id>org.eclipse.cdt.cmake.feature.group</id>
- <versionRange>0.0.0</versionRange>
- </requirement>
- </extraRequirements>
- </dependency-resolution>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.cmake.ui.tests/src/org/eclipse/cdt/cmake/ui/internal/tests/AutomatedIntegrationSuite.java b/build/org.eclipse.cdt.cmake.ui.tests/src/org/eclipse/cdt/cmake/ui/internal/tests/AutomatedIntegrationSuite.java
deleted file mode 100644
index 35460381c2f..00000000000
--- a/build/org.eclipse.cdt.cmake.ui.tests/src/org/eclipse/cdt/cmake/ui/internal/tests/AutomatedIntegrationSuite.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2017 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.cdt.cmake.ui.internal.tests;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-
-@RunWith(Suite.class)
-@Suite.SuiteClasses({ NewCMakeProjectTest.class })
-public class AutomatedIntegrationSuite {
-
-}
diff --git a/build/org.eclipse.cdt.cmake.ui.tests/src/org/eclipse/cdt/cmake/ui/internal/tests/NewCMakeProjectTest.java b/build/org.eclipse.cdt.cmake.ui.tests/src/org/eclipse/cdt/cmake/ui/internal/tests/NewCMakeProjectTest.java
deleted file mode 100644
index 0f18d9b54ec..00000000000
--- a/build/org.eclipse.cdt.cmake.ui.tests/src/org/eclipse/cdt/cmake/ui/internal/tests/NewCMakeProjectTest.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2017 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.cdt.cmake.ui.internal.tests;
-
-import static org.eclipse.swtbot.eclipse.finder.matchers.WidgetMatcherFactory.withPartName;
-import static org.junit.Assert.assertTrue;
-
-import org.eclipse.cdt.cmake.core.CMakeNature;
-import org.eclipse.cdt.core.CCorePlugin;
-import org.eclipse.cdt.core.index.IIndexManager;
-import org.eclipse.cdt.core.model.CoreModel;
-import org.eclipse.cdt.core.model.ICProject;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
-import org.eclipse.swtbot.eclipse.finder.waits.Conditions;
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
-import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTable;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTableItem;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public class NewCMakeProjectTest {
-
- private static SWTWorkbenchBot bot;
-
- @BeforeClass
- public static void beforeClass() {
- SWTBotPreferences.KEYBOARD_LAYOUT = "EN_US";
- SWTBotPreferences.TIMEOUT = 10000;
- bot = new SWTWorkbenchBot();
- }
-
- @Before
- public void before() {
- bot.resetWorkbench();
-
- for (SWTBotView view : bot.views(withPartName("Welcome"))) {
- view.close();
- }
- }
-
- @Test(timeout = 60000)
- public void createCMakeProject() throws Exception {
- // open C++ perspective
- if (!"C/C++".equals(bot.activePerspective().getLabel())) {
- bot.perspectiveByLabel("C/C++").activate();
- }
-
- // Activate C/C++ wizard
- bot.menu("File").menu("New").menu("C/C++ Project").click();
- bot.shell("New C/C++ Project").activate();
-
- // Double click on the template
- SWTBotTable templateTable = bot.table();
- bot.getDisplay().syncExec(() -> {
- for (int i = 0; i < templateTable.rowCount(); ++i) {
- SWTBotTableItem item = templateTable.getTableItem(i);
- if ("CMake Project".equals(item.widget.getData(SWTBotPreferences.DEFAULT_KEY))) {
- item.doubleClick();
- break;
- }
- }
- });
-
- // Select the shell again since magic wizardry happened
- SWTBotShell newProjectShell = bot.shell("New CMake Project").activate();
- bot.waitUntil(Conditions.shellIsActive("New CMake Project"));
- newProjectShell.setFocus();
-
- // Create the project
- String projectName = "CMakeTestProj";
- bot.textWithLabel("Project name:").setText(projectName);
- bot.button("Finish").click();
- bot.waitUntil(Conditions.shellCloses(newProjectShell));
-
- // Make sure it shows up in Project Explorer
- SWTBotView explorer = bot.viewByPartName("Project Explorer");
- explorer.show();
- explorer.setFocus();
- bot.tree().getTreeItem(projectName);
-
- // Make sure the project indexer completes. At that point we're stable.
- IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
- ICProject cproject = CoreModel.getDefault().create(project);
- IIndexManager indexManager = CCorePlugin.getIndexManager();
- while (!indexManager.isProjectContentSynced(cproject)) {
- Thread.sleep(1000);
- }
-
- // Make sure it has the right nature
- assertTrue(project.hasNature(CMakeNature.ID));
- }
-
-}
diff --git a/build/org.eclipse.cdt.cmake.ui.tests/swtbot-test-plugin.properties b/build/org.eclipse.cdt.cmake.ui.tests/swtbot-test-plugin.properties
deleted file mode 100644
index 338038b9345..00000000000
--- a/build/org.eclipse.cdt.cmake.ui.tests/swtbot-test-plugin.properties
+++ /dev/null
@@ -1 +0,0 @@
-# This file tells the Maven build to use the settings for SWTBot test plugins
diff --git a/build/org.eclipse.cdt.cmake.ui/.classpath b/build/org.eclipse.cdt.cmake.ui/.classpath
deleted file mode 100644
index eca7bdba8f0..00000000000
--- a/build/org.eclipse.cdt.cmake.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/build/org.eclipse.cdt.cmake.ui/.project b/build/org.eclipse.cdt.cmake.ui/.project
deleted file mode 100644
index c65bf192fcd..00000000000
--- a/build/org.eclipse.cdt.cmake.ui/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.cdt.cmake.ui</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/build/org.eclipse.cdt.cmake.ui/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.cmake.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 2b6ecff8a01..00000000000
--- a/build/org.eclipse.cdt.cmake.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,464 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
-org.eclipse.jdt.core.formatter.align_with_spaces=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
-org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/build/org.eclipse.cdt.cmake.ui/.settings/org.eclipse.jdt.launching.prefs b/build/org.eclipse.cdt.cmake.ui/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index f8a131b56e0..00000000000
--- a/build/org.eclipse.cdt.cmake.ui/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/build/org.eclipse.cdt.cmake.ui/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.cmake.ui/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index e44576346c4..00000000000
--- a/build/org.eclipse.cdt.cmake.ui/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,133 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_functional_interfaces=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.insert_inferred_type_arguments=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_redundant_modifiers=false
-cleanup.remove_redundant_semicolons=true
-cleanup.remove_redundant_type_arguments=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=false
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_lambda=true
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_CDT
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_CDT
-formatter_settings_version=14
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=1000
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=1000
-org.eclipse.jdt.ui.text.custom_code_templates=
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=false
-sp_cleanup.remove_redundant_semicolons=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/build/org.eclipse.cdt.cmake.ui/.settings/org.eclipse.pde.api.tools.prefs b/build/org.eclipse.cdt.cmake.ui/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ec9fbf321d0..00000000000
--- a/build/org.eclipse.cdt.cmake.ui/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,184 +0,0 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-MISSING_EE_DESCRIPTIONS=Warning
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-changed_execution_env=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-incompatible_api_component_version_report_major_without_breaking_change=Warning
-incompatible_api_component_version_report_minor_without_api_change=Warning
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/build/org.eclipse.cdt.cmake.ui/.settings/org.eclipse.pde.prefs b/build/org.eclipse.cdt.cmake.ui/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index d2dc703ba9e..00000000000
--- a/build/org.eclipse.cdt.cmake.ui/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,35 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.no.automatic.module=1
-compilers.p.not-externalized-att=1
-compilers.p.service.component.without.lazyactivation=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/build/org.eclipse.cdt.cmake.ui/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.cmake.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 95db8a13243..00000000000
--- a/build/org.eclipse.cdt.cmake.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,23 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: CDT CMake UI
-Bundle-SymbolicName: org.eclipse.cdt.cmake.ui;singleton:=true
-Bundle-Version: 1.2.100.qualifier
-Bundle-Activator: org.eclipse.cdt.cmake.ui.internal.Activator
-Bundle-Vendor: Eclipse CDT
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.core.resources;bundle-version="3.11.0",
- org.eclipse.ui,
- org.eclipse.ui.ide,
- org.eclipse.cdt.cmake.core,
- org.eclipse.tools.templates.ui;bundle-version="1.1.0",
- org.eclipse.cdt.core;bundle-version="6.1.0",
- org.eclipse.debug.ui;bundle-version="3.11.200",
- org.eclipse.cdt.launch;bundle-version="9.1.0",
- org.eclipse.cdt.debug.core;bundle-version="8.1.0",
- org.eclipse.cdt.ui;bundle-version="6.2.0",
- org.eclipse.launchbar.core
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
-Bundle-Localization: plugin
-Automatic-Module-Name: org.eclipse.cdt.cmake.ui
diff --git a/build/org.eclipse.cdt.cmake.ui/build.properties b/build/org.eclipse.cdt.cmake.ui/build.properties
deleted file mode 100644
index 5ac60bf9b00..00000000000
--- a/build/org.eclipse.cdt.cmake.ui/build.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- about.html,\
- plugin.xml,\
- plugin.properties,\
- icons/
diff --git a/build/org.eclipse.cdt.cmake.ui/icons/cmake_logo-main.png b/build/org.eclipse.cdt.cmake.ui/icons/cmake_logo-main.png
deleted file mode 100644
index f31af16c272..00000000000
--- a/build/org.eclipse.cdt.cmake.ui/icons/cmake_logo-main.png
+++ /dev/null
Binary files differ
diff --git a/build/org.eclipse.cdt.cmake.ui/plugin.xml b/build/org.eclipse.cdt.cmake.ui/plugin.xml
deleted file mode 100644
index 042d05e8d13..00000000000
--- a/build/org.eclipse.cdt.cmake.ui/plugin.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
- <extension
- point="org.eclipse.ui.propertyPages">
- <page
- class="org.eclipse.cdt.cmake.ui.properties.CMakePropertyPage"
- id="org.eclipse.cdt.cmake.ui.properties.cmakePropertyPage"
- name="CMake">
- <enabledWhen>
- <and>
- <instanceof
- value="org.eclipse.core.resources.IProject">
- </instanceof>
- <test
- property="org.eclipse.core.resources.projectNature"
- value="org.eclipse.cdt.cmake.core.cmakeNature">
- </test>
- </and>
- </enabledWhen>
- </page>
- </extension>
- <extension
- point="org.eclipse.ui.preferencePages">
- <page
- category="org.eclipse.cdt.ui.preferences.CPluginPreferencePage"
- class="org.eclipse.cdt.cmake.ui.internal.CMakePreferencePage"
- id="org.eclipse.cdt.cmake.ui.page1"
- name="%cmake.preferences.name">
- </page>
- </extension>
- <extension
- point="org.eclipse.tools.templates.ui.templates">
- <tag
- id="org.eclipse.cdt.cmake.ui.tag"
- label="CMake">
- </tag>
- <template
- icon="icons/cmake_logo-main.png"
- id="org.eclipse.cdt.cmake.ui.newProjectTemplate"
- label="CMake Project"
- wizard="org.eclipse.cdt.cmake.ui.internal.NewCMakeProjectWizard">
- <description>
- A CMake project with a Hello World executable to get started.
- </description>
- <tagReference
- id="org.eclipse.cdt.ui.cdtTag">
- </tagReference>
- <tagReference
- id="org.eclipse.cdt.cmake.ui.tag">
- </tagReference>
- </template>
- <template
- icon="icons/cmake_logo-main.png"
- id="org.eclipse.cdt.cmake.ui.emptyProjectTemplate"
- label="Empty or Existing CMake Project"
- wizard="org.eclipse.cdt.cmake.ui.internal.EmptyCMakeProjectWizard">
- <description>
- Create a CMake project with no files. Can be used to create one over existing content.
- </description>
- <tagReference
- id="org.eclipse.cdt.ui.cdtTag">
- </tagReference>
- <tagReference
- id="org.eclipse.cdt.cmake.ui.tag">
- </tagReference>
- </template>
- </extension>
- <extension
- point="org.eclipse.cdt.launch.coreBuildTab">
- <provider
- nature="org.eclipse.cdt.cmake.core.cmakeNature"
- priority="10"
- tabClass="org.eclipse.cdt.cmake.ui.internal.CMakeBuildTab">
- </provider>
- </extension>
-
-</plugin>
diff --git a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/Activator.java b/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/Activator.java
deleted file mode 100644
index 76e693bc804..00000000000
--- a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/Activator.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.cdt.cmake.ui.internal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-
-public class Activator extends AbstractUIPlugin {
-
- private static Activator plugin;
-
- public static final String PLUGIN_ID = "org.eclipse.cdt.cmake.ui"; //$NON-NLS-1$
-
- @Override
- public void start(BundleContext context) throws Exception {
- super.start(context);
- plugin = this;
- }
-
- @Override
- public void stop(BundleContext context) throws Exception {
- plugin = null;
- super.stop(context);
- }
-
- public static Activator getPlugin() {
- return plugin;
- }
-
- public static IStatus errorStatus(String message, Throwable cause) {
- return new Status(IStatus.ERROR, PLUGIN_ID, message, cause);
- }
-
- public static void log(IStatus status) {
- plugin.getLog().log(status);
- }
-
- public static void log(Exception e) {
- if (e instanceof CoreException) {
- log(((CoreException) e).getStatus());
- } else {
- plugin.getLog().log(errorStatus(e.getLocalizedMessage(), e));
- }
- }
-
- public static <T> T getService(Class<T> service) {
- BundleContext context = plugin.getBundle().getBundleContext();
- ServiceReference<T> ref = context.getServiceReference(service);
- return ref != null ? context.getService(ref) : null;
- }
-
-}
diff --git a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/CMakeBuildTab.java b/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/CMakeBuildTab.java
deleted file mode 100644
index 24636bb0a36..00000000000
--- a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/CMakeBuildTab.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2017 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.cdt.cmake.ui.internal;
-
-import java.util.Map;
-
-import org.eclipse.cdt.cmake.core.internal.CMakeBuildConfiguration;
-import org.eclipse.cdt.cmake.core.internal.CMakeBuildConfigurationProvider;
-import org.eclipse.cdt.core.build.ICBuildConfiguration;
-import org.eclipse.cdt.launch.ui.corebuild.CommonBuildTab;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-public class CMakeBuildTab extends CommonBuildTab {
-
- private Button unixGenButton;
- private Button ninjaGenButton;
- private Text cmakeArgsText;
- private Text buildCommandText;
- private Text cleanCommandText;
-
- @Override
- protected String getBuildConfigProviderId() {
- return CMakeBuildConfigurationProvider.ID;
- }
-
- @Override
- public void createControl(Composite parent) {
- Composite comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout());
- setControl(comp);
-
- Control tcControl = createToolchainSelector(comp);
- tcControl.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-
- Group cmakeGroup = new Group(comp, SWT.NONE);
- cmakeGroup.setText(Messages.CMakeBuildTab_Settings);
- cmakeGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
- cmakeGroup.setLayout(new GridLayout());
-
- Label label = new Label(cmakeGroup, SWT.NONE);
- label.setText(Messages.CMakeBuildTab_Generator);
-
- Composite genComp = new Composite(cmakeGroup, SWT.BORDER);
- genComp.setLayout(new GridLayout(2, true));
-
- unixGenButton = new Button(genComp, SWT.RADIO);
- unixGenButton.setText(Messages.CMakeBuildTab_UnixMakefiles);
- unixGenButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- updateLaunchConfigurationDialog();
- }
- });
-
- ninjaGenButton = new Button(genComp, SWT.RADIO);
- ninjaGenButton.setText(Messages.CMakeBuildTab_Ninja);
- ninjaGenButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- updateLaunchConfigurationDialog();
- }
- });
-
- label = new Label(cmakeGroup, SWT.NONE);
- label.setText(Messages.CMakeBuildTab_CMakeArgs);
-
- cmakeArgsText = new Text(cmakeGroup, SWT.BORDER);
- cmakeArgsText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
- cmakeArgsText.addModifyListener(e -> updateLaunchConfigurationDialog());
-
- label = new Label(cmakeGroup, SWT.NONE);
- label.setText(Messages.CMakeBuildTab_BuildCommand);
-
- buildCommandText = new Text(cmakeGroup, SWT.BORDER);
- buildCommandText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
- buildCommandText.addModifyListener(e -> updateLaunchConfigurationDialog());
-
- label = new Label(cmakeGroup, SWT.NONE);
- label.setText(Messages.CMakeBuildTab_CleanCommand);
-
- cleanCommandText = new Text(cmakeGroup, SWT.BORDER);
- cleanCommandText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
- cleanCommandText.addModifyListener(e -> updateLaunchConfigurationDialog());
- }
-
- @Override
- public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
- // TODO
- }
-
- @Override
- public void initializeFrom(ILaunchConfiguration configuration) {
- super.initializeFrom(configuration);
-
- ICBuildConfiguration buildConfig = getBuildConfiguration();
-
- String generator = buildConfig.getProperty(CMakeBuildConfiguration.CMAKE_GENERATOR);
- updateGeneratorButtons(generator);
-
- String cmakeArgs = buildConfig.getProperty(CMakeBuildConfiguration.CMAKE_ARGUMENTS);
- if (cmakeArgs != null) {
- cmakeArgsText.setText(cmakeArgs);
- } else {
- cmakeArgsText.setText(""); //$NON-NLS-1$
- }
-
- String buildCommand = buildConfig.getProperty(CMakeBuildConfiguration.BUILD_COMMAND);
- if (buildCommand != null) {
- buildCommandText.setText(buildCommand);
- } else {
- buildCommandText.setText(""); //$NON-NLS-1$
- }
-
- String cleanCommand = buildConfig.getProperty(CMakeBuildConfiguration.CLEAN_COMMAND);
- if (cleanCommand != null) {
- cleanCommandText.setText(buildCommand);
- } else {
- cleanCommandText.setText(""); //$NON-NLS-1$
- }
- }
-
- private void updateGeneratorButtons(String generator) {
- if (generator == null || generator.equals("Ninja")) { //$NON-NLS-1$
- ninjaGenButton.setSelection(true);
- } else {
- unixGenButton.setSelection(true);
- }
- }
-
- @Override
- public void performApply(ILaunchConfigurationWorkingCopy configuration) {
- super.performApply(configuration);
-
- ICBuildConfiguration buildConfig = getBuildConfiguration();
-
- buildConfig.setProperty(CMakeBuildConfiguration.CMAKE_GENERATOR,
- ninjaGenButton.getSelection() ? "Ninja" : "Unix Makefiles"); //$NON-NLS-1$ //$NON-NLS-2$
-
- String cmakeArgs = cmakeArgsText.getText().trim();
- if (!cmakeArgs.isEmpty()) {
- buildConfig.setProperty(CMakeBuildConfiguration.CMAKE_ARGUMENTS, cmakeArgs);
- } else {
- buildConfig.removeProperty(CMakeBuildConfiguration.CMAKE_ARGUMENTS);
- }
-
- String buildCommand = buildCommandText.getText().trim();
- if (!buildCommand.isEmpty()) {
- buildConfig.setProperty(CMakeBuildConfiguration.BUILD_COMMAND, buildCommand);
- } else {
- buildConfig.removeProperty(CMakeBuildConfiguration.BUILD_COMMAND);
- }
-
- String cleanCommand = cleanCommandText.getText().trim();
- if (!cleanCommand.isEmpty()) {
- buildConfig.setProperty(CMakeBuildConfiguration.CLEAN_COMMAND, cleanCommand);
- } else {
- buildConfig.removeProperty(CMakeBuildConfiguration.CLEAN_COMMAND);
- }
- }
-
- @Override
- protected void saveProperties(Map<String, String> properties) {
- super.saveProperties(properties);
- properties.put(CMakeBuildConfiguration.CMAKE_GENERATOR,
- ninjaGenButton.getSelection() ? "Ninja" : "Unix Makefiles"); //$NON-NLS-1$ //$NON-NLS-2$
-
- properties.put(CMakeBuildConfiguration.CMAKE_ARGUMENTS, cmakeArgsText.getText().trim());
- properties.put(CMakeBuildConfiguration.BUILD_COMMAND, buildCommandText.getText().trim());
- properties.put(CMakeBuildConfiguration.CLEAN_COMMAND, cleanCommandText.getText().trim());
- }
-
- @Override
- protected void restoreProperties(Map<String, String> properties) {
- super.restoreProperties(properties);
-
- String gen = properties.get(CMakeBuildConfiguration.CMAKE_GENERATOR);
- if (gen != null) {
- switch (gen) {
- case "Ninja": //$NON-NLS-1$
- ninjaGenButton.setSelection(true);
- unixGenButton.setSelection(false);
- break;
- case "Unix Makefiles": //$NON-NLS-1$
- ninjaGenButton.setSelection(false);
- unixGenButton.setSelection(true);
- break;
- }
- }
-
- String cmakeArgs = properties.get(CMakeBuildConfiguration.CMAKE_ARGUMENTS);
- if (cmakeArgs != null) {
- cmakeArgsText.setText(cmakeArgs);
- } else {
- cmakeArgsText.setText(""); //$NON-NLS-1$
- }
-
- String buildCmd = properties.get(CMakeBuildConfiguration.BUILD_COMMAND);
- if (buildCmd != null) {
- buildCommandText.setText(buildCmd);
- } else {
- buildCommandText.setText(""); //$NON-NLS-1$
- }
-
- String cleanCmd = properties.get(CMakeBuildConfiguration.CLEAN_COMMAND);
- if (cleanCmd != null) {
- cleanCommandText.setText(cleanCmd);
- } else {
- cleanCommandText.setText(""); //$NON-NLS-1$
- }
- }
-
- @Override
- public String getName() {
- return Messages.CMakeBuildTab_Cmake;
- }
-
-}
diff --git a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/CMakePreferencePage.java b/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/CMakePreferencePage.java
deleted file mode 100644
index 4c85aab6ae4..00000000000
--- a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/CMakePreferencePage.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.cdt.cmake.ui.internal;
-
-import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.cmake.core.ICMakeToolChainFile;
-import org.eclipse.cdt.cmake.core.ICMakeToolChainManager;
-import org.eclipse.cdt.cmake.core.internal.CMakeToolChainManager;
-import org.eclipse.cdt.core.build.IToolChain;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.layout.TableColumnLayout;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-
-public class CMakePreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
-
- private ICMakeToolChainManager manager;
- private Table filesTable;
- private Button removeButton;
-
- private Map<Path, ICMakeToolChainFile> filesToAdd = new HashMap<>();
- private Map<Path, ICMakeToolChainFile> filesToRemove = new HashMap<>();
-
- @Override
- public void init(IWorkbench workbench) {
- manager = Activator.getService(ICMakeToolChainManager.class);
- }
-
- @Override
- protected Control createContents(Composite parent) {
- Composite control = new Composite(parent, SWT.NONE);
- control.setLayout(new GridLayout());
-
- Group filesGroup = new Group(control, SWT.NONE);
- filesGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
- filesGroup.setText(Messages.CMakePreferencePage_Files);
- filesGroup.setLayout(new GridLayout(2, false));
-
- Composite filesComp = new Composite(filesGroup, SWT.NONE);
- filesComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
- filesTable = new Table(filesComp, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.FULL_SELECTION);
- filesTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
- filesTable.setHeaderVisible(true);
- filesTable.setLinesVisible(true);
- filesTable.addListener(SWT.Selection, e -> {
- TableItem[] items = filesTable.getSelection();
- removeButton.setEnabled(items.length > 0);
- });
-
- TableColumn pathColumn = new TableColumn(filesTable, SWT.NONE);
- pathColumn.setText(Messages.CMakePreferencePage_Path);
-
- TableColumn tcColumn = new TableColumn(filesTable, SWT.NONE);
- tcColumn.setText(Messages.CMakePreferencePage_Toolchain);
-
- TableColumnLayout tableLayout = new TableColumnLayout();
- tableLayout.setColumnData(pathColumn, new ColumnWeightData(50, 350, true));
- tableLayout.setColumnData(tcColumn, new ColumnWeightData(50, 350, true));
- filesComp.setLayout(tableLayout);
-
- Composite buttonsComp = new Composite(filesGroup, SWT.NONE);
- buttonsComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true));
- buttonsComp.setLayout(new GridLayout());
-
- Button addButton = new Button(buttonsComp, SWT.PUSH);
- addButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
- addButton.setText(Messages.CMakePreferencePage_Add);
- addButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- NewCMakeToolChainFileWizard wizard = new NewCMakeToolChainFileWizard();
- WizardDialog dialog = new WizardDialog(getShell(), wizard);
- if (dialog.open() == Window.OK) {
- try {
- ICMakeToolChainFile file = wizard.getNewFile();
- IToolChain oldtc = file.getToolChain();
- ICMakeToolChainFile oldFile = manager.getToolChainFileFor(oldtc);
- if (oldFile != null) {
- filesToRemove.put(oldFile.getPath(), oldFile);
- }
- filesToAdd.put(file.getPath(), file);
- updateTable();
- } catch (CoreException ex) {
- Activator.log(ex);
- }
- }
- }
- });
-
- removeButton = new Button(buttonsComp, SWT.PUSH);
- removeButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
- removeButton.setText(Messages.CMakePreferencePage_Remove);
- removeButton.setEnabled(false);
- removeButton.addListener(SWT.Selection, e -> {
- if (MessageDialog.openConfirm(getShell(), Messages.CMakePreferencePage_ConfirmRemoveTitle,
- Messages.CMakePreferencePage_ConfirmRemoveDesc)) {
- for (TableItem item : filesTable.getSelection()) {
- ICMakeToolChainFile file = (ICMakeToolChainFile) item.getData();
- if (filesToAdd.containsKey(file.getPath())) {
- filesToAdd.remove(file.getPath());
- } else {
- filesToRemove.put(file.getPath(), file);
- }
- updateTable();
- }
- }
- });
-
- updateTable();
-
- return control;
- }
-
- private void updateTable() {
- List<ICMakeToolChainFile> sorted = new ArrayList<>(getFiles().values());
- Collections.sort(sorted, (o1, o2) -> o1.getPath().toString().compareToIgnoreCase(o2.getPath().toString()));
-
- filesTable.removeAll();
- for (ICMakeToolChainFile file : sorted) {
- TableItem item = new TableItem(filesTable, SWT.NONE);
- item.setText(0, file.getPath().toString());
-
- try {
- IToolChain tc = file.getToolChain();
- if (tc != null) {
- item.setText(1, tc.getName());
- }
- } catch (CoreException e) {
- Activator.log(e.getStatus());
- }
-
- item.setData(file);
- }
- }
-
- private Map<String, ICMakeToolChainFile> getFiles() {
- Map<String, ICMakeToolChainFile> files = new HashMap<>();
- try {
- for (ICMakeToolChainFile file : manager.getToolChainFiles()) {
- String id = CMakeToolChainManager.makeToolChainId(file.getToolChain());
- files.put(id, file);
- }
-
- for (ICMakeToolChainFile file : filesToRemove.values()) {
- String id = CMakeToolChainManager.makeToolChainId(file.getToolChain());
- files.remove(id);
- }
-
- for (ICMakeToolChainFile file : filesToAdd.values()) {
- String id = CMakeToolChainManager.makeToolChainId(file.getToolChain());
- files.put(id, file);
- }
- } catch (CoreException e) {
- Activator.log(e);
- }
-
- return files;
- }
-
- @Override
- public boolean performOk() {
- for (ICMakeToolChainFile file : filesToRemove.values()) {
- manager.removeToolChainFile(file);
- }
-
- for (ICMakeToolChainFile file : filesToAdd.values()) {
- manager.addToolChainFile(file);
- }
-
- filesToAdd.clear();
- filesToRemove.clear();
-
- return true;
- }
-
-}
diff --git a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/CMakePropertyCombo.java b/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/CMakePropertyCombo.java
deleted file mode 100644
index 7aed63e268b..00000000000
--- a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/CMakePropertyCombo.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Red Hat Inc. and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Red Hat Inc. - initial implementation
- *******************************************************************************/
-package org.eclipse.cdt.cmake.ui.internal;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-
-public class CMakePropertyCombo implements ICMakePropertyPageControl {
-
- private String name;
- private String initialValue;
- private Combo combo;
-
- public CMakePropertyCombo(Composite composite, String name, String[] values, String initialValue, String tooltip) {
- this.name = name;
- this.initialValue = initialValue;
- Label label = new Label(composite, SWT.NONE);
- label.setText(name);
- label.setLayoutData(new GridData());
- combo = new Combo(composite, SWT.BORDER | SWT.DROP_DOWN | SWT.READ_ONLY);
- GridData data = new GridData(GridData.FILL_BOTH);
- data.grabExcessHorizontalSpace = true;
- combo.setLayoutData(data);
- combo.setItems(values);
- combo.setText(initialValue);
- combo.setToolTipText(tooltip);
- }
-
- @Override
- public String getFieldValue() {
- return combo.getText();
- }
-
- @Override
- public String getFieldName() {
- return name;
- }
-
- @Override
- public boolean isValueChanged() {
- return !combo.getText().equals(initialValue);
- }
-
- @Override
- public boolean isValid() {
- return true;
- }
-
- @Override
- public String getErrorMessage() {
- return null;
- }
-
-}
diff --git a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/CMakePropertyText.java b/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/CMakePropertyText.java
deleted file mode 100644
index aeca9fa44f0..00000000000
--- a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/CMakePropertyText.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Red Hat Inc. and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Red Hat Inc. - initial implementation
- *******************************************************************************/
-package org.eclipse.cdt.cmake.ui.internal;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-public class CMakePropertyText implements ICMakePropertyPageControl {
-
- private String name;
- private String initialValue;
- protected Text text;
-
- public CMakePropertyText(Composite composite, String name, String initialValue, String tooltip) {
- this.name = name;
- if (initialValue == null) {
- initialValue = ""; //$NON-NLS-1$
- }
- this.initialValue = initialValue;
- Label label = new Label(composite, SWT.NONE);
- label.setText(name);
- label.setLayoutData(new GridData());
- text = new Text(composite, SWT.SINGLE | SWT.BORDER);
- GridData data = new GridData(GridData.FILL_BOTH);
- data.grabExcessHorizontalSpace = true;
- text.setLayoutData(data);
- text.setText(initialValue);
- text.setToolTipText(tooltip);
- }
-
- @Override
- public String getFieldValue() {
- return text.getText();
- }
-
- @Override
- public String getFieldName() {
- return name;
- }
-
- @Override
- public boolean isValueChanged() {
- return !text.getText().equals(initialValue);
- }
-
- @Override
- public boolean isValid() {
- return true;
- }
-
- @Override
- public String getErrorMessage() {
- return null;
- }
-}
diff --git a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/EmptyCMakeProjectWizard.java b/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/EmptyCMakeProjectWizard.java
deleted file mode 100644
index ea5a27669b0..00000000000
--- a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/EmptyCMakeProjectWizard.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.cdt.cmake.ui.internal;
-
-import org.eclipse.cdt.cmake.core.CMakeProjectGenerator;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.tools.templates.core.IGenerator;
-import org.eclipse.tools.templates.ui.TemplateWizard;
-import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
-
-public class EmptyCMakeProjectWizard extends TemplateWizard {
-
- private WizardNewProjectCreationPage mainPage;
-
- @Override
- public void addPages() {
- mainPage = new WizardNewProjectCreationPage("basicNewProjectPage") { //$NON-NLS-1$
- @Override
- public void createControl(Composite parent) {
- super.createControl(parent);
- createWorkingSetGroup((Composite) getControl(), getSelection(),
- new String[] { "org.eclipse.ui.resourceWorkingSetPage" }); //$NON-NLS-1$
- Dialog.applyDialogFont(getControl());
- }
- };
- mainPage.setTitle("New CMake Project"); //$NON-NLS-1$
- mainPage.setDescription("Specify properties of new CMake project."); //$NON-NLS-1$
- this.addPage(mainPage);
- }
-
- @Override
- protected IGenerator getGenerator() {
- CMakeProjectGenerator generator = new CMakeProjectGenerator(null);
- generator.setProjectName(mainPage.getProjectName());
- if (!mainPage.useDefaults()) {
- generator.setLocationURI(mainPage.getLocationURI());
- }
- return generator;
- }
-
-}
diff --git a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/ICMakePropertyPageControl.java b/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/ICMakePropertyPageControl.java
deleted file mode 100644
index 97e95099c21..00000000000
--- a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/ICMakePropertyPageControl.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2018 Red Hat Inc. and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Red Hat Inc. - initial implementation
- *******************************************************************************/
-package org.eclipse.cdt.cmake.ui.internal;
-
-public interface ICMakePropertyPageControl {
-
- /**
- * Get the value of the field
- * @return field value
- */
- String getFieldValue();
-
- /**
- * Get the name of the field to set for cmake command
- * @return field name
- */
- String getFieldName();
-
- /**
- * Has the initial value changed
- * @return
- */
- boolean isValueChanged();
-
- /**
- * Is this field valid?
- * @return
- */
- boolean isValid();
-
- /**
- * Get the command line parameter if already configured
- * @return String containing command-line for configured build dir
- */
- default String getConfiguredString() {
- return "-D" + getFieldName() + "=" + getFieldValue(); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * Get any error message for the control
- * @return error message
- */
- String getErrorMessage();
-
-}
diff --git a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/Messages.java b/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/Messages.java
deleted file mode 100644
index 5593767532a..00000000000
--- a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/Messages.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2017 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.cdt.cmake.ui.internal;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-
- public static String CMakeBuildTab_BuildCommand;
- public static String CMakeBuildTab_CleanCommand;
- public static String CMakeBuildTab_Cmake;
- public static String CMakeBuildTab_CMakeArgs;
- public static String CMakeBuildTab_Generator;
- public static String CMakeBuildTab_Ninja;
- public static String CMakeBuildTab_NoneAvailable;
- public static String CMakeBuildTab_Settings;
- public static String CMakeBuildTab_Toolchain;
- public static String CMakeBuildTab_UnixMakefiles;
- public static String CMakePreferencePage_Add;
- public static String CMakePreferencePage_ConfirmRemoveDesc;
- public static String CMakePreferencePage_ConfirmRemoveTitle;
- public static String CMakePreferencePage_Files;
- public static String CMakePreferencePage_Path;
- public static String CMakePreferencePage_Remove;
- public static String CMakePreferencePage_Toolchain;
- public static String CMakePropertyPage_FailedToStartCMakeGui_Body;
- public static String CMakePropertyPage_FailedToStartCMakeGui_Title;
- public static String CMakePropertyPage_FailedToGetOS_Body;
- public static String CMakePropertyPage_FailedToGetOS_Title;
- public static String CMakePropertyPage_FailedToGetCMakeConfiguration_Body;
- public static String CMakePropertyPage_FailedToGetCMakeConfiguration_Title;
- public static String CMakePropertyPage_FailedToConfigure;
- public static String CMakePropertyPage_Terminated;
- public static String CMakePropertyPage_LaunchCMakeGui;
-
- public static String NewCMakeProjectWizard_Description;
- public static String NewCMakeProjectWizard_PageTitle;
- public static String NewCMakeProjectWizard_WindowTitle;
-
- public static String NewCMakeToolChainFilePage_Browse;
- public static String NewCMakeToolChainFilePage_NoPath;
- public static String NewCMakeToolChainFilePage_Path;
- public static String NewCMakeToolChainFilePage_Select;
- public static String NewCMakeToolChainFilePage_Title;
- public static String NewCMakeToolChainFilePage_Toolchain;
-
- static {
- // initialize resource bundle
- NLS.initializeMessages("org.eclipse.cdt.cmake.ui.internal.messages", Messages.class); //$NON-NLS-1$
- }
-
- private Messages() {
- }
-}
diff --git a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/NewCMakeProjectWizard.java b/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/NewCMakeProjectWizard.java
deleted file mode 100644
index 1ca61d35d2d..00000000000
--- a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/NewCMakeProjectWizard.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.cdt.cmake.ui.internal;
-
-import org.eclipse.cdt.cmake.core.CMakeProjectGenerator;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.wizard.IWizardContainer;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.tools.templates.core.IGenerator;
-import org.eclipse.tools.templates.ui.TemplateWizard;
-import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
-
-public class NewCMakeProjectWizard extends TemplateWizard {
-
- private WizardNewProjectCreationPage mainPage;
-
- @Override
- public void setContainer(IWizardContainer wizardContainer) {
- super.setContainer(wizardContainer);
- setWindowTitle(Messages.NewCMakeProjectWizard_WindowTitle);
- }
-
- @Override
- public void addPages() {
- mainPage = new WizardNewProjectCreationPage("basicNewProjectPage") { //$NON-NLS-1$
- @Override
- public void createControl(Composite parent) {
- super.createControl(parent);
- createWorkingSetGroup((Composite) getControl(), getSelection(),
- new String[] { "org.eclipse.ui.resourceWorkingSetPage" }); //$NON-NLS-1$
- Dialog.applyDialogFont(getControl());
- }
- };
- mainPage.setTitle(Messages.NewCMakeProjectWizard_PageTitle);
- mainPage.setDescription(Messages.NewCMakeProjectWizard_Description);
- this.addPage(mainPage);
- }
-
- @Override
- protected IGenerator getGenerator() {
- CMakeProjectGenerator generator = new CMakeProjectGenerator("templates/simple/manifest.xml"); //$NON-NLS-1$
- generator.setProjectName(mainPage.getProjectName());
- if (!mainPage.useDefaults()) {
- generator.setLocationURI(mainPage.getLocationURI());
- }
- return generator;
- }
-
-}
diff --git a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/NewCMakeToolChainFilePage.java b/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/NewCMakeToolChainFilePage.java
deleted file mode 100644
index 9fddd8e91e7..00000000000
--- a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/NewCMakeToolChainFilePage.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.cdt.cmake.ui.internal;
-
-import java.nio.file.Paths;
-
-import org.eclipse.cdt.cmake.core.ICMakeToolChainFile;
-import org.eclipse.cdt.cmake.core.ICMakeToolChainManager;
-import org.eclipse.cdt.cmake.core.internal.CMakeBuildConfiguration;
-import org.eclipse.cdt.core.build.IToolChain;
-import org.eclipse.cdt.core.build.IToolChainManager;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-public class NewCMakeToolChainFilePage extends WizardPage {
-
- private Text pathText;
- private Combo tcCombo;
-
- private IToolChain[] toolchains;
-
- public NewCMakeToolChainFilePage() {
- super("NewCMakeToolChainFilePage", Messages.NewCMakeToolChainFilePage_Title, null); //$NON-NLS-1$
- }
-
- @Override
- public void createControl(Composite parent) {
- Composite comp = new Composite(parent, SWT.NONE);
- comp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
- comp.setLayout(new GridLayout(2, false));
-
- Label pathLabel = new Label(comp, SWT.NONE);
- pathLabel.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
- pathLabel.setText(Messages.NewCMakeToolChainFilePage_Path);
-
- Composite pathComp = new Composite(comp, SWT.NONE);
- pathComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
- GridLayout layout = new GridLayout(2, false);
- layout.marginHeight = layout.marginWidth = 0;
- pathComp.setLayout(layout);
-
- pathText = new Text(pathComp, SWT.BORDER);
- pathText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
- pathText.addModifyListener(e -> validate());
-
- Button pathButton = new Button(pathComp, SWT.PUSH);
- pathButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
- pathButton.setText(Messages.NewCMakeToolChainFilePage_Browse);
- pathButton.addListener(SWT.Selection, e -> {
- FileDialog dialog = new FileDialog(getShell(), SWT.OPEN);
- dialog.setText(Messages.NewCMakeToolChainFilePage_Select);
- String path = dialog.open();
- if (path != null) {
- pathText.setText(path);
- }
- });
-
- Label tcLabel = new Label(comp, SWT.NONE);
- tcLabel.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
- tcLabel.setText(Messages.NewCMakeToolChainFilePage_Toolchain);
-
- tcCombo = new Combo(comp, SWT.READ_ONLY);
- tcCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-
- try {
- IToolChainManager tcManager = Activator.getService(IToolChainManager.class);
- toolchains = tcManager.getAllToolChains().toArray(new IToolChain[0]);
- for (IToolChain tc : toolchains) {
- tcCombo.add(tc.getName());
- }
- tcCombo.select(0);
- } catch (CoreException e) {
- Activator.log(e.getStatus());
- }
-
- setControl(comp);
- validate();
- }
-
- private void validate() {
- setPageComplete(false);
-
- String path = pathText.getText();
- if (path.isEmpty()) {
- setErrorMessage(Messages.NewCMakeToolChainFilePage_NoPath);
- return;
- }
-
- setPageComplete(true);
- setErrorMessage(null);
- }
-
- public ICMakeToolChainFile getNewFile() {
- ICMakeToolChainManager manager = Activator.getService(ICMakeToolChainManager.class);
- ICMakeToolChainFile file = manager.newToolChainFile(Paths.get(pathText.getText()));
-
- IToolChain tc = toolchains[tcCombo.getSelectionIndex()];
- file.setProperty(CMakeBuildConfiguration.TOOLCHAIN_TYPE, tc.getTypeId());
- file.setProperty(CMakeBuildConfiguration.TOOLCHAIN_ID, tc.getId());
-
- return file;
- }
-
-}
diff --git a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/NewCMakeToolChainFileWizard.java b/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/NewCMakeToolChainFileWizard.java
deleted file mode 100644
index 19e4e2b7a74..00000000000
--- a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/NewCMakeToolChainFileWizard.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.cdt.cmake.ui.internal;
-
-import org.eclipse.cdt.cmake.core.ICMakeToolChainFile;
-import org.eclipse.jface.wizard.Wizard;
-
-public class NewCMakeToolChainFileWizard extends Wizard {
-
- private ICMakeToolChainFile newFile;
- private NewCMakeToolChainFilePage page;
-
- @Override
- public void addPages() {
- page = new NewCMakeToolChainFilePage();
- addPage(page);
- }
-
- @Override
- public boolean performFinish() {
- newFile = page.getNewFile();
- return true;
- }
-
- public ICMakeToolChainFile getNewFile() {
- return newFile;
- }
-
-}
diff --git a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/messages.properties b/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/messages.properties
deleted file mode 100644
index c1588d15a4f..00000000000
--- a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/internal/messages.properties
+++ /dev/null
@@ -1,35 +0,0 @@
-CMakeBuildTab_BuildCommand=Build command
-CMakeBuildTab_CleanCommand=Clean command
-CMakeBuildTab_Cmake=CMake
-CMakeBuildTab_CMakeArgs=Additional CMake arguments:
-CMakeBuildTab_Generator=Generator
-CMakeBuildTab_Ninja=Ninja
-CMakeBuildTab_NoneAvailable=No Toolchains Available for this Target
-CMakeBuildTab_Settings=CMake Settings
-CMakeBuildTab_Toolchain=Toolchain
-CMakeBuildTab_UnixMakefiles=Unix Makefiles
-CMakePreferencePage_Add=Add...
-CMakePreferencePage_ConfirmRemoveDesc=Do you wish to deregister the selected files?
-CMakePreferencePage_ConfirmRemoveTitle=Deregister CMake ToolChain File
-CMakePreferencePage_Files=Toolchain Files
-CMakePreferencePage_Path=Toolchain File
-CMakePreferencePage_Remove=Remove
-CMakePreferencePage_Toolchain=Toolchain
-CMakePropertyPage_FailedToStartCMakeGui_Body=Failed to run the CMake GUI:\u0020
-CMakePropertyPage_FailedToStartCMakeGui_Title=Failed to run CMake GUI
-CMakePropertyPage_FailedToGetOS_Body=Failed to get target OS for CMake project:
-CMakePropertyPage_FailedToGetOS_Title=Failed to get target OS
-CMakePropertyPage_FailedToGetCMakeConfiguration_Body=Failed to fetch CMake configuration values
-CMakePropertyPage_FailedToGetCMakeConfiguration_Title=Failed to fetch CMake configuration
-CMakePropertyPage_FailedToConfigure=Failed to reconfigure CMake
-CMakePropertyPage_Terminated=Command terminated with rc={0}\n
-CMakePropertyPage_LaunchCMakeGui=Launch CMake GUI...
-NewCMakeProjectWizard_Description=Specify properties of new CMake project.
-NewCMakeProjectWizard_PageTitle=New CMake Project
-NewCMakeProjectWizard_WindowTitle=New CMake Project
-NewCMakeToolChainFilePage_Browse=Browse...
-NewCMakeToolChainFilePage_NoPath=Please set the path to the CMake toolchain file.
-NewCMakeToolChainFilePage_Path=Path:
-NewCMakeToolChainFilePage_Select=Select location for CMake toolchain file
-NewCMakeToolChainFilePage_Title=New CMake ToolChain File
-NewCMakeToolChainFilePage_Toolchain=Toolchain:
diff --git a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/properties/CMakePropertyPage.java b/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/properties/CMakePropertyPage.java
deleted file mode 100644
index 078cb09be8c..00000000000
--- a/build/org.eclipse.cdt.cmake.ui/src/org/eclipse/cdt/cmake/ui/properties/CMakePropertyPage.java
+++ /dev/null
@@ -1,304 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 IAR Systems AB
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * IAR Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.cmake.ui.properties;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.cdt.cmake.ui.internal.Activator;
-import org.eclipse.cdt.cmake.ui.internal.CMakePropertyCombo;
-import org.eclipse.cdt.cmake.ui.internal.CMakePropertyText;
-import org.eclipse.cdt.cmake.ui.internal.ICMakePropertyPageControl;
-import org.eclipse.cdt.cmake.ui.internal.Messages;
-import org.eclipse.cdt.core.CCorePlugin;
-import org.eclipse.cdt.core.CommandLauncherManager;
-import org.eclipse.cdt.core.ICommandLauncher;
-import org.eclipse.cdt.core.build.CBuildConfiguration;
-import org.eclipse.cdt.core.build.ICBuildCommandLauncher;
-import org.eclipse.cdt.core.build.ICBuildConfiguration;
-import org.eclipse.cdt.core.build.IToolChain;
-import org.eclipse.cdt.core.resources.IConsole;
-import org.eclipse.core.resources.IBuildConfiguration;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.dialogs.PropertyPage;
-
-/**
- * Property page for CMake projects. The only thing we have here at the moment is a button
- * to launch the CMake GUI configurator (cmake-qt-gui).
- *
- * We assume that the build directory is in project/build/configname, which is where
- * the CMake project wizard puts it. We also assume that "cmake-gui" is in the user's
- * PATH.
- */
-public class CMakePropertyPage extends PropertyPage {
-
- private List<ICMakePropertyPageControl> componentList = new ArrayList<>();
-
- @Override
- protected Control createContents(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
- composite.setLayout(new GridLayout());
-
- boolean isContainerBuild = false;
- ICBuildConfiguration cconfig = null;
- IProject project = (IProject) getElement();
- try {
- IBuildConfiguration config = project.getActiveBuildConfig();
- cconfig = config.getAdapter(ICBuildConfiguration.class);
- IToolChain toolChain = cconfig.getToolChain();
- String os = toolChain.getProperty(IToolChain.ATTR_OS);
- isContainerBuild = os.equals("linux-container"); //$NON-NLS-1$
- } catch (CoreException e2) {
- MessageDialog.openError(parent.getShell(), Messages.CMakePropertyPage_FailedToGetOS_Title,
- Messages.CMakePropertyPage_FailedToGetOS_Body + e2.getMessage());
- }
-
- if (isContainerBuild) {
- try {
- ICommandLauncher launcher = CommandLauncherManager.getInstance()
- .getCommandLauncher(project.getActiveBuildConfig().getAdapter(ICBuildConfiguration.class));
- launcher.setProject(project);
- if (launcher instanceof ICBuildCommandLauncher) {
- ((ICBuildCommandLauncher) launcher).setBuildConfiguration(cconfig);
- }
- IPath buildPath = project.getLocation().append("build")
- .append(((CBuildConfiguration) cconfig).getName());
- Process p = launcher.execute(new Path("cmake"), new String[] { "-LAH", "." }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- new String[0], buildPath, new NullProgressMonitor());
- if (p != null) {
- ByteArrayOutputStream stdout = new ByteArrayOutputStream();
- ByteArrayOutputStream stderr = new ByteArrayOutputStream();
- int rc = -1;
- try {
- if (launcher.waitAndRead(stdout, stderr, new NullProgressMonitor()) == ICommandLauncher.OK) {
- p.waitFor();
- }
- rc = p.exitValue();
- } catch (InterruptedException e) {
- // ignore for now
- }
- if (rc == 0) {
- componentList = parseConfigureOutput(stdout, composite);
- }
- }
- } catch (CoreException e) {
- MessageDialog.openError(parent.getShell(),
- Messages.CMakePropertyPage_FailedToGetCMakeConfiguration_Title,
- Messages.CMakePropertyPage_FailedToGetCMakeConfiguration_Body + e.getMessage());
- }
-
- } else {
-
- Button b = new Button(composite, SWT.NONE);
- b.setText(Messages.CMakePropertyPage_LaunchCMakeGui);
- b.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- IProject project = (IProject) getElement();
- try {
- String configName = project.getActiveBuildConfig().getName();
- String sourceDir = project.getLocation().toOSString();
- String buildDir = project.getLocation().append("build").append(configName).toOSString(); //$NON-NLS-1$
-
- Runtime.getRuntime().exec(new String[] { "cmake-gui", "-H" + sourceDir, "-B" + buildDir }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- } catch (CoreException | IOException e1) {
- MessageDialog.openError(parent.getShell(),
- Messages.CMakePropertyPage_FailedToStartCMakeGui_Title,
- Messages.CMakePropertyPage_FailedToStartCMakeGui_Body + e1.getMessage());
- }
- }
- });
- }
-
- return composite;
- }
-
- @Override
- public boolean performOk() {
- List<String> args = new ArrayList<>();
- args.add("-LAH"); //$NON-NLS-1$
- for (ICMakePropertyPageControl control : componentList) {
- if (control.isValueChanged()) {
- args.add(control.getConfiguredString()); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- if (args.size() == 2) {
- return true;
- }
- try {
- IProject project = (IProject) getElement();
- ICBuildConfiguration buildConfig = project.getActiveBuildConfig().getAdapter(ICBuildConfiguration.class);
- String configName = ((CBuildConfiguration) buildConfig).getName();
- IPath buildDir = project.getLocation().append("build").append(configName); //$NON-NLS-1$
- ICommandLauncher launcher = CommandLauncherManager.getInstance()
- .getCommandLauncher(project.getActiveBuildConfig().getAdapter(ICBuildConfiguration.class));
- launcher.setProject(project);
- if (launcher instanceof ICBuildCommandLauncher) {
- ((ICBuildCommandLauncher) launcher).setBuildConfiguration(buildConfig);
- }
- args.add(".");
- Process p = launcher.execute(new Path("cmake"), args.toArray(new String[0]), new String[0], buildDir, //$NON-NLS-1$
- new NullProgressMonitor());
- int rc = -1;
- IConsole console = CCorePlugin.getDefault().getConsole();
- console.start(project);
- try (OutputStream stdout = console.getOutputStream()) {
- OutputStream stderr = stdout;
- StringBuilder buf = new StringBuilder();
- for (String arg : args) {
- buf.append(arg);
- buf.append(" "); //$NON-NLS-1$
- }
- buf.append(System.lineSeparator());
- stdout.write(buf.toString().getBytes());
- stdout.flush();
- try {
-
- if (launcher.waitAndRead(stdout, stderr, new NullProgressMonitor()) == ICommandLauncher.OK) {
- p.waitFor();
- }
- rc = p.exitValue();
- stdout.write(NLS.bind(Messages.CMakePropertyPage_Terminated, rc).getBytes());
- stdout.flush();
- if (rc != 0) {
- Display.getDefault().syncExec(() -> {
- MessageDialog.openError(getShell(), null, Messages.CMakePropertyPage_FailedToConfigure);
- });
- }
- } catch (InterruptedException e) {
- // ignore for now
- }
- } catch (IOException e2) {
- Activator.log(e2);
- return false;
- }
- } catch (CoreException e3) {
- // TODO Auto-generated catch block
- Activator.log(e3);
- return false;
- }
- return true;
- }
-
- public enum ParseState {
- INIT, SEENCOMMENT
- }
-
- /**
- * Parse output of cmake -LAH call to determine options to show to user
- * @param stdout - ByteArrayOutputStream containing output of command
- * @param composite - Composite to add Controls to
- * @return - list of Controls
- */
- List<ICMakePropertyPageControl> parseConfigureOutput(ByteArrayOutputStream stdout, Composite composite) {
- List<ICMakePropertyPageControl> controls = new ArrayList<>();
-
- try {
- ParseState state = ParseState.INIT;
-
- String output = stdout.toString(StandardCharsets.UTF_8.name());
- String[] lines = output.split("\\r?\\n"); //$NON-NLS-1$
- Pattern commentPattern = Pattern.compile("//(.*)"); //$NON-NLS-1$
- Pattern argPattern = Pattern.compile("(\\w+):([a-zA-Z]+)=(.*)"); //$NON-NLS-1$
- Pattern optionPattern = Pattern.compile(".*?options are:((\\s+\\w+(\\(.*\\))?)+).*"); //$NON-NLS-1$
-
- String lastComment = ""; //$NON-NLS-1$
- for (String line : lines) {
- line = line.trim();
- switch (state) {
- case INIT:
- Matcher commentMatcher = commentPattern.matcher(line);
- if (commentMatcher.matches()) {
- state = ParseState.SEENCOMMENT;
-
- lastComment = commentMatcher.group(1);
- }
- break;
- case SEENCOMMENT:
- Matcher argMatcher = argPattern.matcher(line);
- if (argMatcher.matches()) {
- String name = argMatcher.group(1);
- String type = argMatcher.group(2);
- String initialValue = argMatcher.group(3);
- Matcher optionMatcher = optionPattern.matcher(lastComment);
- if (optionMatcher.matches()) {
- String optionString = optionMatcher.group(1).trim();
- String[] options = optionString.split("\\s+"); //$NON-NLS-1$
- for (int i = 0; i < options.length; ++i) {
- options[i] = options[i].replaceAll("\\(.*?\\)", "").trim(); //$NON-NLS-1$
- }
- ICMakePropertyPageControl control = new CMakePropertyCombo(composite, name, options,
- initialValue, lastComment);
- controls.add(control);
- } else {
- if ("BOOL".equals(type)) {
- if ("ON".equals(initialValue) || ("OFF".equals(initialValue))) {
- ICMakePropertyPageControl control = new CMakePropertyCombo(composite, name,
- new String[] { "ON", "OFF" }, //$NON-NLS-1$ //$NON-NLS-2$
- initialValue, lastComment);
- controls.add(control);
- } else if ("YES".equals(initialValue) || "NO".equals(initialValue)) {
- ICMakePropertyPageControl control = new CMakePropertyCombo(composite, name,
- new String[] { "YES", "NO" }, //$NON-NLS-1$ //$NON-NLS-2$
- initialValue, lastComment);
- controls.add(control);
- } else {
- ICMakePropertyPageControl control = new CMakePropertyCombo(composite, name,
- new String[] { "TRUE", "FALSE" }, //$NON-NLS-1$ //$NON-NLS-2$
- "TRUE".equals(initialValue) ? "TRUE" : "FALSE", lastComment); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- controls.add(control);
- }
- } else {
- ICMakePropertyPageControl control = new CMakePropertyText(composite, name, initialValue,
- lastComment);
- controls.add(control);
- }
- }
- }
- state = ParseState.INIT;
- break;
- }
- }
-
- } catch (UnsupportedEncodingException e) {
- return controls;
- }
-
- return controls;
- }
-
-}
diff --git a/build/org.eclipse.cdt.core.autotools-feature/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.core.autotools-feature/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.core.autotools-feature/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.core.autotools-feature/feature.xml b/build/org.eclipse.cdt.core.autotools-feature/feature.xml
index a4b8e436c30..1d68fc9e443 100644
--- a/build/org.eclipse.cdt.core.autotools-feature/feature.xml
+++ b/build/org.eclipse.cdt.core.autotools-feature/feature.xml
@@ -1,9 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2017, 2021 Contributors to the Eclipse Foundation
+
+ This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License 2.0
+ which accompanies this distribution, and is available at
+ https://www.eclipse.org/legal/epl-2.0/
+
+ SPDX-License-Identifier: EPL-2.0
+-->
<feature
id="org.eclipse.cdt.core.autotools"
label="%featureName"
- version="9.9.0.qualifier"
+ version="10.7.0.qualifier"
provider-name="%providerName"
+ plugin="org.eclipse.cdt.core.autotools.ui"
license-feature="org.eclipse.license"
license-feature-version="0.0.0">
diff --git a/build/org.eclipse.cdt.core.autotools.core/.classpath b/build/org.eclipse.cdt.core.autotools.core/.classpath
index eca7bdba8f0..e801ebfb468 100644
--- a/build/org.eclipse.cdt.core.autotools.core/.classpath
+++ b/build/org.eclipse.cdt.core.autotools.core/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
diff --git a/build/org.eclipse.cdt.core.autotools.core/.project b/build/org.eclipse.cdt.core.autotools.core/.project
index 5d2806ec0ed..1cc63f9a9c2 100644
--- a/build/org.eclipse.cdt.core.autotools.core/.project
+++ b/build/org.eclipse.cdt.core.autotools.core/.project
@@ -20,9 +20,15 @@
<arguments>
</arguments>
</buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
</natures>
</projectDescription>
diff --git a/build/org.eclipse.cdt.core.autotools.core/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.core.autotools.core/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.core.autotools.core/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.core.autotools.core/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.core.autotools.core/.settings/org.eclipse.jdt.core.prefs
index 2b6ecff8a01..e3a8104f9ca 100644
--- a/build/org.eclipse.cdt.core.autotools.core/.settings/org.eclipse.jdt.core.prefs
+++ b/build/org.eclipse.cdt.core.autotools.core/.settings/org.eclipse.jdt.core.prefs
@@ -30,9 +30,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -49,6 +49,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
@@ -107,6 +108,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
@@ -144,13 +146,14 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -158,21 +161,24 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@@ -264,11 +270,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@@ -299,6 +306,8 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@@ -323,13 +332,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@@ -377,6 +390,8 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do no
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@@ -413,9 +428,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@@ -454,10 +472,14 @@ org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/build/org.eclipse.cdt.core.autotools.core/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.core.autotools.core/.settings/org.eclipse.jdt.ui.prefs
index e44576346c4..d35ba9b5231 100644
--- a/build/org.eclipse.cdt.core.autotools.core/.settings/org.eclipse.jdt.ui.prefs
+++ b/build/org.eclipse.cdt.core.autotools.core/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,4 @@
+cleanup.add_all=false
cleanup.add_default_serial_version_id=true
cleanup.add_generated_serial_version_id=false
cleanup.add_missing_annotations=true
@@ -11,25 +12,72 @@ cleanup.always_use_blocks=true
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=false
cleanup.always_use_this_for_non_static_method_access=false
+cleanup.array_with_curly=false
+cleanup.arrays_fill=false
+cleanup.bitwise_conditional_expression=false
+cleanup.boolean_literal=false
+cleanup.boolean_value_rather_than_comparison=false
+cleanup.break_loop=false
+cleanup.collection_cloning=false
+cleanup.comparing_on_criteria=false
+cleanup.comparison_statement=false
+cleanup.controlflow_merge=false
cleanup.convert_functional_interfaces=false
cleanup.convert_to_enhanced_for_loop=false
+cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
+cleanup.convert_to_switch_expressions=false
cleanup.correct_indentation=false
+cleanup.do_while_rather_than_while=true
+cleanup.double_negation=false
+cleanup.else_if=false
+cleanup.embedded_if=false
+cleanup.evaluate_nullable=false
+cleanup.extract_increment=false
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
+cleanup.hash=false
+cleanup.if_condition=false
cleanup.insert_inferred_type_arguments=false
+cleanup.instanceof=false
+cleanup.instanceof_keyword=false
+cleanup.invert_equals=false
+cleanup.join=false
+cleanup.lazy_logical_operator=false
cleanup.make_local_variable_final=true
cleanup.make_parameters_final=false
cleanup.make_private_fields_final=true
cleanup.make_type_abstract_if_missing_method=false
cleanup.make_variable_declarations_final=false
+cleanup.map_cloning=false
+cleanup.merge_conditional_blocks=false
+cleanup.multi_catch=false
cleanup.never_use_blocks=false
cleanup.never_use_parentheses_in_expressions=true
+cleanup.no_string_creation=false
+cleanup.no_super=false
+cleanup.number_suffix=false
+cleanup.objects_equals=false
+cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
+cleanup.operand_factorization=false
cleanup.organize_imports=true
+cleanup.overridden_assignment=false
+cleanup.plain_replacement=false
+cleanup.precompile_regex=false
+cleanup.primitive_comparison=false
+cleanup.primitive_parsing=false
+cleanup.primitive_rather_than_wrapper=false
+cleanup.primitive_serialization=false
+cleanup.pull_out_if_from_if_else=false
+cleanup.pull_up_assignment=false
+cleanup.push_down_negation=false
cleanup.qualify_static_field_accesses_with_declaring_class=false
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
cleanup.qualify_static_member_accesses_with_declaring_class=false
cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.reduce_indentation=false
+cleanup.redundant_comparator=false
+cleanup.redundant_falling_through_block_end=false
cleanup.remove_private_constructors=true
cleanup.remove_redundant_modifiers=false
cleanup.remove_redundant_semicolons=true
@@ -37,25 +85,57 @@ cleanup.remove_redundant_type_arguments=true
cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true
cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_array_creation=false
cleanup.remove_unnecessary_casts=true
cleanup.remove_unnecessary_nls_tags=false
cleanup.remove_unused_imports=true
cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_method_parameters=false
cleanup.remove_unused_private_fields=true
cleanup.remove_unused_private_members=false
cleanup.remove_unused_private_methods=true
cleanup.remove_unused_private_types=true
+cleanup.return_expression=false
+cleanup.simplify_lambda_expression_and_method_ref=false
+cleanup.single_used_field=false
cleanup.sort_members=false
cleanup.sort_members_all=false
+cleanup.standard_comparison=false
+cleanup.static_inner_class=false
+cleanup.strictly_equal_or_different=false
+cleanup.stringbuffer_to_stringbuilder=false
+cleanup.stringbuilder=false
+cleanup.stringbuilder_for_local_vars=true
+cleanup.stringconcat_to_textblock=false
+cleanup.substring=false
+cleanup.switch=false
+cleanup.system_property=false
+cleanup.system_property_boolean=false
+cleanup.system_property_file_encoding=false
+cleanup.system_property_file_separator=false
+cleanup.system_property_line_separator=false
+cleanup.system_property_path_separator=false
+cleanup.ternary_operator=false
+cleanup.try_with_resource=false
+cleanup.unlooped_while=false
+cleanup.unreachable_block=false
cleanup.use_anonymous_class_creation=false
+cleanup.use_autoboxing=false
cleanup.use_blocks=false
cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_directly_map_method=false
cleanup.use_lambda=true
cleanup.use_parentheses_in_expressions=false
+cleanup.use_string_is_blank=false
cleanup.use_this_for_non_static_field_access=false
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
cleanup.use_this_for_non_static_method_access=false
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_unboxing=false
+cleanup.use_var=false
+cleanup.useless_continue=false
+cleanup.useless_return=false
+cleanup.valueof_rather_than_instantiation=false
cleanup_profile=_CDT
cleanup_settings_version=2
eclipse.preferences.version=1
diff --git a/build/org.eclipse.cdt.core.autotools.core/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.core.autotools.core/META-INF/MANIFEST.MF
index 96a8e105ce9..8b6a7e9be18 100644
--- a/build/org.eclipse.cdt.core.autotools.core/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.core.autotools.core/META-INF/MANIFEST.MF
@@ -2,15 +2,16 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.cdt.core.autotools.core;singleton:=true
-Bundle-Version: 1.1.100.qualifier
+Bundle-Version: 1.2.200.qualifier
Bundle-Activator: org.eclipse.cdt.core.autotools.core.internal.Activator
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.tools.templates.freemarker;bundle-version="1.0.0",
org.eclipse.cdt.core;bundle-version="6.3.1",
org.eclipse.core.resources;bundle-version="3.12.0"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
Bundle-ActivationPolicy: lazy
Bundle-Vendor: %providerName
-Export-Package: org.eclipse.cdt.core.autotools.core
+Export-Package: org.eclipse.cdt.core.autotools.core;x-friends:="org.eclipse.cdt.core.autotools.ui",
+ org.eclipse.cdt.core.autotools.core.internal;x-friends:="org.eclipse.cdt.core.autotools.ui"
Bundle-Localization: plugin
Automatic-Module-Name: org.eclipse.cdt.core.autotools.core
diff --git a/build/org.eclipse.cdt.core.autotools.core/about.html b/build/org.eclipse.cdt.core.autotools.core/about.html
index 164f781a8fd..b3134865230 100644
--- a/build/org.eclipse.cdt.core.autotools.core/about.html
+++ b/build/org.eclipse.cdt.core.autotools.core/about.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
</head>
+
<body lang="EN-US">
<h2>About This Content</h2>
@@ -16,7 +17,7 @@
(&quot;Content&quot;). Unless otherwise indicated below, the Content
is provided to you under the terms and conditions of the Eclipse
Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ available at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
@@ -29,8 +30,9 @@
license exists, contact the Redistributor. Unless otherwise indicated
below, the terms and conditions of the EPL still apply to any source
code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ href="https://www.eclipse.org/">https://www.eclipse.org</a>.
</p>
</body>
+
</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.core.autotools.core/build.properties b/build/org.eclipse.cdt.core.autotools.core/build.properties
index ed3fde1c6e7..c050dfa30a7 100644
--- a/build/org.eclipse.cdt.core.autotools.core/build.properties
+++ b/build/org.eclipse.cdt.core.autotools.core/build.properties
@@ -6,3 +6,4 @@ bin.includes = META-INF/,\
about.html,\
templates/,\
plugin.properties
+src.includes = about.html
diff --git a/build/org.eclipse.cdt.core.autotools.core/plugin.properties b/build/org.eclipse.cdt.core.autotools.core/plugin.properties
index d255905e522..fd906036c7e 100644
--- a/build/org.eclipse.cdt.core.autotools.core/plugin.properties
+++ b/build/org.eclipse.cdt.core.autotools.core/plugin.properties
@@ -12,3 +12,4 @@
pluginName=CDT Autotools Core
providerName=Eclipse CDT
extension-point.name = Autotools Core ToolChain File Provider
+autotoolsNature.name=Autotools Nature \ No newline at end of file
diff --git a/build/org.eclipse.cdt.core.autotools.core/plugin.xml b/build/org.eclipse.cdt.core.autotools.core/plugin.xml
index 58bd75b72d0..8b2cd3f7d72 100644
--- a/build/org.eclipse.cdt.core.autotools.core/plugin.xml
+++ b/build/org.eclipse.cdt.core.autotools.core/plugin.xml
@@ -3,6 +3,7 @@
<plugin>
<extension
id="autotoolsNature"
+ name="%autotoolsNature.name"
point="org.eclipse.core.resources.natures">
<runtime>
<run
diff --git a/build/org.eclipse.cdt.core.autotools.core/src/org/eclipse/cdt/core/autotools/core/AutotoolsBuildConfiguration.java b/build/org.eclipse.cdt.core.autotools.core/src/org/eclipse/cdt/core/autotools/core/AutotoolsBuildConfiguration.java
index f6497540771..4dc47efb12f 100644
--- a/build/org.eclipse.cdt.core.autotools.core/src/org/eclipse/cdt/core/autotools/core/AutotoolsBuildConfiguration.java
+++ b/build/org.eclipse.cdt.core.autotools.core/src/org/eclipse/cdt/core/autotools/core/AutotoolsBuildConfiguration.java
@@ -106,7 +106,7 @@ public class AutotoolsBuildConfiguration extends CBuildConfiguration {
try {
// TODO Error parsers
Process process = builder.start();
- watchProcess(process, console);
+ watchProcess(console, monitor);
} catch (IOException e) {
throw new CoreException(Activator.errorStatus("Error executing: " + String.join(" ", command), e)); //$NON-NLS-1$ //$NON-NLS-2$
}
@@ -153,7 +153,7 @@ public class AutotoolsBuildConfiguration extends CBuildConfiguration {
Activator.errorStatus("Error executing: " + String.join(" ", command), null)); //$NON-NLS-1$ //$NON-NLS-2$
}
- watchProcess(p, new IConsoleParser[] { epm });
+ watchProcess(new IConsoleParser[] { epm }, monitor);
}
project.refreshLocal(IResource.DEPTH_INFINITE, monitor);
diff --git a/build/org.eclipse.cdt.core.autotools.core/src/org/eclipse/cdt/core/autotools/core/AutotoolsProjectGenerator.java b/build/org.eclipse.cdt.core.autotools.core/src/org/eclipse/cdt/core/autotools/core/AutotoolsProjectGenerator.java
index 90f90e4c2e9..f17902ad057 100644
--- a/build/org.eclipse.cdt.core.autotools.core/src/org/eclipse/cdt/core/autotools/core/AutotoolsProjectGenerator.java
+++ b/build/org.eclipse.cdt.core.autotools.core/src/org/eclipse/cdt/core/autotools/core/AutotoolsProjectGenerator.java
@@ -80,7 +80,7 @@ public class AutotoolsProjectGenerator extends FMProjectGenerator {
}
}
- entries.add(CoreModel.newOutputEntry(getProject().getFullPath())); //$NON-NLS-1$
+ entries.add(CoreModel.newOutputEntry(getProject().getFullPath()));
CoreModel.getDefault().create(project).setRawPathEntries(entries.toArray(new IPathEntry[entries.size()]),
monitor);
diff --git a/build/org.eclipse.cdt.core.autotools.ui/.classpath b/build/org.eclipse.cdt.core.autotools.ui/.classpath
index eca7bdba8f0..e801ebfb468 100644
--- a/build/org.eclipse.cdt.core.autotools.ui/.classpath
+++ b/build/org.eclipse.cdt.core.autotools.ui/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
diff --git a/build/org.eclipse.cdt.core.autotools.ui/.project b/build/org.eclipse.cdt.core.autotools.ui/.project
index 8522cebb305..a6904cfd665 100644
--- a/build/org.eclipse.cdt.core.autotools.ui/.project
+++ b/build/org.eclipse.cdt.core.autotools.ui/.project
@@ -20,9 +20,15 @@
<arguments>
</arguments>
</buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
</natures>
</projectDescription>
diff --git a/build/org.eclipse.cdt.core.autotools.ui/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.core.autotools.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.core.autotools.ui/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.core.autotools.ui/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.core.autotools.ui/.settings/org.eclipse.jdt.core.prefs
index 2b6ecff8a01..e3a8104f9ca 100644
--- a/build/org.eclipse.cdt.core.autotools.ui/.settings/org.eclipse.jdt.core.prefs
+++ b/build/org.eclipse.cdt.core.autotools.ui/.settings/org.eclipse.jdt.core.prefs
@@ -30,9 +30,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -49,6 +49,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
@@ -107,6 +108,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
@@ -144,13 +146,14 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -158,21 +161,24 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@@ -264,11 +270,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@@ -299,6 +306,8 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@@ -323,13 +332,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@@ -377,6 +390,8 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do no
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@@ -413,9 +428,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@@ -454,10 +472,14 @@ org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/build/org.eclipse.cdt.core.autotools.ui/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.core.autotools.ui/.settings/org.eclipse.jdt.ui.prefs
index e44576346c4..d35ba9b5231 100644
--- a/build/org.eclipse.cdt.core.autotools.ui/.settings/org.eclipse.jdt.ui.prefs
+++ b/build/org.eclipse.cdt.core.autotools.ui/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,4 @@
+cleanup.add_all=false
cleanup.add_default_serial_version_id=true
cleanup.add_generated_serial_version_id=false
cleanup.add_missing_annotations=true
@@ -11,25 +12,72 @@ cleanup.always_use_blocks=true
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=false
cleanup.always_use_this_for_non_static_method_access=false
+cleanup.array_with_curly=false
+cleanup.arrays_fill=false
+cleanup.bitwise_conditional_expression=false
+cleanup.boolean_literal=false
+cleanup.boolean_value_rather_than_comparison=false
+cleanup.break_loop=false
+cleanup.collection_cloning=false
+cleanup.comparing_on_criteria=false
+cleanup.comparison_statement=false
+cleanup.controlflow_merge=false
cleanup.convert_functional_interfaces=false
cleanup.convert_to_enhanced_for_loop=false
+cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
+cleanup.convert_to_switch_expressions=false
cleanup.correct_indentation=false
+cleanup.do_while_rather_than_while=true
+cleanup.double_negation=false
+cleanup.else_if=false
+cleanup.embedded_if=false
+cleanup.evaluate_nullable=false
+cleanup.extract_increment=false
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
+cleanup.hash=false
+cleanup.if_condition=false
cleanup.insert_inferred_type_arguments=false
+cleanup.instanceof=false
+cleanup.instanceof_keyword=false
+cleanup.invert_equals=false
+cleanup.join=false
+cleanup.lazy_logical_operator=false
cleanup.make_local_variable_final=true
cleanup.make_parameters_final=false
cleanup.make_private_fields_final=true
cleanup.make_type_abstract_if_missing_method=false
cleanup.make_variable_declarations_final=false
+cleanup.map_cloning=false
+cleanup.merge_conditional_blocks=false
+cleanup.multi_catch=false
cleanup.never_use_blocks=false
cleanup.never_use_parentheses_in_expressions=true
+cleanup.no_string_creation=false
+cleanup.no_super=false
+cleanup.number_suffix=false
+cleanup.objects_equals=false
+cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
+cleanup.operand_factorization=false
cleanup.organize_imports=true
+cleanup.overridden_assignment=false
+cleanup.plain_replacement=false
+cleanup.precompile_regex=false
+cleanup.primitive_comparison=false
+cleanup.primitive_parsing=false
+cleanup.primitive_rather_than_wrapper=false
+cleanup.primitive_serialization=false
+cleanup.pull_out_if_from_if_else=false
+cleanup.pull_up_assignment=false
+cleanup.push_down_negation=false
cleanup.qualify_static_field_accesses_with_declaring_class=false
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
cleanup.qualify_static_member_accesses_with_declaring_class=false
cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.reduce_indentation=false
+cleanup.redundant_comparator=false
+cleanup.redundant_falling_through_block_end=false
cleanup.remove_private_constructors=true
cleanup.remove_redundant_modifiers=false
cleanup.remove_redundant_semicolons=true
@@ -37,25 +85,57 @@ cleanup.remove_redundant_type_arguments=true
cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true
cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_array_creation=false
cleanup.remove_unnecessary_casts=true
cleanup.remove_unnecessary_nls_tags=false
cleanup.remove_unused_imports=true
cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_method_parameters=false
cleanup.remove_unused_private_fields=true
cleanup.remove_unused_private_members=false
cleanup.remove_unused_private_methods=true
cleanup.remove_unused_private_types=true
+cleanup.return_expression=false
+cleanup.simplify_lambda_expression_and_method_ref=false
+cleanup.single_used_field=false
cleanup.sort_members=false
cleanup.sort_members_all=false
+cleanup.standard_comparison=false
+cleanup.static_inner_class=false
+cleanup.strictly_equal_or_different=false
+cleanup.stringbuffer_to_stringbuilder=false
+cleanup.stringbuilder=false
+cleanup.stringbuilder_for_local_vars=true
+cleanup.stringconcat_to_textblock=false
+cleanup.substring=false
+cleanup.switch=false
+cleanup.system_property=false
+cleanup.system_property_boolean=false
+cleanup.system_property_file_encoding=false
+cleanup.system_property_file_separator=false
+cleanup.system_property_line_separator=false
+cleanup.system_property_path_separator=false
+cleanup.ternary_operator=false
+cleanup.try_with_resource=false
+cleanup.unlooped_while=false
+cleanup.unreachable_block=false
cleanup.use_anonymous_class_creation=false
+cleanup.use_autoboxing=false
cleanup.use_blocks=false
cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_directly_map_method=false
cleanup.use_lambda=true
cleanup.use_parentheses_in_expressions=false
+cleanup.use_string_is_blank=false
cleanup.use_this_for_non_static_field_access=false
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
cleanup.use_this_for_non_static_method_access=false
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_unboxing=false
+cleanup.use_var=false
+cleanup.useless_continue=false
+cleanup.useless_return=false
+cleanup.valueof_rather_than_instantiation=false
cleanup_profile=_CDT
cleanup_settings_version=2
eclipse.preferences.version=1
diff --git a/build/org.eclipse.cdt.core.autotools.ui/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.core.autotools.ui/META-INF/MANIFEST.MF
index 999d707d3d9..5b735f79fdf 100644
--- a/build/org.eclipse.cdt.core.autotools.ui/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.core.autotools.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.cdt.core.autotools.ui;singleton:=true
-Bundle-Version: 1.0.1.qualifier
+Bundle-Version: 1.1.300.qualifier
Bundle-Activator: org.eclipse.cdt.core.autotools.ui.internal.Activator
Bundle-Vendor: %providerName
Require-Bundle: org.eclipse.ui,
@@ -11,7 +11,8 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.ui.ide;bundle-version="3.13.0",
org.eclipse.cdt.core.autotools.core;bundle-version="1.0.0",
org.eclipse.tools.templates.freemarker;bundle-version="1.0.0"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
Bundle-ActivationPolicy: lazy
Bundle-Localization: plugin
Automatic-Module-Name: org.eclipse.cdt.core.autotools.ui
+Export-Package: org.eclipse.cdt.core.autotools.ui.internal;x-internal:=true
diff --git a/build/org.eclipse.cdt.core.autotools.ui/about.html b/build/org.eclipse.cdt.core.autotools.ui/about.html
index 164f781a8fd..b3134865230 100644
--- a/build/org.eclipse.cdt.core.autotools.ui/about.html
+++ b/build/org.eclipse.cdt.core.autotools.ui/about.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
</head>
+
<body lang="EN-US">
<h2>About This Content</h2>
@@ -16,7 +17,7 @@
(&quot;Content&quot;). Unless otherwise indicated below, the Content
is provided to you under the terms and conditions of the Eclipse
Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ available at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
@@ -29,8 +30,9 @@
license exists, contact the Redistributor. Unless otherwise indicated
below, the terms and conditions of the EPL still apply to any source
code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ href="https://www.eclipse.org/">https://www.eclipse.org</a>.
</p>
</body>
+
</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.core.autotools.ui/about.ini b/build/org.eclipse.cdt.core.autotools.ui/about.ini
new file mode 100644
index 00000000000..e07a7bb377e
--- /dev/null
+++ b/build/org.eclipse.cdt.core.autotools.ui/about.ini
@@ -0,0 +1,24 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%blurb
+
+# Property "windowImage" contains path to window icon (16x16)
+# needed for primary features only
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=cdt_logo_icon32.png
+
+# Property "aboutImage" contains path to product image (500x330 or 115x164)
+# needed for primary features only
+
+# Property "appName" contains name of the application (translated)
+# needed for primary features only
+
+# Property "welcomePerspective" contains the id of the perspective in which the
+# welcome page is to be opened.
+# optional
diff --git a/build/org.eclipse.cdt.core.autotools.ui/about.mappings b/build/org.eclipse.cdt.core.autotools.ui/about.mappings
new file mode 100644
index 00000000000..936a8039c3e
--- /dev/null
+++ b/build/org.eclipse.cdt.core.autotools.ui/about.mappings
@@ -0,0 +1,9 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+# The following should contain the build version.
+# e.g. "0=20200106-1728"
+# This value will be added automatically via the build scripts
+0=${buildId}
diff --git a/build/org.eclipse.cdt.core.autotools.ui/about.properties b/build/org.eclipse.cdt.core.autotools.ui/about.properties
new file mode 100644
index 00000000000..53946f333aa
--- /dev/null
+++ b/build/org.eclipse.cdt.core.autotools.ui/about.properties
@@ -0,0 +1,32 @@
+###############################################################################
+# Copyright (c) 2017, 2022 Contributors to the Eclipse Foundation
+#
+# See the NOTICE file(s) distributed with this work for additional
+# information regarding copyright ownership.
+#
+# This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+###############################################################################
+# about.properties
+# contains externalized strings for about.ini
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# fill-ins are supplied by about.mappings
+# This file should be translated.
+# NOTE TO TRANSLATOR: Please do not translate the featureVersion variable.
+
+
+blurb=C/C++ Autotools Core Build Support - Experimental\n\
+\n\
+Version: {featureVersion}\n\
+Build id: {0}\n\
+\n\
+Copyright (c) 2017, 2022 Contributors to the Eclipse Foundation
+\n\
+See the NOTICE file(s) distributed with this work for additional\n\
+information regarding copyright ownership.\n\
+\n\
+Visit http://www.eclipse.org/cdt
diff --git a/build/org.eclipse.cdt.core.autotools.ui/build.properties b/build/org.eclipse.cdt.core.autotools.ui/build.properties
index e398e4efb7b..3798be30af3 100644
--- a/build/org.eclipse.cdt.core.autotools.ui/build.properties
+++ b/build/org.eclipse.cdt.core.autotools.ui/build.properties
@@ -4,4 +4,9 @@ bin.includes = META-INF/,\
.,\
plugin.xml,\
about.html,\
- plugin.properties
+ plugin.properties,\
+ cdt_logo_icon32.png,\
+ about.properties,\
+ about.mappings,\
+ about.ini
+src.includes = about.html
diff --git a/build/org.eclipse.cdt.core.autotools.ui/cdt_logo_icon32.png b/build/org.eclipse.cdt.core.autotools.ui/cdt_logo_icon32.png
new file mode 100644
index 00000000000..470ca81b327
--- /dev/null
+++ b/build/org.eclipse.cdt.core.autotools.ui/cdt_logo_icon32.png
Binary files differ
diff --git a/build/org.eclipse.cdt.gnu.build-feature/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.gnu.build-feature/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.gnu.build-feature/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.gnu.build-feature/feature.xml b/build/org.eclipse.cdt.gnu.build-feature/feature.xml
index 53d2445a125..b909c38d875 100644
--- a/build/org.eclipse.cdt.gnu.build-feature/feature.xml
+++ b/build/org.eclipse.cdt.gnu.build-feature/feature.xml
@@ -1,9 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2008, 2021 Contributors to the Eclipse Foundation
+
+ This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License 2.0
+ which accompanies this distribution, and is available at
+ https://www.eclipse.org/legal/epl-2.0/
+
+ SPDX-License-Identifier: EPL-2.0
+-->
<feature
id="org.eclipse.cdt.gnu.build"
label="%featureName"
- version="9.9.0.qualifier"
+ version="10.7.0.qualifier"
provider-name="%providerName"
+ plugin="org.eclipse.cdt.build.gcc.ui"
license-feature="org.eclipse.license"
license-feature-version="0.0.0">
diff --git a/build/org.eclipse.cdt.make.core.tests/.classpath b/build/org.eclipse.cdt.make.core.tests/.classpath
index 01836c4842f..a42a828e04a 100644
--- a/build/org.eclipse.cdt.make.core.tests/.classpath
+++ b/build/org.eclipse.cdt.make.core.tests/.classpath
@@ -1,7 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="src" path="src">
+ <attributes>
+ <attribute name="test" value="true"/>
+ </attributes>
+ </classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/build/org.eclipse.cdt.make.core.tests/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.make.core.tests/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.make.core.tests/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.make.core.tests/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.make.core.tests/.settings/org.eclipse.jdt.core.prefs
index ad05599159f..5b1c443114d 100644
--- a/build/org.eclipse.cdt.make.core.tests/.settings/org.eclipse.jdt.core.prefs
+++ b/build/org.eclipse.cdt.make.core.tests/.settings/org.eclipse.jdt.core.prefs
@@ -30,9 +30,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -49,6 +49,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
@@ -107,6 +108,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
@@ -144,13 +146,14 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -158,21 +161,24 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@@ -264,11 +270,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@@ -299,6 +306,8 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@@ -323,13 +332,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@@ -377,6 +390,8 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do no
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@@ -413,9 +428,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@@ -454,10 +472,14 @@ org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/build/org.eclipse.cdt.make.core.tests/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.make.core.tests/.settings/org.eclipse.jdt.ui.prefs
index e44576346c4..d35ba9b5231 100644
--- a/build/org.eclipse.cdt.make.core.tests/.settings/org.eclipse.jdt.ui.prefs
+++ b/build/org.eclipse.cdt.make.core.tests/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,4 @@
+cleanup.add_all=false
cleanup.add_default_serial_version_id=true
cleanup.add_generated_serial_version_id=false
cleanup.add_missing_annotations=true
@@ -11,25 +12,72 @@ cleanup.always_use_blocks=true
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=false
cleanup.always_use_this_for_non_static_method_access=false
+cleanup.array_with_curly=false
+cleanup.arrays_fill=false
+cleanup.bitwise_conditional_expression=false
+cleanup.boolean_literal=false
+cleanup.boolean_value_rather_than_comparison=false
+cleanup.break_loop=false
+cleanup.collection_cloning=false
+cleanup.comparing_on_criteria=false
+cleanup.comparison_statement=false
+cleanup.controlflow_merge=false
cleanup.convert_functional_interfaces=false
cleanup.convert_to_enhanced_for_loop=false
+cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
+cleanup.convert_to_switch_expressions=false
cleanup.correct_indentation=false
+cleanup.do_while_rather_than_while=true
+cleanup.double_negation=false
+cleanup.else_if=false
+cleanup.embedded_if=false
+cleanup.evaluate_nullable=false
+cleanup.extract_increment=false
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
+cleanup.hash=false
+cleanup.if_condition=false
cleanup.insert_inferred_type_arguments=false
+cleanup.instanceof=false
+cleanup.instanceof_keyword=false
+cleanup.invert_equals=false
+cleanup.join=false
+cleanup.lazy_logical_operator=false
cleanup.make_local_variable_final=true
cleanup.make_parameters_final=false
cleanup.make_private_fields_final=true
cleanup.make_type_abstract_if_missing_method=false
cleanup.make_variable_declarations_final=false
+cleanup.map_cloning=false
+cleanup.merge_conditional_blocks=false
+cleanup.multi_catch=false
cleanup.never_use_blocks=false
cleanup.never_use_parentheses_in_expressions=true
+cleanup.no_string_creation=false
+cleanup.no_super=false
+cleanup.number_suffix=false
+cleanup.objects_equals=false
+cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
+cleanup.operand_factorization=false
cleanup.organize_imports=true
+cleanup.overridden_assignment=false
+cleanup.plain_replacement=false
+cleanup.precompile_regex=false
+cleanup.primitive_comparison=false
+cleanup.primitive_parsing=false
+cleanup.primitive_rather_than_wrapper=false
+cleanup.primitive_serialization=false
+cleanup.pull_out_if_from_if_else=false
+cleanup.pull_up_assignment=false
+cleanup.push_down_negation=false
cleanup.qualify_static_field_accesses_with_declaring_class=false
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
cleanup.qualify_static_member_accesses_with_declaring_class=false
cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.reduce_indentation=false
+cleanup.redundant_comparator=false
+cleanup.redundant_falling_through_block_end=false
cleanup.remove_private_constructors=true
cleanup.remove_redundant_modifiers=false
cleanup.remove_redundant_semicolons=true
@@ -37,25 +85,57 @@ cleanup.remove_redundant_type_arguments=true
cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true
cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_array_creation=false
cleanup.remove_unnecessary_casts=true
cleanup.remove_unnecessary_nls_tags=false
cleanup.remove_unused_imports=true
cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_method_parameters=false
cleanup.remove_unused_private_fields=true
cleanup.remove_unused_private_members=false
cleanup.remove_unused_private_methods=true
cleanup.remove_unused_private_types=true
+cleanup.return_expression=false
+cleanup.simplify_lambda_expression_and_method_ref=false
+cleanup.single_used_field=false
cleanup.sort_members=false
cleanup.sort_members_all=false
+cleanup.standard_comparison=false
+cleanup.static_inner_class=false
+cleanup.strictly_equal_or_different=false
+cleanup.stringbuffer_to_stringbuilder=false
+cleanup.stringbuilder=false
+cleanup.stringbuilder_for_local_vars=true
+cleanup.stringconcat_to_textblock=false
+cleanup.substring=false
+cleanup.switch=false
+cleanup.system_property=false
+cleanup.system_property_boolean=false
+cleanup.system_property_file_encoding=false
+cleanup.system_property_file_separator=false
+cleanup.system_property_line_separator=false
+cleanup.system_property_path_separator=false
+cleanup.ternary_operator=false
+cleanup.try_with_resource=false
+cleanup.unlooped_while=false
+cleanup.unreachable_block=false
cleanup.use_anonymous_class_creation=false
+cleanup.use_autoboxing=false
cleanup.use_blocks=false
cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_directly_map_method=false
cleanup.use_lambda=true
cleanup.use_parentheses_in_expressions=false
+cleanup.use_string_is_blank=false
cleanup.use_this_for_non_static_field_access=false
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
cleanup.use_this_for_non_static_method_access=false
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_unboxing=false
+cleanup.use_var=false
+cleanup.useless_continue=false
+cleanup.useless_return=false
+cleanup.valueof_rather_than_instantiation=false
cleanup_profile=_CDT
cleanup_settings_version=2
eclipse.preferences.version=1
diff --git a/build/org.eclipse.cdt.make.core.tests/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.make.core.tests/META-INF/MANIFEST.MF
index 50d39285a02..a27d314f9e5 100644
--- a/build/org.eclipse.cdt.make.core.tests/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.make.core.tests/META-INF/MANIFEST.MF
@@ -1,6 +1,6 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
-Bundle-Name: Make Core Tests Plug-in
+Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.cdt.make.core.tests;singleton:=true
Bundle-Version: 7.0.0.qualifier
Bundle-Activator: org.eclipse.cdt.make.core.tests.MakeTestsPlugin
@@ -13,7 +13,8 @@ Require-Bundle: org.eclipse.core.runtime,
org.eclipse.core.resources,
org.eclipse.cdt.core.tests
Bundle-ActivationPolicy: lazy
-Bundle-Vendor: Eclipse.org
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-Vendor: %providerName
+Bundle-RequiredExecutionEnvironment: JavaSE-11
Import-Package: org.eclipse.core.filesystem
Automatic-Module-Name: org.eclipse.cdt.make.core.tests
+Bundle-Localization: plugin
diff --git a/build/org.eclipse.cdt.make.core.tests/about.html b/build/org.eclipse.cdt.make.core.tests/about.html
index 164f781a8fd..b3134865230 100644
--- a/build/org.eclipse.cdt.make.core.tests/about.html
+++ b/build/org.eclipse.cdt.make.core.tests/about.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
</head>
+
<body lang="EN-US">
<h2>About This Content</h2>
@@ -16,7 +17,7 @@
(&quot;Content&quot;). Unless otherwise indicated below, the Content
is provided to you under the terms and conditions of the Eclipse
Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ available at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
@@ -29,8 +30,9 @@
license exists, contact the Redistributor. Unless otherwise indicated
below, the terms and conditions of the EPL still apply to any source
code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ href="https://www.eclipse.org/">https://www.eclipse.org</a>.
</p>
</body>
+
</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.make.core.tests/build.properties b/build/org.eclipse.cdt.make.core.tests/build.properties
index 1eb4b524a16..efa26b4aeef 100644
--- a/build/org.eclipse.cdt.make.core.tests/build.properties
+++ b/build/org.eclipse.cdt.make.core.tests/build.properties
@@ -15,5 +15,7 @@ source.. = src/
output.. = bin/
bin.includes = .,\
META-INF/,\
- data/
+ plugin.properties,\
+ data/,\
+ about.html
src.includes = about.html
diff --git a/build/org.eclipse.cdt.make.core.tests/plugin.properties b/build/org.eclipse.cdt.make.core.tests/plugin.properties
new file mode 100644
index 00000000000..0deeb62c93d
--- /dev/null
+++ b/build/org.eclipse.cdt.make.core.tests/plugin.properties
@@ -0,0 +1,14 @@
+##################################################################################
+# Copyright (c) 2020 Torbjörn Svensson and others. All rights reserved.
+# This program and the accompanying materials are made available under the terms
+# of the Eclipse Public License 2.0 which accompanies this distribution, and is
+# available at https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+# Torbjörn Svensson - initial API and implementation
+##################################################################################
+
+pluginName = Make Core Tests Plug-in
+providerName = Eclipse.org
diff --git a/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/builder/tests/CDataProviderTests.java b/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/builder/tests/CDataProviderTests.java
index 9c8f6df033d..b058c29c43b 100644
--- a/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/builder/tests/CDataProviderTests.java
+++ b/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/builder/tests/CDataProviderTests.java
@@ -31,6 +31,7 @@ import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
+@SuppressWarnings("nls")
public class CDataProviderTests extends TestCase {
/**
* @param name
diff --git a/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/builder/tests/StandardBuildTests.java b/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/builder/tests/StandardBuildTests.java
index 946608453a6..d94a4269dd4 100644
--- a/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/builder/tests/StandardBuildTests.java
+++ b/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/builder/tests/StandardBuildTests.java
@@ -39,6 +39,7 @@ import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
+@SuppressWarnings("nls")
public class StandardBuildTests extends TestCase {
private static final boolean OFF = false;
private static final boolean ON = true;
diff --git a/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/core/tests/AutomatedIntegrationSuite.java b/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/core/tests/AutomatedIntegrationSuite.java
index be00630f21a..e5fbbf3e410 100644
--- a/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/core/tests/AutomatedIntegrationSuite.java
+++ b/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/core/tests/AutomatedIntegrationSuite.java
@@ -15,7 +15,7 @@
package org.eclipse.cdt.make.core.tests;
import org.eclipse.cdt.make.builder.tests.StandardBuildTests;
-import org.eclipse.cdt.make.scannerdiscovery.ScannerDiscoveryTests;
+import org.eclipse.cdt.make.scannerdiscovery.ScannerDiscoveryTestSuite;
import junit.framework.Test;
import junit.framework.TestCase;
@@ -42,7 +42,7 @@ public class AutomatedIntegrationSuite extends TestSuite {
final AutomatedIntegrationSuite suite = new AutomatedIntegrationSuite();
suite.addTest(StandardBuildTests.suite());
- suite.addTest(ScannerDiscoveryTests.suite());
+ suite.addTest(ScannerDiscoveryTestSuite.suite());
suite.addTest(MakefileReaderProviderTests.suite());
return suite;
}
diff --git a/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/core/tests/MakeTestsPlugin.java b/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/core/tests/MakeTestsPlugin.java
index e9d67f59bfb..243ae7c5a4d 100644
--- a/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/core/tests/MakeTestsPlugin.java
+++ b/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/core/tests/MakeTestsPlugin.java
@@ -22,6 +22,7 @@ import org.osgi.framework.BundleContext;
/**
* The main plugin class to be used in the desktop.
*/
+@SuppressWarnings("nls")
public class MakeTestsPlugin extends Plugin {
//The shared instance.
private static MakeTestsPlugin plugin;
diff --git a/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/core/tests/MakefileReaderProviderTests.java b/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/core/tests/MakefileReaderProviderTests.java
index 1bfae57911a..a155f7eaa86 100644
--- a/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/core/tests/MakefileReaderProviderTests.java
+++ b/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/core/tests/MakefileReaderProviderTests.java
@@ -39,6 +39,7 @@ import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
+@SuppressWarnings("nls")
public class MakefileReaderProviderTests extends TestCase {
private String[] inclDirs;
diff --git a/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/core/tests/StandardBuildTestHelper.java b/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/core/tests/StandardBuildTestHelper.java
index f45aa656278..553f6fa78ea 100644
--- a/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/core/tests/StandardBuildTestHelper.java
+++ b/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/core/tests/StandardBuildTestHelper.java
@@ -32,6 +32,7 @@ import org.eclipse.core.runtime.Path;
import junit.framework.Assert;
+@SuppressWarnings("nls")
public class StandardBuildTestHelper {
/* (non-Javadoc)
* Create a new project named <code>name</code> or return the project in
diff --git a/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/GCCPerFileBOPConsoleParserTests.java b/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/GCCPerFileBOPConsoleParserTests.java
index 76d5d99688d..a1fa688f8cd 100644
--- a/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/GCCPerFileBOPConsoleParserTests.java
+++ b/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/GCCPerFileBOPConsoleParserTests.java
@@ -33,6 +33,7 @@ import org.eclipse.core.runtime.Path;
import junit.framework.TestSuite;
+@SuppressWarnings("nls")
public class GCCPerFileBOPConsoleParserTests extends BaseBOPConsoleParserTests {
private final static IMarkerGenerator MARKER_GENERATOR = new IMarkerGenerator() {
@Override
diff --git a/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/ScannerConfigDiscoveryTests.java b/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/ScannerConfigDiscoveryTests.java
index c64067130f0..eca38bad4dd 100644
--- a/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/ScannerConfigDiscoveryTests.java
+++ b/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/ScannerConfigDiscoveryTests.java
@@ -38,6 +38,7 @@ import org.eclipse.core.runtime.NullProgressMonitor;
*
* @author vhirsl
*/
+@SuppressWarnings("nls")
public class ScannerConfigDiscoveryTests extends BaseTestCase {
private IProject fCProject = null;
private IFile fCFile = null;
diff --git a/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/ScannerConfigProfileTests.java b/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/ScannerConfigProfileTests.java
index 34055e1da26..0eb43d73dd1 100644
--- a/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/ScannerConfigProfileTests.java
+++ b/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/ScannerConfigProfileTests.java
@@ -31,6 +31,7 @@ import org.eclipse.core.runtime.NullProgressMonitor;
/**
* This class tests ScannerConfigProfileManager
*/
+@SuppressWarnings("nls")
public class ScannerConfigProfileTests extends BaseTestCase {
private IProject fCProject = null;
private IFile fCFile = null;
diff --git a/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/ScannerDiscoveryTests.java b/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/ScannerDiscoveryTestSuite.java
index 30fb0266122..780c02936d1 100644
--- a/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/ScannerDiscoveryTests.java
+++ b/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/ScannerDiscoveryTestSuite.java
@@ -16,14 +16,14 @@ package org.eclipse.cdt.make.scannerdiscovery;
import junit.framework.TestSuite;
-public class ScannerDiscoveryTests extends TestSuite {
+public class ScannerDiscoveryTestSuite extends TestSuite {
public static TestSuite suite() {
- return new ScannerDiscoveryTests();
+ return new ScannerDiscoveryTestSuite();
}
- public ScannerDiscoveryTests() {
- super(ScannerDiscoveryTests.class.getName());
+ public ScannerDiscoveryTestSuite() {
+ super(ScannerDiscoveryTestSuite.class.getName());
addTestSuite(ScannerConfigDiscoveryTests.class);
addTest(GCCScannerInfoConsoleParserTests.suite());
addTest(GCCPerFileBOPConsoleParserTests.suite());
diff --git a/build/org.eclipse.cdt.make.core/.classpath b/build/org.eclipse.cdt.make.core/.classpath
index 01836c4842f..e801ebfb468 100644
--- a/build/org.eclipse.cdt.make.core/.classpath
+++ b/build/org.eclipse.cdt.make.core/.classpath
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/build/org.eclipse.cdt.make.core/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.make.core/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.make.core/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.make.core/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.make.core/.settings/org.eclipse.jdt.core.prefs
index 2b6ecff8a01..e3a8104f9ca 100644
--- a/build/org.eclipse.cdt.make.core/.settings/org.eclipse.jdt.core.prefs
+++ b/build/org.eclipse.cdt.make.core/.settings/org.eclipse.jdt.core.prefs
@@ -30,9 +30,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -49,6 +49,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
@@ -107,6 +108,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
@@ -144,13 +146,14 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -158,21 +161,24 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@@ -264,11 +270,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@@ -299,6 +306,8 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@@ -323,13 +332,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@@ -377,6 +390,8 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do no
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@@ -413,9 +428,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@@ -454,10 +472,14 @@ org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/build/org.eclipse.cdt.make.core/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.make.core/.settings/org.eclipse.jdt.ui.prefs
index e44576346c4..d35ba9b5231 100644
--- a/build/org.eclipse.cdt.make.core/.settings/org.eclipse.jdt.ui.prefs
+++ b/build/org.eclipse.cdt.make.core/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,4 @@
+cleanup.add_all=false
cleanup.add_default_serial_version_id=true
cleanup.add_generated_serial_version_id=false
cleanup.add_missing_annotations=true
@@ -11,25 +12,72 @@ cleanup.always_use_blocks=true
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=false
cleanup.always_use_this_for_non_static_method_access=false
+cleanup.array_with_curly=false
+cleanup.arrays_fill=false
+cleanup.bitwise_conditional_expression=false
+cleanup.boolean_literal=false
+cleanup.boolean_value_rather_than_comparison=false
+cleanup.break_loop=false
+cleanup.collection_cloning=false
+cleanup.comparing_on_criteria=false
+cleanup.comparison_statement=false
+cleanup.controlflow_merge=false
cleanup.convert_functional_interfaces=false
cleanup.convert_to_enhanced_for_loop=false
+cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
+cleanup.convert_to_switch_expressions=false
cleanup.correct_indentation=false
+cleanup.do_while_rather_than_while=true
+cleanup.double_negation=false
+cleanup.else_if=false
+cleanup.embedded_if=false
+cleanup.evaluate_nullable=false
+cleanup.extract_increment=false
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
+cleanup.hash=false
+cleanup.if_condition=false
cleanup.insert_inferred_type_arguments=false
+cleanup.instanceof=false
+cleanup.instanceof_keyword=false
+cleanup.invert_equals=false
+cleanup.join=false
+cleanup.lazy_logical_operator=false
cleanup.make_local_variable_final=true
cleanup.make_parameters_final=false
cleanup.make_private_fields_final=true
cleanup.make_type_abstract_if_missing_method=false
cleanup.make_variable_declarations_final=false
+cleanup.map_cloning=false
+cleanup.merge_conditional_blocks=false
+cleanup.multi_catch=false
cleanup.never_use_blocks=false
cleanup.never_use_parentheses_in_expressions=true
+cleanup.no_string_creation=false
+cleanup.no_super=false
+cleanup.number_suffix=false
+cleanup.objects_equals=false
+cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
+cleanup.operand_factorization=false
cleanup.organize_imports=true
+cleanup.overridden_assignment=false
+cleanup.plain_replacement=false
+cleanup.precompile_regex=false
+cleanup.primitive_comparison=false
+cleanup.primitive_parsing=false
+cleanup.primitive_rather_than_wrapper=false
+cleanup.primitive_serialization=false
+cleanup.pull_out_if_from_if_else=false
+cleanup.pull_up_assignment=false
+cleanup.push_down_negation=false
cleanup.qualify_static_field_accesses_with_declaring_class=false
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
cleanup.qualify_static_member_accesses_with_declaring_class=false
cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.reduce_indentation=false
+cleanup.redundant_comparator=false
+cleanup.redundant_falling_through_block_end=false
cleanup.remove_private_constructors=true
cleanup.remove_redundant_modifiers=false
cleanup.remove_redundant_semicolons=true
@@ -37,25 +85,57 @@ cleanup.remove_redundant_type_arguments=true
cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true
cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_array_creation=false
cleanup.remove_unnecessary_casts=true
cleanup.remove_unnecessary_nls_tags=false
cleanup.remove_unused_imports=true
cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_method_parameters=false
cleanup.remove_unused_private_fields=true
cleanup.remove_unused_private_members=false
cleanup.remove_unused_private_methods=true
cleanup.remove_unused_private_types=true
+cleanup.return_expression=false
+cleanup.simplify_lambda_expression_and_method_ref=false
+cleanup.single_used_field=false
cleanup.sort_members=false
cleanup.sort_members_all=false
+cleanup.standard_comparison=false
+cleanup.static_inner_class=false
+cleanup.strictly_equal_or_different=false
+cleanup.stringbuffer_to_stringbuilder=false
+cleanup.stringbuilder=false
+cleanup.stringbuilder_for_local_vars=true
+cleanup.stringconcat_to_textblock=false
+cleanup.substring=false
+cleanup.switch=false
+cleanup.system_property=false
+cleanup.system_property_boolean=false
+cleanup.system_property_file_encoding=false
+cleanup.system_property_file_separator=false
+cleanup.system_property_line_separator=false
+cleanup.system_property_path_separator=false
+cleanup.ternary_operator=false
+cleanup.try_with_resource=false
+cleanup.unlooped_while=false
+cleanup.unreachable_block=false
cleanup.use_anonymous_class_creation=false
+cleanup.use_autoboxing=false
cleanup.use_blocks=false
cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_directly_map_method=false
cleanup.use_lambda=true
cleanup.use_parentheses_in_expressions=false
+cleanup.use_string_is_blank=false
cleanup.use_this_for_non_static_field_access=false
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
cleanup.use_this_for_non_static_method_access=false
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_unboxing=false
+cleanup.use_var=false
+cleanup.useless_continue=false
+cleanup.useless_return=false
+cleanup.valueof_rather_than_instantiation=false
cleanup_profile=_CDT
cleanup_settings_version=2
eclipse.preferences.version=1
diff --git a/build/org.eclipse.cdt.make.core/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.make.core/META-INF/MANIFEST.MF
index bba11e9c22d..89697c3ac0a 100644
--- a/build/org.eclipse.cdt.make.core/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.make.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.cdt.make.core; singleton:=true
-Bundle-Version: 7.4.100.qualifier
+Bundle-Version: 7.5.300.qualifier
Bundle-Activator: org.eclipse.cdt.make.core.MakeCorePlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin
@@ -19,7 +19,7 @@ Export-Package: org.eclipse.cdt.make.core,
org.eclipse.cdt.make.internal.core.scannerconfig.jobs;x-internal:=true,
org.eclipse.cdt.make.internal.core.scannerconfig.util;x-internal:=true,
org.eclipse.cdt.make.internal.core.scannerconfig2;x-internal:=true
-Require-Bundle: org.eclipse.cdt.core;bundle-version="[5.0.0,7.0.0)",
+Require-Bundle: org.eclipse.cdt.core;bundle-version="[7.0.0,8.0.0)",
org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
org.eclipse.core.variables;bundle-version="[3.1.100,4.0.0)",
org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
@@ -27,6 +27,5 @@ Require-Bundle: org.eclipse.cdt.core;bundle-version="[5.0.0,7.0.0)",
org.eclipse.tools.templates.core;bundle-version="1.1.0",
org.eclipse.tools.templates.freemarker;bundle-version="1.0.0"
Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: com.ibm.icu.text
+Bundle-RequiredExecutionEnvironment: JavaSE-11
Automatic-Module-Name: org.eclipse.cdt.make.core
diff --git a/build/org.eclipse.cdt.make.core/about.html b/build/org.eclipse.cdt.make.core/about.html
index 164f781a8fd..b3134865230 100644
--- a/build/org.eclipse.cdt.make.core/about.html
+++ b/build/org.eclipse.cdt.make.core/about.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
</head>
+
<body lang="EN-US">
<h2>About This Content</h2>
@@ -16,7 +17,7 @@
(&quot;Content&quot;). Unless otherwise indicated below, the Content
is provided to you under the terms and conditions of the Eclipse
Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ available at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
@@ -29,8 +30,9 @@
license exists, contact the Redistributor. Unless otherwise indicated
below, the terms and conditions of the EPL still apply to any source
code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ href="https://www.eclipse.org/">https://www.eclipse.org</a>.
</p>
</body>
+
</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.make.core/plugin.xml b/build/org.eclipse.cdt.make.core/plugin.xml
index 5de1999d0e0..57d3b738efd 100644
--- a/build/org.eclipse.cdt.make.core/plugin.xml
+++ b/build/org.eclipse.cdt.make.core/plugin.xml
@@ -156,7 +156,7 @@
<file-association
content-type="org.eclipse.cdt.make.core.makefile"
file-names="Makefile,makefile,GNUMakefile"
- file-extensions="mk"/>
+ file-extensions="mk,mak"/>
</extension>
<extension
diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java
index 162cdeb1229..6685e854c8f 100644
--- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java
+++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java
@@ -46,7 +46,6 @@ import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Preferences;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.variables.VariablesPlugin;
-import org.eclipse.osgi.service.environment.Constants;
public class BuildInfoFactory {
@@ -115,14 +114,8 @@ public class BuildInfoFactory {
public Map<String, String> getExpandedEnvironment() {
Map<String, String> env = getEnvironment();
HashMap<String, String> envMap = new HashMap<>(env.entrySet().size());
- boolean win32 = Platform.getOS().equals(Constants.OS_WIN32);
for (Map.Entry<String, String> entry : env.entrySet()) {
String key = entry.getKey();
- if (win32) {
- // Win32 vars are case insensitive. Uppercase everything so
- // that (for example) "pAtH" will correctly replace "PATH"
- key = key.toUpperCase();
- }
String value = entry.getValue();
// translate any string substitution variables
String translated = value;
diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeMessages.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeMessages.java
index d6726852aee..239d4f116a5 100644
--- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeMessages.java
+++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeMessages.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2002, 2009 QNX Software Systems and others.
+ * Copyright (c) 2002, 2021 QNX Software Systems and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -13,11 +13,10 @@
*******************************************************************************/
package org.eclipse.cdt.make.internal.core;
+import java.text.MessageFormat;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
-import com.ibm.icu.text.MessageFormat;
-
public class MakeMessages {
private static final String RESOURCE_BUNDLE = MakeMessages.class.getName();
diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTarget.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTarget.java
index 3648088fa56..6d6f2a485fb 100644
--- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTarget.java
+++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTarget.java
@@ -33,11 +33,9 @@ import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.PlatformObject;
import org.eclipse.core.runtime.SubMonitor;
import org.eclipse.core.variables.VariablesPlugin;
-import org.eclipse.osgi.service.environment.Constants;
public class MakeTarget extends PlatformObject implements IMakeTarget {
private final static int USE_PROJECT_ENV_SETTING = 3;
@@ -245,14 +243,8 @@ public class MakeTarget extends PlatformObject implements IMakeTarget {
}
HashMap<String, String> envMap = new HashMap<>(env.entrySet().size());
- boolean win32 = Platform.getOS().equals(Constants.OS_WIN32);
for (Entry<String, String> entry : env.entrySet()) {
String key = entry.getKey();
- if (win32) {
- // Win32 vars are case insensitive. Uppercase everything so
- // that (for example) "pAtH" will correctly replace "PATH"
- key = key.toUpperCase();
- }
String value = entry.getValue();
// translate any string substitution variables
String translated = value;
diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/CDataDiscoveredInfoCalculator.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/CDataDiscoveredInfoCalculator.java
index 5700e094e00..92eda07cc8e 100644
--- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/CDataDiscoveredInfoCalculator.java
+++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/CDataDiscoveredInfoCalculator.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2016 Intel Corporation and others.
+ * Copyright (c) 2007, 2020 Intel Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -21,6 +21,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.Objects;
import java.util.Set;
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
@@ -270,7 +271,7 @@ public class CDataDiscoveredInfoCalculator {
if (!fExtsSet.equals(other.fExtsSet))
return false;
- if (!CDataUtil.objectsEqual(fMaxMatchInfo, other.fMaxMatchInfo))
+ if (!Objects.equals(fMaxMatchInfo, other.fMaxMatchInfo))
return false;
return true;
diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/CDataDiscoveredInfoProcessor.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/CDataDiscoveredInfoProcessor.java
index a3ab5b5cf0d..a96b16f4de5 100644
--- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/CDataDiscoveredInfoProcessor.java
+++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/CDataDiscoveredInfoProcessor.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2010 Intel Corporation and others.
+ * Copyright (c) 2007, 2020 Intel Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -16,6 +16,7 @@ package org.eclipse.cdt.make.internal.core.scannerconfig;
import java.util.Arrays;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.Objects;
import java.util.Set;
import org.eclipse.cdt.core.settings.model.ICSettingBase;
@@ -116,7 +117,7 @@ public abstract class CDataDiscoveredInfoProcessor {
}
protected boolean langDatasMatch(CLanguageData lData1, CLanguageData lData2) {
- if (!CDataUtil.objectsEqual(lData1.getLanguageId(), lData2.getLanguageId()))
+ if (!Objects.equals(lData1.getLanguageId(), lData2.getLanguageId()))
return false;
String[] tmp = lData1.getSourceContentTypeIds();
diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/util/LogWriter.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/util/LogWriter.java
index 7501751c391..9c5112e74a9 100644
--- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/util/LogWriter.java
+++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/util/LogWriter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * Copyright (c) 2004, 2021 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -20,14 +20,13 @@ import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.Writer;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
import java.util.Date;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IStatus;
-import com.ibm.icu.text.DateFormat;
-import com.ibm.icu.text.SimpleDateFormat;
-
/**
* Log writer utility
*
diff --git a/build/org.eclipse.cdt.make.core/templates/simple/Makefile b/build/org.eclipse.cdt.make.core/templates/simple/Makefile
index 7fe5793f75b..a46f5dd2cea 100644
--- a/build/org.eclipse.cdt.make.core/templates/simple/Makefile
+++ b/build/org.eclipse.cdt.make.core/templates/simple/Makefile
@@ -6,14 +6,20 @@ ifeq ($(BUILD_MODE),debug)
CFLAGS += -g
else ifeq ($(BUILD_MODE),run)
CFLAGS += -O2
+else ifeq ($(BUILD_MODE),linuxtools)
+ CFLAGS += -g -pg -fprofile-arcs -ftest-coverage
+ LDFLAGS += -pg -fprofile-arcs -ftest-coverage
+ EXTRA_CLEAN += ${projectName}.gcda ${projectName}.gcno $(PROJECT_ROOT)gmon.out
+ EXTRA_CMDS = rm -rf ${projectName}.gcda
else
- $(error Build mode $(BUILD_MODE) not supported by this Makefile)
+ $(error Build mode $(BUILD_MODE) not supported by this Makefile)
endif
all: ${projectName}
${projectName}: $(OBJS)
- $(CXX) -o $@ $^
+ $(CXX) $(LDFLAGS) -o $@ $^
+ $(EXTRA_CMDS)
%.o: $(PROJECT_ROOT)%.cpp
$(CXX) -c $(CFLAGS) $(CXXFLAGS) $(CPPFLAGS) -o $@ $<
@@ -22,4 +28,4 @@ ${projectName}: $(OBJS)
$(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
clean:
- rm -fr ${projectName} $(OBJS)
+ rm -fr ${projectName} $(OBJS) $(EXTRA_CLEAN)
diff --git a/build/org.eclipse.cdt.make.ui.tests/.classpath b/build/org.eclipse.cdt.make.ui.tests/.classpath
index eca7bdba8f0..a42a828e04a 100644
--- a/build/org.eclipse.cdt.make.ui.tests/.classpath
+++ b/build/org.eclipse.cdt.make.ui.tests/.classpath
@@ -1,7 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="src">
+ <attributes>
+ <attribute name="test" value="true"/>
+ </attributes>
+ </classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/build/org.eclipse.cdt.make.ui.tests/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.make.ui.tests/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.make.ui.tests/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.make.ui.tests/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.make.ui.tests/.settings/org.eclipse.jdt.core.prefs
index ad05599159f..5b1c443114d 100644
--- a/build/org.eclipse.cdt.make.ui.tests/.settings/org.eclipse.jdt.core.prefs
+++ b/build/org.eclipse.cdt.make.ui.tests/.settings/org.eclipse.jdt.core.prefs
@@ -30,9 +30,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -49,6 +49,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
@@ -107,6 +108,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
@@ -144,13 +146,14 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -158,21 +161,24 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@@ -264,11 +270,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@@ -299,6 +306,8 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@@ -323,13 +332,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@@ -377,6 +390,8 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do no
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@@ -413,9 +428,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@@ -454,10 +472,14 @@ org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/build/org.eclipse.cdt.make.ui.tests/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.make.ui.tests/.settings/org.eclipse.jdt.ui.prefs
index e44576346c4..d35ba9b5231 100644
--- a/build/org.eclipse.cdt.make.ui.tests/.settings/org.eclipse.jdt.ui.prefs
+++ b/build/org.eclipse.cdt.make.ui.tests/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,4 @@
+cleanup.add_all=false
cleanup.add_default_serial_version_id=true
cleanup.add_generated_serial_version_id=false
cleanup.add_missing_annotations=true
@@ -11,25 +12,72 @@ cleanup.always_use_blocks=true
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=false
cleanup.always_use_this_for_non_static_method_access=false
+cleanup.array_with_curly=false
+cleanup.arrays_fill=false
+cleanup.bitwise_conditional_expression=false
+cleanup.boolean_literal=false
+cleanup.boolean_value_rather_than_comparison=false
+cleanup.break_loop=false
+cleanup.collection_cloning=false
+cleanup.comparing_on_criteria=false
+cleanup.comparison_statement=false
+cleanup.controlflow_merge=false
cleanup.convert_functional_interfaces=false
cleanup.convert_to_enhanced_for_loop=false
+cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
+cleanup.convert_to_switch_expressions=false
cleanup.correct_indentation=false
+cleanup.do_while_rather_than_while=true
+cleanup.double_negation=false
+cleanup.else_if=false
+cleanup.embedded_if=false
+cleanup.evaluate_nullable=false
+cleanup.extract_increment=false
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
+cleanup.hash=false
+cleanup.if_condition=false
cleanup.insert_inferred_type_arguments=false
+cleanup.instanceof=false
+cleanup.instanceof_keyword=false
+cleanup.invert_equals=false
+cleanup.join=false
+cleanup.lazy_logical_operator=false
cleanup.make_local_variable_final=true
cleanup.make_parameters_final=false
cleanup.make_private_fields_final=true
cleanup.make_type_abstract_if_missing_method=false
cleanup.make_variable_declarations_final=false
+cleanup.map_cloning=false
+cleanup.merge_conditional_blocks=false
+cleanup.multi_catch=false
cleanup.never_use_blocks=false
cleanup.never_use_parentheses_in_expressions=true
+cleanup.no_string_creation=false
+cleanup.no_super=false
+cleanup.number_suffix=false
+cleanup.objects_equals=false
+cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
+cleanup.operand_factorization=false
cleanup.organize_imports=true
+cleanup.overridden_assignment=false
+cleanup.plain_replacement=false
+cleanup.precompile_regex=false
+cleanup.primitive_comparison=false
+cleanup.primitive_parsing=false
+cleanup.primitive_rather_than_wrapper=false
+cleanup.primitive_serialization=false
+cleanup.pull_out_if_from_if_else=false
+cleanup.pull_up_assignment=false
+cleanup.push_down_negation=false
cleanup.qualify_static_field_accesses_with_declaring_class=false
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
cleanup.qualify_static_member_accesses_with_declaring_class=false
cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.reduce_indentation=false
+cleanup.redundant_comparator=false
+cleanup.redundant_falling_through_block_end=false
cleanup.remove_private_constructors=true
cleanup.remove_redundant_modifiers=false
cleanup.remove_redundant_semicolons=true
@@ -37,25 +85,57 @@ cleanup.remove_redundant_type_arguments=true
cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true
cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_array_creation=false
cleanup.remove_unnecessary_casts=true
cleanup.remove_unnecessary_nls_tags=false
cleanup.remove_unused_imports=true
cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_method_parameters=false
cleanup.remove_unused_private_fields=true
cleanup.remove_unused_private_members=false
cleanup.remove_unused_private_methods=true
cleanup.remove_unused_private_types=true
+cleanup.return_expression=false
+cleanup.simplify_lambda_expression_and_method_ref=false
+cleanup.single_used_field=false
cleanup.sort_members=false
cleanup.sort_members_all=false
+cleanup.standard_comparison=false
+cleanup.static_inner_class=false
+cleanup.strictly_equal_or_different=false
+cleanup.stringbuffer_to_stringbuilder=false
+cleanup.stringbuilder=false
+cleanup.stringbuilder_for_local_vars=true
+cleanup.stringconcat_to_textblock=false
+cleanup.substring=false
+cleanup.switch=false
+cleanup.system_property=false
+cleanup.system_property_boolean=false
+cleanup.system_property_file_encoding=false
+cleanup.system_property_file_separator=false
+cleanup.system_property_line_separator=false
+cleanup.system_property_path_separator=false
+cleanup.ternary_operator=false
+cleanup.try_with_resource=false
+cleanup.unlooped_while=false
+cleanup.unreachable_block=false
cleanup.use_anonymous_class_creation=false
+cleanup.use_autoboxing=false
cleanup.use_blocks=false
cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_directly_map_method=false
cleanup.use_lambda=true
cleanup.use_parentheses_in_expressions=false
+cleanup.use_string_is_blank=false
cleanup.use_this_for_non_static_field_access=false
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
cleanup.use_this_for_non_static_method_access=false
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_unboxing=false
+cleanup.use_var=false
+cleanup.useless_continue=false
+cleanup.useless_return=false
+cleanup.valueof_rather_than_instantiation=false
cleanup_profile=_CDT
cleanup_settings_version=2
eclipse.preferences.version=1
diff --git a/build/org.eclipse.cdt.make.ui.tests/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.make.ui.tests/META-INF/MANIFEST.MF
index 07aba7c53c2..b5b4a23f36a 100644
--- a/build/org.eclipse.cdt.make.ui.tests/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.make.ui.tests/META-INF/MANIFEST.MF
@@ -1,6 +1,6 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
-Bundle-Name: org.eclipse.cdt.make.ui.tests
+Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.cdt.make.ui.tests;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: org.eclipse.cdt.make.ui.tests.MakeUITestsPlugin
@@ -10,6 +10,7 @@ Require-Bundle: org.eclipse.ui,
org.junit;bundle-version="4.10.0",
org.eclipse.cdt.core.tests
Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-Vendor: Eclipse.org
+Bundle-RequiredExecutionEnvironment: JavaSE-11
+Bundle-Vendor: %providerName
Automatic-Module-Name: org.eclipse.cdt.make.ui.tests
+Bundle-Localization: plugin
diff --git a/build/org.eclipse.cdt.make.ui.tests/about.html b/build/org.eclipse.cdt.make.ui.tests/about.html
index 164f781a8fd..b3134865230 100644
--- a/build/org.eclipse.cdt.make.ui.tests/about.html
+++ b/build/org.eclipse.cdt.make.ui.tests/about.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
</head>
+
<body lang="EN-US">
<h2>About This Content</h2>
@@ -16,7 +17,7 @@
(&quot;Content&quot;). Unless otherwise indicated below, the Content
is provided to you under the terms and conditions of the Eclipse
Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ available at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
@@ -29,8 +30,9 @@
license exists, contact the Redistributor. Unless otherwise indicated
below, the terms and conditions of the EPL still apply to any source
code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ href="https://www.eclipse.org/">https://www.eclipse.org</a>.
</p>
</body>
+
</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.make.ui.tests/build.properties b/build/org.eclipse.cdt.make.ui.tests/build.properties
index 9cbab3c135e..2b112c46131 100644
--- a/build/org.eclipse.cdt.make.ui.tests/build.properties
+++ b/build/org.eclipse.cdt.make.ui.tests/build.properties
@@ -2,5 +2,6 @@ source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
+ plugin.properties,\
about.html
src.includes = about.html
diff --git a/build/org.eclipse.cdt.make.ui.tests/plugin.properties b/build/org.eclipse.cdt.make.ui.tests/plugin.properties
new file mode 100644
index 00000000000..15839497399
--- /dev/null
+++ b/build/org.eclipse.cdt.make.ui.tests/plugin.properties
@@ -0,0 +1,14 @@
+##################################################################################
+# Copyright (c) 2020 Torbjörn Svensson and others. All rights reserved.
+# This program and the accompanying materials are made available under the terms
+# of the Eclipse Public License 2.0 which accompanies this distribution, and is
+# available at https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+# Torbjörn Svensson - initial API and implementation
+##################################################################################
+
+pluginName = org.eclipse.cdt.make.ui.tests
+providerName = Eclipse.org
diff --git a/build/org.eclipse.cdt.make.ui/.classpath b/build/org.eclipse.cdt.make.ui/.classpath
index eca7bdba8f0..e801ebfb468 100644
--- a/build/org.eclipse.cdt.make.ui/.classpath
+++ b/build/org.eclipse.cdt.make.ui/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
diff --git a/build/org.eclipse.cdt.make.ui/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.make.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.make.ui/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.make.ui/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.make.ui/.settings/org.eclipse.jdt.core.prefs
index 2b6ecff8a01..e3a8104f9ca 100644
--- a/build/org.eclipse.cdt.make.ui/.settings/org.eclipse.jdt.core.prefs
+++ b/build/org.eclipse.cdt.make.ui/.settings/org.eclipse.jdt.core.prefs
@@ -30,9 +30,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -49,6 +49,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
@@ -107,6 +108,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
@@ -144,13 +146,14 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -158,21 +161,24 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@@ -264,11 +270,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@@ -299,6 +306,8 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@@ -323,13 +332,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@@ -377,6 +390,8 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do no
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@@ -413,9 +428,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@@ -454,10 +472,14 @@ org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/build/org.eclipse.cdt.make.ui/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.make.ui/.settings/org.eclipse.jdt.ui.prefs
index e44576346c4..d35ba9b5231 100644
--- a/build/org.eclipse.cdt.make.ui/.settings/org.eclipse.jdt.ui.prefs
+++ b/build/org.eclipse.cdt.make.ui/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,4 @@
+cleanup.add_all=false
cleanup.add_default_serial_version_id=true
cleanup.add_generated_serial_version_id=false
cleanup.add_missing_annotations=true
@@ -11,25 +12,72 @@ cleanup.always_use_blocks=true
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=false
cleanup.always_use_this_for_non_static_method_access=false
+cleanup.array_with_curly=false
+cleanup.arrays_fill=false
+cleanup.bitwise_conditional_expression=false
+cleanup.boolean_literal=false
+cleanup.boolean_value_rather_than_comparison=false
+cleanup.break_loop=false
+cleanup.collection_cloning=false
+cleanup.comparing_on_criteria=false
+cleanup.comparison_statement=false
+cleanup.controlflow_merge=false
cleanup.convert_functional_interfaces=false
cleanup.convert_to_enhanced_for_loop=false
+cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
+cleanup.convert_to_switch_expressions=false
cleanup.correct_indentation=false
+cleanup.do_while_rather_than_while=true
+cleanup.double_negation=false
+cleanup.else_if=false
+cleanup.embedded_if=false
+cleanup.evaluate_nullable=false
+cleanup.extract_increment=false
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
+cleanup.hash=false
+cleanup.if_condition=false
cleanup.insert_inferred_type_arguments=false
+cleanup.instanceof=false
+cleanup.instanceof_keyword=false
+cleanup.invert_equals=false
+cleanup.join=false
+cleanup.lazy_logical_operator=false
cleanup.make_local_variable_final=true
cleanup.make_parameters_final=false
cleanup.make_private_fields_final=true
cleanup.make_type_abstract_if_missing_method=false
cleanup.make_variable_declarations_final=false
+cleanup.map_cloning=false
+cleanup.merge_conditional_blocks=false
+cleanup.multi_catch=false
cleanup.never_use_blocks=false
cleanup.never_use_parentheses_in_expressions=true
+cleanup.no_string_creation=false
+cleanup.no_super=false
+cleanup.number_suffix=false
+cleanup.objects_equals=false
+cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
+cleanup.operand_factorization=false
cleanup.organize_imports=true
+cleanup.overridden_assignment=false
+cleanup.plain_replacement=false
+cleanup.precompile_regex=false
+cleanup.primitive_comparison=false
+cleanup.primitive_parsing=false
+cleanup.primitive_rather_than_wrapper=false
+cleanup.primitive_serialization=false
+cleanup.pull_out_if_from_if_else=false
+cleanup.pull_up_assignment=false
+cleanup.push_down_negation=false
cleanup.qualify_static_field_accesses_with_declaring_class=false
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
cleanup.qualify_static_member_accesses_with_declaring_class=false
cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.reduce_indentation=false
+cleanup.redundant_comparator=false
+cleanup.redundant_falling_through_block_end=false
cleanup.remove_private_constructors=true
cleanup.remove_redundant_modifiers=false
cleanup.remove_redundant_semicolons=true
@@ -37,25 +85,57 @@ cleanup.remove_redundant_type_arguments=true
cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true
cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_array_creation=false
cleanup.remove_unnecessary_casts=true
cleanup.remove_unnecessary_nls_tags=false
cleanup.remove_unused_imports=true
cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_method_parameters=false
cleanup.remove_unused_private_fields=true
cleanup.remove_unused_private_members=false
cleanup.remove_unused_private_methods=true
cleanup.remove_unused_private_types=true
+cleanup.return_expression=false
+cleanup.simplify_lambda_expression_and_method_ref=false
+cleanup.single_used_field=false
cleanup.sort_members=false
cleanup.sort_members_all=false
+cleanup.standard_comparison=false
+cleanup.static_inner_class=false
+cleanup.strictly_equal_or_different=false
+cleanup.stringbuffer_to_stringbuilder=false
+cleanup.stringbuilder=false
+cleanup.stringbuilder_for_local_vars=true
+cleanup.stringconcat_to_textblock=false
+cleanup.substring=false
+cleanup.switch=false
+cleanup.system_property=false
+cleanup.system_property_boolean=false
+cleanup.system_property_file_encoding=false
+cleanup.system_property_file_separator=false
+cleanup.system_property_line_separator=false
+cleanup.system_property_path_separator=false
+cleanup.ternary_operator=false
+cleanup.try_with_resource=false
+cleanup.unlooped_while=false
+cleanup.unreachable_block=false
cleanup.use_anonymous_class_creation=false
+cleanup.use_autoboxing=false
cleanup.use_blocks=false
cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_directly_map_method=false
cleanup.use_lambda=true
cleanup.use_parentheses_in_expressions=false
+cleanup.use_string_is_blank=false
cleanup.use_this_for_non_static_field_access=false
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
cleanup.use_this_for_non_static_method_access=false
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_unboxing=false
+cleanup.use_var=false
+cleanup.useless_continue=false
+cleanup.useless_return=false
+cleanup.valueof_rather_than_instantiation=false
cleanup_profile=_CDT
cleanup_settings_version=2
eclipse.preferences.version=1
diff --git a/build/org.eclipse.cdt.make.ui/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.make.ui/META-INF/MANIFEST.MF
index 76920fe95a5..a22897a70e7 100644
--- a/build/org.eclipse.cdt.make.ui/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.make.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.cdt.make.ui; singleton:=true
-Bundle-Version: 7.3.100.qualifier
+Bundle-Version: 8.1.200.qualifier
Bundle-Activator: org.eclipse.cdt.make.internal.ui.MakeUIPlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin
@@ -28,8 +28,8 @@ Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.2.0,4.0.0)",
org.eclipse.ui.editors;bundle-version="[3.2.0,4.0.0)",
org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
org.eclipse.ui;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.cdt.core;bundle-version="[5.0.0,7.0.0)",
- org.eclipse.cdt.ui;bundle-version="[6.0.0,7.0.0)",
+ org.eclipse.cdt.core;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.cdt.ui;bundle-version="[7.0.0,8.0.0)",
org.eclipse.cdt.make.core;bundle-version="[7.0.0,8.1.0)",
org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
org.eclipse.debug.ui;bundle-version="[3.2.0,4.0.0)",
@@ -40,6 +40,5 @@ Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.2.0,4.0.0)",
org.eclipse.tools.templates.freemarker;bundle-version="1.0.0",
org.eclipse.cdt.launch;bundle-version="9.2.0"
Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: com.ibm.icu.text
+Bundle-RequiredExecutionEnvironment: JavaSE-11
Automatic-Module-Name: org.eclipse.cdt.make.ui
diff --git a/build/org.eclipse.cdt.make.ui/about.html b/build/org.eclipse.cdt.make.ui/about.html
index 164f781a8fd..b3134865230 100644
--- a/build/org.eclipse.cdt.make.ui/about.html
+++ b/build/org.eclipse.cdt.make.ui/about.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
</head>
+
<body lang="EN-US">
<h2>About This Content</h2>
@@ -16,7 +17,7 @@
(&quot;Content&quot;). Unless otherwise indicated below, the Content
is provided to you under the terms and conditions of the Eclipse
Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ available at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
@@ -29,8 +30,9 @@
license exists, contact the Redistributor. Unless otherwise indicated
below, the terms and conditions of the EPL still apply to any source
code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ href="https://www.eclipse.org/">https://www.eclipse.org</a>.
</p>
</body>
+
</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.make.ui/build.properties b/build/org.eclipse.cdt.make.ui/build.properties
index d5f2c629194..8c88fa276b3 100644
--- a/build/org.eclipse.cdt.make.ui/build.properties
+++ b/build/org.eclipse.cdt.make.ui/build.properties
@@ -16,7 +16,8 @@ bin.includes = plugin.xml,\
about.html,\
plugin.properties,\
.,\
- META-INF/
+ META-INF/,\
+ css/
source.. = src/
src.includes = schema/,\
about.html
diff --git a/build/org.eclipse.cdt.make.ui/css/e4-dark_make.css b/build/org.eclipse.cdt.make.ui/css/e4-dark_make.css
new file mode 100644
index 00000000000..e9694f42dce
--- /dev/null
+++ b/build/org.eclipse.cdt.make.ui/css/e4-dark_make.css
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2022 Kichwa Coders Canada Inc. and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ ******************************************************************************/
+
+IEclipsePreferences#org-eclipse-cdt-make-ui:org-eclipse-cdt-make-ui {
+ preferences:
+ "org.eclipse.cdt.make.ui.editor.comment=98,98,98"
+ "org.eclipse.cdt.make.ui.editor.keyword=221,40,103"
+ "org.eclipse.cdt.make.ui.editor.macro_ref=121,171,255"
+ "org.eclipse.cdt.make.ui.editor.macro_def=255,191,38"
+ "org.eclipse.cdt.make.ui.editor.function=18,144,195"
+ "org.eclipse.cdt.make.ui.editor.default=200,200,200"
+ "org.eclipse.cdt.make.ui.editor.matching.brackets.color=170,170,170"
+}
diff --git a/build/org.eclipse.cdt.make.ui/plugin.xml b/build/org.eclipse.cdt.make.ui/plugin.xml
index 76e21adb9d2..69eaf7532e3 100644
--- a/build/org.eclipse.cdt.make.ui/plugin.xml
+++ b/build/org.eclipse.cdt.make.ui/plugin.xml
@@ -658,4 +658,13 @@
tabClass="org.eclipse.cdt.make.internal.ui.MakeBuildSettingsTab">
</provider>
</extension>
+ <extension
+ point="org.eclipse.e4.ui.css.swt.theme">
+ <stylesheet
+ uri="css/e4-dark_make.css">
+ <themeid
+ refid="org.eclipse.e4.ui.css.theme.e4_dark">
+ </themeid>
+ </stylesheet>
+ </extension>
</plugin>
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/MakeEnvironmentBlock.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/MakeEnvironmentBlock.java
index de4e28f8d14..0965433fa65 100644
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/MakeEnvironmentBlock.java
+++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/MakeEnvironmentBlock.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2015 QNX Software Systems and others.
+ * Copyright (c) 2004, 2020 QNX Software Systems and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,9 +10,11 @@
*
* Contributors:
* QNX Software Systems - initial API and implementation
+ * Sergei Kovalchuk (NXP) - Switch dependency from com.ibm.icu to java.text
*******************************************************************************/
package org.eclipse.cdt.make.internal.ui;
+import java.text.MessageFormat;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Hashtable;
@@ -68,8 +70,6 @@ import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.ui.dialogs.ListSelectionDialog;
-import com.ibm.icu.text.MessageFormat;
-
/**
* @deprecated as of CDT 4.0. This tab was used to set preferences/properties
* for 3.X style projects.
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/MakeResources.properties b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/MakeResources.properties
index 0b891312884..f6b7cc42994 100644
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/MakeResources.properties
+++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/MakeResources.properties
@@ -15,8 +15,6 @@
# IBM Corporation
###############################################################################
-MakeCWizard.title=C/Make Project
-MakeCWizard.description=Create a New C Project using 'make' to build it
MakeEnvironmentBlock.10=&Remove
MakeEnvironmentBlock.11=New Environment Variable
MakeEnvironmentBlock.12=Overwrite variable?
@@ -26,11 +24,7 @@ MakeEnvironmentBlock.15=Select Environment Variables
MakeEnvironmentBlock.16=Edit Environment Variable
MakeEnvironmentBlock.17=&Append environment to native environment
MakeEnvironmentBlock.18=Re&place native environment with specified environment
-MakeCWizard.task_name=Creating C project with Make builder...
-MakeCCWizard.title=C++/Make Project
-MakeCCWizard.description=Create a New C++ Project using 'make' to build it
-MakeCCWizard.task_name=Creating C++ project with Make builder...
MakeEnvironmentBlock.0=Variable
MakeEnvironmentBlock.1=Value
MakeEnvironmentBlock.2=&Name:
@@ -42,15 +36,6 @@ MakeEnvironmentBlock.7=N&ew...
MakeEnvironmentBlock.8=Se&lect...
MakeEnvironmentBlock.9=E&dit...
-MakeCWizardSettings.title=C/Make Project Settings
-MakeCWizardSettings.description=Define the project and 'make' builder settings
-
-MakeCCWizardSettings.title=C++/Make Project Settings
-MakeCCWizardSettings.description=Define the project and 'make' builder settings
-
-WizardMakeProjectConversion.title=Convert to a C/C++ project
-WizardMakeProjectConversion.description=The wizard adds C/C++ Nature to the selected projects to enable C/C++ Tools Support for them.
-WizardMakeProjectConversion.monitor.convertingToMakeProject=Converting to C/C++ Project...
WizardMakeProjectConversion.projectOptions.title=Project options
WizardMakeProjectConversion.projectOptions.projectType=Specify project type
WizardMakeProjectConversion.projectOptions.projectTypeTable=Project type:
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/MakeUIPlugin.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/MakeUIPlugin.java
index 7811356737b..6549ae27c29 100644
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/MakeUIPlugin.java
+++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/MakeUIPlugin.java
@@ -39,6 +39,7 @@ import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.editors.text.EditorsUI;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.eclipse.ui.preferences.ScopedPreferenceStore;
@@ -104,7 +105,7 @@ public class MakeUIPlugin extends AbstractUIPlugin {
* Returns the active workbench window or <code>null</code> if none
*/
public static IWorkbenchWindow getActiveWorkbenchWindow() {
- return getDefault().getWorkbench().getActiveWorkbenchWindow();
+ return PlatformUI.getWorkbench().getActiveWorkbenchWindow();
}
/**
@@ -240,7 +241,7 @@ public class MakeUIPlugin extends AbstractUIPlugin {
if (getActiveWorkbenchShell() != null) {
return getActiveWorkbenchShell();
}
- IWorkbenchWindow[] windows = getDefault().getWorkbench().getWorkbenchWindows();
+ IWorkbenchWindow[] windows = PlatformUI.getWorkbench().getWorkbenchWindows();
return windows[0].getShell();
}
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/actions/FoldingMessages.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/actions/FoldingMessages.java
index cf18a1f6ce0..60730ebe5a4 100644
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/actions/FoldingMessages.java
+++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/actions/FoldingMessages.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2020 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -11,17 +11,17 @@
* Contributors:
* IBM Corporation - initial API and implementation
* Patrick Hofer - Bug 326265
+ * Sergei Kovalchuk (NXP) - Switch dependency from com.ibm.icu to java.text
*******************************************************************************/
// this file is based on org.eclipse.cdt.internal.ui.actions.FoldingMessages
package org.eclipse.cdt.make.internal.ui.actions;
+import java.text.MessageFormat;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
-import com.ibm.icu.text.MessageFormat;
-
/**
* Class that gives access to the folding messages resource bundle.
*/
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/dnd/MakeTargetDndUtil.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/dnd/MakeTargetDndUtil.java
index 135321b5871..aae59fc88ec 100644
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/dnd/MakeTargetDndUtil.java
+++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/dnd/MakeTargetDndUtil.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008, 2011 Andrew Gvozdev.
+ * Copyright (c) 2008, 2020 Andrew Gvozdev and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,11 +10,13 @@
*
* Contributors:
* Andrew Gvozdev (Quoin Inc.) - Initial implementation
+ * Sergei Kovalchuk (NXP) - Switch dependency from com.ibm.icu to java.text
*******************************************************************************/
package org.eclipse.cdt.make.internal.ui.dnd;
import java.lang.reflect.InvocationTargetException;
+import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.List;
@@ -43,8 +45,6 @@ import org.eclipse.swt.SWTException;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.widgets.Shell;
-import com.ibm.icu.text.MessageFormat;
-
/**
* A collection of various functions for Make Target View drag and drop support.
*/
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/dnd/TextTransferDropTargetListener.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/dnd/TextTransferDropTargetListener.java
index 2da17066acf..e29fd2ff4d0 100644
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/dnd/TextTransferDropTargetListener.java
+++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/dnd/TextTransferDropTargetListener.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008, 2016 Andrew Gvozdev.
+ * Copyright (c) 2008, 2020 Andrew Gvozdev and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,10 +10,12 @@
*
* Contributors:
* Andrew Gvozdev (Quoin Inc.) - Initial implementation
+ * Sergei Kovalchuk (NXP) - Switch dependency from com.ibm.icu to java.text
*******************************************************************************/
package org.eclipse.cdt.make.internal.ui.dnd;
+import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.List;
@@ -28,8 +30,6 @@ import org.eclipse.swt.dnd.TextTransfer;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.widgets.Shell;
-import com.ibm.icu.text.MessageFormat;
-
/**
* {@code TextTransferDropTargetListener} handles dropping of selected text to
* Make Target View. Each line of miltiline text passed is treated as separate
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/LexicalSortingAction.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/LexicalSortingAction.java
index 7d1f0c7ec78..979c105a0ec 100644
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/LexicalSortingAction.java
+++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/editor/LexicalSortingAction.java
@@ -22,7 +22,7 @@ import org.eclipse.cdt.make.internal.ui.MakeUIImages;
import org.eclipse.cdt.make.internal.ui.MakeUIPlugin;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.ViewerSorter;
+import org.eclipse.jface.viewers.ViewerComparator;
public class LexicalSortingAction extends Action {
private static final String ACTION_NAME = "LexicalSortingAction"; //$NON-NLS-1$
@@ -52,7 +52,7 @@ public class LexicalSortingAction extends Action {
private void valueChanged(boolean on, boolean store) {
setChecked(on);
- fTreeViewer.setSorter(on ? fSorter : null);
+ fTreeViewer.setComparator(on ? fSorter : null);
String key = ACTION_NAME + ".tooltip" + (on ? ".on" : ".off"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
setToolTipText(MakeUIPlugin.getResourceString(key));
@@ -61,7 +61,7 @@ public class LexicalSortingAction extends Action {
}
}
- private class LexicalMakefileSorter extends ViewerSorter {
+ private class LexicalMakefileSorter extends ViewerComparator {
@Override
public int category(Object obj) {
if (obj instanceof IDirective) {
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/part/WizardCheckboxTablePart.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/part/WizardCheckboxTablePart.java
index db8f2a27ddd..66d451977d7 100644
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/part/WizardCheckboxTablePart.java
+++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/part/WizardCheckboxTablePart.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2011 IBM Corporation and others.
+ * Copyright (c) 2000, 2020 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,9 +10,12 @@
*
* Contributors:
* IBM Corporation - initial API and implementation
+ * Sergei Kovalchuk (NXP) - Switch dependency from com.ibm.icu to java.text
*******************************************************************************/
package org.eclipse.cdt.make.internal.ui.part;
+import java.text.MessageFormat;
+
import org.eclipse.cdt.make.internal.ui.MakeUIPlugin;
import org.eclipse.jface.viewers.CheckboxTableViewer;
import org.eclipse.jface.viewers.StructuredViewer;
@@ -22,8 +25,6 @@ import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
-import com.ibm.icu.text.MessageFormat;
-
/**
* @version 1.0
*/
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/preferences/AbstractMakefileEditorPreferencePage.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/preferences/AbstractMakefileEditorPreferencePage.java
index 9dfe6de71aa..9e893457641 100644
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/preferences/AbstractMakefileEditorPreferencePage.java
+++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/preferences/AbstractMakefileEditorPreferencePage.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2002, 2016 QNX Software Systems and others.
+ * Copyright (c) 2002, 2020 QNX Software Systems and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* QNX Software Systems - Initial API and implementation
+ * Sergei Kovalchuk (NXP) - Switch dependency from com.ibm.icu to java.text
*******************************************************************************/
package org.eclipse.cdt.make.internal.ui.preferences;
@@ -17,6 +18,7 @@ package org.eclipse.cdt.make.internal.ui.preferences;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
+import java.text.MessageFormat;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
@@ -42,8 +44,6 @@ import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
-import com.ibm.icu.text.MessageFormat;
-
/**
* AbstraceMakeEditorPreferencePage
*/
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/preferences/ColorEditor.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/preferences/ColorEditor.java
index df4f93a3f96..0e5a6118a67 100644
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/preferences/ColorEditor.java
+++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/preferences/ColorEditor.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2002, 2011 QNX Software Systems and others.
+ * Copyright (c) 2002, 2020 QNX Software Systems and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -16,8 +16,6 @@ package org.eclipse.cdt.make.internal.ui.preferences;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Color;
@@ -68,17 +66,10 @@ public class ColorEditor {
}
});
- fButton.addDisposeListener(new DisposeListener() {
- @Override
- public void widgetDisposed(DisposeEvent event) {
- if (fImage != null) {
- fImage.dispose();
- fImage = null;
- }
- if (fColor != null) {
- fColor.dispose();
- fColor = null;
- }
+ fButton.addDisposeListener(event -> {
+ if (fImage != null) {
+ fImage.dispose();
+ fImage = null;
}
});
}
@@ -104,9 +95,6 @@ public class ColorEditor {
gc.setForeground(display.getSystemColor(SWT.COLOR_BLACK));
gc.drawRectangle(0, 2, fExtent.x - 1, fExtent.y - 4);
- if (fColor != null)
- fColor.dispose();
-
fColor = new Color(display, fColorValue);
gc.setBackground(fColor);
gc.fillRectangle(1, 3, fExtent.x - 2, fExtent.y - 5);
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/preferences/MakefileEditorPreferencePage.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/preferences/MakefileEditorPreferencePage.java
index 4a353c19cfb..edeb8140b1d 100644
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/preferences/MakefileEditorPreferencePage.java
+++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/preferences/MakefileEditorPreferencePage.java
@@ -19,7 +19,6 @@ package org.eclipse.cdt.make.internal.ui.preferences;
import java.util.ArrayList;
import java.util.List;
-import org.eclipse.cdt.make.internal.ui.MakeUIPlugin;
import org.eclipse.cdt.make.internal.ui.preferences.OverlayPreferenceStore.OverlayKey;
import org.eclipse.cdt.make.internal.ui.text.ColorManager;
import org.eclipse.cdt.make.ui.IMakeHelpContextIds;
@@ -37,6 +36,8 @@ import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Color;
@@ -47,8 +48,7 @@ import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.model.WorkbenchViewerComparator;
/**
@@ -241,20 +241,21 @@ public class MakefileEditorPreferencePage extends AbstractMakefileEditorPreferen
@Override
protected Control createContents(Composite parent) {
- MakeUIPlugin.getDefault().getWorkbench().getHelpSystem().setHelp(getControl(),
+ PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(),
IMakeHelpContextIds.MAKE_EDITOR_PREFERENCE_PAGE);
getOverlayStore().load();
getOverlayStore().start();
- TabFolder folder = new TabFolder(parent, SWT.NONE);
+ CTabFolder folder = new CTabFolder(parent, SWT.NONE);
folder.setLayout(new TabFolderLayout());
folder.setLayoutData(new GridData(GridData.FILL_BOTH));
- TabItem item = new TabItem(folder, SWT.NONE);
+ CTabItem item = new CTabItem(folder, SWT.NONE);
+ folder.setSelection(0);
item.setText(MakefilePreferencesMessages.getString("MakefileEditorPreferencePage.syntax")); //$NON-NLS-1$
item.setControl(createSyntaxPage(folder));
- item = new TabItem(folder, SWT.NONE);
+ item = new CTabItem(folder, SWT.NONE);
item.setText(MakefilePreferencesMessages.getString("MakefileEditorPreferencePage.folding")); //$NON-NLS-1$
item.setControl(createFoldingTabContent(folder));
@@ -406,7 +407,7 @@ public class MakefileEditorPreferencePage extends AbstractMakefileEditorPreferen
return colorComposite;
}
- private Composite createFoldingTabContent(TabFolder folder) {
+ private Composite createFoldingTabContent(CTabFolder folder) {
Composite composite = new Composite(folder, SWT.NULL);
// assume parent page uses griddata
GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_CENTER | GridData.VERTICAL_ALIGN_FILL);
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/text/ColorManager.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/text/ColorManager.java
index a69e2ca3dba..e4a82572e23 100644
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/text/ColorManager.java
+++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/text/ColorManager.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2013 QNX Software Systems and others.
+ * Copyright (c) 2000, 2020 QNX Software Systems and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -54,13 +54,6 @@ public class ColorManager implements ISharedTextColors {
protected Map<RGB, Color> fColorTable = new HashMap<>(10);
@Override
- public void dispose() {
- for (Color color : fColorTable.values()) {
- color.dispose();
- }
- }
-
- @Override
public Color getColor(RGB rgb) {
Color color = fColorTable.get(rgb);
if (color == null) {
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/text/makefile/MakefileCompletionProcessor.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/text/makefile/MakefileCompletionProcessor.java
index 893142798d6..37cb79ed3fb 100644
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/text/makefile/MakefileCompletionProcessor.java
+++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/text/makefile/MakefileCompletionProcessor.java
@@ -78,7 +78,7 @@ public class MakefileCompletionProcessor implements IContentAssistProcessor {
protected IEditorPart fEditor;
protected IWorkingCopyManager fManager;
- private Comparator<IDirective> directivesComparator = new Comparator<IDirective>() {
+ private Comparator<IDirective> directivesComparator = new Comparator<>() {
@Override
public int compare(IDirective o1, IDirective o2) {
return o1.toString().compareToIgnoreCase(o2.toString());
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/IMakeHelpContextIds.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/IMakeHelpContextIds.java
index 10c6557f44a..74f0991f05e 100644
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/IMakeHelpContextIds.java
+++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/IMakeHelpContextIds.java
@@ -28,13 +28,6 @@ public interface IMakeHelpContextIds {
public static final String SCANNER_CONFIG_DISCOVERY_OPTIONS = PREFIX + "discovery_preferences"; //$NON-NLS-1$
public static final String MAKE_PROP_DISCOVERY = PREFIX + "std_prop_discovery"; //$NON-NLS-1$
public static final String MAKE_VIEW = PREFIX + "make_targets_view"; //$NON-NLS-1$
- public static final String MAKE_PROJ_WIZ_NAME_PAGE = PREFIX + "new_proj_wiz_s_name"; //$NON-NLS-1$
- public static final String MAKE_PROJ_WIZ_PROJECTS_TAB = PREFIX + "new_proj_wiz_s_proj"; //$NON-NLS-1$
- public static final String MAKE_PROJ_WIZ_MAKEBUILDER_TAB = PREFIX + "new_proj_wiz_s_mbuilder"; //$NON-NLS-1$
- public static final String MAKE_PROJ_WIZ_ERRORPARSER_TAB = PREFIX + "new_proj_wiz_s_errorp"; //$NON-NLS-1$
- public static final String MAKE_PROJ_WIZ_BINARYPARSER_TAB = PREFIX + "new_proj_wiz_s_binary"; //$NON-NLS-1$
- public static final String MAKE_PROJ_WIZ_DISCOVERY_TAB = PREFIX + "new_proj_wiz_s_discovery"; //$NON-NLS-1$
- public static final String MAKE_PROJ_WIZ_INDEXER_TAB = PREFIX + "new_proj_wiz_s_cindexer"; //$NON-NLS-1$
public static final String MAKE_PROP_ERROR_PARSER = PREFIX + "std_prop_error"; //$NON-NLS-1$
public static final String MAKE_PROP_BINARY_PARSER = PREFIX + "std_prop_binary"; //$NON-NLS-1$
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/MakeContentProvider.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/MakeContentProvider.java
index 19ed970c915..ebe8d1102ca 100644
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/MakeContentProvider.java
+++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/MakeContentProvider.java
@@ -422,7 +422,7 @@ public class MakeContentProvider implements ITreeContentProvider, IMakeTargetLis
/**
* Check if the resource is in the list of source entries.
-
+ *
* @param rc - resource to check.
* @return {@code true} if the resource is a source folder, {@code false} otherwise.
*
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/DiscoveredPathContainerPage.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/DiscoveredPathContainerPage.java
index 08acbbe32e2..d46cf140550 100644
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/DiscoveredPathContainerPage.java
+++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/DiscoveredPathContainerPage.java
@@ -152,23 +152,17 @@ public class DiscoveredPathContainerPage extends WizardPage implements IPathEntr
fDiscoveredContainerList.setLabelText(MakeUIPlugin.getResourceString(CONTAINER_LIST_LABEL));
fDiscoveredContainerList.setTreeExpansionLevel(2);
- fDiscoveredContainerList.setViewerSorter(new DiscoveredElementSorter());
+ fDiscoveredContainerList.setViewerComparator(new DiscoveredElementSorter());
dirty = false;
deletedEntries = new ArrayList<>();
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.IDialogPage#dispose()
- */
@Override
public void dispose() {
deregisterActionHandlers();
super.dispose();
}
- /* (non-Javadoc)
- * @see org.eclipse.cdt.ui.wizards.ICPathContainerPage#initialize(org.eclipse.cdt.core.model.ICProject, org.eclipse.cdt.core.model.IPathEntry[])
- */
@Override
public void initialize(ICProject project, IPathEntry[] currentEntries) {
fCProject = project;
@@ -179,9 +173,6 @@ public class DiscoveredPathContainerPage extends WizardPage implements IPathEntr
}
}
- /* (non-Javadoc)
- * @see org.eclipse.cdt.ui.wizards.ICPathContainerPage#finish()
- */
@Override
public boolean finish() {
if (!dirty) {
@@ -274,17 +265,11 @@ public class DiscoveredPathContainerPage extends WizardPage implements IPathEntr
return false;
}
- /* (non-Javadoc)
- * @see org.eclipse.cdt.ui.wizards.ICPathContainerPage#getContainerEntries()
- */
@Override
public IContainerEntry[] getNewContainers() {
return new IContainerEntry[] { fPathEntry };
}
- /* (non-Javadoc)
- * @see org.eclipse.cdt.ui.wizards.ICPathContainerPage#setSelection(org.eclipse.cdt.core.model.IPathEntry)
- */
@Override
public void setSelection(IContainerEntry containerEntry) {
if (containerEntry != null) {
@@ -377,9 +362,6 @@ public class DiscoveredPathContainerPage extends WizardPage implements IPathEntr
return container;
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
- */
@Override
public void createControl(Composite parent) {
PixelConverter converter = new PixelConverter(parent);
@@ -463,28 +445,17 @@ public class DiscoveredPathContainerPage extends WizardPage implements IPathEntr
private class DiscoveredContainerAdapter implements IDialogFieldListener, ITreeListAdapter<DiscoveredElement> {
private final Object[] EMPTY_ARR = new Object[0];
- // ---------- IDialogFieldListener --------
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.ui.wizards.dialogfields.IDialogFieldListener#dialogFieldChanged(org.eclipse.cdt.internal.ui.wizards.dialogfields.DialogField)
- */
@Override
public void dialogFieldChanged(DialogField field) {
// TODO Auto-generated method stub
}
- // -------- IListAdapter --------
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.ui.wizards.dialogfields.ITreeListAdapter#customButtonPressed(org.eclipse.cdt.internal.ui.wizards.dialogfields.TreeListDialogField, int)
- */
@Override
public void customButtonPressed(TreeListDialogField<DiscoveredElement> field, int index) {
containerPageCustomButtonPressed(field, index);
}
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.ui.wizards.dialogfields.ITreeListAdapter#selectionChanged(org.eclipse.cdt.internal.ui.wizards.dialogfields.TreeListDialogField)
- */
@Override
public void selectionChanged(TreeListDialogField<DiscoveredElement> field) {
if (copyTextAction != null) {
@@ -493,27 +464,18 @@ public class DiscoveredPathContainerPage extends WizardPage implements IPathEntr
containerPageSelectionChanged(field);
}
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.ui.wizards.dialogfields.ITreeListAdapter#doubleClicked(org.eclipse.cdt.internal.ui.wizards.dialogfields.TreeListDialogField)
- */
@Override
public void doubleClicked(TreeListDialogField<DiscoveredElement> field) {
// TODO Auto-generated method stub
}
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.ui.wizards.dialogfields.ITreeListAdapter#keyPressed(org.eclipse.cdt.internal.ui.wizards.dialogfields.TreeListDialogField, org.eclipse.swt.events.KeyEvent)
- */
@Override
public void keyPressed(TreeListDialogField<DiscoveredElement> field, KeyEvent event) {
// TODO Auto-generated method stub
}
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.ui.wizards.dialogfields.ITreeListAdapter#getChildren(org.eclipse.cdt.internal.ui.wizards.dialogfields.TreeListDialogField, java.lang.Object)
- */
@Override
public Object[] getChildren(TreeListDialogField<DiscoveredElement> field, Object element) {
if (element instanceof DiscoveredElement) {
@@ -523,9 +485,6 @@ public class DiscoveredPathContainerPage extends WizardPage implements IPathEntr
return EMPTY_ARR;
}
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.ui.wizards.dialogfields.ITreeListAdapter#getParent(org.eclipse.cdt.internal.ui.wizards.dialogfields.TreeListDialogField, java.lang.Object)
- */
@Override
public Object getParent(TreeListDialogField<DiscoveredElement> field, Object element) {
if (element instanceof DiscoveredElement) {
@@ -535,9 +494,6 @@ public class DiscoveredPathContainerPage extends WizardPage implements IPathEntr
return null;
}
- /* (non-Javadoc)
- * @see org.eclipse.cdt.internal.ui.wizards.dialogfields.ITreeListAdapter#hasChildren(org.eclipse.cdt.internal.ui.wizards.dialogfields.TreeListDialogField, java.lang.Object)
- */
@Override
public boolean hasChildren(TreeListDialogField<DiscoveredElement> field, Object element) {
if (element instanceof DiscoveredElement) {
@@ -842,9 +798,6 @@ public class DiscoveredPathContainerPage extends WizardPage implements IPathEntr
return rc;
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.action.IAction#run()
- */
@Override
public void run() {
if (discoveredEntry != null) {
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/views/DeleteTargetAction.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/views/DeleteTargetAction.java
index ce35cf9faad..4f3e4f98bc6 100644
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/views/DeleteTargetAction.java
+++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/views/DeleteTargetAction.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2016 QNX Software Systems and others.
+ * Copyright (c) 2000, 2020 QNX Software Systems and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,9 +10,11 @@
*
* Contributors:
* QNX Software Systems - Initial API and implementation
+ * Sergei Kovalchuk (NXP) - Switch dependency from com.ibm.icu to java.text
*******************************************************************************/
package org.eclipse.cdt.make.ui.views;
+import java.text.MessageFormat;
import java.util.List;
import org.eclipse.cdt.make.core.IMakeTarget;
@@ -30,8 +32,6 @@ import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.actions.SelectionListenerAction;
-import com.ibm.icu.text.MessageFormat;
-
/**
* @noextend This class is not intended to be subclassed by clients.
* @noinstantiate This class is not intended to be instantiated by clients.
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/views/MakeView.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/views/MakeView.java
index de3957e0071..66d69efa839 100644
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/views/MakeView.java
+++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/views/MakeView.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2015 QNX Software Systems and others.
+ * Copyright (c) 2000, 2021 QNX Software Systems and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -15,6 +15,17 @@
*******************************************************************************/
package org.eclipse.cdt.make.ui.views;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.cdt.core.CCorePlugin;
+import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
+import org.eclipse.cdt.core.settings.model.ICProjectDescription;
+import org.eclipse.cdt.core.settings.model.ICProjectDescriptionManager;
+import org.eclipse.cdt.core.settings.model.ICSourceEntry;
+import org.eclipse.cdt.make.core.IMakeTarget;
+import org.eclipse.cdt.make.core.IMakeTargetManager;
+import org.eclipse.cdt.make.core.MakeCorePlugin;
import org.eclipse.cdt.make.internal.ui.MakeUIPlugin;
import org.eclipse.cdt.make.internal.ui.dnd.AbstractContainerAreaDropAdapter;
import org.eclipse.cdt.make.internal.ui.dnd.AbstractSelectionDragAdapter;
@@ -30,8 +41,13 @@ import org.eclipse.cdt.make.ui.IMakeHelpContextIds;
import org.eclipse.cdt.make.ui.MakeContentProvider;
import org.eclipse.cdt.make.ui.MakeLabelProvider;
import org.eclipse.cdt.make.ui.TargetSourceContainer;
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.Path;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager;
@@ -41,12 +57,16 @@ import org.eclipse.jface.bindings.BindingManagerEvent;
import org.eclipse.jface.bindings.IBindingManagerListener;
import org.eclipse.jface.util.DelegatingDragAdapter;
import org.eclipse.jface.util.DelegatingDropAdapter;
+import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.ViewerComparator;
import org.eclipse.swt.SWT;
@@ -57,12 +77,21 @@ import org.eclipse.swt.dnd.TextTransfer;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.ScrollBar;
import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Tree;
import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.IViewSite;
import org.eclipse.ui.IWorkbenchCommandConstants;
+import org.eclipse.ui.IWorkingSet;
+import org.eclipse.ui.IWorkingSetManager;
+import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.ResourceWorkingSetFilter;
import org.eclipse.ui.actions.ActionFactory;
import org.eclipse.ui.actions.TextActionHandler;
+import org.eclipse.ui.actions.WorkingSetFilterActionGroup;
import org.eclipse.ui.keys.IBindingService;
import org.eclipse.ui.part.DrillDownAdapter;
import org.eclipse.ui.part.ViewPart;
@@ -75,6 +104,17 @@ import org.eclipse.ui.part.ViewPart;
*/
public class MakeView extends ViewPart {
private static final String TARGET_BUILD_LAST_COMMAND = "org.eclipse.cdt.make.ui.targetBuildLastCommand"; //$NON-NLS-1$
+ // Persistance tags.
+ private static final String TAG_SELECTION = "selection"; //$NON-NLS-1$
+ private static final String TAG_EXPANDED = "expanded"; //$NON-NLS-1$
+ private static final String TAG_CONTAINER = "container"; //$NON-NLS-1$
+ private static final String TAG_PATH = "path"; //$NON-NLS-1$
+ private static final String TAG_MAKE_TARGET = "makeTarget"; //$NON-NLS-1$
+ private static final String TAG_SOURCE_CONTAINER = "sourceContainer"; //$NON-NLS-1$
+ private static final String TAG_NAME = "name"; //$NON-NLS-1$
+ private static final String TAG_VERTICAL_POSITION = "verticalPosition"; //$NON-NLS-1$
+ private static final String TAG_HORIZONTAL_POSITION = "horizontalPosition"; //$NON-NLS-1$
+ private static final String TAG_WORKINGSET = "workingSet"; //$NON-NLS-1$
private Clipboard clipboard;
@@ -89,6 +129,43 @@ public class MakeView extends ViewPart {
private DrillDownAdapter drillDownAdapter;
private FilterEmtpyFoldersAction trimEmptyFolderAction;
private IBindingService bindingService;
+ private ResourceWorkingSetFilter workingSetFilter = new ResourceWorkingSetFilter();
+ private WorkingSetFilterActionGroup workingSetGroup;
+ private IMemento memento;
+
+ private IPropertyChangeListener workingSetListener = ev -> {
+ String property = ev.getProperty();
+ Object newValue = ev.getNewValue();
+ Object oldValue = ev.getOldValue();
+ IWorkingSet filterWorkingSet = workingSetFilter.getWorkingSet();
+
+ if (property == null) {
+ return;
+ }
+ if (IWorkingSetManager.CHANGE_WORKING_SET_REMOVE.equals(property) && oldValue == filterWorkingSet) {
+ setWorkingSet(null);
+ } else if (IWorkingSetManager.CHANGE_WORKING_SET_CONTENT_CHANGE.equals(property)
+ && newValue == filterWorkingSet) {
+ fViewer.refresh();
+ }
+ };
+
+ IPropertyChangeListener workingSetUpdater = new IPropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ String property = event.getProperty();
+
+ if (WorkingSetFilterActionGroup.CHANGE_WORKING_SET.equals(property)) {
+ Object newValue = event.getNewValue();
+
+ if (newValue instanceof IWorkingSet) {
+ setWorkingSet((IWorkingSet) newValue);
+ } else if (newValue == null) {
+ setWorkingSet(null);
+ }
+ }
+ }
+ };
public MakeView() {
super();
@@ -101,11 +178,13 @@ public class MakeView extends ViewPart {
@Override
public void createPartControl(Composite parent) {
- MakeUIPlugin.getDefault().getWorkbench().getHelpSystem().setHelp(parent, IMakeHelpContextIds.MAKE_VIEW);
+ PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, IMakeHelpContextIds.MAKE_VIEW);
fViewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
fViewer.setUseHashlookup(true);
fViewer.setContentProvider(new MakeContentProvider());
fViewer.setLabelProvider(new MakeLabelProvider());
+ initFilters(fViewer);
+
initDragAndDrop();
drillDownAdapter = new DrillDownAdapter(fViewer);
@@ -137,6 +216,17 @@ public class MakeView extends ViewPart {
}
});
fViewer.setInput(ResourcesPlugin.getWorkspace().getRoot());
+
+ if (memento != null) {
+ // The working set selection needs to be restored prior to making the actions
+ // and connecting to the manager
+ restoreStateWorkingSetSelection(memento);
+ }
+
+ //Add the property changes after all of the UI work has been done.
+ IWorkingSetManager wsmanager = getViewSite().getWorkbenchWindow().getWorkbench().getWorkingSetManager();
+ wsmanager.addPropertyChangeListener(workingSetListener);
+
getSite().setSelectionProvider(fViewer);
makeActions();
@@ -149,6 +239,11 @@ public class MakeView extends ViewPart {
if (bindingService != null) {
bindingService.addBindingManagerListener(bindingManagerListener);
}
+
+ if (memento != null) {
+ restoreState(memento);
+ }
+ memento = null;
}
/**
@@ -195,6 +290,8 @@ public class MakeView extends ViewPart {
deleteTargetAction = new DeleteTargetAction(shell);
editTargetAction = new EditTargetAction(shell);
trimEmptyFolderAction = new FilterEmtpyFoldersAction(fViewer);
+ workingSetGroup = new WorkingSetFilterActionGroup(shell, workingSetUpdater);
+ workingSetGroup.setWorkingSet(getWorkingSet());
}
private void contributeToActionBars() {
@@ -208,6 +305,8 @@ public class MakeView extends ViewPart {
textActionHandler.setDeleteAction(deleteTargetAction);
actionBars.setGlobalActionHandler(ActionFactory.RENAME.getId(), editTargetAction);
+
+ workingSetGroup.fillActionBars(actionBars);
}
private void fillLocalToolBar(IToolBarManager toolBar) {
@@ -272,6 +371,7 @@ public class MakeView extends ViewPart {
editTargetAction.selectionChanged(sel);
copyTargetAction.selectionChanged(sel);
pasteTargetAction.selectionChanged(sel);
+ workingSetGroup.updateActionBars();
}
/**
@@ -289,6 +389,12 @@ public class MakeView extends ViewPart {
bindingService = null;
}
+ IWorkingSetManager wsmanager = getViewSite().getWorkbenchWindow().getWorkbench().getWorkingSetManager();
+ if (workingSetListener != null) {
+ wsmanager.removePropertyChangeListener(workingSetListener);
+ workingSetListener = null;
+ }
+
super.dispose();
}
@@ -327,4 +433,234 @@ public class MakeView extends ViewPart {
}
};
+ /**
+ * Returns the working set filter for this view.
+ *
+ * @return the working set
+ * @since 8.1
+ */
+ public IWorkingSet getWorkingSet() {
+ return workingSetFilter.getWorkingSet();
+ }
+
+ /**
+ * Adds the filters to the viewer.
+ *
+ * @param viewer
+ * the viewer
+ */
+ void initFilters(TreeViewer viewer) {
+ viewer.addFilter(workingSetFilter);
+ }
+
+ private void saveState(IMemento memento, Object[] elements) {
+ for (Object element : elements) {
+ if (element instanceof IMakeTarget) {
+ IMakeTarget makeTarget = (IMakeTarget) element;
+ IContainer c = makeTarget.getContainer();
+ if (c.getFullPath() != null) {
+ IMemento elementMem = memento.createChild(TAG_MAKE_TARGET);
+ elementMem.putString(TAG_PATH, c.getFullPath().toPortableString());
+ elementMem.putString(TAG_NAME, makeTarget.getName());
+ }
+ } else if (element instanceof TargetSourceContainer) {
+ TargetSourceContainer targetSourceContainer = (TargetSourceContainer) element;
+ IContainer c = targetSourceContainer.getContainer();
+ if (c.getFullPath() != null) {
+ IMemento elementMem = memento.createChild(TAG_SOURCE_CONTAINER);
+ elementMem.putString(TAG_PATH, c.getFullPath().toPortableString());
+ }
+ } else if (element instanceof IContainer) {
+ IContainer c = (IContainer) element;
+ if (c.getLocation() != null) {
+ IMemento elementMem = memento.createChild(TAG_CONTAINER);
+ elementMem.putString(TAG_PATH, c.getFullPath().toPortableString());
+ }
+ } else {
+ // Unexpected/unknown type, expansion or selection of it will not be restored
+ }
+ }
+ }
+
+ private List<Object> restoreStateElements(IMemento memento) {
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+ IMakeTargetManager makeTargetManager = MakeCorePlugin.getDefault().getTargetManager();
+
+ List<Object> elements = new ArrayList<>();
+ IMemento[] makeTargetMementos = memento.getChildren(TAG_MAKE_TARGET);
+ for (IMemento mem : makeTargetMementos) {
+ String path = mem.getString(TAG_PATH);
+ String name = mem.getString(TAG_NAME);
+ if (path == null || name == null) {
+ continue;
+ }
+ IResource res = root.findMember(Path.fromPortableString(path));
+ if (res instanceof IContainer) {
+ IContainer container = (IContainer) res;
+ try {
+ IMakeTarget makeTarget = makeTargetManager.findTarget(container, name);
+ if (makeTarget != null) {
+ elements.add(makeTarget);
+ }
+ } catch (CoreException e) {
+ continue;
+ }
+ }
+ }
+
+ IMemento[] sourceContainerMementos = memento.getChildren(TAG_SOURCE_CONTAINER);
+ for (IMemento mem : sourceContainerMementos) {
+ String path = mem.getString(TAG_PATH);
+ if (path == null) {
+ continue;
+ }
+ IResource res = root.findMember(Path.fromPortableString(path));
+ if (res == null) {
+ continue;
+ }
+ IProject project = res.getProject();
+ ICSourceEntry[] srcEntries = getSourceEntries(project);
+ for (ICSourceEntry srcEntry : srcEntries) {
+ if (srcEntry.getFullPath().equals(res.getFullPath())) {
+ elements.add(new TargetSourceContainer(srcEntry));
+ }
+ }
+ }
+
+ IMemento[] containerMementos = memento.getChildren(TAG_CONTAINER);
+ for (IMemento mem : containerMementos) {
+ String path = mem.getString(TAG_PATH);
+ if (path == null) {
+ continue;
+ }
+ IResource res = root.findMember(Path.fromPortableString(path));
+ if (res == null) {
+ continue;
+ }
+ elements.add(res);
+ }
+
+ return elements;
+ }
+
+ @Override
+ public void saveState(IMemento memento) {
+ if (fViewer == null) {
+ if (this.memento != null) { //Keep the old state;
+ memento.putMemento(this.memento);
+ }
+ return;
+ }
+
+ //save expanded elements
+ Tree tree = fViewer.getTree();
+ Object[] expandedElements = fViewer.getExpandedElements();
+ if (expandedElements.length > 0) {
+ IMemento expandedMem = memento.createChild(TAG_EXPANDED);
+ saveState(expandedMem, expandedElements);
+ }
+
+ //save selection
+ Object[] elements = ((IStructuredSelection) fViewer.getSelection()).toArray();
+ if (elements.length > 0) {
+ IMemento selectionMem = memento.createChild(TAG_SELECTION);
+ saveState(selectionMem, elements);
+ }
+
+ //save vertical position
+ ScrollBar bar = tree.getVerticalBar();
+ int position = bar != null ? bar.getSelection() : 0;
+ memento.putInteger(TAG_VERTICAL_POSITION, position);
+ //save horizontal position
+ bar = tree.getHorizontalBar();
+ position = bar != null ? bar.getSelection() : 0;
+ memento.putInteger(TAG_HORIZONTAL_POSITION, position);
+
+ //Save the working set away
+ if (workingSetFilter.getWorkingSet() != null) {
+ String wsname = workingSetFilter.getWorkingSet().getName();
+ if (wsname != null) {
+ memento.putString(TAG_WORKINGSET, wsname);
+ }
+ }
+ }
+
+ private void restoreState(IMemento memento) {
+
+ IMemento expandedMemento = memento.getChild(TAG_EXPANDED);
+ if (expandedMemento != null) {
+ fViewer.setExpandedElements(restoreStateElements(expandedMemento).toArray());
+ }
+ IMemento selectionMemento = memento.getChild(TAG_SELECTION);
+ if (selectionMemento != null) {
+ fViewer.setSelection(new StructuredSelection(restoreStateElements(selectionMemento)));
+ }
+
+ Tree tree = fViewer.getTree();
+ ScrollBar bar = tree.getVerticalBar();
+ if (bar != null) {
+ Integer position = memento.getInteger(TAG_VERTICAL_POSITION);
+ if (position != null) {
+ bar.setSelection(position);
+ }
+ }
+ bar = tree.getHorizontalBar();
+ if (bar != null) {
+ Integer position = memento.getInteger(TAG_HORIZONTAL_POSITION);
+ if (position != null) {
+ bar.setSelection(position);
+ }
+ }
+ }
+
+ private void restoreStateWorkingSetSelection(IMemento memento) {
+ String wsname = memento.getString(TAG_WORKINGSET);
+ if (wsname != null && !wsname.isEmpty()) {
+ IWorkingSetManager wsmanager = getViewSite().getWorkbenchWindow().getWorkbench().getWorkingSetManager();
+ IWorkingSet workingSet = wsmanager.getWorkingSet(wsname);
+ if (workingSet != null) {
+ workingSetFilter.setWorkingSet(workingSet);
+ }
+ }
+ }
+
+ /**
+ * @since 8.1
+ */
+ public void setWorkingSet(IWorkingSet workingSet) {
+ Object[] expanded = fViewer.getExpandedElements();
+ ISelection selection = fViewer.getSelection();
+
+ workingSetFilter.setWorkingSet(workingSet);
+ fViewer.refresh();
+ fViewer.setExpandedElements(expanded);
+ if (selection.isEmpty() == false && selection instanceof IStructuredSelection) {
+ IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+ fViewer.reveal(structuredSelection.getFirstElement());
+ }
+ }
+
+ @Override
+ public void init(IViewSite site, IMemento memento) throws PartInitException {
+ super.init(site, memento);
+ this.memento = memento;
+ }
+
+ /**
+ * Get source entries for default setting configuration (i.e. configuration shown in UI).
+ */
+ private static ICSourceEntry[] getSourceEntries(IProject project) {
+ ICProjectDescriptionManager mgr = CCorePlugin.getDefault().getProjectDescriptionManager();
+ ICProjectDescription prjDescription = mgr.getProjectDescription(project, false);
+ if (prjDescription != null) {
+ ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration();
+ if (cfgDescription != null) {
+ ICSourceEntry[] srcEntries = cfgDescription.getResolvedSourceEntries();
+ return srcEntries;
+ }
+ }
+
+ return new ICSourceEntry[0];
+ }
+
}
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/ConvertToMakeProjectWizard.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/ConvertToMakeProjectWizard.java
deleted file mode 100644
index 8d35034f16e..00000000000
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/ConvertToMakeProjectWizard.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2010 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * QNX Software Systems - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.make.ui.wizards;
-
-import org.eclipse.cdt.make.core.MakeCorePlugin;
-import org.eclipse.cdt.make.internal.ui.MakeUIPlugin;
-import org.eclipse.cdt.ui.wizards.conversion.ConversionWizard;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.wizard.Wizard;
-
-/**
- * This wizard provides a method by which the user can
- * add a C nature to a project that previously had no nature associated with it.
- *
- * This wizard was used for 3.X style projects. It is left here for compatibility
- * reasons only. The wizard is superseded by MBS Project Conversion Wizard,
- * class {@code org.eclipse.cdt.managedbuilder.ui.wizards.ConvertToMakeWizard}.
- *
- * @deprecated as of CDT 4.0.
- *
- * @noextend This class is not intended to be subclassed by clients.
- * @noinstantiate This class is not intended to be instantiated by clients.
- */
-@Deprecated
-public class ConvertToMakeProjectWizard extends ConversionWizard {
-
- private static final String WZ_TITLE = "WizardMakeProjectConversion.title"; //$NON-NLS-1$
- private static final String WZ_DESC = "WizardMakeProjectConversion.description"; //$NON-NLS-1$
- private static final String PREFIX = "WizardMakeConversion"; //$NON-NLS-1$
- private static final String WINDOW_TITLE = "WizardMakeConversion.windowTitle"; //$NON-NLS-1$
-
- /**
- * ConvertToStdMakeConversionWizard Wizard constructor
- */
- public ConvertToMakeProjectWizard() {
- this(getWindowTitleResource(), getWzDescriptionResource());
- }
-
- /**
- * ConvertToStdMakeConversionWizard Wizard constructor
- */
- public ConvertToMakeProjectWizard(String title, String desc) {
- super(title, desc);
- }
-
- /**
- * Method getWzDescriptionResource, allows Wizard description label value
- * to be changed by subclasses
- *
- * @return String
- */
- protected static String getWzDescriptionResource() {
- return MakeUIPlugin.getResourceString(WZ_DESC);
- }
-
- /**
- * Method getWzTitleResource, allows Wizard description label value
- * to be changed by subclasses
- *
- * @return String
- */
- protected static String getWzTitleResource() {
- return MakeUIPlugin.getResourceString(WZ_TITLE);
- }
-
- /**
- * Method getWindowTitleResource, allows Wizard Title label value to be
- * changed by subclasses
- *
- * @return String
- */
- protected static String getWindowTitleResource() {
- return MakeUIPlugin.getResourceString(WINDOW_TITLE);
- }
-
- /**
- * Method getPrefix, allows prefix value to be changed by subclasses
- *
- * @return String
- */
- protected static String getPrefix() {
- return PREFIX;
- }
-
- /**
- * Method addPages adds our Simple to C conversion Wizard page.
- *
- * @see Wizard#addPages
- */
- @Override
- public void addPages() {
- addPage(mainPage = new ConvertToMakeProjectWizardPage(getPrefix()));
- }
-
- @Override
- public String getProjectID() {
- return MakeCorePlugin.MAKE_PROJECT_ID;
- }
-
- @Override
- protected void doRun(IProgressMonitor monitor) throws CoreException {
- monitor.beginTask(MakeUIPlugin.getResourceString("WizardMakeProjectConversion.monitor.convertingToMakeProject"), //$NON-NLS-1$
- 2);
- try {
- super.doRun(new SubProgressMonitor(monitor, 1));
- } finally {
- monitor.done();
- }
- }
-}
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/ConvertToMakeProjectWizardPage.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/ConvertToMakeProjectWizardPage.java
deleted file mode 100644
index df7effb66f1..00000000000
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/ConvertToMakeProjectWizardPage.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2010 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * QNX Software Systems - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.make.ui.wizards;
-
-import org.eclipse.cdt.core.CCorePlugin;
-import org.eclipse.cdt.make.core.MakeProjectNature;
-import org.eclipse.cdt.make.core.scannerconfig.ScannerConfigNature;
-import org.eclipse.cdt.make.internal.ui.MakeUIPlugin;
-import org.eclipse.cdt.ui.wizards.conversion.ConvertProjectWizardPage;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.wizards.newresource.BasicNewResourceWizard;
-
-/**
- *
- * ConvertToStdMakeProjectWizardPage
- * Standard main page for a wizard that adds a C project Nature to a project with no nature associated with it.
- * This conversion is one way in that the project cannot be converted back (i.e have the nature removed).
- *
- * @author Judy N. Green
- * @since Aug 6, 2002
- *<p>
- * Example useage:
- * <pre>
- * mainPage = new ConvertToStdMakeProjectWizardPage("ConvertProjectPage");
- * mainPage.setTitle("Project Conversion");
- * mainPage.setDescription("Add C or C++ a Nature to a project.");
- * </pre>
- * </p>
- *
- * @deprecated as of CDT 4.0. This page was used for 3.X style projects.
- * It is left here for compatibility reasons only.
- *
- * @noextend This class is not intended to be subclassed by clients.
- * @noinstantiate This class is not intended to be instantiated by clients.
- */
-@Deprecated
-public class ConvertToMakeProjectWizardPage extends ConvertProjectWizardPage {
-
- private static final String WZ_TITLE = "WizardMakeProjectConversion.title"; //$NON-NLS-1$
- private static final String WZ_DESC = "WizardMakeProjectConversion.description"; //$NON-NLS-1$
-
- /**
- * Constructor for ConvertToStdMakeProjectWizardPage.
- */
- public ConvertToMakeProjectWizardPage(String pageName) {
- super(pageName);
- }
-
- /**
- * Method getWzTitleResource returns the correct Title Label for this class
- * overriding the default in the superclass.
- */
- @Override
- protected String getWzTitleResource() {
- return MakeUIPlugin.getResourceString(WZ_TITLE);
- }
-
- /**
- * Method getWzDescriptionResource returns the correct description
- * Label for this class overriding the default in the superclass.
- */
- @Override
- protected String getWzDescriptionResource() {
- return MakeUIPlugin.getResourceString(WZ_DESC);
- }
-
- /**
- * Method isCandidate returns true for all projects.
- */
- @Override
- public boolean isCandidate(IProject project) {
- return true; // all
- }
-
- @Override
- public void convertProject(IProject project, IProgressMonitor monitor, String projectID) throws CoreException {
- monitor.beginTask(MakeUIPlugin.getResourceString("WizardMakeProjectConversion.monitor.convertingToMakeProject"), //$NON-NLS-1$
- 3);
- try {
- super.convertProject(project, new SubProgressMonitor(monitor, 1), projectID);
- MakeProjectNature.addNature(project, new SubProgressMonitor(monitor, 1));
- ScannerConfigNature.addScannerConfigNature(project);
- ScannerConfigNature.initializeDiscoveryOptions(project);
- CCorePlugin.getDefault().mapCProjectOwner(project, projectID, true);
- } finally {
- monitor.done();
- }
- }
-
- @Override
- public void createControl(Composite parent) {
- super.createControl(parent);
- IStructuredSelection sel = ((BasicNewResourceWizard) getWizard()).getSelection();
- if (sel != null) {
- tableViewer.setCheckedElements(sel.toArray());
- setPageComplete(validatePage());
- }
- }
-
-}
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/MakeProjectWizardOptionPage.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/MakeProjectWizardOptionPage.java
deleted file mode 100644
index 334470d109b..00000000000
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/MakeProjectWizardOptionPage.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2010 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- * QNX Software System
- *******************************************************************************/
-
-package org.eclipse.cdt.make.ui.wizards;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.cdt.make.core.MakeCorePlugin;
-import org.eclipse.cdt.make.internal.ui.MakeProjectOptionBlock;
-import org.eclipse.cdt.make.internal.ui.MakeUIPlugin;
-import org.eclipse.cdt.make.ui.IMakeHelpContextIds;
-import org.eclipse.cdt.ui.dialogs.ICOptionContainer;
-import org.eclipse.cdt.ui.dialogs.ICOptionPage;
-import org.eclipse.cdt.ui.dialogs.IndexerBlock;
-import org.eclipse.cdt.ui.dialogs.ReferenceBlock;
-import org.eclipse.cdt.ui.dialogs.TabFolderOptionBlock;
-import org.eclipse.cdt.ui.wizards.NewCProjectWizard;
-import org.eclipse.cdt.ui.wizards.NewCProjectWizardOptionPage;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.Preferences;
-
-/**
- * Standard main page for a wizard that is creates a project resource.
- * <p>
- * This page may be used by clients as-is; it may be also be subclassed to suit.
- * </p>
- * <p>
- * Example usage:
- * <pre>
- * mainPage = new CProjectWizardPage("basicCProjectPage");
- * mainPage.setTitle("Project");
- * mainPage.setDescription("Create a new project resource.");
- * </pre>
- * </p>
- *
- * @deprecated as of CDT 4.0. This option page was used for New Project Wizard
- * for 3.X style projects.
- *
- * @noextend This class is not intended to be subclassed by clients.
- * @noinstantiate This class is not intended to be instantiated by clients.
- */
-@Deprecated
-public class MakeProjectWizardOptionPage extends NewCProjectWizardOptionPage {
- MakeWizardOptionBlock makeWizardBlock;
-
- public class MakeWizardOptionBlock extends MakeProjectOptionBlock {
- IndexerBlock indexBlock;
-
- public MakeWizardOptionBlock(ICOptionContainer parent) {
- super(parent);
- }
-
- @Override
- protected void addTabs() {
- addTab(new ReferenceBlock());
- super.addTabs();
- addTab(indexBlock = new IndexerBlock());
- }
-
- public void setupHelpContextIds() {
- List<ICOptionPage> pages = getOptionPages();
-
- Iterator<ICOptionPage> iter = pages.iterator();
- for (int i = 0; i < 6 && iter.hasNext(); i++) {
- ICOptionPage page = iter.next();
-
- String id = null;
- switch (i) {
- case 0:
- id = IMakeHelpContextIds.MAKE_PROJ_WIZ_PROJECTS_TAB;
- break;
- case 1:
- id = IMakeHelpContextIds.MAKE_PROJ_WIZ_MAKEBUILDER_TAB;
- break;
- case 2:
- id = IMakeHelpContextIds.MAKE_PROJ_WIZ_ERRORPARSER_TAB;
- break;
- case 3:
- id = IMakeHelpContextIds.MAKE_PROJ_WIZ_BINARYPARSER_TAB;
- break;
- case 4:
- id = IMakeHelpContextIds.MAKE_PROJ_WIZ_DISCOVERY_TAB;
- break;
- case 5:
- id = IMakeHelpContextIds.MAKE_PROJ_WIZ_INDEXER_TAB;
- break;
- }
- MakeUIPlugin.getDefault().getWorkbench().getHelpSystem().setHelp(page.getControl(), id);
- }
- }
- }
-
- public MakeProjectWizardOptionPage(String title, String description) {
- super("MakeProjectSettingsPage"); //$NON-NLS-1$
- setTitle(title);
- setDescription(description);
- }
-
- @Override
- protected TabFolderOptionBlock createOptionBlock() {
- return (makeWizardBlock = new MakeWizardOptionBlock(this));
- }
-
- @Override
- public IProject getProject() {
- return ((NewCProjectWizard) getWizard()).getNewProject();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.cdt.ui.dialogs.ICOptionContainer#getPreference()
- */
- @Override
- public Preferences getPreferences() {
- return MakeCorePlugin.getDefault().getPluginPreferences();
- }
-
- public boolean isIndexerEnabled() {
- // isIndexEnabled() * @deprecated always returns false
- // return makeWizardBlock.indexBlock.isIndexEnabled();
- return false;
- }
-
- public void setupHelpContextIds() {
- makeWizardBlock.setupHelpContextIds();
- }
-}
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/NewMakeCCProjectWizard.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/NewMakeCCProjectWizard.java
deleted file mode 100644
index 514910e3646..00000000000
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/NewMakeCCProjectWizard.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2010 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * QNX Software Systems - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.make.ui.wizards;
-
-import org.eclipse.cdt.core.CCorePlugin;
-import org.eclipse.cdt.make.internal.ui.MakeUIPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-
-/**
- * This wizard was used for 3.X style projects. It is left here for compatibility
- * reasons only. The wizard is superseded by MBS C++ Project Wizard,
- * class {@link org.eclipse.cdt.ui.wizards.CCProjectWizard}.
- *
- * @deprecated as of CDT 4.0.
- *
- * @noextend This class is not intended to be subclassed by clients.
- * @noinstantiate This class is not intended to be instantiated by clients.
- */
-@Deprecated
-public class NewMakeCCProjectWizard extends NewMakeProjectWizard {
-
- private static final String WZ_TITLE = "MakeCCWizard.title"; //$NON-NLS-1$
- private static final String WZ_DESC = "MakeCCWizard.description"; //$NON-NLS-1$
-
- private static final String WZ_SETTINGS_TITLE = "MakeCCWizard.title"; //$NON-NLS-1$
- private static final String WZ_SETTINGS_DESC = "MakeCCWizard.description"; //$NON-NLS-1$
-
- public NewMakeCCProjectWizard() {
- super(MakeUIPlugin.getResourceString(WZ_TITLE), MakeUIPlugin.getResourceString(WZ_DESC));
- }
-
- @Override
- public void addPages() {
- super.addPages();
- addPage(fOptionPage = new MakeProjectWizardOptionPage(MakeUIPlugin.getResourceString(WZ_SETTINGS_TITLE),
- MakeUIPlugin.getResourceString(WZ_SETTINGS_DESC)));
- }
-
- @Override
- protected void doRun(IProgressMonitor monitor) throws CoreException {
- if (monitor == null) {
- monitor = new NullProgressMonitor();
- }
- monitor.beginTask(MakeUIPlugin.getResourceString("MakeCCWizard.task_name"), 10); //$NON-NLS-1$
- super.doRun(new SubProgressMonitor(monitor, 9));
- // Add C++ Nature.
- if (newProject != null) {
- // Add C++ Nature to the newly created project.
- CCorePlugin.getDefault().convertProjectFromCtoCC(newProject, new SubProgressMonitor(monitor, 1));
- }
- monitor.done();
- }
-}
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/NewMakeCProjectWizard.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/NewMakeCProjectWizard.java
deleted file mode 100644
index fff3b8c8202..00000000000
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/NewMakeCProjectWizard.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2010 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * QNX Software Systems - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.make.ui.wizards;
-
-import org.eclipse.cdt.make.internal.ui.MakeUIPlugin;
-
-/**
- * This wizard was used for 3.X style projects. It is left here for compatibility
- * reasons only. The wizard is superseded by MBS C Project Wizard,
- * class {@link org.eclipse.cdt.ui.wizards.CProjectWizard}.
- *
- * @deprecated as of CDT 4.0.
- *
- * @noextend This class is not intended to be subclassed by clients.
- * @noinstantiate This class is not intended to be instantiated by clients.
- */
-@Deprecated
-public class NewMakeCProjectWizard extends NewMakeProjectWizard {
-
- private static final String WZ_TITLE = "MakeCWizard.title"; //$NON-NLS-1$
- private static final String WZ_DESC = "MakeCWizard.description"; //$NON-NLS-1$'
-
- private static final String WZ_SETTINGS_TITLE = "MakeCWizardSettings.title"; //$NON-NLS-1$
- private static final String WZ_SETTINGS_DESC = "MakeCWizardSettings.description"; //$NON-NLS-1$'
-
- public NewMakeCProjectWizard() {
- this(MakeUIPlugin.getResourceString(WZ_TITLE), MakeUIPlugin.getResourceString(WZ_DESC));
- }
-
- public NewMakeCProjectWizard(String title, String desc) {
- super(title, desc);
- }
-
- @Override
- public void addPages() {
- super.addPages();
- addPage(fOptionPage = new MakeProjectWizardOptionPage(MakeUIPlugin.getResourceString(WZ_SETTINGS_TITLE),
- MakeUIPlugin.getResourceString(WZ_SETTINGS_DESC)));
- }
-
-}
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/NewMakeProjectWizard.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/NewMakeProjectWizard.java
deleted file mode 100644
index 2d72a9b8db8..00000000000
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/NewMakeProjectWizard.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2010 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * QNX Software Systems - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.make.ui.wizards;
-
-import org.eclipse.cdt.make.core.MakeCorePlugin;
-import org.eclipse.cdt.make.core.MakeProjectNature;
-import org.eclipse.cdt.make.core.scannerconfig.ScannerConfigNature;
-import org.eclipse.cdt.make.internal.ui.MakeUIPlugin;
-import org.eclipse.cdt.make.ui.IMakeHelpContextIds;
-import org.eclipse.cdt.ui.wizards.NewCProjectWizard;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * This abstract wizard was used for 3.X style projects. It is left here for compatibility
- * reasons only. The wizards are superseded by MBS C++ Project Wizards.
- *
- * @deprecated as of CDT 4.0.
- *
- * @noextend This class is not intended to be subclassed by clients.
- */
-@Deprecated
-public abstract class NewMakeProjectWizard extends NewCProjectWizard {
-
- protected MakeProjectWizardOptionPage fOptionPage;
-
- public NewMakeProjectWizard(String title, String desc) {
- super(title, desc);
- }
-
- @Override
- protected void doRunPrologue(IProgressMonitor monitor) {
- }
-
- @Override
- protected void doRunEpilogue(IProgressMonitor monitor) {
- }
-
- @Override
- protected void doRun(IProgressMonitor monitor) throws CoreException {
- if (monitor == null) {
- monitor = new NullProgressMonitor();
- }
- monitor.beginTask(MakeUIPlugin.getResourceString("MakeCWizard.task_name"), 10); //$NON-NLS-1$
-
- // super.doRun() just creates the project and does not assign a builder to it.
- super.doRun(new SubProgressMonitor(monitor, 5));
-
- MakeProjectNature.addNature(getProjectHandle(), new SubProgressMonitor(monitor, 1));
- ScannerConfigNature.addScannerConfigNature(getProjectHandle());
-
- // Modify the project based on what the user has selected
- if (newProject != null) {
- fOptionPage.performApply(new SubProgressMonitor(monitor, 4));
- monitor.done();
- }
- }
-
- @Override
- public String getProjectID() {
- return MakeCorePlugin.MAKE_PROJECT_ID;
- }
-
- @Override
- public void createPageControls(Composite pageContainer) {
- super.createPageControls(pageContainer);
-
- IWizardPage[] pages = getPages();
-
- if (pages != null && pages.length == 2) {
- MakeUIPlugin.getDefault().getWorkbench().getHelpSystem().setHelp(pages[0].getControl(),
- IMakeHelpContextIds.MAKE_PROJ_WIZ_NAME_PAGE);
-
- MakeProjectWizardOptionPage optionPage = (MakeProjectWizardOptionPage) pages[1];
- optionPage.setupHelpContextIds();
- }
- }
-}
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/.classpath b/build/org.eclipse.cdt.managedbuilder.core.tests/.classpath
index 7478b7374d7..e2d45cfbd22 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/.classpath
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/.classpath
@@ -1,8 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" path="tests"/>
- <classpathentry kind="src" path="suite"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="tests">
+ <attributes>
+ <attribute name="test" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="src" path="suite">
+ <attributes>
+ <attribute name="test" value="true"/>
+ </attributes>
+ </classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.managedbuilder.core.tests/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.managedbuilder.core.tests/.settings/org.eclipse.jdt.core.prefs
index ad05599159f..5b1c443114d 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/.settings/org.eclipse.jdt.core.prefs
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/.settings/org.eclipse.jdt.core.prefs
@@ -30,9 +30,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -49,6 +49,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
@@ -107,6 +108,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
@@ -144,13 +146,14 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -158,21 +161,24 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@@ -264,11 +270,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@@ -299,6 +306,8 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@@ -323,13 +332,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@@ -377,6 +390,8 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do no
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@@ -413,9 +428,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@@ -454,10 +472,14 @@ org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.managedbuilder.core.tests/.settings/org.eclipse.jdt.ui.prefs
index e44576346c4..d35ba9b5231 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/.settings/org.eclipse.jdt.ui.prefs
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,4 @@
+cleanup.add_all=false
cleanup.add_default_serial_version_id=true
cleanup.add_generated_serial_version_id=false
cleanup.add_missing_annotations=true
@@ -11,25 +12,72 @@ cleanup.always_use_blocks=true
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=false
cleanup.always_use_this_for_non_static_method_access=false
+cleanup.array_with_curly=false
+cleanup.arrays_fill=false
+cleanup.bitwise_conditional_expression=false
+cleanup.boolean_literal=false
+cleanup.boolean_value_rather_than_comparison=false
+cleanup.break_loop=false
+cleanup.collection_cloning=false
+cleanup.comparing_on_criteria=false
+cleanup.comparison_statement=false
+cleanup.controlflow_merge=false
cleanup.convert_functional_interfaces=false
cleanup.convert_to_enhanced_for_loop=false
+cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
+cleanup.convert_to_switch_expressions=false
cleanup.correct_indentation=false
+cleanup.do_while_rather_than_while=true
+cleanup.double_negation=false
+cleanup.else_if=false
+cleanup.embedded_if=false
+cleanup.evaluate_nullable=false
+cleanup.extract_increment=false
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
+cleanup.hash=false
+cleanup.if_condition=false
cleanup.insert_inferred_type_arguments=false
+cleanup.instanceof=false
+cleanup.instanceof_keyword=false
+cleanup.invert_equals=false
+cleanup.join=false
+cleanup.lazy_logical_operator=false
cleanup.make_local_variable_final=true
cleanup.make_parameters_final=false
cleanup.make_private_fields_final=true
cleanup.make_type_abstract_if_missing_method=false
cleanup.make_variable_declarations_final=false
+cleanup.map_cloning=false
+cleanup.merge_conditional_blocks=false
+cleanup.multi_catch=false
cleanup.never_use_blocks=false
cleanup.never_use_parentheses_in_expressions=true
+cleanup.no_string_creation=false
+cleanup.no_super=false
+cleanup.number_suffix=false
+cleanup.objects_equals=false
+cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
+cleanup.operand_factorization=false
cleanup.organize_imports=true
+cleanup.overridden_assignment=false
+cleanup.plain_replacement=false
+cleanup.precompile_regex=false
+cleanup.primitive_comparison=false
+cleanup.primitive_parsing=false
+cleanup.primitive_rather_than_wrapper=false
+cleanup.primitive_serialization=false
+cleanup.pull_out_if_from_if_else=false
+cleanup.pull_up_assignment=false
+cleanup.push_down_negation=false
cleanup.qualify_static_field_accesses_with_declaring_class=false
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
cleanup.qualify_static_member_accesses_with_declaring_class=false
cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.reduce_indentation=false
+cleanup.redundant_comparator=false
+cleanup.redundant_falling_through_block_end=false
cleanup.remove_private_constructors=true
cleanup.remove_redundant_modifiers=false
cleanup.remove_redundant_semicolons=true
@@ -37,25 +85,57 @@ cleanup.remove_redundant_type_arguments=true
cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true
cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_array_creation=false
cleanup.remove_unnecessary_casts=true
cleanup.remove_unnecessary_nls_tags=false
cleanup.remove_unused_imports=true
cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_method_parameters=false
cleanup.remove_unused_private_fields=true
cleanup.remove_unused_private_members=false
cleanup.remove_unused_private_methods=true
cleanup.remove_unused_private_types=true
+cleanup.return_expression=false
+cleanup.simplify_lambda_expression_and_method_ref=false
+cleanup.single_used_field=false
cleanup.sort_members=false
cleanup.sort_members_all=false
+cleanup.standard_comparison=false
+cleanup.static_inner_class=false
+cleanup.strictly_equal_or_different=false
+cleanup.stringbuffer_to_stringbuilder=false
+cleanup.stringbuilder=false
+cleanup.stringbuilder_for_local_vars=true
+cleanup.stringconcat_to_textblock=false
+cleanup.substring=false
+cleanup.switch=false
+cleanup.system_property=false
+cleanup.system_property_boolean=false
+cleanup.system_property_file_encoding=false
+cleanup.system_property_file_separator=false
+cleanup.system_property_line_separator=false
+cleanup.system_property_path_separator=false
+cleanup.ternary_operator=false
+cleanup.try_with_resource=false
+cleanup.unlooped_while=false
+cleanup.unreachable_block=false
cleanup.use_anonymous_class_creation=false
+cleanup.use_autoboxing=false
cleanup.use_blocks=false
cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_directly_map_method=false
cleanup.use_lambda=true
cleanup.use_parentheses_in_expressions=false
+cleanup.use_string_is_blank=false
cleanup.use_this_for_non_static_field_access=false
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
cleanup.use_this_for_non_static_method_access=false
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_unboxing=false
+cleanup.use_var=false
+cleanup.useless_continue=false
+cleanup.useless_return=false
+cleanup.valueof_rather_than_instantiation=false
cleanup_profile=_CDT
cleanup_settings_version=2
eclipse.preferences.version=1
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.managedbuilder.core.tests/META-INF/MANIFEST.MF
index af5e610101c..ccd8ad9d5b8 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/META-INF/MANIFEST.MF
@@ -1,10 +1,10 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
-Bundle-Name: Tests
+Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.core.tests; singleton:=true
-Bundle-Version: 8.2.1.qualifier
+Bundle-Version: 8.2.300.qualifier
Bundle-Activator: org.eclipse.cdt.managedbuilder.testplugin.CTestPlugin
-Bundle-Vendor: Eclipse CDT
+Bundle-Vendor: %providerName
Bundle-Localization: plugin
Export-Package: org.eclipse.cdt.managedbuilder.core.tests,
org.eclipse.cdt.managedbuilder.language.settings.providers.tests,
@@ -14,6 +14,7 @@ Export-Package: org.eclipse.cdt.managedbuilder.core.tests,
org.eclipse.cdt.projectmodel.tests
Require-Bundle: org.eclipse.core.runtime,
org.junit,
+ org.junit.jupiter.api,
org.eclipse.core.resources,
org.eclipse.ui,
org.eclipse.ui.ide,
@@ -23,5 +24,6 @@ Require-Bundle: org.eclipse.core.runtime,
org.eclipse.cdt.core.tests;bundle-version="5.0.0",
org.eclipse.cdt.ui
Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
Automatic-Module-Name: org.eclipse.cdt.managedbuilder.core.tests
+Import-Package: com.google.gson
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/about.html b/build/org.eclipse.cdt.managedbuilder.core.tests/about.html
index 164f781a8fd..b3134865230 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/about.html
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/about.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
</head>
+
<body lang="EN-US">
<h2>About This Content</h2>
@@ -16,7 +17,7 @@
(&quot;Content&quot;). Unless otherwise indicated below, the Content
is provided to you under the terms and conditions of the Eclipse
Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ available at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
@@ -29,8 +30,9 @@
license exists, contact the Redistributor. Unless otherwise indicated
below, the terms and conditions of the EPL still apply to any source
code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ href="https://www.eclipse.org/">https://www.eclipse.org</a>.
</p>
</body>
+
</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/plugin.properties b/build/org.eclipse.cdt.managedbuilder.core.tests/plugin.properties
index 3ec7bbc986a..9ff55a2cd19 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/plugin.properties
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/plugin.properties
@@ -12,4 +12,8 @@
# QNX Software Systems - initial API and implementation
# IBM Corporation
###############################################################################
+
+pluginName = Tests
+providerName = Eclipse CDT
+
GNUMakeBuilder.name=Gnu Make Builder
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/plugin.xml b/build/org.eclipse.cdt.managedbuilder.core.tests/plugin.xml
index 09bc3c2517e..4611ce2a8d0 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/plugin.xml
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/plugin.xml
@@ -54,7 +54,7 @@
defaultExtension="toor"
isAbstract="false"
makeCommand="make"
- binaryParser="org.eclipse.cdt.core.PE"
+ binaryParser="org.eclipse.cdt.core.PE64"
makeArguments="-k"
osList="win32">
<tool
@@ -204,7 +204,7 @@
isTest="true"
defaultExtension="bus"
isAbstract="false"
- binaryParser="org.eclipse.cdt.core.PE"
+ binaryParser="org.eclipse.cdt.core.PE64"
archList="x86,ppc"
parent="test.root"
makeArguments="-d"
@@ -374,7 +374,7 @@
isTest="true"
errorParsers="org.eclipse.cdt.core.CWDLocator;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GmakeErrorParser"
name="Test Error Parsers"
- binaryParser="org.eclipse.cdt.core.PE"
+ binaryParser="org.eclipse.cdt.core.PE64"
isAbstract="false"
id="test.error.parsers">
<tool
@@ -1225,7 +1225,7 @@
<targetPlatform
id="cdt.managedbuild.target.testgnu.platform.exe.debug"
name="Dbg Platform"
- binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE"
+ binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE64"
osList="solaris,linux,hpux,aix,qnx"
archList="all">
</targetPlatform>
@@ -1234,7 +1234,7 @@
name="Dbg Builder"
command="make"
arguments="-k"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator">
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator">
</builder>
<tool
id="cdt.managedbuild.tool.testgnu.c.compiler.exe.debug"
@@ -1298,7 +1298,7 @@
<targetPlatform
id="cdt.managedbuild.target.testgnu.platform.exe.release"
name="Rel Platform"
- binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE"
+ binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE64"
osList="solaris,linux,hpux,aix,qnx"
archList="all">
</targetPlatform>
@@ -2603,7 +2603,7 @@
name="MBS30BuilderName.Dbg"
command="make"
arguments="-k"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator">
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator">
</builder>
<tool
id="cdt.managedbuild.tool.testgnu30.c.compiler.exe.debug"
@@ -2668,7 +2668,7 @@
name="MBS30BuilderName.Rel"
command="make"
arguments="-k"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator">
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator">
</builder>
<tool
id="cdt.managedbuild.tool.testgnu30.c.compiler.exe.release"
@@ -2741,7 +2741,7 @@
name="MBS30BuilderName.Dbg"
command="make"
arguments="-k"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator">
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator">
</builder>
<tool
id="cdt.managedbuild.tool.testgnu30.c.compiler.so.debug"
@@ -2831,7 +2831,7 @@
name="MBS30BuilderName.Rel"
command="make"
arguments="-k"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator">
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator">
</builder>
<tool
id="cdt.managedbuild.tool.testgnu30.c.compiler.so.release"
@@ -2928,7 +2928,7 @@
name="MBS30BuilderName.Dbg"
command="make"
arguments="-k"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator">
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator">
</builder>
<tool
id="cdt.managedbuild.tool.testgnu30.c.compiler.lib.debug"
@@ -2990,7 +2990,7 @@
name="MBS30BuilderName.Rel"
command="make"
arguments="-k"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator">
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator">
</builder>
<tool
id="cdt.managedbuild.tool.testgnu30.c.compiler.lib.release"
@@ -3093,7 +3093,7 @@
name="BuilderDbg"
command="make"
arguments="-k"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator">
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator">
</builder>
<tool
id="cdt.managedbuild.tool.Testprepost30.gnu.c.compiler.exe.debug"
@@ -3179,7 +3179,7 @@
<builder
id="test30_1.gnu.so.builder"
name="Builder for test30_1"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator">
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator">
</builder>
<tool
id="test30_1.gnu.so.c.compiler"
@@ -3393,7 +3393,7 @@
name="Platform for test30_sto"
osList="all"/>
<builder
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator"
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator"
id="test30_sto.dummy.builder"
isAbstract="false"
name="Builder for test30_sto"/>
@@ -3513,7 +3513,7 @@
<builder
id="test30_2.tar.builder"
name="Builder for test30_2"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator">
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator">
</builder>
<tool
name="tar-create"
@@ -3613,6 +3613,42 @@
outputs="tmp">
</outputType>
</tool>
+ <tool
+ name="touch"
+ command="touch"
+ commandLinePattern="${COMMAND} -r ${INPUTS} ${FLAGS}"
+ id="test30_2.touch">
+ <optionCategory
+ name="Options"
+ id="test30_2.touch.category">
+ </optionCategory>
+ <option
+ name="Touched Files"
+ category="test30_2.touch.category"
+ command="&quot;${value}&quot;"
+ id="test30_2.touch.filenames"
+ valueType="stringList">
+ <listOptionValue value="these"/>
+ <listOptionValue value="file names"/>
+ <listOptionValue value="are"/>
+ <listOptionValue value="not"/>
+ <listOptionValue value="in"/>
+ <listOptionValue value="alphabetical"/>
+ <listOptionValue value="order"/>
+ </option>
+ <inputType
+ id="test30_2.touch.input1"
+ buildVariable="LOGFILE"
+ sources="log">
+ </inputType>
+ <outputType
+ id="test30_2.touch.output"
+ name="Touched files"
+ multipleOfType="true"
+ buildVariable="TOUCHEDFILES"
+ option="test30_2.touch.filenames">
+ </outputType>
+ </tool>
</toolChain>
</configuration>
</projectType>
@@ -3646,7 +3682,7 @@
<targetPlatform
id="cdt.managedbuild.target.testenv.platform.exe.debug"
name="Dbg Platform"
- binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE"
+ binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE64"
osList="solaris,linux,hpux,aix,qnx"
archList="all">
</targetPlatform>
@@ -3658,7 +3694,7 @@
variableFormat="@="
isVariableCaseSensitive="false"
reservedMacroNames="PATH"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator">
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator">
</builder>
<tool
id="cdt.managedbuild.tool.testenv.c.compiler.exe.debug"
@@ -3711,7 +3747,7 @@
<targetPlatform
id="cdt.managedbuild.target.testenv.platform.exe.release"
name="Rel Platform"
- binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE"
+ binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE64"
osList="solaris,linux,hpux,aix,qnx"
archList="all">
</targetPlatform>
@@ -3819,7 +3855,7 @@
<targetPlatform
id="cdt.managedbuild.target.testenv.platform.exe.five"
name="Dbg Platform"
- binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE"
+ binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE64"
osList="solaris,linux,hpux,aix,qnx"
archList="all">
</targetPlatform>
@@ -3873,7 +3909,7 @@
<targetPlatform
id="TopTC.platform"
name="TopTC Platform"
- binaryParser="org.eclipse.cdt.core.PE"/>
+ binaryParser="org.eclipse.cdt.core.PE64"/>
<builder
id="TopTC.managedbuilder"
name="TopTC Builder"/>
@@ -4018,7 +4054,7 @@
<targetPlatform
id="cdt.managedbuild.target.testMultipleVersions.platform.exe.debug"
name="Debug IA32 Platform"
- binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE"
+ binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE64"
osList="solaris,linux,hpux,aix,qnx"
archList="all">
</targetPlatform>
@@ -4030,7 +4066,7 @@
variableFormat="@="
isVariableCaseSensitive="false"
reservedMacroNames="PATH"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator">
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator">
</builder>
<tool
id="cdt.managedbuild.tool.testMultipleVersions.c.compiler.exe.debug_1.1.0"
@@ -4058,7 +4094,7 @@
<targetPlatform
id="cdt.managedbuild.target.testMultipleVersions.platform.exe.release"
name="Release IA32 Platform"
- binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE"
+ binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE64"
osList="solaris,linux,hpux,aix,qnx"
archList="all">
</targetPlatform>
@@ -4159,7 +4195,7 @@
<targetPlatform
id="target.testProjectConverterConvenienceRoutines.platform.exe.debug"
name="Debug IA32 Platform"
- binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE"
+ binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE64"
osList="solaris,linux,hpux,aix,qnx"
archList="all">
</targetPlatform>
@@ -4171,7 +4207,7 @@
variableFormat="@="
isVariableCaseSensitive="false"
reservedMacroNames="PATH"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator">
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator">
</builder>
<tool
id="tool.testProjectConverterConvenienceRoutines.c.compiler.exe.debug_1.1.0"
@@ -4201,7 +4237,7 @@
targetTool="org.eclipse.cdt.managedbuilder.core.tests.BDMacroSupportBarTool">
<builder
arguments="-k"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator"
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator"
command="make"
id="org.eclipse.cdt.managedbuilder.core.tests.BDMacroSupportBuilder"
isAbstract="false"
@@ -4335,7 +4371,7 @@
name="Test Builder Version 1.0"
command="make"
arguments="-k"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator">
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator">
</builder>
<tool
id="test.tool1_1.0.0"
@@ -4378,7 +4414,7 @@
name="Test Builder Version 2.0"
command="make"
arguments="-k"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator">
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator">
</builder>
<tool
id="test.tool1_2.0.0"
@@ -4481,7 +4517,7 @@
name="Test Builder Version 1.0"
command="make"
arguments="-k"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator">
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator">
</builder>
<tool
id="testProject.tool1_1.0.0"
@@ -4522,7 +4558,7 @@
name="Test Builder Version 2.0"
command="make"
arguments="-k"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator">
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator">
</builder>
<tool
id="testProject.tool1_2.0.0"
@@ -4741,7 +4777,7 @@
<targetPlatform
id="cdt.test.fortran.platform.executable.release"
name="Platform.Executable.Release"
- binaryParser="org.eclipse.cdt.core.PE"
+ binaryParser="org.eclipse.cdt.core.PE64"
osList="win32"
archList="x86">
</targetPlatform>
@@ -4750,7 +4786,7 @@
name="Builder.Executable.Release"
command="make"
arguments="-k"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator">
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator">
</builder>
<tool
id="cdt.test.fortran.compilestep.executable.release"
@@ -4785,7 +4821,7 @@
<targetPlatform
id="cdt.test.fortran.platform.executable.debug"
name="Platform.Executable.Debug"
- binaryParser="org.eclipse.cdt.core.PE"
+ binaryParser="org.eclipse.cdt.core.PE64"
osList="win32"
archList="x86">
</targetPlatform>
@@ -4794,7 +4830,7 @@
name="Builder.Executable.Debug"
command="make"
arguments="-k"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator">
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator">
</builder>
<tool
id="cdt.test.fortran.compilestep.executable.debug"
@@ -4852,7 +4888,7 @@
name="AssignToOption Builder"
command="make"
arguments="-k"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator">
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator">
</builder>
</toolChain>
</configuration>
@@ -4944,21 +4980,23 @@
<configuration
id="cdt.test.customOptionCommand.one"
name="One">
- <toolChain isSystem="true"
+ <toolChain
id="cdt.test.customOptionCommand.Toolchain"
isAbstract="false"
- name="Tools">
+ isSystem="true"
+ name="Tools"
+ targetTool="cdt.test.customOptionCommand.Tool2">
<tool
command="xxx"
- id="cdt.test.customOptionCommand.Tool"
+ id="cdt.test.customOptionCommand.Tool1"
isAbstract="false"
- name="Tool"
+ name="Tool1"
natureFilter="both"
outputFlag="-o">
<optionCategory
id="cdt.test.customOptionCommand.optionCategory1"
name="Test Options"
- owner="cdt.test.customOptionCommand.Tool"/>
+ owner="cdt.test.customOptionCommand.Tool1"/>
<option
category="cdt.test.customOptionCommand.optionCategory1"
command="-opt1="
@@ -4987,12 +5025,184 @@
name="Option4"
valueType="string"/>
</tool>
+ <tool
+ command="xxx"
+ id="cdt.test.customOptionCommand.Tool2"
+ isAbstract="false"
+ name="Tool2"
+ natureFilter="both"
+ outputFlag="-o">
+ <optionCategory
+ id="cdt.test.customOptionCommand.optionCategory2"
+ name="Test Options"
+ owner="cdt.test.customOptionCommand.Tool2"/>
+ <option
+ category="cdt.test.customOptionCommand.optionCategory2"
+ command="-optString="
+ id="cdt.test.customOptionCommand.optionString"
+ name="OptionString"
+ commandGenerator="org.eclipse.cdt.managedbuilder.core.tests.CustomOptionCommandGenerator"
+ valueType="string"/>
+ <option
+ category="cdt.test.customOptionCommand.optionCategory2"
+ command="-optStringList="
+ id="cdt.test.customOptionCommand.optionStringList"
+ name="OptionStringList"
+ commandGenerator="org.eclipse.cdt.managedbuilder.core.tests.CustomOptionCommandGenerator"
+ valueType="stringList"/>
+ <option
+ category="cdt.test.customOptionCommand.optionCategory2"
+ command="-optBoolean=true"
+ commandFalse="-optBoolean=false"
+ commandGenerator="org.eclipse.cdt.managedbuilder.core.tests.CustomOptionCommandGenerator"
+ id="cdt.test.customOptionCommand.optionBoolean"
+ name="OptionBoolean"
+ valueType="boolean"/>
+ <option
+ category="cdt.test.customOptionCommand.optionCategory2"
+ command="-optEnumerated="
+ commandGenerator="org.eclipse.cdt.managedbuilder.core.tests.CustomOptionCommandGenerator"
+ id="cdt.test.customOptionCommand.optionEnumerated"
+ name="OptionEnumerated"
+ valueType="enumerated">
+ <enumeratedOptionValue
+ command="-optEnumerated=value1"
+ id="org.eclipse.cdt.managedbuilder.core.tests.enumeratedOptionValue1"
+ name="EnumeratedOptionValue1">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ command="-optEnumerated=value2"
+ id="org.eclipse.cdt.managedbuilder.core.tests.enumeratedOptionValue2"
+ name="EnumeratedOptionValue2">
+ </enumeratedOptionValue>
+ </option>
+ <option
+ category="cdt.test.customOptionCommand.optionCategory2"
+ command="-optIncludePath="
+ id="cdt.test.customOptionCommand.optionIncludePath"
+ name="OptionIncludePath"
+ commandGenerator="org.eclipse.cdt.managedbuilder.core.tests.CustomOptionCommandGenerator"
+ valueType="includePath"/>
+ <option
+ category="cdt.test.customOptionCommand.optionCategory2"
+ command="-optDefinedSymbols="
+ id="cdt.test.customOptionCommand.optionDefinedSymbols"
+ name="OptionDefinedSymbols"
+ commandGenerator="org.eclipse.cdt.managedbuilder.core.tests.CustomOptionCommandGenerator"
+ valueType="definedSymbols"/>
+ <option
+ category="cdt.test.customOptionCommand.optionCategory2"
+ command="-optLibs="
+ id="cdt.test.customOptionCommand.optionLibs"
+ name="OptionLibs"
+ commandGenerator="org.eclipse.cdt.managedbuilder.core.tests.CustomOptionCommandGenerator"
+ valueType="libs"/>
+ <option
+ category="cdt.test.customOptionCommand.optionCategory2"
+ command="-optUserObjs="
+ id="cdt.test.customOptionCommand.optionUserObjs"
+ name="OptionUserObjs"
+ commandGenerator="org.eclipse.cdt.managedbuilder.core.tests.CustomOptionCommandGenerator"
+ valueType="userObjs"/>
+ <option
+ category="cdt.test.customOptionCommand.optionCategory2"
+ command="-optSymbolFiles="
+ id="cdt.test.customOptionCommand.optionSymbolFiles"
+ name="OptionSymbolFiles"
+ commandGenerator="org.eclipse.cdt.managedbuilder.core.tests.CustomOptionCommandGenerator"
+ valueType="symbolFiles"/>
+ <option
+ category="cdt.test.customOptionCommand.optionCategory2"
+ command="-optIncludeFiles="
+ id="cdt.test.customOptionCommand.optionIncludeFiles"
+ name="OptionIncludeFiles"
+ commandGenerator="org.eclipse.cdt.managedbuilder.core.tests.CustomOptionCommandGenerator"
+ valueType="includeFiles"/>
+ <option
+ category="cdt.test.customOptionCommand.optionCategory2"
+ command="-optLibPaths="
+ id="cdt.test.customOptionCommand.optionLibPaths"
+ name="OptionLibPaths"
+ commandGenerator="org.eclipse.cdt.managedbuilder.core.tests.CustomOptionCommandGenerator"
+ valueType="libPaths"/>
+ <option
+ category="cdt.test.customOptionCommand.optionCategory2"
+ command="-optLibFiles="
+ id="cdt.test.customOptionCommand.optionLibFiles"
+ name="OptionLibFiles"
+ commandGenerator="org.eclipse.cdt.managedbuilder.core.tests.CustomOptionCommandGenerator"
+ valueType="libFiles"/>
+ <option
+ category="cdt.test.customOptionCommand.optionCategory2"
+ command="-optUndefIncludePath="
+ id="cdt.test.customOptionCommand.optionUndefIncludePath"
+ name="OptionUndefIncludePath"
+ commandGenerator="org.eclipse.cdt.managedbuilder.core.tests.CustomOptionCommandGenerator"
+ valueType="undefIncludePath"/>
+ <option
+ category="cdt.test.customOptionCommand.optionCategory2"
+ command="-optUndefDefinedSymbols="
+ id="cdt.test.customOptionCommand.optionUndefDefinedSymbols"
+ name="OptionUndefDefinedSymbols"
+ commandGenerator="org.eclipse.cdt.managedbuilder.core.tests.CustomOptionCommandGenerator"
+ valueType="undefDefinedSymbols"/>
+ <option
+ category="cdt.test.customOptionCommand.optionCategory2"
+ command="-optUndefLibPaths="
+ id="cdt.test.customOptionCommand.optionUndefLibPaths"
+ name="OptionUndefLibPaths"
+ commandGenerator="org.eclipse.cdt.managedbuilder.core.tests.CustomOptionCommandGenerator"
+ valueType="undefLibPaths"/>
+ <option
+ category="cdt.test.customOptionCommand.optionCategory2"
+ command="-optUndefLibFiles="
+ id="cdt.test.customOptionCommand.optionUndefLibFiles"
+ name="OptionUndefLibFiles"
+ commandGenerator="org.eclipse.cdt.managedbuilder.core.tests.CustomOptionCommandGenerator"
+ valueType="undefLibFiles"/>
+ <option
+ category="cdt.test.customOptionCommand.optionCategory2"
+ command="-optUndefIncludeFiles="
+ id="cdt.test.customOptionCommand.optionUndefIncludeFiles"
+ name="OptionUndefIncludeFiles"
+ commandGenerator="org.eclipse.cdt.managedbuilder.core.tests.CustomOptionCommandGenerator"
+ valueType="undefIncludeFiles"/>
+ <option
+ category="cdt.test.customOptionCommand.optionCategory2"
+ command="-optUndefSymbolFiles="
+ id="cdt.test.customOptionCommand.optionUndefSymbolFiles"
+ name="OptionUndefSymbolFiles"
+ commandGenerator="org.eclipse.cdt.managedbuilder.core.tests.CustomOptionCommandGenerator"
+ valueType="undefSymbolFiles"/>
+ <option
+ category="cdt.test.customOptionCommand.optionCategory2"
+ command="-optTree="
+ commandGenerator="org.eclipse.cdt.managedbuilder.core.tests.CustomOptionCommandGenerator"
+ id="cdt.test.customOptionCommand.optionTree"
+ name="OptionTree"
+ valueType="tree">
+ <treeOptionRoot
+ id="org.eclipse.cdt.managedbuilder.core.tests.treeOptionRoot1"
+ name="org.eclipse.cdt.managedbuilder.core.tests.treeOptionRoot1">
+ <treeOption
+ command="-optTree=value1"
+ id="org.eclipse.cdt.managedbuilder.core.tests.treeOption1"
+ name="TreeOption1">
+ </treeOption>
+ <treeOption
+ command="-optTree=value2"
+ id="org.eclipse.cdt.managedbuilder.core.tests.treeOption2"
+ name="TreeOption2">
+ </treeOption>
+ </treeOptionRoot>
+ </option>
+ </tool>
<builder
id="cdt.test.customOptionCommand.builder"
name="Builder"
command="make"
arguments="-k"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator">
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator">
</builder>
</toolChain>
</configuration>
@@ -5065,7 +5275,7 @@
name="Builder"
command="make"
arguments="-k"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator">
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator">
</builder>
</toolChain>
</configuration>
@@ -5097,7 +5307,7 @@
<targetPlatform
id="cdt.managedbuild.target.enablement.platform.exe.debug"
name="Dbg Platform"
- binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE"
+ binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE64"
osList="solaris,linux,hpux,aix,qnx"
archList="all">
</targetPlatform>
@@ -5109,7 +5319,7 @@
variableFormat="@="
isVariableCaseSensitive="false"
reservedMacroNames="PATH"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator">
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator">
</builder>
<tool
id="enablement.this.child_1.2.3"
@@ -6300,7 +6510,7 @@
name="MBS30BuilderName.Dbg"
command="make"
arguments="-k"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator">
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator">
</builder>
<tool
id="cdt.managedbuild.tool.bdm.c.compiler.exe.debug"
@@ -7977,7 +8187,7 @@
variableFormat="${=}"
isVariableCaseSensitive="true"
reservedMacroNames="ROOT,DEPS,OBJS,.*_SRCS,EXECUTABLES,SUBDIRS,LIBS,USER_OBJS,.*_INPUTS,.*_OUTPUTS"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator"
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator"
macroInputFileNameValue="$(notdir $&lt;)"
macroInputFileExtValue="$(suffix $(notdir $&lt;))"
macroInputFileBaseNameValue="$(basename $(notdir $&lt;))"
@@ -8470,7 +8680,7 @@
<targetPlatform
id="test.four.dot.zero.cdt.managedbuild.target.gnu.platform.cygwin.base"
name="Test 4.0 PlatformName.Dbg"
- binaryParser="org.eclipse.cdt.core.Cygwin_PE"
+ binaryParser="org.eclipse.cdt.core.Cygwin_PE64"
osList="win32"
archList="all">
</targetPlatform>
@@ -9569,5 +9779,69 @@
</configuration>
</projectType>
</extension>
+ <extension
+ point="org.eclipse.cdt.managedbuilder.core.buildDefinitions">
+ <tool
+ id="bug580009.tests.tool"
+ isAbstract="true"
+ isSystem="true"
+ outputs="o"
+ sources="c">
+ <option
+ category="bug580009.tests.tool.optionsCategory"
+ defaultValue="UNSET"
+ id="bug580009.tests.option.string"
+ isAbstract="false"
+ name="Test"
+ resourceFilter="all"
+ value="UNSET"
+ valueType="string">
+ </option>
+ <optionCategory
+ id="bug580009.tests.tool.optionsCategory"
+ name="name1">
+ </optionCategory>
+ </tool>
+ <projectType
+ id="bug580009.tests.ptype"
+ isAbstract="false"
+ isTest="true">
+ <configuration
+ id="bug580009.tests.cfg1"
+ name="cfg1">
+ <toolChain
+ id="bug580009.tests.cfg1.tc2"
+ isAbstract="false"
+ isSystem="false"
+ superClass="bug580009.tests.cfg1.tc">
+ </toolChain>
+ </configuration>
+ </projectType>
+ <toolChain
+ id="bug580009.tests.cfg1.tc"
+ isAbstract="true"
+ isSystem="true">
+ <tool
+ id="bug580009.tests.cfg1.tc.tool"
+ isAbstract="false"
+ superClass="bug580009.tests.tool">
+ </tool>
+ <builder
+ id="bug580009.tests.cfg1.tc.builder"
+ isAbstract="false"
+ isVariableCaseSensitive="false">
+ </builder>
+ <option
+ category="bug580009.tests.cfg1.tc.optionCategory1"
+ id="bug580009.tests.cfg1.tc.option.string"
+ isAbstract="false"
+ valueType="boolean">
+ </option>
+ <optionCategory
+ id="bug580009.tests.cfg1.tc.optionCategory1"
+ name="name">
+ </optionCategory>
+ </toolChain>
+ </extension>
</plugin>
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/Sources/sub sources/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/Sources/sub sources/subdir.mk
index 00d98255707..d36ac1efc40 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/Sources/sub sources/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/Sources/sub sources/subdir.mk
@@ -6,19 +6,26 @@
C_SRCS += \
../Sources/sub\ sources/func\ 3.c
-OBJS += \
-./Sources/sub\ sources/func\ 3.o
-
C_DEPS += \
./Sources/sub\ sources/func\ 3.d
+OBJS += \
+./Sources/sub\ sources/func\ 3.o
+
# Each subdirectory must supply rules for building sources it contributes
-Sources/sub\ sources/func\ 3.o: ../Sources/sub\ sources/func\ 3.c
+Sources/sub\ sources/func\ 3.o: ../Sources/sub\ sources/func\ 3.c Sources/sub\ sources/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: GCC C Compiler'
- gcc -I../Headers -I../Sources/sub\ sources -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"Sources/sub sources/func 3.d" -MT"Sources/sub\ sources/func\ 3.d" -o "$@" "$<"
+ gcc -I../Headers -I../Sources/sub\ sources -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"Sources/sub sources/func 3.d" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean-Sources-2f-sub-20-sources
+
+clean-Sources-2f-sub-20-sources:
+ -$(RM) ./Sources/sub\ sources/func\ 3.d ./Sources/sub\ sources/func\ 3.o
+
+.PHONY: clean-Sources-2f-sub-20-sources
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/Sources/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/Sources/subdir.mk
index 7a96aa150f8..0786e760ef4 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/Sources/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/Sources/subdir.mk
@@ -8,30 +8,37 @@ C_SRCS += \
../Sources/func2.c \
../Sources/func4.c
-OBJS += \
-./Sources/func1.o \
-./Sources/func2.o \
-./Sources/func4.o
-
C_DEPS += \
./Sources/func1.d \
./Sources/func2.d \
./Sources/func4.d
+OBJS += \
+./Sources/func1.o \
+./Sources/func2.o \
+./Sources/func4.o
+
# Each subdirectory must supply rules for building sources it contributes
-Sources/%.o: ../Sources/%.c
+Sources/%.o: ../Sources/%.c Sources/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: GCC C Compiler'
- gcc -I../Headers -I../Sources/sub\ sources -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ gcc -I../Headers -I../Sources/sub\ sources -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
-Sources/func2.o: ../Sources/func2.c
+Sources/func2.o: ../Sources/func2.c Sources/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: GCC C Compiler'
- gcc -I../Headers -I../Sources/sub\ sources -O3 -g3 -Wall -c -MMD -MP -MF"$(@:%.o=%.d)" -MT"Sources/func2.d" -o "$@" "$<"
+ gcc -I../Headers -I../Sources/sub\ sources -O3 -g3 -Wall -c -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean-Sources
+
+clean-Sources:
+ -$(RM) ./Sources/func1.d ./Sources/func1.o ./Sources/func2.d ./Sources/func2.o ./Sources/func4.d ./Sources/func4.o
+
+.PHONY: clean-Sources
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/makefile
index 2ae2d70742b..647b5f43687 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/makefile
@@ -11,7 +11,6 @@ RM := rm
-include Sources/sub\ sources/subdir.mk
-include Sources/subdir.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
@@ -21,13 +20,27 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := test1DepCalc2
+BUILD_ARTIFACT_EXTENSION :=
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: test1DepCalc2
+all: main-build
+
+# Main-build Target
+main-build: test1DepCalc2
# Tool invocations
-test1DepCalc2: $(OBJS) $(USER_OBJS)
+test1DepCalc2: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: GCC C Linker'
gcc -o "test1DepCalc2" $(OBJS) $(USER_OBJS) $(LIBS)
@@ -36,9 +49,9 @@ test1DepCalc2: $(OBJS) $(USER_OBJS)
# Other Targets
clean:
- -$(RM) $(OBJS)$(C_DEPS)$(EXECUTABLES) test1DepCalc2
+ -$(RM) test1DepCalc2
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/sources.mk
index 52a3d69926a..673630dd080 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/sources.mk
@@ -2,14 +2,14 @@
# Automatically-generated file. Do not edit!
################################################################################
-O_SRCS :=
+ASM_SRCS :=
C_SRCS :=
-S_UPPER_SRCS :=
OBJ_SRCS :=
-ASM_SRCS :=
-OBJS :=
+O_SRCS :=
+S_UPPER_SRCS :=
C_DEPS :=
EXECUTABLES :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/subdir.mk
index 630ab45705d..b89b710c322 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/Benchmarks/subdir.mk
@@ -6,19 +6,26 @@
C_SRCS += \
../main.c
-OBJS += \
-./main.o
-
C_DEPS += \
./main.d
+OBJS += \
+./main.o
+
# Each subdirectory must supply rules for building sources it contributes
-%.o: ../%.c
+%.o: ../%.c subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: GCC C Compiler'
- gcc -I../Headers -I../Sources/sub\ sources -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ gcc -I../Headers -I../Sources/sub\ sources -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./main.d ./main.o
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/test1DepCalc2.zip b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/test1DepCalc2.zip
index a600287b301..a600287b301 100755..100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/test1DepCalc2.zip
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc2/test1DepCalc2.zip
Binary files differ
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/Sources/sub sources/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/Sources/sub sources/subdir.mk
index b57047e3c84..070abcca1f5 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/Sources/sub sources/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/Sources/sub sources/subdir.mk
@@ -6,15 +6,15 @@
C_SRCS += \
../Sources/sub\ sources/func\ 3.c
-OBJS += \
-./Sources/sub\ sources/func\ 3.o
-
C_DEPS += \
./Sources/sub\ sources/func\ 3.d
+OBJS += \
+./Sources/sub\ sources/func\ 3.o
+
# Each subdirectory must supply rules for building sources it contributes
-Sources/sub\ sources/func\ 3.o: ../Sources/sub\ sources/func\ 3.c
+Sources/sub\ sources/func\ 3.o: ../Sources/sub\ sources/func\ 3.c Sources/sub\ sources/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: GCC C Compiler'
gcc -DFUN3 -I../Headers -I../Sources/sub\ sources -O0 -g3 -Wall -c -fmessage-length=0 -o "$@" "$<" && \
@@ -24,3 +24,10 @@ Sources/sub\ sources/func\ 3.o: ../Sources/sub\ sources/func\ 3.c
@echo ' '
+clean: clean-Sources-2f-sub-20-sources
+
+clean-Sources-2f-sub-20-sources:
+ -$(RM) ./Sources/sub\ sources/func\ 3.d ./Sources/sub\ sources/func\ 3.o
+
+.PHONY: clean-Sources-2f-sub-20-sources
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/Sources/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/Sources/subdir.mk
index d28149917bb..c9a57cf3b44 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/Sources/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/Sources/subdir.mk
@@ -8,19 +8,19 @@ C_SRCS += \
../Sources/func2.c \
../Sources/func4.c
-OBJS += \
-./Sources/func1.o \
-./Sources/func2.o \
-./Sources/func4.o
-
C_DEPS += \
./Sources/func1.d \
./Sources/func2.d \
./Sources/func4.d
+OBJS += \
+./Sources/func1.o \
+./Sources/func2.o \
+./Sources/func4.o
+
# Each subdirectory must supply rules for building sources it contributes
-Sources/%.o: ../Sources/%.c
+Sources/%.o: ../Sources/%.c Sources/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: GCC C Compiler'
gcc -I../Headers -I../Sources/sub\ sources -O0 -g3 -Wall -c -fmessage-length=0 -o "$@" "$<" && \
@@ -30,3 +30,10 @@ Sources/%.o: ../Sources/%.c
@echo ' '
+clean: clean-Sources
+
+clean-Sources:
+ -$(RM) ./Sources/func1.d ./Sources/func1.o ./Sources/func2.d ./Sources/func2.o ./Sources/func4.d ./Sources/func4.o
+
+.PHONY: clean-Sources
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/makefile
index a4230133880..83ab62c47a5 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/makefile
@@ -11,7 +11,6 @@ RM := rm
-include Sources/sub\ sources/subdir.mk
-include Sources/subdir.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
@@ -21,13 +20,27 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := test1DepCalc3
+BUILD_ARTIFACT_EXTENSION :=
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: test1DepCalc3
+all: main-build
+
+# Main-build Target
+main-build: test1DepCalc3
# Tool invocations
-test1DepCalc3: $(OBJS) $(USER_OBJS)
+test1DepCalc3: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: GCC C Linker'
gcc -o "test1DepCalc3" $(OBJS) $(USER_OBJS) $(LIBS)
@@ -36,9 +49,9 @@ test1DepCalc3: $(OBJS) $(USER_OBJS)
# Other Targets
clean:
- -$(RM) $(OBJS)$(C_DEPS)$(EXECUTABLES) test1DepCalc3
+ -$(RM) test1DepCalc3
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/sources.mk
index 52a3d69926a..673630dd080 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/sources.mk
@@ -2,14 +2,14 @@
# Automatically-generated file. Do not edit!
################################################################################
-O_SRCS :=
+ASM_SRCS :=
C_SRCS :=
-S_UPPER_SRCS :=
OBJ_SRCS :=
-ASM_SRCS :=
-OBJS :=
+O_SRCS :=
+S_UPPER_SRCS :=
C_DEPS :=
EXECUTABLES :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/subdir.mk
index cfe94fcc9b5..0010805ba99 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/Benchmarks/subdir.mk
@@ -6,15 +6,15 @@
C_SRCS += \
../main.c
-OBJS += \
-./main.o
-
C_DEPS += \
./main.d
+OBJS += \
+./main.o
+
# Each subdirectory must supply rules for building sources it contributes
-%.o: ../%.c
+%.o: ../%.c subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: GCC C Compiler'
gcc -I../Headers -I../Sources/sub\ sources -O0 -g3 -Wall -c -fmessage-length=0 -o "$@" "$<" && \
@@ -24,3 +24,10 @@ C_DEPS += \
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./main.d ./main.o
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/test1DepCalc3.zip b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/test1DepCalc3.zip
index 6ac4388506c..6ac4388506c 100755..100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/test1DepCalc3.zip
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalc3/test1DepCalc3.zip
Binary files differ
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/Sources/sub sources/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/Sources/sub sources/subdir.mk
index 30264c8f857..b0c93542516 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/Sources/sub sources/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/Sources/sub sources/subdir.mk
@@ -6,24 +6,31 @@
C_SRCS += \
../Sources/sub\ sources/func\ 3.c
-OBJS += \
-./Sources/sub\ sources/func\ 3.o
-
C_DEPS += \
./Sources/sub\ sources/func\ 3.d
+OBJS += \
+./Sources/sub\ sources/func\ 3.o
+
# Each subdirectory must supply rules for building sources it contributes
-Sources/sub\ sources/func\ 3.o: ../Sources/sub\ sources/func\ 3.c
+Sources/sub\ sources/func\ 3.o: ../Sources/sub\ sources/func\ 3.c Sources/sub\ sources/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: GCC C Compiler'
gcc -I../Headers -I../Sources/sub\ sources -O0 -g3 -Wall -c -fmessage-length=0 -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
-Sources/sub\ sources/func\ 3.d: ../Sources/sub\ sources/func\ 3.c
+Sources/sub\ sources/func\ 3.d: ../Sources/sub\ sources/func\ 3.c Sources/sub\ sources/subdir.mk
@echo 'Regenerating dependency file: $@'
gcc -w -MM -MP -MT"Sources/sub\ sources/func\ 3.d" -MT"Sources/sub\ sources/func\ 3.o" -I../Headers -I../Sources/sub\ sources -MF "$@" "$<"
@echo ' '
+clean: clean-Sources-2f-sub-20-sources
+
+clean-Sources-2f-sub-20-sources:
+ -$(RM) ./Sources/sub\ sources/func\ 3.d ./Sources/sub\ sources/func\ 3.o
+
+.PHONY: clean-Sources-2f-sub-20-sources
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/Sources/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/Sources/subdir.mk
index 3a9269b7967..5a91030ea42 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/Sources/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/Sources/subdir.mk
@@ -8,28 +8,35 @@ C_SRCS += \
../Sources/func2.c \
../Sources/func4.c
-OBJS += \
-./Sources/func1.o \
-./Sources/func2.o \
-./Sources/func4.o
-
C_DEPS += \
./Sources/func1.d \
./Sources/func2.d \
./Sources/func4.d
+OBJS += \
+./Sources/func1.o \
+./Sources/func2.o \
+./Sources/func4.o
+
# Each subdirectory must supply rules for building sources it contributes
-Sources/%.o: ../Sources/%.c
+Sources/%.o: ../Sources/%.c Sources/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: GCC C Compiler'
gcc -I../Headers -I../Sources/sub\ sources -O0 -g3 -Wall -c -fmessage-length=0 -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
-Sources/%.d: ../Sources/%.c
+Sources/%.d: ../Sources/%.c Sources/subdir.mk
@echo 'Regenerating dependency file: $@'
gcc -w -MM -MP -MT"$@" -MT"$(@:%.d=%.o)" -I../Headers -I../Sources/sub\ sources -MF "$@" "$<"
@echo ' '
+clean: clean-Sources
+
+clean-Sources:
+ -$(RM) ./Sources/func1.d ./Sources/func1.o ./Sources/func2.d ./Sources/func2.o ./Sources/func4.d ./Sources/func4.o
+
+.PHONY: clean-Sources
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/makefile
index 14d1b001361..ac4945ba609 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/makefile
@@ -11,7 +11,6 @@ RM := rm
-include Sources/sub\ sources/subdir.mk
-include Sources/subdir.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
@@ -21,13 +20,27 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := test1DepCalcPreBuild
+BUILD_ARTIFACT_EXTENSION :=
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: test1DepCalcPreBuild
+all: main-build
+
+# Main-build Target
+main-build: test1DepCalcPreBuild
# Tool invocations
-test1DepCalcPreBuild: $(OBJS) $(USER_OBJS)
+test1DepCalcPreBuild: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: GCC C Linker'
gcc -o "test1DepCalcPreBuild" $(OBJS) $(USER_OBJS) $(LIBS)
@@ -36,9 +49,9 @@ test1DepCalcPreBuild: $(OBJS) $(USER_OBJS)
# Other Targets
clean:
- -$(RM) $(OBJS)$(C_DEPS)$(EXECUTABLES) test1DepCalcPreBuild
+ -$(RM) test1DepCalcPreBuild
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/sources.mk
index 52a3d69926a..673630dd080 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/sources.mk
@@ -2,14 +2,14 @@
# Automatically-generated file. Do not edit!
################################################################################
-O_SRCS :=
+ASM_SRCS :=
C_SRCS :=
-S_UPPER_SRCS :=
OBJ_SRCS :=
-ASM_SRCS :=
-OBJS :=
+O_SRCS :=
+S_UPPER_SRCS :=
C_DEPS :=
EXECUTABLES :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/subdir.mk
index 54c7f597e00..4e286186ccd 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/Benchmarks/subdir.mk
@@ -6,24 +6,31 @@
C_SRCS += \
../main.c
-OBJS += \
-./main.o
-
C_DEPS += \
./main.d
+OBJS += \
+./main.o
+
# Each subdirectory must supply rules for building sources it contributes
-main.o: ../main.c
+main.o: ../main.c subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: GCC C Compiler'
gcc -I../Headers -I../Sources/sub\ sources -O0 -g3 -c -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
-main.d: ../main.c
+main.d: ../main.c subdir.mk
@echo 'Regenerating dependency file: $@'
gcc -w -MM -MP -MT"main.d" -MT"main.o" -I../Headers -I../Sources/sub\ sources -MF "$@" "$<"
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./main.d ./main.o
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/test1DepCalcPreBuild.zip b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/test1DepCalcPreBuild.zip
index 9dfd7aaddec..9dfd7aaddec 100755..100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/test1DepCalcPreBuild.zip
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/depCalcProjects/test1DepCalcPreBuild/test1DepCalcPreBuild.zip
Binary files differ
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/1.2/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/1.2/Benchmarks/makefile
index f1a25dab782..52846ad0ca0 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/1.2/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/1.2/Benchmarks/makefile
@@ -9,15 +9,11 @@ RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C++_DEPS)),)
-include $(C++_DEPS)
endif
-ifneq ($(strip $(C_DEPS)),)
--include $(C_DEPS)
-endif
ifneq ($(strip $(CC_DEPS)),)
-include $(CC_DEPS)
endif
@@ -27,6 +23,9 @@ endif
ifneq ($(strip $(CXX_DEPS)),)
-include $(CXX_DEPS)
endif
+ifneq ($(strip $(C_DEPS)),)
+-include $(C_DEPS)
+endif
ifneq ($(strip $(C_UPPER_DEPS)),)
-include $(C_UPPER_DEPS)
endif
@@ -34,13 +33,27 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := test12
+BUILD_ARTIFACT_EXTENSION := exe
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: test12.exe
+all: main-build
+
+# Main-build Target
+main-build: test12.exe
# Tool invocations
-test12.exe: $(OBJS) $(USER_OBJS)
+test12.exe: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: Cygwin C++ Linker'
g++ -o "test12.exe" $(OBJS) $(USER_OBJS) $(LIBS)
@@ -49,9 +62,9 @@ test12.exe: $(OBJS) $(USER_OBJS)
# Other Targets
clean:
- -$(RM) $(C++_DEPS)$(OBJS)$(C_DEPS)$(CC_DEPS)$(CPP_DEPS)$(EXECUTABLES)$(CXX_DEPS)$(C_UPPER_DEPS) test12.exe
+ -$(RM) test12.exe
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/1.2/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/1.2/Benchmarks/sources.mk
index c1514fd5b49..c15c16c0447 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/1.2/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/1.2/Benchmarks/sources.mk
@@ -2,24 +2,24 @@
# Automatically-generated file. Do not edit!
################################################################################
-O_SRCS :=
-CPP_SRCS :=
-C_UPPER_SRCS :=
-C_SRCS :=
-S_UPPER_SRCS :=
-OBJ_SRCS :=
ASM_SRCS :=
-CXX_SRCS :=
C++_SRCS :=
CC_SRCS :=
+CPP_SRCS :=
+CXX_SRCS :=
+C_SRCS :=
+C_UPPER_SRCS :=
+OBJ_SRCS :=
+O_SRCS :=
+S_UPPER_SRCS :=
C++_DEPS :=
-OBJS :=
-C_DEPS :=
CC_DEPS :=
CPP_DEPS :=
-EXECUTABLES :=
CXX_DEPS :=
+C_DEPS :=
C_UPPER_DEPS :=
+EXECUTABLES :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/1.2/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/1.2/Benchmarks/subdir.mk
index bb4b120c968..1b71e62830e 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/1.2/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/1.2/Benchmarks/subdir.mk
@@ -6,19 +6,26 @@
CPP_SRCS += \
../test.cpp
-OBJS += \
-./test.o
-
CPP_DEPS += \
./test.d
+OBJS += \
+./test.o
+
# Each subdirectory must supply rules for building sources it contributes
-%.o: ../%.cpp
+%.o: ../%.cpp subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Cygwin C++ Compiler'
- g++ -O3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ g++ -O3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./test.d ./test.o
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.0/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.0/Benchmarks/makefile
index 71c8f61fd37..815689a4bf6 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.0/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.0/Benchmarks/makefile
@@ -9,7 +9,6 @@ RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C++_DEPS)),)
@@ -18,15 +17,15 @@ endif
ifneq ($(strip $(CC_DEPS)),)
-include $(CC_DEPS)
endif
-ifneq ($(strip $(C_DEPS)),)
--include $(C_DEPS)
-endif
ifneq ($(strip $(CPP_DEPS)),)
-include $(CPP_DEPS)
endif
ifneq ($(strip $(CXX_DEPS)),)
-include $(CXX_DEPS)
endif
+ifneq ($(strip $(C_DEPS)),)
+-include $(C_DEPS)
+endif
ifneq ($(strip $(C_UPPER_DEPS)),)
-include $(C_UPPER_DEPS)
endif
@@ -34,24 +33,38 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := test20
+BUILD_ARTIFACT_EXTENSION := exe
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: test20.exe
+all: main-build
+
+# Main-build Target
+main-build: test20.exe
# Tool invocations
-test20.exe: $(OBJS) $(USER_OBJS)
+test20.exe: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
- @echo 'Invoking: GCC C++ Linker'
+ @echo 'Invoking: Cygwin C++ Linker'
g++ -o "test20.exe" $(OBJS) $(USER_OBJS) $(LIBS)
@echo 'Finished building target: $@'
@echo ' '
# Other Targets
clean:
- -$(RM) $(OBJS)$(C++_DEPS)$(EXECUTABLES)$(CC_DEPS)$(C_DEPS)$(CPP_DEPS)$(CXX_DEPS)$(C_UPPER_DEPS) test20.exe
+ -$(RM) test20.exe
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.0/Benchmarks/objects.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.0/Benchmarks/objects.mk
index b19ccc5913d..742c2da043f 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.0/Benchmarks/objects.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.0/Benchmarks/objects.mk
@@ -2,7 +2,7 @@
# Automatically-generated file. Do not edit!
################################################################################
-LIBS :=
-
USER_OBJS :=
+LIBS :=
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.0/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.0/Benchmarks/sources.mk
index c1514fd5b49..c15c16c0447 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.0/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.0/Benchmarks/sources.mk
@@ -2,24 +2,24 @@
# Automatically-generated file. Do not edit!
################################################################################
-O_SRCS :=
-CPP_SRCS :=
-C_UPPER_SRCS :=
-C_SRCS :=
-S_UPPER_SRCS :=
-OBJ_SRCS :=
ASM_SRCS :=
-CXX_SRCS :=
C++_SRCS :=
CC_SRCS :=
+CPP_SRCS :=
+CXX_SRCS :=
+C_SRCS :=
+C_UPPER_SRCS :=
+OBJ_SRCS :=
+O_SRCS :=
+S_UPPER_SRCS :=
C++_DEPS :=
-OBJS :=
-C_DEPS :=
CC_DEPS :=
CPP_DEPS :=
-EXECUTABLES :=
CXX_DEPS :=
+C_DEPS :=
C_UPPER_DEPS :=
+EXECUTABLES :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.0/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.0/Benchmarks/subdir.mk
index 5f621ea0a2a..be29dcd74c4 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.0/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.0/Benchmarks/subdir.mk
@@ -6,19 +6,26 @@
CPP_SRCS += \
../Test1.cpp
-OBJS += \
-./Test1.o
-
CPP_DEPS += \
./Test1.d
+OBJS += \
+./Test1.o
+
# Each subdirectory must supply rules for building sources it contributes
-%.o: ../%.cpp
+%.o: ../%.cpp subdir.mk
@echo 'Building file: $<'
- @echo 'Invoking: GCC C++ Compiler'
- g++ -O2 -g1 -pedantic -pedantic-errors -Wall -Werror -c -fmessage-length=0 -v -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ @echo 'Invoking: Cygwin C++ Compiler'
+ g++ -O2 -g1 -pedantic -pedantic-errors -Wall -Werror -c -fmessage-length=0 -v -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./Test1.d ./Test1.o
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1/Benchmarks/Functions/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1/Benchmarks/Functions/subdir.mk
index a83733ab14f..74cdf3d739b 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1/Benchmarks/Functions/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1/Benchmarks/Functions/subdir.mk
@@ -6,19 +6,26 @@
C_SRCS += \
../Functions/Func1.c
-OBJS += \
-./Functions/Func1.o
-
C_DEPS += \
./Functions/Func1.d
+OBJS += \
+./Functions/Func1.o
+
# Each subdirectory must supply rules for building sources it contributes
-Functions/%.o: ../Functions/%.c
+Functions/%.o: ../Functions/%.c Functions/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: GCC C Compiler'
- gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean-Functions
+
+clean-Functions:
+ -$(RM) ./Functions/Func1.d ./Functions/Func1.o
+
+.PHONY: clean-Functions
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1/Benchmarks/makefile
index 39aee3a5a53..e538af20c05 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1/Benchmarks/makefile
@@ -10,7 +10,6 @@ RM := rm -rf
-include sources.mk
-include Functions/subdir.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
@@ -20,13 +19,27 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := MBS2dot1
+BUILD_ARTIFACT_EXTENSION := exe
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: MBS2dot1.exe
+all: main-build
+
+# Main-build Target
+main-build: MBS2dot1.exe
# Tool invocations
-MBS2dot1.exe: $(OBJS) $(USER_OBJS)
+MBS2dot1.exe: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: GCC C Linker'
gcc -o "MBS2dot1.exe" $(OBJS) $(USER_OBJS) $(LIBS)
@@ -35,9 +48,9 @@ MBS2dot1.exe: $(OBJS) $(USER_OBJS)
# Other Targets
clean:
- -$(RM) $(OBJS)$(C_DEPS)$(EXECUTABLES) MBS2dot1.exe
+ -$(RM) MBS2dot1.exe
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1/Benchmarks/sources.mk
index fa1bbce179d..2daead33667 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1/Benchmarks/sources.mk
@@ -2,14 +2,14 @@
# Automatically-generated file. Do not edit!
################################################################################
-O_SRCS :=
+ASM_SRCS :=
C_SRCS :=
-S_UPPER_SRCS :=
OBJ_SRCS :=
-ASM_SRCS :=
-OBJS :=
+O_SRCS :=
+S_UPPER_SRCS :=
C_DEPS :=
EXECUTABLES :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1/Benchmarks/subdir.mk
index e1156e1e8ae..9e39072d4e8 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1/Benchmarks/subdir.mk
@@ -6,19 +6,26 @@
C_SRCS += \
../main.c
-OBJS += \
-./main.o
-
C_DEPS += \
./main.d
+OBJS += \
+./main.o
+
# Each subdirectory must supply rules for building sources it contributes
-%.o: ../%.c
+%.o: ../%.c subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: GCC C Compiler'
- gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./main.d ./main.o
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1CPP/Benchmarks/Functions/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1CPP/Benchmarks/Functions/subdir.mk
index 69cb10267ce..ac441926eb3 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1CPP/Benchmarks/Functions/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1CPP/Benchmarks/Functions/subdir.mk
@@ -6,19 +6,26 @@
CPP_SRCS += \
../Functions/Func1.cpp
-OBJS += \
-./Functions/Func1.o
-
CPP_DEPS += \
./Functions/Func1.d
+OBJS += \
+./Functions/Func1.o
+
# Each subdirectory must supply rules for building sources it contributes
-Functions/%.o: ../Functions/%.cpp
+Functions/%.o: ../Functions/%.cpp Functions/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: GCC C++ Compiler'
- g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean-Functions
+
+clean-Functions:
+ -$(RM) ./Functions/Func1.d ./Functions/Func1.o
+
+.PHONY: clean-Functions
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1CPP/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1CPP/Benchmarks/makefile
index dfb93611506..72baa7f19f5 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1CPP/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1CPP/Benchmarks/makefile
@@ -10,15 +10,11 @@ RM := rm -rf
-include sources.mk
-include Functions/subdir.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C++_DEPS)),)
-include $(C++_DEPS)
endif
-ifneq ($(strip $(C_DEPS)),)
--include $(C_DEPS)
-endif
ifneq ($(strip $(CC_DEPS)),)
-include $(CC_DEPS)
endif
@@ -28,6 +24,9 @@ endif
ifneq ($(strip $(CXX_DEPS)),)
-include $(CXX_DEPS)
endif
+ifneq ($(strip $(C_DEPS)),)
+-include $(C_DEPS)
+endif
ifneq ($(strip $(C_UPPER_DEPS)),)
-include $(C_UPPER_DEPS)
endif
@@ -35,13 +34,27 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := Test21CXX
+BUILD_ARTIFACT_EXTENSION :=
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: Test21CXX
+all: main-build
+
+# Main-build Target
+main-build: Test21CXX
# Tool invocations
-Test21CXX: $(OBJS) $(USER_OBJS)
+Test21CXX: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: GCC C++ Linker'
g++ -o "Test21CXX" $(OBJS) $(USER_OBJS) $(LIBS)
@@ -50,9 +63,9 @@ Test21CXX: $(OBJS) $(USER_OBJS)
# Other Targets
clean:
- -$(RM) $(OBJS)$(C++_DEPS)$(C_DEPS)$(CC_DEPS)$(CPP_DEPS)$(EXECUTABLES)$(CXX_DEPS)$(C_UPPER_DEPS) Test21CXX
+ -$(RM) Test21CXX
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1CPP/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1CPP/Benchmarks/sources.mk
index 1881eb751a7..dbbe731afad 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1CPP/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1CPP/Benchmarks/sources.mk
@@ -2,24 +2,24 @@
# Automatically-generated file. Do not edit!
################################################################################
-O_SRCS :=
-CPP_SRCS :=
-C_UPPER_SRCS :=
-C_SRCS :=
-S_UPPER_SRCS :=
-OBJ_SRCS :=
ASM_SRCS :=
-CXX_SRCS :=
C++_SRCS :=
CC_SRCS :=
-OBJS :=
+CPP_SRCS :=
+CXX_SRCS :=
+C_SRCS :=
+C_UPPER_SRCS :=
+OBJ_SRCS :=
+O_SRCS :=
+S_UPPER_SRCS :=
C++_DEPS :=
-C_DEPS :=
CC_DEPS :=
CPP_DEPS :=
-EXECUTABLES :=
CXX_DEPS :=
+C_DEPS :=
C_UPPER_DEPS :=
+EXECUTABLES :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1CPP/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1CPP/Benchmarks/subdir.mk
index 160fd30d294..1e71ee90931 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1CPP/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/oldTypeProjects/2.1CPP/Benchmarks/subdir.mk
@@ -6,19 +6,26 @@
C_SRCS += \
../main.c
-OBJS += \
-./main.o
-
C_DEPS += \
./main.d
+OBJS += \
+./main.o
+
# Each subdirectory must supply rules for building sources it contributes
-%.o: ../%.c
+%.o: ../%.c subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: GCC C++ Compiler'
- g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./main.d ./main.o
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedFolder/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedFolder/Benchmarks/makefile
index f709be10f04..0de58ca8a20 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedFolder/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedFolder/Benchmarks/makefile
@@ -9,7 +9,6 @@ RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
@@ -19,13 +18,27 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := linkedFolder
+BUILD_ARTIFACT_EXTENSION := a
+BUILD_ARTIFACT_PREFIX := lib
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: liblinkedFolder.a
+all: main-build
+
+# Main-build Target
+main-build: liblinkedFolder.a
# Tool invocations
-liblinkedFolder.a: $(OBJS) $(USER_OBJS)
+liblinkedFolder.a: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: archiver.gnu'
ar -r "liblinkedFolder.a" $(OBJS) $(USER_OBJS) $(LIBS)
@@ -34,9 +47,9 @@ liblinkedFolder.a: $(OBJS) $(USER_OBJS)
# Other Targets
clean:
- -$(RM) $(OBJS)$(C_DEPS) liblinkedFolder.a
+ -$(RM) liblinkedFolder.a
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedFolder/Benchmarks/objects.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedFolder/Benchmarks/objects.mk
index b19ccc5913d..742c2da043f 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedFolder/Benchmarks/objects.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedFolder/Benchmarks/objects.mk
@@ -2,7 +2,7 @@
# Automatically-generated file. Do not edit!
################################################################################
-LIBS :=
-
USER_OBJS :=
+LIBS :=
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedFolder/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedFolder/Benchmarks/sources.mk
index 2d6bdf5df20..b9165764518 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedFolder/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedFolder/Benchmarks/sources.mk
@@ -2,12 +2,12 @@
# Automatically-generated file. Do not edit!
################################################################################
-O_SRCS :=
C_SRCS :=
-S_UPPER_SRCS :=
+O_SRCS :=
S_SRCS :=
-OBJS :=
+S_UPPER_SRCS :=
C_DEPS :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedFolder/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedFolder/Benchmarks/subdir.mk
index 0c0b84721bd..e2208b718ad 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedFolder/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedFolder/Benchmarks/subdir.mk
@@ -7,17 +7,17 @@ C_SRCS += \
../f1.c \
../f2.c
-OBJS += \
-./f1.o \
-./f2.o
-
C_DEPS += \
./f1.d \
./f2.d
+OBJS += \
+./f1.o \
+./f2.o
+
# Each subdirectory must supply rules for building sources it contributes
-%.o: ../%.c
+%.o: ../%.c subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: compiler.gnu.c'
gcc -O0 -g3 -Wall -c -fmessage-length=0 -o "$@" "$<" && \
@@ -27,3 +27,10 @@ C_DEPS += \
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./f1.d ./f1.o ./f2.d ./f2.o
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedLib/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedLib/Benchmarks/makefile
index 6de72f16943..393dcbbf012 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedLib/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedLib/Benchmarks/makefile
@@ -9,7 +9,6 @@ RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
@@ -19,13 +18,27 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := linkedLib
+BUILD_ARTIFACT_EXTENSION := a
+BUILD_ARTIFACT_PREFIX := lib
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: liblinkedLib.a
+all: main-build
+
+# Main-build Target
+main-build: liblinkedLib.a
# Tool invocations
-liblinkedLib.a: $(OBJS) $(USER_OBJS)
+liblinkedLib.a: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: archiver.gnu'
ar -r "liblinkedLib.a" $(OBJS) $(USER_OBJS) $(LIBS)
@@ -34,9 +47,9 @@ liblinkedLib.a: $(OBJS) $(USER_OBJS)
# Other Targets
clean:
- -$(RM) $(OBJS)$(C_DEPS) liblinkedLib.a
+ -$(RM) liblinkedLib.a
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedLib/Benchmarks/objects.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedLib/Benchmarks/objects.mk
index b19ccc5913d..742c2da043f 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedLib/Benchmarks/objects.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedLib/Benchmarks/objects.mk
@@ -2,7 +2,7 @@
# Automatically-generated file. Do not edit!
################################################################################
-LIBS :=
-
USER_OBJS :=
+LIBS :=
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedLib/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedLib/Benchmarks/sources.mk
index a7659979874..b9165764518 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedLib/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedLib/Benchmarks/sources.mk
@@ -3,11 +3,11 @@
################################################################################
C_SRCS :=
-S_UPPER_SRCS :=
O_SRCS :=
S_SRCS :=
-OBJS :=
+S_UPPER_SRCS :=
C_DEPS :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedLib/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedLib/Benchmarks/subdir.mk
index f01f20660df..b5d3a08e215 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedLib/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/linkedLib/Benchmarks/subdir.mk
@@ -17,7 +17,7 @@ C_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
-f1.o: C:/Documents\ and\ Settings/agvozdev/CDTMBSTest/f1.c
+f1.o: C:/Documents\ and\ Settings/agvozdev/CDTMBSTest/f1.c subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: compiler.gnu.c'
gcc -O0 -g3 -Wall -c -fmessage-length=0 -o "$@" "$<" && \
@@ -26,7 +26,7 @@ f1.o: C:/Documents\ and\ Settings/agvozdev/CDTMBSTest/f1.c
@echo 'Finished building: $<'
@echo ' '
-f2.o: C:/Documents\ and\ Settings/agvozdev/CDTMBSTest/f2.c
+f2.o: C:/Documents\ and\ Settings/agvozdev/CDTMBSTest/f2.c subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: compiler.gnu.c'
gcc -O0 -g3 -Wall -c -fmessage-length=0 -o "$@" "$<" && \
@@ -36,3 +36,10 @@ f2.o: C:/Documents\ and\ Settings/agvozdev/CDTMBSTest/f2.c
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./f1.d ./f1.o ./f2.d ./f2.o
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/makefile
index 57b9e8931e2..0eb1f4f0353 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/makefile
@@ -12,12 +12,8 @@ RM := rm -rf
-include source2/subdir.mk
-include source1/subdir.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
-ifneq ($(strip $(C_DEPS)),)
--include $(C_DEPS)
-endif
ifneq ($(strip $(CC_DEPS)),)
-include $(CC_DEPS)
endif
@@ -27,6 +23,9 @@ endif
ifneq ($(strip $(CXX_DEPS)),)
-include $(CXX_DEPS)
endif
+ifneq ($(strip $(C_DEPS)),)
+-include $(C_DEPS)
+endif
ifneq ($(strip $(C_UPPER_DEPS)),)
-include $(C_UPPER_DEPS)
endif
@@ -34,13 +33,27 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := testResCfg
+BUILD_ARTIFACT_EXTENSION :=
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: testResCfg
+all: main-build
+
+# Main-build Target
+main-build: testResCfg
# Tool invocations
-testResCfg: $(OBJS) $(USER_OBJS)
+testResCfg: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: linker.gnu.cpp'
g++ --strip-all -o "testResCfg" $(OBJS) $(USER_OBJS) $(LIBS)
@@ -49,9 +62,9 @@ testResCfg: $(OBJS) $(USER_OBJS)
# Other Targets
clean:
- -$(RM) $(OBJS)$(C_DEPS)$(CC_DEPS)$(CPP_DEPS)$(CXX_DEPS)$(C_UPPER_DEPS) testResCfg
+ -$(RM) testResCfg
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/source1/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/source1/subdir.mk
index e3c307e75f5..30d32f56b98 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/source1/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/source1/subdir.mk
@@ -6,15 +6,15 @@
CPP_SRCS += \
../source1/Class1.cpp
-OBJS += \
-./source1/Class1.o
-
CPP_DEPS += \
./source1/Class1.d
+OBJS += \
+./source1/Class1.o
+
# Each subdirectory must supply rules for building sources it contributes
-source1/%.o: ../source1/%.cpp
+source1/%.o: ../source1/%.cpp source1/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: compiler.gnu.cpp'
g++ -I../headers -O0 -g3 -Wall -c -fmessage-length=0 -o "$@" "$<" && \
@@ -24,3 +24,10 @@ source1/%.o: ../source1/%.cpp
@echo ' '
+clean: clean-source1
+
+clean-source1:
+ -$(RM) ./source1/Class1.d ./source1/Class1.o
+
+.PHONY: clean-source1
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/source2/source21/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/source2/source21/subdir.mk
index 5a1ad29cc54..430a3131c58 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/source2/source21/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/source2/source21/subdir.mk
@@ -6,15 +6,15 @@
CPP_SRCS += \
../source2/source21/Class21.cpp
-OBJS += \
-./source2/source21/Class21.o
-
CPP_DEPS += \
./source2/source21/Class21.d
+OBJS += \
+./source2/source21/Class21.o
+
# Each subdirectory must supply rules for building sources it contributes
-source2/source21/Class21.o: ../source2/source21/Class21.cpp
+source2/source21/Class21.o: ../source2/source21/Class21.cpp source2/source21/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: compiler.gnu.cpp'
g++ -DRESSPEC -I../headers -O0 -g3 -Wall -c -o "$@" "$<" && \
@@ -24,3 +24,10 @@ source2/source21/Class21.o: ../source2/source21/Class21.cpp
@echo ' '
+clean: clean-source2-2f-source21
+
+clean-source2-2f-source21:
+ -$(RM) ./source2/source21/Class21.d ./source2/source21/Class21.o
+
+.PHONY: clean-source2-2f-source21
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/source2/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/source2/subdir.mk
index a612bf4fc07..81937df1541 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/source2/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/source2/subdir.mk
@@ -6,15 +6,15 @@
CPP_SRCS += \
../source2/Class2.cpp
-OBJS += \
-./source2/Class2.o
-
CPP_DEPS += \
./source2/Class2.d
+OBJS += \
+./source2/Class2.o
+
# Each subdirectory must supply rules for building sources it contributes
-source2/%.o: ../source2/%.cpp
+source2/%.o: ../source2/%.cpp source2/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: compiler.gnu.cpp'
g++ -I../headers -O0 -g3 -Wall -c -fmessage-length=0 -o "$@" "$<" && \
@@ -24,3 +24,10 @@ source2/%.o: ../source2/%.cpp
@echo ' '
+clean: clean-source2
+
+clean-source2:
+ -$(RM) ./source2/Class2.d ./source2/Class2.o
+
+.PHONY: clean-source2
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/sources.mk
index 9adc934fc62..047eb222b70 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/sources.mk
@@ -2,20 +2,20 @@
# Automatically-generated file. Do not edit!
################################################################################
-O_SRCS :=
+CC_SRCS :=
CPP_SRCS :=
-C_UPPER_SRCS :=
+CXX_SRCS :=
C_SRCS :=
-S_UPPER_SRCS :=
+C_UPPER_SRCS :=
+O_SRCS :=
S_SRCS :=
-CXX_SRCS :=
-CC_SRCS :=
-OBJS :=
-C_DEPS :=
+S_UPPER_SRCS :=
CC_DEPS :=
CPP_DEPS :=
CXX_DEPS :=
+C_DEPS :=
C_UPPER_DEPS :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/subdir.mk
index 56c172ea389..06b849c326e 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/multiResConfig/Benchmarks/subdir.mk
@@ -6,15 +6,15 @@
CPP_SRCS += \
../main.cpp
-OBJS += \
-./main.o
-
CPP_DEPS += \
./main.d
+OBJS += \
+./main.o
+
# Each subdirectory must supply rules for building sources it contributes
-%.o: ../%.cpp
+%.o: ../%.cpp subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: compiler.gnu.cpp'
g++ -I../headers -O0 -g3 -Wall -c -fmessage-length=0 -o "$@" "$<" && \
@@ -24,3 +24,10 @@ CPP_DEPS += \
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./main.d ./main.o
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/singleFileExe/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/singleFileExe/Benchmarks/makefile
index 1a68f795370..6247b44b330 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/singleFileExe/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/singleFileExe/Benchmarks/makefile
@@ -9,7 +9,6 @@ RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
@@ -19,13 +18,27 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := testSingleExe
+BUILD_ARTIFACT_EXTENSION :=
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: testSingleExe
+all: main-build
+
+# Main-build Target
+main-build: testSingleExe
# Tool invocations
-testSingleExe: $(OBJS) $(USER_OBJS)
+testSingleExe: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: linker.gnu.c'
gcc -o "testSingleExe" $(OBJS) $(USER_OBJS) $(LIBS)
@@ -34,9 +47,9 @@ testSingleExe: $(OBJS) $(USER_OBJS)
# Other Targets
clean:
- -$(RM) $(OBJS)$(C_DEPS) testSingleExe
+ -$(RM) testSingleExe
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/singleFileExe/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/singleFileExe/Benchmarks/sources.mk
index 2d6bdf5df20..b9165764518 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/singleFileExe/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/singleFileExe/Benchmarks/sources.mk
@@ -2,12 +2,12 @@
# Automatically-generated file. Do not edit!
################################################################################
-O_SRCS :=
C_SRCS :=
-S_UPPER_SRCS :=
+O_SRCS :=
S_SRCS :=
-OBJS :=
+S_UPPER_SRCS :=
C_DEPS :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/singleFileExe/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/singleFileExe/Benchmarks/subdir.mk
index 902f1b1c8ac..4dcc61195ba 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/singleFileExe/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/singleFileExe/Benchmarks/subdir.mk
@@ -6,15 +6,15 @@
C_SRCS += \
../main.c
-OBJS += \
-./main.o
-
C_DEPS += \
./main.d
+OBJS += \
+./main.o
+
# Each subdirectory must supply rules for building sources it contributes
-%.o: ../%.c
+%.o: ../%.c subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: compiler.gnu.c'
gcc -O0 -g3 -Wall -c -fmessage-length=0 -o "$@" "$<" && \
@@ -24,3 +24,10 @@ C_DEPS += \
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./main.d ./main.o
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/twoFileSO/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/twoFileSO/Benchmarks/makefile
index b9624981de1..1b7921c3ca3 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/twoFileSO/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/twoFileSO/Benchmarks/makefile
@@ -9,12 +9,8 @@ RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
-ifneq ($(strip $(C_DEPS)),)
--include $(C_DEPS)
-endif
ifneq ($(strip $(CC_DEPS)),)
-include $(CC_DEPS)
endif
@@ -24,6 +20,9 @@ endif
ifneq ($(strip $(CXX_DEPS)),)
-include $(CXX_DEPS)
endif
+ifneq ($(strip $(C_DEPS)),)
+-include $(C_DEPS)
+endif
ifneq ($(strip $(C_UPPER_DEPS)),)
-include $(C_UPPER_DEPS)
endif
@@ -31,13 +30,27 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := testDoubleSO
+BUILD_ARTIFACT_EXTENSION := so
+BUILD_ARTIFACT_PREFIX := lib
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: libtestDoubleSO.so
+all: main-build
+
+# Main-build Target
+main-build: libtestDoubleSO.so
# Tool invocations
-libtestDoubleSO.so: $(OBJS) $(USER_OBJS)
+libtestDoubleSO.so: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: linker.gnu.cpp'
g++ -shared -o "libtestDoubleSO.so" $(OBJS) $(USER_OBJS) $(LIBS)
@@ -46,9 +59,9 @@ libtestDoubleSO.so: $(OBJS) $(USER_OBJS)
# Other Targets
clean:
- -$(RM) $(OBJS)$(C_DEPS)$(CC_DEPS)$(CPP_DEPS)$(CXX_DEPS)$(C_UPPER_DEPS) libtestDoubleSO.so
+ -$(RM) libtestDoubleSO.so
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/twoFileSO/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/twoFileSO/Benchmarks/sources.mk
index 71808421af0..59afb7f9948 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/twoFileSO/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/twoFileSO/Benchmarks/sources.mk
@@ -2,20 +2,20 @@
# Automatically-generated file. Do not edit!
################################################################################
-O_SRCS :=
+CC_SRCS :=
CPP_SRCS :=
-C_UPPER_SRCS :=
+CXX_SRCS :=
C_SRCS :=
-S_UPPER_SRCS :=
+C_UPPER_SRCS :=
+O_SRCS :=
S_SRCS :=
-CXX_SRCS :=
-CC_SRCS :=
-OBJS :=
-C_DEPS :=
+S_UPPER_SRCS :=
CC_DEPS :=
CPP_DEPS :=
CXX_DEPS :=
+C_DEPS :=
C_UPPER_DEPS :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/twoFileSO/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/twoFileSO/Benchmarks/subdir.mk
index 0e0b407c30d..8d11a6a5406 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/twoFileSO/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test21Projects/twoFileSO/Benchmarks/subdir.mk
@@ -7,17 +7,17 @@ C_SRCS += \
../so1.c \
../so2.c
-OBJS += \
-./so1.o \
-./so2.o
-
C_DEPS += \
./so1.d \
./so2.d
+OBJS += \
+./so1.o \
+./so2.o
+
# Each subdirectory must supply rules for building sources it contributes
-%.o: ../%.c
+%.o: ../%.c subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: compiler.gnu.cpp'
g++ -DXXX -O0 -g3 -Wall -c -o "$@" "$<" && \
@@ -27,3 +27,10 @@ C_DEPS += \
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./so1.d ./so1.o ./so2.d ./so2.o
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest1/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest1/Benchmarks/makefile
index 50bc66e9c65..5682e95f052 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest1/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest1/Benchmarks/makefile
@@ -9,17 +9,30 @@ RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
--include objects.mk
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := CDTFortranTest1
+BUILD_ARTIFACT_EXTENSION := exe
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: CDTFortranTest1.exe
+all: main-build
+
+# Main-build Target
+main-build: CDTFortranTest1.exe
# Tool invocations
-CDTFortranTest1.exe: $(OBJS) $(USER_OBJS)
+CDTFortranTest1.exe: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: Linker'
mylink -o "CDTFortranTest1.exe" $(OBJS) $(USER_OBJS) $(LIBS)
@@ -28,9 +41,9 @@ CDTFortranTest1.exe: $(OBJS) $(USER_OBJS)
# Other Targets
clean:
- -$(RM) $(OBJS)$(MODS)$(EXECUTABLES) CDTFortranTest1.exe
+ -$(RM) CDTFortranTest1.exe
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest1/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest1/Benchmarks/sources.mk
index 6536c4d22b4..f69508fcaae 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest1/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest1/Benchmarks/sources.mk
@@ -2,17 +2,17 @@
# Automatically-generated file. Do not edit!
################################################################################
-O_SRCS :=
+F90_SRCS :=
F90_UPPER_SRCS :=
-F_UPPER_SRCS :=
+FOR_SRCS :=
+FOR_UPPER_SRCS :=
F_SRCS :=
+F_UPPER_SRCS :=
OBJ_SRCS :=
-FOR_UPPER_SRCS :=
-FOR_SRCS :=
-F90_SRCS :=
-OBJS :=
-MODS :=
+O_SRCS :=
EXECUTABLES :=
+MODS :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest1/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest1/Benchmarks/subdir.mk
index e1ac7090213..85c1aaf6288 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest1/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest1/Benchmarks/subdir.mk
@@ -15,7 +15,7 @@ OBJS += \
# Each subdirectory must supply rules for building sources it contributes
-%.obj: ../%.F90
+%.obj: ../%.F90 subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Test Fortran Compiler'
myfort -c -object:"$@" "$<"
@@ -27,3 +27,10 @@ MAIN.obj: AVE_CALCULATOR.mod ../MODULE.F90
./AVE_CALCULATOR.mod: MODULE.obj
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./AVE_CALCULATOR.mod ./AVERAGE.obj ./MAIN.obj ./MODULE.obj
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest2/Benchmarks/Sources/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest2/Benchmarks/Sources/subdir.mk
index ec92de6e7de..d76e9d1d52c 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest2/Benchmarks/Sources/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest2/Benchmarks/Sources/subdir.mk
@@ -87,7 +87,7 @@ OBJS += \
# Each subdirectory must supply rules for building sources it contributes
-Sources/%.obj: ../Sources/%.f90
+Sources/%.obj: ../Sources/%.f90 Sources/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Test Fortran Compiler'
myfort -c -object:"$@" "$<"
@@ -173,3 +173,10 @@ Sources/y.obj: D.mod ../module/d.f90 L_MODULE.mod ../module/l_module.f90 M1_MODU
Sources/z.obj: A_MODULE.mod ../module/a_module.f90 CBA_MODULE.mod ../module/cba_module.f90 D.mod ../module/d.f90 JJ_MODULE.mod ../module/jj_module.f90 MF_MODULE.mod ../module/mf_module.f90 XXX_MODULE.mod ../module/xxx_module.f90
+clean: clean-Sources
+
+clean-Sources:
+ -$(RM) ./Sources/a.obj ./Sources/ab.obj ./Sources/ac.obj ./Sources/c.obj ./Sources/ca.obj ./Sources/cd.obj ./Sources/ce.obj ./Sources/d1.obj ./Sources/e.obj ./Sources/et.obj ./Sources/f.obj ./Sources/fa.obj ./Sources/fex.obj ./Sources/ff.obj ./Sources/g.obj ./Sources/h.obj ./Sources/ha.obj ./Sources/i.obj ./Sources/ia.obj ./Sources/ii.obj ./Sources/is.obj ./Sources/l.obj ./Sources/m.obj ./Sources/ma.obj ./Sources/main.obj ./Sources/mo.obj ./Sources/o.obj ./Sources/p.obj ./Sources/r.obj ./Sources/rx.obj ./Sources/s.obj ./Sources/t.obj ./Sources/u.obj ./Sources/u1.obj ./Sources/v.obj ./Sources/w.obj ./Sources/x.obj ./Sources/y.obj ./Sources/z.obj
+
+.PHONY: clean-Sources
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest2/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest2/Benchmarks/makefile
index aab7347f2ab..3d87a2d4bc8 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest2/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest2/Benchmarks/makefile
@@ -10,18 +10,30 @@ RM := rm -rf
-include sources.mk
-include module/subdir.mk
-include Sources/subdir.mk
--include subdir.mk
--include objects.mk
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := CDTFortranTest2
+BUILD_ARTIFACT_EXTENSION :=
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: CDTFortranTest2
+all: main-build
+
+# Main-build Target
+main-build: CDTFortranTest2
# Tool invocations
-CDTFortranTest2: $(OBJS) $(USER_OBJS)
+CDTFortranTest2: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: Linker'
mylink -o "CDTFortranTest2" $(OBJS) $(USER_OBJS) $(LIBS)
@@ -30,9 +42,9 @@ CDTFortranTest2: $(OBJS) $(USER_OBJS)
# Other Targets
clean:
- -$(RM) $(OBJS)$(MODS)$(EXECUTABLES) CDTFortranTest2
+ -$(RM) CDTFortranTest2
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest2/Benchmarks/module/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest2/Benchmarks/module/subdir.mk
index 262ac77a261..d56c41b1b5e 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest2/Benchmarks/module/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest2/Benchmarks/module/subdir.mk
@@ -69,7 +69,7 @@ OBJS += \
# Each subdirectory must supply rules for building sources it contributes
-module/%.obj: ../module/%.f90
+module/%.obj: ../module/%.f90 module/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Test Fortran Compiler'
myfort -c -object:"$@" "$<"
@@ -164,3 +164,10 @@ module/yyy_module.obj: A2_MODULE.mod ../module/a2_module.f90 A_MODULE.mod ../mod
./YYY_MODULE.mod: module/yyy_module.obj A2_MODULE.mod ../module/a2_module.f90 A_MODULE.mod ../module/a_module.f90 B1_MODULE.mod ../module/b1_module.f90 D.mod ../module/d.f90 L1_MODULE.mod ../module/l1_module.f90 UN_MODULE.mod ../module/un_module.f90 XYZ_MODULE.mod ../module/xyz_module.f90
+clean: clean-module
+
+clean-module:
+ -$(RM) ./A1_MODULE.mod ./A2_MODULE.mod ./ABC_MODULE.mod ./A_MODULE.mod ./B1_MODULE.mod ./B2_MODULE.mod ./C1_MODULE.mod ./C2_MODULE.mod ./C3_MODULE.mod ./CBA_MODULE.mod ./CR_MODULE.mod ./D.mod ./ET_MODULE.mod ./F_MODULE.mod ./G_MOD.mod ./JJ_MODULE.mod ./K_MODULE.mod ./L1_MODULE.mod ./L_MODULE.mod ./M1_MODULE.mod ./MF_MODULE.mod ./MG_MODULE.mod ./P_MODULE.mod ./UN_MODULE.mod ./V_MODULE.mod ./W_MODULE.mod ./XXX_MODULE.mod ./XYZ_MODULE.mod ./YYY_MODULE.mod ./e_MODULE.mod ./module/F_module.obj ./module/a1_module.obj ./module/a2_module.obj ./module/a_module.obj ./module/abc_module.obj ./module/b1_module.obj ./module/b2_module.obj ./module/c1_module.obj ./module/c2_module.obj ./module/c3_module.obj ./module/cba_module.obj ./module/cr_module.obj ./module/d.obj ./module/e_module.obj ./module/et_module.obj ./module/g_module.obj ./module/jj_module.obj ./module/k_module.obj ./module/l1_module.obj ./module/l_module.obj ./module/m1_module.obj ./module/mf_module.obj ./module/mg_module.obj ./module/p_module.obj ./module/un_module.obj ./module/v_module.obj ./module/w_module.obj ./module/xxx_module.obj ./module/xyz_module.obj ./module/yyy_module.obj
+
+.PHONY: clean-module
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest2/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest2/Benchmarks/sources.mk
index e1d7d578abe..78300c360d4 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest2/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/CDTFortranTest2/Benchmarks/sources.mk
@@ -2,17 +2,17 @@
# Automatically-generated file. Do not edit!
################################################################################
-O_SRCS :=
+F90_SRCS :=
F90_UPPER_SRCS :=
-F_UPPER_SRCS :=
+FOR_SRCS :=
+FOR_UPPER_SRCS :=
F_SRCS :=
+F_UPPER_SRCS :=
OBJ_SRCS :=
-FOR_UPPER_SRCS :=
-FOR_SRCS :=
-F90_SRCS :=
-OBJS :=
-MODS :=
+O_SRCS :=
EXECUTABLES :=
+MODS :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/TestATO/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/TestATO/Benchmarks/makefile
index e63ad38c2b8..1d1ad19a3bb 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/TestATO/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/TestATO/Benchmarks/makefile
@@ -9,17 +9,30 @@ RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
--include objects.mk
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := TestATO
+BUILD_ARTIFACT_EXTENSION := out
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: TestATO.out
+all: main-build
+
+# Main-build Target
+main-build: TestATO.out
# Tool invocations
-TestATO.out: $(OBJS) $(OPT_SRCS)
+TestATO.out: $(OBJS) $(OPT_SRCS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: AssignToOption Executable Linker'
ATOL -opt../TestATO1.opt -opt../TestATO2.opt -o "TestATO.out" $(OBJS)
@@ -28,9 +41,9 @@ TestATO.out: $(OBJS) $(OPT_SRCS)
# Other Targets
clean:
- -$(RM) $(ASSIGNTOOPTION_EXECUTABLE_OUTPUTS)$(OBJS) TestATO.out
+ -$(RM) TestATO.out
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/TestATO/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/TestATO/Benchmarks/sources.mk
index 07f0261a56e..a969660f720 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/TestATO/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/TestATO/Benchmarks/sources.mk
@@ -2,13 +2,13 @@
# Automatically-generated file. Do not edit!
################################################################################
+COP_SRCS :=
CPP_SRCS :=
-C_UPPER_SRCS :=
+CPP_UPPER_SRCS :=
C_SRCS :=
+C_UPPER_SRCS :=
OBJ_SRCS :=
OPT_SRCS :=
-COP_SRCS :=
-CPP_UPPER_SRCS :=
ASSIGNTOOPTION_EXECUTABLE_OUTPUTS :=
OBJS :=
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/TestATO/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/TestATO/Benchmarks/subdir.mk
index a40307dddcd..69e5f34b411 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/TestATO/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/TestATO/Benchmarks/subdir.mk
@@ -3,6 +3,9 @@
################################################################################
# Add inputs and outputs from these tool invocations to the build variables
+COP_SRCS += \
+../TestATO.cop
+
C_SRCS += \
../TestATO.c
@@ -10,15 +13,12 @@ OPT_SRCS += \
../TestATO1.opt \
../TestATO2.opt
-COP_SRCS += \
-../TestATO.cop
-
OBJS += \
./TestATO.obj
# Each subdirectory must supply rules for building sources it contributes
-%.obj: ../%.c
+%.obj: ../%.c subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: AssignToOption Compiler'
ATOC -opt../TestATO.cop "$@" "$<"
@@ -26,3 +26,10 @@ OBJS += \
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./TestATO.obj
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/copyandDeploy/Benchmarks/Functions/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/copyandDeploy/Benchmarks/Functions/subdir.mk
index 11bdb3bda0b..d40fcd632ef 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/copyandDeploy/Benchmarks/Functions/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/copyandDeploy/Benchmarks/Functions/subdir.mk
@@ -6,25 +6,25 @@
X_SRCS += \
../Functions/Func1.x
-OBJS += \
-./Functions/Func1.o
+CS += \
+./Functions/Func1.c
C_DEPS += \
./Functions/Func1.d
-CS += \
-./Functions/Func1.c
+OBJS += \
+./Functions/Func1.o
# Each subdirectory must supply rules for building sources it contributes
-Functions/%.c: ../Functions/%.x
+Functions/%.c: ../Functions/%.x Functions/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Copy tool'
cp "$<" "$@"
@echo 'Finished building: $<'
@echo ' '
-Functions/%.o: ./Functions/%.c
+Functions/%.o: ./Functions/%.c Functions/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: MBS30.compiler.gnu.c'
gcc -O0 -g3 -Wall -c -fmessage-length=0 -v -o "$@" "$<" && \
@@ -34,3 +34,10 @@ Functions/%.o: ./Functions/%.c
@echo ' '
+clean: clean-Functions
+
+clean-Functions:
+ -$(RM) ./Functions/Func1.c ./Functions/Func1.d ./Functions/Func1.o
+
+.PHONY: clean-Functions
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/copyandDeploy/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/copyandDeploy/Benchmarks/makefile
index 4ac750c9189..6efd87f2eb7 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/copyandDeploy/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/copyandDeploy/Benchmarks/makefile
@@ -10,7 +10,6 @@ RM := rm -rf
-include sources.mk
-include Functions/subdir.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
@@ -20,23 +19,37 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := TestCopyandDeploy
+BUILD_ARTIFACT_EXTENSION :=
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
EXECUTABLES += \
USER_OBJS.foo \
# All Target
-all: TestCopyandDeploy
+all: main-build
+
+# Main-build Target
+main-build: TestCopyandDeploy
# Tool invocations
-TestCopyandDeploy: $(EXECUTABLES)
+TestCopyandDeploy: $(EXECUTABLES) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: Deploy tool'
cp $(EXECUTABLES) "TestCopyandDeploy"
@echo 'Finished building target: $@'
@echo ' '
-USER_OBJS.foo: $(OBJS) $(USER_OBJS)
+USER_OBJS.foo: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Invoking: MBS30.linker.gnu.c'
gcc -o "USER_OBJS.foo" $(OBJS) $(USER_OBJS) $(LIBS)
@echo 'Finished building: $@'
@@ -44,9 +57,9 @@ USER_OBJS.foo: $(OBJS) $(USER_OBJS)
# Other Targets
clean:
- -$(RM) $(OBJS)$(FINAL)$(C_DEPS)$(CS)$(EXECUTABLES) TestCopyandDeploy
+ -$(RM) TestCopyandDeploy USER_OBJS.foo
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/copyandDeploy/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/copyandDeploy/Benchmarks/sources.mk
index b20de370c83..3c25b17520b 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/copyandDeploy/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/copyandDeploy/Benchmarks/sources.mk
@@ -2,15 +2,15 @@
# Automatically-generated file. Do not edit!
################################################################################
-O_SRCS :=
-FOO_SRCS :=
C_SRCS :=
+FOO_SRCS :=
+O_SRCS :=
X_SRCS :=
-OBJS :=
-FINAL :=
-C_DEPS :=
CS :=
+C_DEPS :=
EXECUTABLES :=
+FINAL :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/copyandDeploy/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/copyandDeploy/Benchmarks/subdir.mk
index 53d386b9c5e..d35b314e4a3 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/copyandDeploy/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/copyandDeploy/Benchmarks/subdir.mk
@@ -6,25 +6,25 @@
X_SRCS += \
../main.x
-OBJS += \
-./main.o
+CS += \
+./main.c
C_DEPS += \
./main.d
-CS += \
-./main.c
+OBJS += \
+./main.o
# Each subdirectory must supply rules for building sources it contributes
-%.c: ../%.x
+%.c: ../%.x subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Copy tool'
cp "$<" "$@"
@echo 'Finished building: $<'
@echo ' '
-%.o: ./%.c
+%.o: ./%.c subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: MBS30.compiler.gnu.c'
gcc -O0 -g3 -Wall -c -fmessage-length=0 -v -o "$@" "$<" && \
@@ -34,3 +34,10 @@ CS += \
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./main.c ./main.d ./main.o
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/deleteFile/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/deleteFile/Benchmarks/makefile
index d2bdfef6d1f..3095d2f5d47 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/deleteFile/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/deleteFile/Benchmarks/makefile
@@ -9,12 +9,8 @@ RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
-ifneq ($(strip $(C_DEPS)),)
--include $(C_DEPS)
-endif
ifneq ($(strip $(CC_DEPS)),)
-include $(CC_DEPS)
endif
@@ -24,6 +20,9 @@ endif
ifneq ($(strip $(CXX_DEPS)),)
-include $(CXX_DEPS)
endif
+ifneq ($(strip $(C_DEPS)),)
+-include $(C_DEPS)
+endif
ifneq ($(strip $(C_UPPER_DEPS)),)
-include $(C_UPPER_DEPS)
endif
@@ -31,13 +30,27 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := DeleteFile
+BUILD_ARTIFACT_EXTENSION :=
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: DeleteFile
+all: main-build
+
+# Main-build Target
+main-build: DeleteFile
# Tool invocations
-DeleteFile: $(OBJS) $(USER_OBJS)
+DeleteFile: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: MBS30.linker.gnu.cpp'
g++ -o "DeleteFile" $(OBJS) $(USER_OBJS) $(LIBS)
@@ -46,9 +59,9 @@ DeleteFile: $(OBJS) $(USER_OBJS)
# Other Targets
clean:
- -$(RM) $(OBJS)$(C_DEPS)$(CC_DEPS)$(CPP_DEPS)$(EXECUTABLES)$(CXX_DEPS)$(C_UPPER_DEPS) DeleteFile
+ -$(RM) DeleteFile
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/deleteFile/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/deleteFile/Benchmarks/sources.mk
index 253f5085594..20810b9d039 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/deleteFile/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/deleteFile/Benchmarks/sources.mk
@@ -2,19 +2,19 @@
# Automatically-generated file. Do not edit!
################################################################################
-O_SRCS :=
+CC_SRCS :=
CPP_SRCS :=
-C_UPPER_SRCS :=
-C_SRCS :=
CXX_SRCS :=
-CC_SRCS :=
-OBJS :=
-C_DEPS :=
+C_SRCS :=
+C_UPPER_SRCS :=
+O_SRCS :=
CC_DEPS :=
CPP_DEPS :=
-EXECUTABLES :=
CXX_DEPS :=
+C_DEPS :=
C_UPPER_DEPS :=
+EXECUTABLES :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/deleteFile/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/deleteFile/Benchmarks/subdir.mk
index f904abd99d5..477292767e8 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/deleteFile/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/deleteFile/Benchmarks/subdir.mk
@@ -6,15 +6,15 @@
CXX_SRCS += \
../main.cxx
-OBJS += \
-./main.o
-
CXX_DEPS += \
./main.d
+OBJS += \
+./main.o
+
# Each subdirectory must supply rules for building sources it contributes
-%.o: ../%.cxx
+%.o: ../%.cxx subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: MBS30.compiler.gnu.cpp'
g++ -O0 -g3 -Wall -c -fmessage-length=0 -o "$@" "$<" && \
@@ -24,3 +24,10 @@ CXX_DEPS += \
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./main.d ./main.o
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/inputTypeOption/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/inputTypeOption/Benchmarks/makefile
index 02ec599a54a..35e7f1196c4 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/inputTypeOption/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/inputTypeOption/Benchmarks/makefile
@@ -9,7 +9,6 @@ RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
@@ -19,13 +18,27 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := inputTypeOption
+BUILD_ARTIFACT_EXTENSION :=
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: inputTypeOption
+all: main-build
+
+# Main-build Target
+main-build: inputTypeOption
# Tool invocations
-inputTypeOption: $(OBJS) C:\An\ Absolute\ Path\ With\ Spaces\foo.linker $(USER_OBJS)
+inputTypeOption: $(OBJS) C:\An\ Absolute\ Path\ With\ Spaces\foo.linker $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: org.eclipse.cdt.managedbuilder.core.tests.inputTypeOptionMakefileRenderingTest.c.linker'
gcc --linkerInputTypeOption="C:\An Absolute Path With Spaces\foo.linker" -o "inputTypeOption" $(OBJS) $(USER_OBJS) $(LIBS)
@@ -34,9 +47,9 @@ inputTypeOption: $(OBJS) C:\An\ Absolute\ Path\ With\ Spaces\foo.linker $(USER_O
# Other Targets
clean:
- -$(RM) $(OBJS)$(C_DEPS)$(EXECUTABLES) inputTypeOption
+ -$(RM) inputTypeOption
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/inputTypeOption/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/inputTypeOption/Benchmarks/subdir.mk
index d12dc805385..3487d6cc2d2 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/inputTypeOption/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/inputTypeOption/Benchmarks/subdir.mk
@@ -20,7 +20,7 @@ C_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
-%.o: ../%.c C:/An\ Absolute\ Path\ With\ Spaces/foo.compiler C:/An\ Absolute\ Path\ With\ Spaces/foo.noquotes.compiler
+%.o: ../%.c C:/An\ Absolute\ Path\ With\ Spaces/foo.compiler C:/An\ Absolute\ Path\ With\ Spaces/foo.noquotes.compiler subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: org.eclipse.cdt.managedbuilder.core.tests.inputTypeOptionMakefileRenderingTest.c.compiler'
gcc -O3 -Wall -c -fmessage-length=0 -v --compilerInputTypeOption="C:\An Absolute Path With Spaces\foo.compiler" --compilerInputTypeOption=C:\An Absolute Path With Spaces\foo.noquotes.compiler -o "$@" "$<" && \
@@ -29,7 +29,7 @@ C_DEPS += \
@echo 'Finished building: $<'
@echo ' '
-resourceSettingAbsoluteCompiler.o: ../resourceSettingAbsoluteCompiler.c D:/An\ Absolute\ Path\ With\ Spaces/resource.foo.compiler D:/An\ Absolute\ Path\ With\ Spaces/resource.foo.noquotes.compiler
+resourceSettingAbsoluteCompiler.o: ../resourceSettingAbsoluteCompiler.c D:/An\ Absolute\ Path\ With\ Spaces/resource.foo.compiler D:/An\ Absolute\ Path\ With\ Spaces/resource.foo.noquotes.compiler subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: org.eclipse.cdt.managedbuilder.core.tests.inputTypeOptionMakefileRenderingTest.c.compiler'
gcc -O3 -Wall -c -fmessage-length=0 -v --compilerInputTypeOption="D:\An Absolute Path With Spaces\resource.foo.compiler" --compilerInputTypeOption=D:\An Absolute Path With Spaces\resource.foo.noquotes.compiler -o "$@" "$<" && \
@@ -38,7 +38,7 @@ resourceSettingAbsoluteCompiler.o: ../resourceSettingAbsoluteCompiler.c D:/An\ A
@echo 'Finished building: $<'
@echo ' '
-resourceSettingRelativeCompiler.o: ../resourceSettingRelativeCompiler.c ../A\ Folder\ With\ Spaces/foo.compiler ../A\ Folder\ With\ Spaces/foo.noquotes.compiler
+resourceSettingRelativeCompiler.o: ../resourceSettingRelativeCompiler.c ../A\ Folder\ With\ Spaces/foo.compiler ../A\ Folder\ With\ Spaces/foo.noquotes.compiler subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: org.eclipse.cdt.managedbuilder.core.tests.inputTypeOptionMakefileRenderingTest.c.compiler'
gcc -O3 -Wall -c -fmessage-length=0 -v --compilerInputTypeOption="A Folder With Spaces/foo.compiler" --compilerInputTypeOption=A Folder With Spaces/foo.noquotes.compiler -o "$@" "$<" && \
@@ -48,3 +48,10 @@ resourceSettingRelativeCompiler.o: ../resourceSettingRelativeCompiler.c ../A\ Fo
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./picksUpGlobalAbsoluteInputOptionPath.d ./picksUpGlobalAbsoluteInputOptionPath.o ./resourceSettingAbsoluteCompiler.d ./resourceSettingAbsoluteCompiler.o ./resourceSettingRelativeCompiler.d ./resourceSettingRelativeCompiler.o
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedFolder/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedFolder/Benchmarks/makefile
index e9ef4847f98..98a60b6218c 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedFolder/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedFolder/Benchmarks/makefile
@@ -9,7 +9,6 @@ RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
@@ -19,13 +18,27 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := linkedFolder
+BUILD_ARTIFACT_EXTENSION := a
+BUILD_ARTIFACT_PREFIX := lib
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: liblinkedFolder.a
+all: main-build
+
+# Main-build Target
+main-build: liblinkedFolder.a
# Tool invocations
-liblinkedFolder.a: $(OBJS) $(USER_OBJS)
+liblinkedFolder.a: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: MBS30.archiver.gnu'
ar -r "liblinkedFolder.a" $(OBJS) $(USER_OBJS) $(LIBS)
@@ -34,9 +47,9 @@ liblinkedFolder.a: $(OBJS) $(USER_OBJS)
# Other Targets
clean:
- -$(RM) $(OBJS)$(C_DEPS)$(ARCHIVES) liblinkedFolder.a
+ -$(RM) liblinkedFolder.a
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedFolder/Benchmarks/objects.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedFolder/Benchmarks/objects.mk
index b19ccc5913d..742c2da043f 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedFolder/Benchmarks/objects.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedFolder/Benchmarks/objects.mk
@@ -2,7 +2,7 @@
# Automatically-generated file. Do not edit!
################################################################################
-LIBS :=
-
USER_OBJS :=
+LIBS :=
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedFolder/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedFolder/Benchmarks/sources.mk
index 99517232316..2da1fe64bf9 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedFolder/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedFolder/Benchmarks/sources.mk
@@ -2,11 +2,11 @@
# Automatically-generated file. Do not edit!
################################################################################
-O_SRCS :=
C_SRCS :=
-OBJS :=
-C_DEPS :=
+O_SRCS :=
ARCHIVES :=
+C_DEPS :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedFolder/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedFolder/Benchmarks/subdir.mk
index cc179c7df35..bafd716118d 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedFolder/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedFolder/Benchmarks/subdir.mk
@@ -7,17 +7,17 @@ C_SRCS += \
../f1.c \
../f2.c
-OBJS += \
-./f1.o \
-./f2.o
-
C_DEPS += \
./f1.d \
./f2.d
+OBJS += \
+./f1.o \
+./f2.o
+
# Each subdirectory must supply rules for building sources it contributes
-%.o: ../%.c
+%.o: ../%.c subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: MBS30.compiler.gnu.c'
gcc -O0 -g3 -Wall -c -fmessage-length=0 -v -o "$@" "$<" && \
@@ -27,3 +27,10 @@ C_DEPS += \
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./f1.d ./f1.o ./f2.d ./f2.o
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedLib30/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedLib30/Benchmarks/makefile
index 68fbe25cc9b..409c34d5799 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedLib30/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedLib30/Benchmarks/makefile
@@ -9,7 +9,6 @@ RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
@@ -19,13 +18,27 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := linkedLib
+BUILD_ARTIFACT_EXTENSION := a
+BUILD_ARTIFACT_PREFIX := lib
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: liblinkedLib.a
+all: main-build
+
+# Main-build Target
+main-build: liblinkedLib.a
# Tool invocations
-liblinkedLib.a: $(OBJS) $(USER_OBJS)
+liblinkedLib.a: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: MBS30.archiver.gnu'
ar -r "liblinkedLib.a" $(OBJS) $(USER_OBJS) $(LIBS)
@@ -34,9 +47,9 @@ liblinkedLib.a: $(OBJS) $(USER_OBJS)
# Other Targets
clean:
- -$(RM) $(OBJS)$(ARCHIVES)$(C_DEPS) liblinkedLib.a
+ -$(RM) liblinkedLib.a
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedLib30/Benchmarks/objects.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedLib30/Benchmarks/objects.mk
index b19ccc5913d..742c2da043f 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedLib30/Benchmarks/objects.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedLib30/Benchmarks/objects.mk
@@ -2,7 +2,7 @@
# Automatically-generated file. Do not edit!
################################################################################
-LIBS :=
-
USER_OBJS :=
+LIBS :=
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedLib30/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedLib30/Benchmarks/sources.mk
index ca18ed70ecc..2da1fe64bf9 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedLib30/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedLib30/Benchmarks/sources.mk
@@ -4,9 +4,9 @@
C_SRCS :=
O_SRCS :=
-OBJS :=
ARCHIVES :=
C_DEPS :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedLib30/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedLib30/Benchmarks/subdir.mk
index b0e33f4ed19..cb6a9d858ba 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedLib30/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/linkedLib30/Benchmarks/subdir.mk
@@ -23,7 +23,7 @@ C_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
-f1.o: C:/Documents\ and\ Settings/ltreggia/CDTMBSTest/f1.c
+f1.o: C:/Documents\ and\ Settings/ltreggia/CDTMBSTest/f1.c subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: MBS30.compiler.gnu.c'
gcc -O0 -g3 -Wall -c -fmessage-length=0 -v -o "$@" "$<" && \
@@ -32,7 +32,7 @@ f1.o: C:/Documents\ and\ Settings/ltreggia/CDTMBSTest/f1.c
@echo 'Finished building: $<'
@echo ' '
-f1_30.o: C:/Documents\ and\ Settings/agvozdev/CDTMBSTest/f1_30.c
+f1_30.o: C:/Documents\ and\ Settings/agvozdev/CDTMBSTest/f1_30.c subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: MBS30.compiler.gnu.c'
gcc -O0 -g3 -Wall -c -fmessage-length=0 -v -o "$@" "$<" && \
@@ -41,7 +41,7 @@ f1_30.o: C:/Documents\ and\ Settings/agvozdev/CDTMBSTest/f1_30.c
@echo 'Finished building: $<'
@echo ' '
-f2.o: C:/Documents\ and\ Settings/ltreggia/CDTMBSTest/f2.c
+f2.o: C:/Documents\ and\ Settings/ltreggia/CDTMBSTest/f2.c subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: MBS30.compiler.gnu.c'
gcc -O0 -g3 -Wall -c -fmessage-length=0 -v -o "$@" "$<" && \
@@ -50,7 +50,7 @@ f2.o: C:/Documents\ and\ Settings/ltreggia/CDTMBSTest/f2.c
@echo 'Finished building: $<'
@echo ' '
-f2_30.o: C:/Documents\ and\ Settings/agvozdev/CDTMBSTest/f2_30.c
+f2_30.o: C:/Documents\ and\ Settings/agvozdev/CDTMBSTest/f2_30.c subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: MBS30.compiler.gnu.c'
gcc -O0 -g3 -Wall -c -fmessage-length=0 -v -o "$@" "$<" && \
@@ -60,3 +60,10 @@ f2_30.o: C:/Documents\ and\ Settings/agvozdev/CDTMBSTest/f2_30.c
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./f1.d ./f1.o ./f1_30.d ./f1_30.o ./f2.d ./f2.o ./f2_30.d ./f2_30.o
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/makefile
index fd44e9a10a8..02feb4ba926 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/makefile
@@ -12,12 +12,8 @@ RM := rm -rf
-include source2/subdir.mk
-include source1/subdir.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
-ifneq ($(strip $(C_DEPS)),)
--include $(C_DEPS)
-endif
ifneq ($(strip $(CC_DEPS)),)
-include $(CC_DEPS)
endif
@@ -27,6 +23,9 @@ endif
ifneq ($(strip $(CXX_DEPS)),)
-include $(CXX_DEPS)
endif
+ifneq ($(strip $(C_DEPS)),)
+-include $(C_DEPS)
+endif
ifneq ($(strip $(C_UPPER_DEPS)),)
-include $(C_UPPER_DEPS)
endif
@@ -34,13 +33,27 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := multiResConfig
+BUILD_ARTIFACT_EXTENSION :=
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: multiResConfig
+all: main-build
+
+# Main-build Target
+main-build: multiResConfig
# Tool invocations
-multiResConfig: $(OBJS) $(USER_OBJS)
+multiResConfig: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: MBS30.linker.gnu.cpp'
g++ -o "multiResConfig" $(OBJS) $(USER_OBJS) $(LIBS)
@@ -49,9 +62,9 @@ multiResConfig: $(OBJS) $(USER_OBJS)
# Other Targets
clean:
- -$(RM) $(OBJS)$(C_DEPS)$(CC_DEPS)$(CPP_DEPS)$(EXECUTABLES)$(CXX_DEPS)$(C_UPPER_DEPS) multiResConfig
+ -$(RM) multiResConfig
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/source1/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/source1/subdir.mk
index c62e8751044..5f8ecc3f05a 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/source1/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/source1/subdir.mk
@@ -6,15 +6,15 @@
CPP_SRCS += \
../source1/Class1.cpp
-OBJS += \
-./source1/Class1.o
-
CPP_DEPS += \
./source1/Class1.d
+OBJS += \
+./source1/Class1.o
+
# Each subdirectory must supply rules for building sources it contributes
-source1/%.o: ../source1/%.cpp
+source1/%.o: ../source1/%.cpp source1/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: MBS30.compiler.gnu.cpp'
g++ -I../headers -O0 -g3 -Wall -c -fmessage-length=0 -o "$@" "$<" && \
@@ -24,3 +24,10 @@ source1/%.o: ../source1/%.cpp
@echo ' '
+clean: clean-source1
+
+clean-source1:
+ -$(RM) ./source1/Class1.d ./source1/Class1.o
+
+.PHONY: clean-source1
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/source2/source21/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/source2/source21/subdir.mk
index 8a20f3227dc..a10b4863339 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/source2/source21/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/source2/source21/subdir.mk
@@ -6,15 +6,15 @@
CPP_SRCS += \
../source2/source21/Class21.cpp
-OBJS += \
-./source2/source21/Class21.o
-
CPP_DEPS += \
./source2/source21/Class21.d
+OBJS += \
+./source2/source21/Class21.o
+
# Each subdirectory must supply rules for building sources it contributes
-source2/source21/Class21.o: ../source2/source21/Class21.cpp
+source2/source21/Class21.o: ../source2/source21/Class21.cpp source2/source21/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: MBS30.compiler.gnu.cpp'
g++ -DRESCFG -I../headers -O0 -g3 -Wall -c -fmessage-length=0 -o "$@" "$<" && \
@@ -24,3 +24,10 @@ source2/source21/Class21.o: ../source2/source21/Class21.cpp
@echo ' '
+clean: clean-source2-2f-source21
+
+clean-source2-2f-source21:
+ -$(RM) ./source2/source21/Class21.d ./source2/source21/Class21.o
+
+.PHONY: clean-source2-2f-source21
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/source2/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/source2/subdir.mk
index ff0ad8f01d1..56b081103b1 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/source2/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/source2/subdir.mk
@@ -6,15 +6,15 @@
CPP_SRCS += \
../source2/Class2.cpp
-OBJS += \
-./source2/Class2.o
-
CPP_DEPS += \
./source2/Class2.d
+OBJS += \
+./source2/Class2.o
+
# Each subdirectory must supply rules for building sources it contributes
-source2/%.o: ../source2/%.cpp
+source2/%.o: ../source2/%.cpp source2/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: MBS30.compiler.gnu.cpp'
g++ -I../headers -O0 -g3 -Wall -c -fmessage-length=0 -o "$@" "$<" && \
@@ -24,3 +24,10 @@ source2/%.o: ../source2/%.cpp
@echo ' '
+clean: clean-source2
+
+clean-source2:
+ -$(RM) ./source2/Class2.d ./source2/Class2.o
+
+.PHONY: clean-source2
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/sources.mk
index 4092a172734..a502fb13e32 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/sources.mk
@@ -2,19 +2,19 @@
# Automatically-generated file. Do not edit!
################################################################################
-O_SRCS :=
+CC_SRCS :=
CPP_SRCS :=
-C_UPPER_SRCS :=
-C_SRCS :=
CXX_SRCS :=
-CC_SRCS :=
-OBJS :=
-C_DEPS :=
+C_SRCS :=
+C_UPPER_SRCS :=
+O_SRCS :=
CC_DEPS :=
CPP_DEPS :=
-EXECUTABLES :=
CXX_DEPS :=
+C_DEPS :=
C_UPPER_DEPS :=
+EXECUTABLES :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/subdir.mk
index d98430eacf9..4c4695e2e74 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/multiResConfig/Benchmarks/subdir.mk
@@ -6,15 +6,15 @@
CPP_SRCS += \
../main.cpp
-OBJS += \
-./main.o
-
CPP_DEPS += \
./main.d
+OBJS += \
+./main.o
+
# Each subdirectory must supply rules for building sources it contributes
-%.o: ../%.cpp
+%.o: ../%.cpp subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: MBS30.compiler.gnu.cpp'
g++ -I../headers -O0 -g3 -Wall -c -fmessage-length=0 -o "$@" "$<" && \
@@ -24,3 +24,10 @@ CPP_DEPS += \
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./main.d ./main.o
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/preAndPostBuildSteps/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/preAndPostBuildSteps/Benchmarks/makefile
index e4d80dccdcf..a37db0b8b3d 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/preAndPostBuildSteps/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/preAndPostBuildSteps/Benchmarks/makefile
@@ -9,12 +9,8 @@ RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
-ifneq ($(strip $(C_DEPS)),)
--include $(C_DEPS)
-endif
ifneq ($(strip $(CC_DEPS)),)
-include $(CC_DEPS)
endif
@@ -24,6 +20,9 @@ endif
ifneq ($(strip $(CXX_DEPS)),)
-include $(CXX_DEPS)
endif
+ifneq ($(strip $(C_DEPS)),)
+-include $(C_DEPS)
+endif
ifneq ($(strip $(C_UPPER_DEPS)),)
-include $(C_UPPER_DEPS)
endif
@@ -31,28 +30,37 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := preAndPostBuildSteps
+BUILD_ARTIFACT_EXTENSION :=
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
all:
- $(MAKE) --no-print-directory pre-build
- $(MAKE) --no-print-directory main-build
+ +@$(MAKE) --no-print-directory pre-build && $(MAKE) --no-print-directory main-build && $(MAKE) --no-print-directory post-build
# Main-build Target
main-build: preAndPostBuildSteps
# Tool invocations
-preAndPostBuildSteps: $(OBJS) $(USER_OBJS)
+preAndPostBuildSteps: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: MBS30.linker.gnu.cpp'
g++ -o "preAndPostBuildSteps" $(OBJS) $(USER_OBJS) $(LIBS)
@echo 'Finished building target: $@'
@echo ' '
- $(MAKE) --no-print-directory post-build
# Other Targets
clean:
- -$(RM) $(OBJS)$(C_DEPS)$(CC_DEPS)$(CPP_DEPS)$(EXECUTABLES)$(CXX_DEPS)$(C_UPPER_DEPS) preAndPostBuildSteps
+ -$(RM) preAndPostBuildSteps
-@echo ' '
pre-build:
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/preAndPostBuildSteps/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/preAndPostBuildSteps/Benchmarks/sources.mk
index 253f5085594..20810b9d039 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/preAndPostBuildSteps/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/preAndPostBuildSteps/Benchmarks/sources.mk
@@ -2,19 +2,19 @@
# Automatically-generated file. Do not edit!
################################################################################
-O_SRCS :=
+CC_SRCS :=
CPP_SRCS :=
-C_UPPER_SRCS :=
-C_SRCS :=
CXX_SRCS :=
-CC_SRCS :=
-OBJS :=
-C_DEPS :=
+C_SRCS :=
+C_UPPER_SRCS :=
+O_SRCS :=
CC_DEPS :=
CPP_DEPS :=
-EXECUTABLES :=
CXX_DEPS :=
+C_DEPS :=
C_UPPER_DEPS :=
+EXECUTABLES :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/preAndPostBuildSteps/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/preAndPostBuildSteps/Benchmarks/subdir.mk
index f904abd99d5..477292767e8 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/preAndPostBuildSteps/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/preAndPostBuildSteps/Benchmarks/subdir.mk
@@ -6,15 +6,15 @@
CXX_SRCS += \
../main.cxx
-OBJS += \
-./main.o
-
CXX_DEPS += \
./main.d
+OBJS += \
+./main.o
+
# Each subdirectory must supply rules for building sources it contributes
-%.o: ../%.cxx
+%.o: ../%.cxx subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: MBS30.compiler.gnu.cpp'
g++ -O0 -g3 -Wall -c -fmessage-length=0 -o "$@" "$<" && \
@@ -24,3 +24,10 @@ CXX_DEPS += \
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./main.d ./main.o
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/rcbsBasicTest/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/rcbsBasicTest/Benchmarks/makefile
index 6fd78dbc09e..778a733b655 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/rcbsBasicTest/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/rcbsBasicTest/Benchmarks/makefile
@@ -9,7 +9,6 @@ RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
@@ -19,13 +18,27 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := rcbsBasicTest
+BUILD_ARTIFACT_EXTENSION :=
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: rcbsBasicTest
+all: main-build
+
+# Main-build Target
+main-build: rcbsBasicTest
# Tool invocations
-rcbsBasicTest: $(OBJS) $(USER_OBJS)
+rcbsBasicTest: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: MBS30.linker.gnu.c'
gcc -o "rcbsBasicTest" $(OBJS) $(USER_OBJS) $(LIBS)
@@ -34,9 +47,9 @@ rcbsBasicTest: $(OBJS) $(USER_OBJS)
# Other Targets
clean:
- -$(RM) $(OBJS)$(C_DEPS)$(EXECUTABLES) rcbsBasicTest
+ -$(RM) rcbsBasicTest
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/rcbsBasicTest/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/rcbsBasicTest/Benchmarks/sources.mk
index 21967bbf479..1aff72a2810 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/rcbsBasicTest/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/rcbsBasicTest/Benchmarks/sources.mk
@@ -2,11 +2,11 @@
# Automatically-generated file. Do not edit!
################################################################################
-O_SRCS :=
C_SRCS :=
-OBJS :=
+O_SRCS :=
C_DEPS :=
EXECUTABLES :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/rcbsBasicTest/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/rcbsBasicTest/Benchmarks/subdir.mk
index e2052920d5f..57c1b9017ae 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/rcbsBasicTest/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/rcbsBasicTest/Benchmarks/subdir.mk
@@ -11,7 +11,7 @@ OBJS += \
# Each subdirectory must supply rules for building sources it contributes
-rcbsBasicTest.o: ../rcbsBasicTest.c
+rcbsBasicTest.o: ../rcbsBasicTest.c subdir.mk
@echo 'Building file: $<'
@echo 'Now executing custom build step for rcbsBasicTest debug config'
gcc -g -c ../rcbsBasicTest.c -o ./rcbsBasicTest.o
@@ -19,3 +19,10 @@ rcbsBasicTest.o: ../rcbsBasicTest.c
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./rcbsBasicTest.o
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/singleFileExe/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/singleFileExe/Benchmarks/makefile
index 6275d8ddf09..65baeba7a69 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/singleFileExe/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/singleFileExe/Benchmarks/makefile
@@ -9,7 +9,6 @@ RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
@@ -19,13 +18,27 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := singleFileExe
+BUILD_ARTIFACT_EXTENSION :=
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: singleFileExe
+all: main-build
+
+# Main-build Target
+main-build: singleFileExe
# Tool invocations
-singleFileExe: $(OBJS) $(USER_OBJS)
+singleFileExe: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: MBS30.linker.gnu.c'
gcc -o "singleFileExe" $(OBJS) $(USER_OBJS) $(LIBS)
@@ -34,9 +47,9 @@ singleFileExe: $(OBJS) $(USER_OBJS)
# Other Targets
clean:
- -$(RM) $(OBJS)$(C_DEPS)$(EXECUTABLES) singleFileExe
+ -$(RM) singleFileExe
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/singleFileExe/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/singleFileExe/Benchmarks/sources.mk
index 21967bbf479..1aff72a2810 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/singleFileExe/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/singleFileExe/Benchmarks/sources.mk
@@ -2,11 +2,11 @@
# Automatically-generated file. Do not edit!
################################################################################
-O_SRCS :=
C_SRCS :=
-OBJS :=
+O_SRCS :=
C_DEPS :=
EXECUTABLES :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/singleFileExe/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/singleFileExe/Benchmarks/subdir.mk
index f0e192379ca..efffe174739 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/singleFileExe/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/singleFileExe/Benchmarks/subdir.mk
@@ -6,15 +6,15 @@
C_SRCS += \
../main.c
-OBJS += \
-./main.o
-
C_DEPS += \
./main.d
+OBJS += \
+./main.o
+
# Each subdirectory must supply rules for building sources it contributes
-%.o: ../%.c
+%.o: ../%.c subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: MBS30.compiler.gnu.c'
gcc -O0 -g3 -Wall -c -fmessage-length=0 -v -o "$@" "$<" && \
@@ -24,3 +24,10 @@ C_DEPS += \
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./main.d ./main.o
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test with spaces/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test with spaces/Benchmarks/makefile
index 43113041e64..77591ae44be 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test with spaces/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test with spaces/Benchmarks/makefile
@@ -10,7 +10,6 @@ RM := rm -rf
-include sources.mk
-include sub\ folder\ with\ spaces/subdir.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
@@ -20,13 +19,27 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := testwithspaces
+BUILD_ARTIFACT_EXTENSION := a
+BUILD_ARTIFACT_PREFIX := lib
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: testwithspaces.exe
+all: main-build
+
+# Main-build Target
+main-build: testwithspaces.exe
# Tool invocations
-testwithspaces.exe: $(OBJS) $(USER_OBJS)
+testwithspaces.exe: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: GCC C Linker'
gcc -o "testwithspaces.exe" $(OBJS) $(USER_OBJS) $(LIBS)
@@ -35,9 +48,9 @@ testwithspaces.exe: $(OBJS) $(USER_OBJS)
# Other Targets
clean:
- -$(RM) $(OBJS)$(C_DEPS)$(EXECUTABLES) testwithspaces.exe
+ -$(RM) testwithspaces.exe
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test with spaces/Benchmarks/sub folder with spaces/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test with spaces/Benchmarks/sub folder with spaces/subdir.mk
index 0394f4518d9..bb78f21d156 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test with spaces/Benchmarks/sub folder with spaces/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test with spaces/Benchmarks/sub folder with spaces/subdir.mk
@@ -14,11 +14,18 @@ C_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
-sub\ folder\ with\ spaces/foo\ with\ spaces.o: ../sub\ folder\ with\ spaces/foo\ with\ spaces.c
+sub\ folder\ with\ spaces/foo\ with\ spaces.o: ../sub\ folder\ with\ spaces/foo\ with\ spaces.c sub\ folder\ with\ spaces/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: GCC C Compiler'
- gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"sub folder with spaces/foo with spaces.d" -MT"sub\ folder\ with\ spaces/foo\ with\ spaces.d" -o "$@" "$<"
+ gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"sub folder with spaces/foo with spaces.d" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean-sub-20-folder-20-with-20-spaces
+
+clean-sub-20-folder-20-with-20-spaces:
+ -$(RM) ./sub\ folder\ with\ spaces/foo\ with\ spaces.d ./sub\ folder\ with\ spaces/foo\ with\ spaces.o
+
+.PHONY: clean-sub-20-folder-20-with-20-spaces
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test with spaces/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test with spaces/Benchmarks/subdir.mk
index 4214aab2931..6e4e95b59c5 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test with spaces/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test with spaces/Benchmarks/subdir.mk
@@ -14,11 +14,18 @@ C_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
-main\ with\ spaces.o: ../main\ with\ spaces.c
+main\ with\ spaces.o: ../main\ with\ spaces.c subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: GCC C Compiler'
- gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"main with spaces.d" -MT"main\ with\ spaces.d" -o "$@" "$<"
+ gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"main with spaces.d" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./main\ with\ spaces.d ./main\ with\ spaces.o
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_1/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_1/Benchmarks/makefile
index c407f93fc40..643b0864fff 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_1/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_1/Benchmarks/makefile
@@ -9,7 +9,6 @@ RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
@@ -19,6 +18,17 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := Test30_1
+BUILD_ARTIFACT_EXTENSION := so.4.5.6
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
TEST30_1_GNU_SO_DEPLOY_OUTPUT_OUTPUTS += \
default.so.4.5.6 \
@@ -28,10 +38,13 @@ test30_1.so.1.2.3 \
# All Target
-all: Test30_1.so.4.5.6 secondary-outputs
+all: main-build
+
+# Main-build Target
+main-build: Test30_1.so.4.5.6 secondary-outputs
# Tool invocations
-Test30_1.so.4.5.6: $(EXECUTABLES)
+Test30_1.so.4.5.6: $(EXECUTABLES) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: Deploy tool'
cp $(EXECUTABLES) "Test30_1.so.4.5.6"
@@ -40,7 +53,7 @@ Test30_1.so.4.5.6: $(EXECUTABLES)
default.so.4.5.6: Test30_1.so.4.5.6 $(EXECUTABLES)
-test30_1.so.1.2.3: $(STRIPPEDOBJS)
+test30_1.so.1.2.3: $(STRIPPEDOBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Invoking: MBS30.linker.gnu.c'
gcc -shared -Wl,-soname=test30_1.so.1.2.3 -o "test30_1.so.1.2.3" $(STRIPPEDOBJS)
@echo 'Finished building: $@'
@@ -48,11 +61,11 @@ test30_1.so.1.2.3: $(STRIPPEDOBJS)
# Other Targets
clean:
- -$(RM) $(STRIPPEDOBJS)$(OBJS)$(FINAL)$(TEST30_1_GNU_SO_CJPEG_OUTPUT_OUTPUTS)$(C_DEPS)$(TEST30_1_GNU_SO_DEPLOY_OUTPUT_OUTPUTS)$(TEST30_1_GNU_SO_TAR_OUTPUTH_OUTPUTS)$(TEST30_1_GNU_SO_TAR_OUTPUTBMP_OUTPUTS)$(EXECUTABLES)$(TEST30_1_GNU_SO_TAR_OUTPUTC_OUTPUTS) Test30_1.so.4.5.6
+ -$(RM) Test30_1.so.4.5.6 default.so.4.5.6 test30_1.so.1.2.3
-@echo ' '
secondary-outputs: $(TEST30_1_GNU_SO_CJPEG_OUTPUT_OUTPUTS)
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_1/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_1/Benchmarks/sources.mk
index 363df6ba22a..f23b966b352 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_1/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_1/Benchmarks/sources.mk
@@ -2,23 +2,23 @@
# Automatically-generated file. Do not edit!
################################################################################
-O_SRCS :=
-FOO_SRCS :=
+BMP_SRCS :=
C_SRCS :=
+FOO_SRCS :=
OPRESTRIPPED_SRCS :=
+O_SRCS :=
SO.1.2.3_SRCS :=
-BMP_SRCS :=
TAR_SRCS :=
-STRIPPEDOBJS :=
-OBJS :=
+C_DEPS :=
+EXECUTABLES :=
FINAL :=
+OBJS :=
+STRIPPEDOBJS :=
TEST30_1_GNU_SO_CJPEG_OUTPUT_OUTPUTS :=
-C_DEPS :=
TEST30_1_GNU_SO_DEPLOY_OUTPUT_OUTPUTS :=
-TEST30_1_GNU_SO_TAR_OUTPUTH_OUTPUTS :=
TEST30_1_GNU_SO_TAR_OUTPUTBMP_OUTPUTS :=
-EXECUTABLES :=
TEST30_1_GNU_SO_TAR_OUTPUTC_OUTPUTS :=
+TEST30_1_GNU_SO_TAR_OUTPUTH_OUTPUTS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_1/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_1/Benchmarks/subdir.mk
index 8b2681ca4ca..f5b6ce1c4a5 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_1/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_1/Benchmarks/subdir.mk
@@ -6,21 +6,21 @@
TAR_SRCS += \
../test.tar
-STRIPPEDOBJS += \
-./f1.o \
-./f2.o
+C_DEPS += \
+./f1.d \
+./f2.d
OBJS += \
./f1.oprestripped \
./f2.oprestripped
+STRIPPEDOBJS += \
+./f1.o \
+./f2.o
+
TEST30_1_GNU_SO_CJPEG_OUTPUT_OUTPUTS += \
./CDT.jpeg
-C_DEPS += \
-./f1.d \
-./f2.d
-
TEST30_1_GNU_SO_TAR_OUTPUTC_OUTPUTS += \
./f1.c \
./f2.c \
@@ -28,7 +28,7 @@ TEST30_1_GNU_SO_TAR_OUTPUTC_OUTPUTS += \
# Each subdirectory must supply rules for building sources it contributes
-f1.c: ../test.tar
+f1.c: ../test.tar subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Un-tar'
tar -xf "$<"
@@ -39,7 +39,7 @@ f2.c: f1.c
test_ar.h: f1.c
CDT.bmp: f1.c
-%.oprestripped: ./%.c
+%.oprestripped: ./%.c subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: MBS30.compiler.gnu.c'
gcc -O2 -g -Wall -c -fmessage-length=0 -v -o "$@" "$<" && \
@@ -48,14 +48,14 @@ CDT.bmp: f1.c
@echo 'Finished building: $<'
@echo ' '
-%.o: ./%.oprestripped
+%.o: ./%.oprestripped subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Strip object file'
strip --preserve-dates -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
-%.jpeg: ./%.bmp
+%.jpeg: ./%.bmp subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Convert to jpeg'
cjpeg -outfile "$@" "$<"
@@ -63,3 +63,10 @@ CDT.bmp: f1.c
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./CDT.bmp ./CDT.jpeg ./f1.c ./f1.d ./f1.o ./f1.oprestripped ./f2.c ./f2.d ./f2.o ./f2.oprestripped ./test_ar.h
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_2/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_2/Benchmarks/makefile
index 55d615da734..147f9ceba79 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_2/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_2/Benchmarks/makefile
@@ -10,10 +10,20 @@ RM := rm -rf
-include sources.mk
-include ABC/subdir.mk
-include subdir.mk
--include objects.mk
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := test30_2
+BUILD_ARTIFACT_EXTENSION := tmp
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
TAROUT += \
new.tar \
@@ -21,35 +31,53 @@ new.tar \
LOGFILE += \
new.log \
+TOUCHEDFILES += \
+alphabetical \
+are \
+file\ names \
+in \
+not \
+order \
+these \
+
# All Target
-all: test30_2.tmp
+all: main-build
+
+# Main-build Target
+main-build: test30_2.tmp
# Tool invocations
-test30_2.tmp: $(LOGFILE)
+test30_2.tmp: $(LOGFILE) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: cat'
cat $(LOGFILE)
@echo 'Finished building target: $@'
@echo ' '
-new.tar: $(CPP_SRCS) $(ASM_SRCS)
+new.tar: $(CPP_SRCS) $(ASM_SRCS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Invoking: tar-create'
tar -cf new.tar $(CPP_SRCS) $(ASM_SRCS)
@echo 'Finished building: $@'
@echo ' '
-new.log: $(TAROUT)
+new.log: $(TAROUT) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Invoking: tar-list'
tar -tf $(TAROUT) > new.log
@echo 'Finished building: $@'
@echo ' '
+these file\ names are not in alphabetical order: $(LOGFILE) makefile $(OPTIONAL_TOOL_DEPS)
+ @echo 'Invoking: touch'
+ touch -r $(LOGFILE) "these" "file names" "are" "not" "in" "alphabetical" "order"
+ @echo 'Finished building: $@'
+ @echo ' '
+
# Other Targets
clean:
- -$(RM) $(TAROUT)$(TERMINAL__DUMMY_OUTPUT__OUTPUTS)$(LOGFILE) test30_2.tmp
+ -$(RM) alphabetical are file\ names in new.log new.tar not order test30_2.tmp these
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_2/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_2/Benchmarks/sources.mk
index e340efcf42b..16fbadf46ce 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_2/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_2/Benchmarks/sources.mk
@@ -2,18 +2,19 @@
# Automatically-generated file. Do not edit!
################################################################################
+ASM_SRCS :=
+C++_SRCS :=
+CC_SRCS :=
CPP_SRCS :=
+CXX_SRCS :=
C_UPPER_SRCS :=
-S_UPPER_SRCS :=
-ASM_SRCS :=
LOG_SRCS :=
+S_UPPER_SRCS :=
TAR_SRCS :=
-CXX_SRCS :=
-C++_SRCS :=
-CC_SRCS :=
+LOGFILE :=
TAROUT :=
TERMINAL__DUMMY_OUTPUT__OUTPUTS :=
-LOGFILE :=
+TOUCHEDFILES :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_2/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_2/Benchmarks/subdir.mk
index f0088fffdc6..8db86e5f468 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_2/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/test30_2/Benchmarks/subdir.mk
@@ -3,13 +3,13 @@
################################################################################
# Add inputs and outputs from these tool invocations to the build variables
+ASM_SRCS += \
+../a1.asm
+
CPP_SRCS += \
../f1.cpp \
../f2.cpp
-ASM_SRCS += \
-../a1.asm
-
# Each subdirectory must supply rules for building sources it contributes
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testFileWithNoExtension/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testFileWithNoExtension/Benchmarks/makefile
index ffe40ca5682..2925c1d190c 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testFileWithNoExtension/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testFileWithNoExtension/Benchmarks/makefile
@@ -9,7 +9,6 @@ RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
@@ -19,13 +18,27 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := test
+BUILD_ARTIFACT_EXTENSION := exe
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: test.exe
+all: main-build
+
+# Main-build Target
+main-build: test.exe
# Tool invocations
-test.exe: $(OBJS) $(USER_OBJS)
+test.exe: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: GCC C Linker'
gcc -o "test.exe" $(OBJS) $(USER_OBJS) $(LIBS)
@@ -34,9 +47,9 @@ test.exe: $(OBJS) $(USER_OBJS)
# Other Targets
clean:
- -$(RM) $(OBJS)$(C_DEPS)$(EXECUTABLES) test.exe
+ -$(RM) test.exe
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testFileWithNoExtension/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testFileWithNoExtension/Benchmarks/sources.mk
index df1db101101..407d90a33a6 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testFileWithNoExtension/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testFileWithNoExtension/Benchmarks/sources.mk
@@ -2,14 +2,14 @@
# Automatically-generated file. Do not edit!
################################################################################
-O_SRCS :=
+ASM_SRCS :=
C_SRCS :=
-S_UPPER_SRCS :=
OBJ_SRCS :=
-ASM_SRCS :=
-OBJS :=
+O_SRCS :=
+S_UPPER_SRCS :=
C_DEPS :=
EXECUTABLES :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testFileWithNoExtension/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testFileWithNoExtension/Benchmarks/subdir.mk
index 7cb015d64d6..cfbed2916e1 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testFileWithNoExtension/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testFileWithNoExtension/Benchmarks/subdir.mk
@@ -6,19 +6,26 @@
C_SRCS += \
../test.c
-OBJS += \
-./test.o
-
C_DEPS += \
./test.d
+OBJS += \
+./test.o
+
# Each subdirectory must supply rules for building sources it contributes
-%.o: ../%.c
+%.o: ../%.c subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: GCC C Compiler'
- gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./test.d ./test.o
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testMacroSupportInBuildDefinitions/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testMacroSupportInBuildDefinitions/Benchmarks/makefile
index 0658a6bc051..1cc4d5a8424 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testMacroSupportInBuildDefinitions/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testMacroSupportInBuildDefinitions/Benchmarks/makefile
@@ -9,17 +9,30 @@ RM := rm
# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
--include objects.mk
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := testMacroSupportInBuildDefinitions
+BUILD_ARTIFACT_EXTENSION := tar
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: testMacroSupportInBuildDefinitions.tar
+all: main-build
+
+# Main-build Target
+main-build: testMacroSupportInBuildDefinitions.tar
# Tool invocations
-testMacroSupportInBuildDefinitions.tar: $(BAR_FILES)
+testMacroSupportInBuildDefinitions.tar: $(BAR_FILES) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: Bar Tool'
tar cvf $@ $(BAR_FILES)
@@ -28,9 +41,9 @@ testMacroSupportInBuildDefinitions.tar: $(BAR_FILES)
# Other Targets
clean:
- -$(RM) $(TAR_FILE_OUTPUTS)$(BAR_FILES) testMacroSupportInBuildDefinitions.tar
+ -$(RM) testMacroSupportInBuildDefinitions.tar
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testMacroSupportInBuildDefinitions/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testMacroSupportInBuildDefinitions/Benchmarks/sources.mk
index 4f7408196b6..2b23bd4809a 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testMacroSupportInBuildDefinitions/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testMacroSupportInBuildDefinitions/Benchmarks/sources.mk
@@ -2,10 +2,10 @@
# Automatically-generated file. Do not edit!
################################################################################
-FOO_SRCS :=
BAR_SRCS :=
-TAR_FILE_OUTPUTS :=
+FOO_SRCS :=
BAR_FILES :=
+TAR_FILE_OUTPUTS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testMacroSupportInBuildDefinitions/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testMacroSupportInBuildDefinitions/Benchmarks/subdir.mk
index ac8fa98ea5c..dd9bf4f47e3 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testMacroSupportInBuildDefinitions/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/testMacroSupportInBuildDefinitions/Benchmarks/subdir.mk
@@ -11,7 +11,7 @@ BAR_FILES += \
# Each subdirectory must supply rules for building sources it contributes
-this_is_a_test_prefix_with_a_macro_for_the_project_name_between_here_testMacroSupportInBuildDefinitions_and_here%.bar: ../%.foo
+this_is_a_test_prefix_with_a_macro_for_the_project_name_between_here_testMacroSupportInBuildDefinitions_and_here%.bar: ../%.foo subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Foo Tool'
cp "$<" "$@"
@@ -19,3 +19,10 @@ this_is_a_test_prefix_with_a_macro_for_the_project_name_between_here_testMacroSu
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./this_is_a_test_prefix_with_a_macro_for_the_project_name_between_here_testMacroSupportInBuildDefinitions_and_heresomefile.bar
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/twoFileSO/Benchmarks/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/twoFileSO/Benchmarks/makefile
index 369479a4f48..e66b39f916e 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/twoFileSO/Benchmarks/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/twoFileSO/Benchmarks/makefile
@@ -9,7 +9,6 @@ RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
@@ -19,13 +18,27 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := twoFileSO
+BUILD_ARTIFACT_EXTENSION := SOS
+BUILD_ARTIFACT_PREFIX := lib
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: libtwoFileSO.SOS
+all: main-build
+
+# Main-build Target
+main-build: libtwoFileSO.SOS
# Tool invocations
-libtwoFileSO.SOS: $(OBJS) $(USER_OBJS)
+libtwoFileSO.SOS: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS)
@echo 'Building target: $@'
@echo 'Invoking: MBS30.linker.gnu.c'
gcc -shared -o "libtwoFileSO.SOS" $(OBJS) $(USER_OBJS) $(LIBS)
@@ -34,9 +47,9 @@ libtwoFileSO.SOS: $(OBJS) $(USER_OBJS)
# Other Targets
clean:
- -$(RM) $(OBJS)$(C_DEPS)$(LIBRARIES) libtwoFileSO.SOS
+ -$(RM) libtwoFileSO.SOS
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/twoFileSO/Benchmarks/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/twoFileSO/Benchmarks/sources.mk
index 6b64b2f411b..1ab95a436a3 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/twoFileSO/Benchmarks/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/twoFileSO/Benchmarks/sources.mk
@@ -2,11 +2,11 @@
# Automatically-generated file. Do not edit!
################################################################################
-O_SRCS :=
C_SRCS :=
-OBJS :=
+O_SRCS :=
C_DEPS :=
LIBRARIES :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/twoFileSO/Benchmarks/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/twoFileSO/Benchmarks/subdir.mk
index 5662216c129..d962e1f9af1 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/twoFileSO/Benchmarks/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/twoFileSO/Benchmarks/subdir.mk
@@ -7,17 +7,17 @@ C_SRCS += \
../so1.c \
../so2.c
-OBJS += \
-./so1.o \
-./so2.o
-
C_DEPS += \
./so1.d \
./so2.d
+OBJS += \
+./so1.o \
+./so2.o
+
# Each subdirectory must supply rules for building sources it contributes
-%.o: ../%.c
+%.o: ../%.c subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: MBS30.compiler.gnu.c'
gcc -O0 -g3 -c -v -o "$@" "$<" && \
@@ -27,3 +27,10 @@ C_DEPS += \
@echo ' '
+clean: clean--2e-
+
+clean--2e-:
+ -$(RM) ./so1.d ./so1.o ./so2.d ./so2.o
+
+.PHONY: clean--2e-
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1/d2/d3/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1/d2/d3/subdir.mk
index fcbc9a5f03b..30efe94aa1e 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1/d2/d3/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1/d2/d3/subdir.mk
@@ -7,21 +7,28 @@ CPP_SRCS += \
../d1/d2/d3/t.cpp \
../d1/d2/d3/y.cpp
-OBJS += \
-./d1/d2/d3/t.o \
-./d1/d2/d3/y.o
-
CPP_DEPS += \
./d1/d2/d3/t.d \
./d1/d2/d3/y.d
+OBJS += \
+./d1/d2/d3/t.o \
+./d1/d2/d3/y.o
+
# Each subdirectory must supply rules for building sources it contributes
-d1/d2/d3/%.o: ../d1/d2/d3/%.cpp
+d1/d2/d3/%.o: ../d1/d2/d3/%.cpp d1/d2/d3/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp'
- g++ -Id3_rel/path -I/d3_abs/path -Ic:/d3_abs/path -I"D:\d3_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ g++ -Id3_rel/path -I/d3_abs/path -Ic:/d3_abs/path -I"D:\d3_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean-d1-2f-d2-2f-d3
+
+clean-d1-2f-d2-2f-d3:
+ -$(RM) ./d1/d2/d3/t.d ./d1/d2/d3/t.o ./d1/d2/d3/y.d ./d1/d2/d3/y.o
+
+.PHONY: clean-d1-2f-d2-2f-d3
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1/d2/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1/d2/subdir.mk
index 774a57b76c9..e7d59b030fa 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1/d2/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1/d2/subdir.mk
@@ -7,28 +7,35 @@ CPP_SRCS += \
../d1/d2/e.cpp \
../d1/d2/r.cpp
-OBJS += \
-./d1/d2/e.o \
-./d1/d2/r.o
-
CPP_DEPS += \
./d1/d2/e.d \
./d1/d2/r.d
+OBJS += \
+./d1/d2/e.o \
+./d1/d2/r.o
+
# Each subdirectory must supply rules for building sources it contributes
-d1/d2/e.o: ../d1/d2/e.cpp
+d1/d2/e.o: ../d1/d2/e.cpp d1/d2/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp'
- g++ -Id2_ecpp_rel/path -I../d2_ecpp_proj/rel/path -I/d2_ecpp_abs/path -Ic:/d2_ecpp_abs/path -Id2_rel/path -I../d2_proj/rel/path -I/d2_abs/path -Ic:/d2_abs/path -Id1_rel/path -I../d1_proj/rel/path -I/d1_abs/path -Ic:/d1_abs/path -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -I"${WorkspaceDirPath}/test_40/dir1/dir2/dir3" -I"${WorkspaceDirPath}/test_40" -I"D:\docs\incs" -I"D:\d1_docs\incs" -I"D:\d2_docs\incs" -I"D:\d2_ecpp_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"d1/d2/e.d" -o "$@" "$<"
+ g++ -Id2_ecpp_rel/path -I../d2_ecpp_proj/rel/path -I/d2_ecpp_abs/path -Ic:/d2_ecpp_abs/path -Id2_rel/path -I../d2_proj/rel/path -I/d2_abs/path -Ic:/d2_abs/path -Id1_rel/path -I../d1_proj/rel/path -I/d1_abs/path -Ic:/d1_abs/path -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -I"${WorkspaceDirPath}/test_40/dir1/dir2/dir3" -I"${WorkspaceDirPath}/test_40" -I"D:\docs\incs" -I"D:\d1_docs\incs" -I"D:\d2_docs\incs" -I"D:\d2_ecpp_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
-d1/d2/%.o: ../d1/d2/%.cpp
+d1/d2/%.o: ../d1/d2/%.cpp d1/d2/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp'
- g++ -Id2_rel/path -I../d2_proj/rel/path -I/d2_abs/path -Ic:/d2_abs/path -Id1_rel/path -I../d1_proj/rel/path -I/d1_abs/path -Ic:/d1_abs/path -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -I"${WorkspaceDirPath}/test_40/dir1/dir2/dir3" -I"${WorkspaceDirPath}/test_40" -I"D:\docs\incs" -I"D:\d1_docs\incs" -I"D:\d2_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ g++ -Id2_rel/path -I../d2_proj/rel/path -I/d2_abs/path -Ic:/d2_abs/path -Id1_rel/path -I../d1_proj/rel/path -I/d1_abs/path -Ic:/d1_abs/path -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -I"${WorkspaceDirPath}/test_40/dir1/dir2/dir3" -I"${WorkspaceDirPath}/test_40" -I"D:\docs\incs" -I"D:\d1_docs\incs" -I"D:\d2_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean-d1-2f-d2
+
+clean-d1-2f-d2:
+ -$(RM) ./d1/d2/e.d ./d1/d2/e.o ./d1/d2/r.d ./d1/d2/r.o
+
+.PHONY: clean-d1-2f-d2
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1/subdir.mk
index 4b55f739278..a0ac72b31f9 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1/subdir.mk
@@ -8,23 +8,30 @@ CPP_SRCS += \
../d1/u.cpp \
../d1/w.cpp
-OBJS += \
-./d1/q.o \
-./d1/u.o \
-./d1/w.o
-
CPP_DEPS += \
./d1/q.d \
./d1/u.d \
./d1/w.d
+OBJS += \
+./d1/q.o \
+./d1/u.o \
+./d1/w.o
+
# Each subdirectory must supply rules for building sources it contributes
-d1/%.o: ../d1/%.cpp
+d1/%.o: ../d1/%.cpp d1/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp'
- g++ -Id1_rel/path -I../d1_proj/rel/path -I/d1_abs/path -Ic:/d1_abs/path -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -I"${WorkspaceDirPath}/test_40/dir1/dir2/dir3" -I"${WorkspaceDirPath}/test_40" -I"D:\docs\incs" -I"D:\d1_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ g++ -Id1_rel/path -I../d1_proj/rel/path -I/d1_abs/path -Ic:/d1_abs/path -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -I"${WorkspaceDirPath}/test_40/dir1/dir2/dir3" -I"${WorkspaceDirPath}/test_40" -I"D:\docs\incs" -I"D:\d1_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean-d1
+
+clean-d1:
+ -$(RM) ./d1/q.d ./d1/q.o ./d1/u.d ./d1/u.o ./d1/w.d ./d1/w.o
+
+.PHONY: clean-d1
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1_1/d2_1/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1_1/d2_1/subdir.mk
index 68bd483943d..177ca5e2564 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1_1/d2_1/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1_1/d2_1/subdir.mk
@@ -7,21 +7,28 @@ CPP_SRCS += \
../d1_1/d2_1/a.cpp \
../d1_1/d2_1/p.cpp
-OBJS += \
-./d1_1/d2_1/a.o \
-./d1_1/d2_1/p.o
-
CPP_DEPS += \
./d1_1/d2_1/a.d \
./d1_1/d2_1/p.d
+OBJS += \
+./d1_1/d2_1/a.o \
+./d1_1/d2_1/p.o
+
# Each subdirectory must supply rules for building sources it contributes
-d1_1/d2_1/%.o: ../d1_1/d2_1/%.cpp
+d1_1/d2_1/%.o: ../d1_1/d2_1/%.cpp d1_1/d2_1/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp'
- g++ -Id2_1_rel/path -I/d2_1_abs/path -Ic:/d2_1_abs/path -Id1_1_rel/path -I/d1_1_abs/path -Ic:/d1_1_abs/path -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -I"${WorkspaceDirPath}/test_40/dir1/dir2/dir3" -I"${WorkspaceDirPath}/test_40" -I"D:\docs\incs" -I"D:\d1_1_docs\incs" -I"D:\d2_1_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ g++ -Id2_1_rel/path -I/d2_1_abs/path -Ic:/d2_1_abs/path -Id1_1_rel/path -I/d1_1_abs/path -Ic:/d1_1_abs/path -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -I"${WorkspaceDirPath}/test_40/dir1/dir2/dir3" -I"${WorkspaceDirPath}/test_40" -I"D:\docs\incs" -I"D:\d1_1_docs\incs" -I"D:\d2_1_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean-d1_1-2f-d2_1
+
+clean-d1_1-2f-d2_1:
+ -$(RM) ./d1_1/d2_1/a.d ./d1_1/d2_1/a.o ./d1_1/d2_1/p.d ./d1_1/d2_1/p.o
+
+.PHONY: clean-d1_1-2f-d2_1
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1_1/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1_1/subdir.mk
index 6509ce74b70..f28473322c3 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1_1/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/d1_1/subdir.mk
@@ -7,21 +7,28 @@ CPP_SRCS += \
../d1_1/i.cpp \
../d1_1/o.cpp
-OBJS += \
-./d1_1/i.o \
-./d1_1/o.o
-
CPP_DEPS += \
./d1_1/i.d \
./d1_1/o.d
+OBJS += \
+./d1_1/i.o \
+./d1_1/o.o
+
# Each subdirectory must supply rules for building sources it contributes
-d1_1/%.o: ../d1_1/%.cpp
+d1_1/%.o: ../d1_1/%.cpp d1_1/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp'
- g++ -Id1_1_rel/path -I/d1_1_abs/path -Ic:/d1_1_abs/path -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -I"${WorkspaceDirPath}/test_40/dir1/dir2/dir3" -I"${WorkspaceDirPath}/test_40" -I"D:\docs\incs" -I"D:\d1_1_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ g++ -Id1_1_rel/path -I/d1_1_abs/path -Ic:/d1_1_abs/path -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -I"${WorkspaceDirPath}/test_40/dir1/dir2/dir3" -I"${WorkspaceDirPath}/test_40" -I"D:\docs\incs" -I"D:\d1_1_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean-d1_1
+
+clean-d1_1:
+ -$(RM) ./d1_1/i.d ./d1_1/i.o ./d1_1/o.d ./d1_1/o.o
+
+.PHONY: clean-d1_1
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/excluded_c/asd/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/excluded_c/asd/subdir.mk
index eecb3021a59..5d3c5841a09 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/excluded_c/asd/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/excluded_c/asd/subdir.mk
@@ -6,19 +6,26 @@
CPP_SRCS += \
../dir1/dd/excluded_c/asd/s.cpp
-OBJS += \
-./dir1/dd/excluded_c/asd/s.o
-
CPP_DEPS += \
./dir1/dd/excluded_c/asd/s.d
+OBJS += \
+./dir1/dd/excluded_c/asd/s.o
+
# Each subdirectory must supply rules for building sources it contributes
-dir1/dd/excluded_c/asd/%.o: ../dir1/dd/excluded_c/asd/%.cpp
+dir1/dd/excluded_c/asd/%.o: ../dir1/dd/excluded_c/asd/%.cpp dir1/dd/excluded_c/asd/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp'
- g++ -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -I"${WorkspaceDirPath}/test_40/dir1/dir2/dir3" -I"${WorkspaceDirPath}/test_40" -I"D:\docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ g++ -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -I"${WorkspaceDirPath}/test_40/dir1/dir2/dir3" -I"${WorkspaceDirPath}/test_40" -I"D:\docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean-dir1-2f-dd-2f-excluded_c-2f-asd
+
+clean-dir1-2f-dd-2f-excluded_c-2f-asd:
+ -$(RM) ./dir1/dd/excluded_c/asd/s.d ./dir1/dd/excluded_c/asd/s.o
+
+.PHONY: clean-dir1-2f-dd-2f-excluded_c-2f-asd
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/excluded_c/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/excluded_c/subdir.mk
index e805cffce9c..f1156f63d0e 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/excluded_c/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/excluded_c/subdir.mk
@@ -6,19 +6,26 @@
CPP_SRCS += \
../dir1/dd/excluded_c/inc.cpp
-OBJS += \
-./dir1/dd/excluded_c/inc.o
-
CPP_DEPS += \
./dir1/dd/excluded_c/inc.d
+OBJS += \
+./dir1/dd/excluded_c/inc.o
+
# Each subdirectory must supply rules for building sources it contributes
-dir1/dd/excluded_c/%.o: ../dir1/dd/excluded_c/%.cpp
+dir1/dd/excluded_c/%.o: ../dir1/dd/excluded_c/%.cpp dir1/dd/excluded_c/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp'
- g++ -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -I"${WorkspaceDirPath}/test_40/dir1/dir2/dir3" -I"${WorkspaceDirPath}/test_40" -I"D:\docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ g++ -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -I"${WorkspaceDirPath}/test_40/dir1/dir2/dir3" -I"${WorkspaceDirPath}/test_40" -I"D:\docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean-dir1-2f-dd-2f-excluded_c
+
+clean-dir1-2f-dd-2f-excluded_c:
+ -$(RM) ./dir1/dd/excluded_c/inc.d ./dir1/dd/excluded_c/inc.o
+
+.PHONY: clean-dir1-2f-dd-2f-excluded_c
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/ff/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/ff/subdir.mk
index f99a34ec0e2..da9c1f47fdf 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/ff/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/dir1/dd/ff/subdir.mk
@@ -3,36 +3,43 @@
################################################################################
# Add inputs and outputs from these tool invocations to the build variables
-C_SRCS += \
-../dir1/dd/ff/vbn.c
-
CPP_SRCS += \
../dir1/dd/ff/zxc.cpp
-OBJS += \
-./dir1/dd/ff/vbn.o \
-./dir1/dd/ff/zxc.o
+C_SRCS += \
+../dir1/dd/ff/vbn.c
+
+CPP_DEPS += \
+./dir1/dd/ff/zxc.d
C_DEPS += \
./dir1/dd/ff/vbn.d
-CPP_DEPS += \
-./dir1/dd/ff/zxc.d
+OBJS += \
+./dir1/dd/ff/vbn.o \
+./dir1/dd/ff/zxc.o
# Each subdirectory must supply rules for building sources it contributes
-dir1/dd/ff/%.o: ../dir1/dd/ff/%.c
+dir1/dd/ff/%.o: ../dir1/dd/ff/%.c dir1/dd/ff/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Test 4.0 ToolName.compiler.gnu.c'
- gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
-dir1/dd/ff/%.o: ../dir1/dd/ff/%.cpp
+dir1/dd/ff/%.o: ../dir1/dd/ff/%.cpp dir1/dd/ff/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp'
- g++ -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -I"${WorkspaceDirPath}/test_40/dir1/dir2/dir3" -I"${WorkspaceDirPath}/test_40" -I"D:\docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ g++ -Irel/path -I../proj/rel/path -I/abs/path -Ic:/abs/path -I"${WorkspaceDirPath}/test_40/dir1/dir2/dir3" -I"${WorkspaceDirPath}/test_40" -I"D:\docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean-dir1-2f-dd-2f-ff
+
+clean-dir1-2f-dd-2f-ff:
+ -$(RM) ./dir1/dd/ff/vbn.d ./dir1/dd/ff/vbn.o ./dir1/dd/ff/zxc.d ./dir1/dd/ff/zxc.o
+
+.PHONY: clean-dir1-2f-dd-2f-ff
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/makefile
index a7b11f751d7..353572bc2fc 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/makefile
@@ -16,8 +16,6 @@ RM := rm -rf
-include d1/d2/d3/subdir.mk
-include d1/d2/subdir.mk
-include d1/subdir.mk
--include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C++_DEPS)),)
@@ -26,15 +24,15 @@ endif
ifneq ($(strip $(CC_DEPS)),)
-include $(CC_DEPS)
endif
-ifneq ($(strip $(C_DEPS)),)
--include $(C_DEPS)
-endif
ifneq ($(strip $(CPP_DEPS)),)
-include $(CPP_DEPS)
endif
ifneq ($(strip $(CXX_DEPS)),)
-include $(CXX_DEPS)
endif
+ifneq ($(strip $(C_DEPS)),)
+-include $(C_DEPS)
+endif
ifneq ($(strip $(C_UPPER_DEPS)),)
-include $(C_UPPER_DEPS)
endif
@@ -42,24 +40,38 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := test_40
+BUILD_ARTIFACT_EXTENSION :=
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: test_40
+all: main-build
+
+# Main-build Target
+main-build: test_40
# Tool invocations
-test_40: $(OBJS) $(USER_OBJS)
+test_40: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS) uo1
@echo 'Building target: $@'
@echo 'Invoking: Test 4.0 ToolName.linker.gnu.cpp'
- g++ -Llib/path/1 -o "test_40" $(OBJS) $(USER_OBJS) $(LIBS)
+ g++ -Llib/path/1 -o "test_40" $(OBJS) $(USER_OBJS) $(LIBS) uo1 -llib1
@echo 'Finished building target: $@'
@echo ' '
# Other Targets
clean:
- -$(RM) $(OBJS)$(C++_DEPS)$(EXECUTABLES)$(CC_DEPS)$(C_DEPS)$(CPP_DEPS)$(CXX_DEPS)$(C_UPPER_DEPS) test_40
+ -$(RM) test_40
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/objects.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/objects.mk
index 5f594a8388a..742c2da043f 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/objects.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/objects.mk
@@ -2,7 +2,7 @@
# Automatically-generated file. Do not edit!
################################################################################
-LIBS := -llib1
+USER_OBJS :=
-USER_OBJS := uo1
+LIBS :=
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/sources.mk
index 9d962fb5338..463597703f3 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/Test 4.0 ConfigName.Dbg/sources.mk
@@ -2,24 +2,24 @@
# Automatically-generated file. Do not edit!
################################################################################
-O_SRCS :=
-CPP_SRCS :=
-C_UPPER_SRCS :=
-C_SRCS :=
-S_UPPER_SRCS :=
-OBJ_SRCS :=
ASM_SRCS :=
-CXX_SRCS :=
C++_SRCS :=
CC_SRCS :=
-OBJS :=
+CPP_SRCS :=
+CXX_SRCS :=
+C_SRCS :=
+C_UPPER_SRCS :=
+OBJ_SRCS :=
+O_SRCS :=
+S_UPPER_SRCS :=
C++_DEPS :=
-C_DEPS :=
CC_DEPS :=
CPP_DEPS :=
-EXECUTABLES :=
CXX_DEPS :=
+C_DEPS :=
C_UPPER_DEPS :=
+EXECUTABLES :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1/d2/d3/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1/d2/d3/subdir.mk
index fcbc9a5f03b..30efe94aa1e 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1/d2/d3/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1/d2/d3/subdir.mk
@@ -7,21 +7,28 @@ CPP_SRCS += \
../d1/d2/d3/t.cpp \
../d1/d2/d3/y.cpp
-OBJS += \
-./d1/d2/d3/t.o \
-./d1/d2/d3/y.o
-
CPP_DEPS += \
./d1/d2/d3/t.d \
./d1/d2/d3/y.d
+OBJS += \
+./d1/d2/d3/t.o \
+./d1/d2/d3/y.o
+
# Each subdirectory must supply rules for building sources it contributes
-d1/d2/d3/%.o: ../d1/d2/d3/%.cpp
+d1/d2/d3/%.o: ../d1/d2/d3/%.cpp d1/d2/d3/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp'
- g++ -Id3_rel/path -I/d3_abs/path -Ic:/d3_abs/path -I"D:\d3_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ g++ -Id3_rel/path -I/d3_abs/path -Ic:/d3_abs/path -I"D:\d3_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean-d1-2f-d2-2f-d3
+
+clean-d1-2f-d2-2f-d3:
+ -$(RM) ./d1/d2/d3/t.d ./d1/d2/d3/t.o ./d1/d2/d3/y.d ./d1/d2/d3/y.o
+
+.PHONY: clean-d1-2f-d2-2f-d3
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1/d2/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1/d2/subdir.mk
index b0714f98f2b..81c1cc016e0 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1/d2/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1/d2/subdir.mk
@@ -7,28 +7,35 @@ CPP_SRCS += \
../d1/d2/e.cpp \
../d1/d2/r.cpp
-OBJS += \
-./d1/d2/e.o \
-./d1/d2/r.o
-
CPP_DEPS += \
./d1/d2/e.d \
./d1/d2/r.d
+OBJS += \
+./d1/d2/e.o \
+./d1/d2/r.o
+
# Each subdirectory must supply rules for building sources it contributes
-d1/d2/e.o: ../d1/d2/e.cpp
+d1/d2/e.o: ../d1/d2/e.cpp d1/d2/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp'
- g++ -Id2_ecpp_rel/path -I../d2_ecpp_proj/rel/path -I/d2_ecpp_abs/path -Ic:/d2_ecpp_abs/path -Id2_rel/path -I../d2_proj/rel/path -I/d2_abs/path -Ic:/d2_abs/path -Id1_rel/path -I../d1_proj/rel/path -I/d1_abs/path -Ic:/d1_abs/path -I"D:\d1_docs\incs" -I"D:\d2_docs\incs" -I"D:\d2_ecpp_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"d1/d2/e.d" -o "$@" "$<"
+ g++ -Id2_ecpp_rel/path -I../d2_ecpp_proj/rel/path -I/d2_ecpp_abs/path -Ic:/d2_ecpp_abs/path -Id2_rel/path -I../d2_proj/rel/path -I/d2_abs/path -Ic:/d2_abs/path -Id1_rel/path -I../d1_proj/rel/path -I/d1_abs/path -Ic:/d1_abs/path -I"D:\d1_docs\incs" -I"D:\d2_docs\incs" -I"D:\d2_ecpp_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
-d1/d2/%.o: ../d1/d2/%.cpp
+d1/d2/%.o: ../d1/d2/%.cpp d1/d2/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp'
- g++ -Id2_rel/path -I../d2_proj/rel/path -I/d2_abs/path -Ic:/d2_abs/path -Id1_rel/path -I../d1_proj/rel/path -I/d1_abs/path -Ic:/d1_abs/path -I"D:\d1_docs\incs" -I"D:\d2_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ g++ -Id2_rel/path -I../d2_proj/rel/path -I/d2_abs/path -Ic:/d2_abs/path -Id1_rel/path -I../d1_proj/rel/path -I/d1_abs/path -Ic:/d1_abs/path -I"D:\d1_docs\incs" -I"D:\d2_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean-d1-2f-d2
+
+clean-d1-2f-d2:
+ -$(RM) ./d1/d2/e.d ./d1/d2/e.o ./d1/d2/r.d ./d1/d2/r.o
+
+.PHONY: clean-d1-2f-d2
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1/subdir.mk
index 90ae1275f04..ad8bd7f3c56 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1/subdir.mk
@@ -8,23 +8,30 @@ CPP_SRCS += \
../d1/u.cpp \
../d1/w.cpp
-OBJS += \
-./d1/q.o \
-./d1/u.o \
-./d1/w.o
-
CPP_DEPS += \
./d1/q.d \
./d1/u.d \
./d1/w.d
+OBJS += \
+./d1/q.o \
+./d1/u.o \
+./d1/w.o
+
# Each subdirectory must supply rules for building sources it contributes
-d1/%.o: ../d1/%.cpp
+d1/%.o: ../d1/%.cpp d1/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp'
- g++ -Id1_rel/path -I../d1_proj/rel/path -I/d1_abs/path -Ic:/d1_abs/path -I"D:\d1_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ g++ -Id1_rel/path -I../d1_proj/rel/path -I/d1_abs/path -Ic:/d1_abs/path -I"D:\d1_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean-d1
+
+clean-d1:
+ -$(RM) ./d1/q.d ./d1/q.o ./d1/u.d ./d1/u.o ./d1/w.d ./d1/w.o
+
+.PHONY: clean-d1
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1_1/d2_1/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1_1/d2_1/subdir.mk
index f23e95c434b..0682cb565b2 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1_1/d2_1/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1_1/d2_1/subdir.mk
@@ -7,21 +7,28 @@ CPP_SRCS += \
../d1_1/d2_1/a.cpp \
../d1_1/d2_1/p.cpp
-OBJS += \
-./d1_1/d2_1/a.o \
-./d1_1/d2_1/p.o
-
CPP_DEPS += \
./d1_1/d2_1/a.d \
./d1_1/d2_1/p.d
+OBJS += \
+./d1_1/d2_1/a.o \
+./d1_1/d2_1/p.o
+
# Each subdirectory must supply rules for building sources it contributes
-d1_1/d2_1/%.o: ../d1_1/d2_1/%.cpp
+d1_1/d2_1/%.o: ../d1_1/d2_1/%.cpp d1_1/d2_1/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp'
- g++ -Id2_1_rel/path -I/d2_1_abs/path -Ic:/d2_1_abs/path -Id1_1_rel/path -I/d1_1_abs/path -Ic:/d1_1_abs/path -I"D:\d1_1_docs\incs" -I"D:\d2_1_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ g++ -Id2_1_rel/path -I/d2_1_abs/path -Ic:/d2_1_abs/path -Id1_1_rel/path -I/d1_1_abs/path -Ic:/d1_1_abs/path -I"D:\d1_1_docs\incs" -I"D:\d2_1_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean-d1_1-2f-d2_1
+
+clean-d1_1-2f-d2_1:
+ -$(RM) ./d1_1/d2_1/a.d ./d1_1/d2_1/a.o ./d1_1/d2_1/p.d ./d1_1/d2_1/p.o
+
+.PHONY: clean-d1_1-2f-d2_1
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1_1/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1_1/subdir.mk
index 6d71c53f46b..6a4559c5876 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1_1/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/d1_1/subdir.mk
@@ -7,21 +7,28 @@ CPP_SRCS += \
../d1_1/i.cpp \
../d1_1/o.cpp
-OBJS += \
-./d1_1/i.o \
-./d1_1/o.o
-
CPP_DEPS += \
./d1_1/i.d \
./d1_1/o.d
+OBJS += \
+./d1_1/i.o \
+./d1_1/o.o
+
# Each subdirectory must supply rules for building sources it contributes
-d1_1/%.o: ../d1_1/%.cpp
+d1_1/%.o: ../d1_1/%.cpp d1_1/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp'
- g++ -Id1_1_rel/path -I/d1_1_abs/path -Ic:/d1_1_abs/path -I"D:\d1_1_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ g++ -Id1_1_rel/path -I/d1_1_abs/path -Ic:/d1_1_abs/path -I"D:\d1_1_docs\incs" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean-d1_1
+
+clean-d1_1:
+ -$(RM) ./d1_1/i.d ./d1_1/i.o ./d1_1/o.d ./d1_1/o.o
+
+.PHONY: clean-d1_1
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/dir1/dd/excluded_c/asd/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/dir1/dd/excluded_c/asd/subdir.mk
index 04dd2f5e0d5..b8165e9f841 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/dir1/dd/excluded_c/asd/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/dir1/dd/excluded_c/asd/subdir.mk
@@ -6,19 +6,26 @@
CPP_SRCS += \
../dir1/dd/excluded_c/asd/s.cpp
-OBJS += \
-./dir1/dd/excluded_c/asd/s.o
-
CPP_DEPS += \
./dir1/dd/excluded_c/asd/s.d
+OBJS += \
+./dir1/dd/excluded_c/asd/s.o
+
# Each subdirectory must supply rules for building sources it contributes
-dir1/dd/excluded_c/asd/%.o: ../dir1/dd/excluded_c/asd/%.cpp
+dir1/dd/excluded_c/asd/%.o: ../dir1/dd/excluded_c/asd/%.cpp dir1/dd/excluded_c/asd/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp'
- g++ -O2 -g -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ g++ -O2 -g -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean-dir1-2f-dd-2f-excluded_c-2f-asd
+
+clean-dir1-2f-dd-2f-excluded_c-2f-asd:
+ -$(RM) ./dir1/dd/excluded_c/asd/s.d ./dir1/dd/excluded_c/asd/s.o
+
+.PHONY: clean-dir1-2f-dd-2f-excluded_c-2f-asd
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/dir1/dd/excluded_c/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/dir1/dd/excluded_c/subdir.mk
index 8154f02e09c..8d500793617 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/dir1/dd/excluded_c/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/dir1/dd/excluded_c/subdir.mk
@@ -6,19 +6,26 @@
CPP_SRCS += \
../dir1/dd/excluded_c/inc.cpp
-OBJS += \
-./dir1/dd/excluded_c/inc.o
-
CPP_DEPS += \
./dir1/dd/excluded_c/inc.d
+OBJS += \
+./dir1/dd/excluded_c/inc.o
+
# Each subdirectory must supply rules for building sources it contributes
-dir1/dd/excluded_c/%.o: ../dir1/dd/excluded_c/%.cpp
+dir1/dd/excluded_c/%.o: ../dir1/dd/excluded_c/%.cpp dir1/dd/excluded_c/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp'
- g++ -O2 -g -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ g++ -O2 -g -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean-dir1-2f-dd-2f-excluded_c
+
+clean-dir1-2f-dd-2f-excluded_c:
+ -$(RM) ./dir1/dd/excluded_c/inc.d ./dir1/dd/excluded_c/inc.o
+
+.PHONY: clean-dir1-2f-dd-2f-excluded_c
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/dir1/dd/ff/subdir.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/dir1/dd/ff/subdir.mk
index 8fe554eb214..21ab628be91 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/dir1/dd/ff/subdir.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/dir1/dd/ff/subdir.mk
@@ -3,36 +3,43 @@
################################################################################
# Add inputs and outputs from these tool invocations to the build variables
-C_SRCS += \
-../dir1/dd/ff/vbn.c
-
CPP_SRCS += \
../dir1/dd/ff/zxc.cpp
-OBJS += \
-./dir1/dd/ff/vbn.o \
-./dir1/dd/ff/zxc.o
+C_SRCS += \
+../dir1/dd/ff/vbn.c
+
+CPP_DEPS += \
+./dir1/dd/ff/zxc.d
C_DEPS += \
./dir1/dd/ff/vbn.d
-CPP_DEPS += \
-./dir1/dd/ff/zxc.d
+OBJS += \
+./dir1/dd/ff/vbn.o \
+./dir1/dd/ff/zxc.o
# Each subdirectory must supply rules for building sources it contributes
-dir1/dd/ff/%.o: ../dir1/dd/ff/%.c
+dir1/dd/ff/%.o: ../dir1/dd/ff/%.c dir1/dd/ff/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Test 4.0 ToolName.compiler.gnu.c'
- gcc -O2 -g -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ gcc -O2 -g -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
-dir1/dd/ff/%.o: ../dir1/dd/ff/%.cpp
+dir1/dd/ff/%.o: ../dir1/dd/ff/%.cpp dir1/dd/ff/subdir.mk
@echo 'Building file: $<'
@echo 'Invoking: Test 4.0 ToolName.compiler.gnu.cpp'
- g++ -O2 -g -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
+ g++ -O2 -g -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
+clean: clean-dir1-2f-dd-2f-ff
+
+clean-dir1-2f-dd-2f-ff:
+ -$(RM) ./dir1/dd/ff/vbn.d ./dir1/dd/ff/vbn.o ./dir1/dd/ff/zxc.d ./dir1/dd/ff/zxc.o
+
+.PHONY: clean-dir1-2f-dd-2f-ff
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/makefile b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/makefile
index 273cd9dc6ce..841089e9c43 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/makefile
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/makefile
@@ -16,8 +16,6 @@ RM := rm -rf
-include d1/d2/d3/subdir.mk
-include d1/d2/subdir.mk
-include d1/subdir.mk
--include subdir.mk
--include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C++_DEPS)),)
@@ -26,15 +24,15 @@ endif
ifneq ($(strip $(CC_DEPS)),)
-include $(CC_DEPS)
endif
-ifneq ($(strip $(C_DEPS)),)
--include $(C_DEPS)
-endif
ifneq ($(strip $(CPP_DEPS)),)
-include $(CPP_DEPS)
endif
ifneq ($(strip $(CXX_DEPS)),)
-include $(CXX_DEPS)
endif
+ifneq ($(strip $(C_DEPS)),)
+-include $(C_DEPS)
+endif
ifneq ($(strip $(C_UPPER_DEPS)),)
-include $(C_UPPER_DEPS)
endif
@@ -42,24 +40,38 @@ endif
-include ../makefile.defs
+OPTIONAL_TOOL_DEPS := \
+$(wildcard ../makefile.defs) \
+$(wildcard ../makefile.init) \
+$(wildcard ../makefile.targets) \
+
+
+BUILD_ARTIFACT_NAME := test_40
+BUILD_ARTIFACT_EXTENSION :=
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
+
# Add inputs and outputs from these tool invocations to the build variables
# All Target
-all: test_40
+all: main-build
+
+# Main-build Target
+main-build: test_40
# Tool invocations
-test_40: $(OBJS) $(USER_OBJS)
+test_40: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS) uo2
@echo 'Building target: $@'
@echo 'Invoking: Test 4.0 ToolName.linker.gnu.cpp'
- g++ -Llib/path/2 -o "test_40" $(OBJS) $(USER_OBJS) $(LIBS)
+ g++ -Llib/path/2 -o "test_40" $(OBJS) $(USER_OBJS) $(LIBS) uo2 -llib2
@echo 'Finished building target: $@'
@echo ' '
# Other Targets
clean:
- -$(RM) $(OBJS)$(C++_DEPS)$(EXECUTABLES)$(CC_DEPS)$(C_DEPS)$(CPP_DEPS)$(CXX_DEPS)$(C_UPPER_DEPS) test_40
+ -$(RM) test_40
-@echo ' '
-.PHONY: all clean dependents
+.PHONY: all clean dependents main-build
-include ../makefile.targets
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/objects.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/objects.mk
index 367436e715e..742c2da043f 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/objects.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/objects.mk
@@ -2,7 +2,7 @@
# Automatically-generated file. Do not edit!
################################################################################
-LIBS := -llib2
+USER_OBJS :=
-USER_OBJS := uo2
+LIBS :=
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/sources.mk b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/sources.mk
index d2895268513..463597703f3 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/sources.mk
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test40Projects/test_40/Benchmarks/dbg 2/sources.mk
@@ -2,24 +2,24 @@
# Automatically-generated file. Do not edit!
################################################################################
-C_UPPER_SRCS :=
-C_SRCS :=
-CPP_SRCS :=
-O_SRCS :=
ASM_SRCS :=
-S_UPPER_SRCS :=
C++_SRCS :=
-CXX_SRCS :=
CC_SRCS :=
+CPP_SRCS :=
+CXX_SRCS :=
+C_SRCS :=
+C_UPPER_SRCS :=
OBJ_SRCS :=
-OBJS :=
+O_SRCS :=
+S_UPPER_SRCS :=
C++_DEPS :=
-EXECUTABLES :=
CC_DEPS :=
-C_DEPS :=
CPP_DEPS :=
CXX_DEPS :=
+C_DEPS :=
C_UPPER_DEPS :=
+EXECUTABLES :=
+OBJS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/testplugin/AbstractBuilderTest.java b/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/testplugin/AbstractBuilderTest.java
index bc5a5db06c3..d0fcc4efed6 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/testplugin/AbstractBuilderTest.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/testplugin/AbstractBuilderTest.java
@@ -14,6 +14,9 @@
package org.eclipse.cdt.managedbuilder.testplugin;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -42,8 +45,9 @@ import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.jobs.Job;
-
-import junit.framework.TestCase;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.TestInfo;
/**
* Abstract builder test which provides utility methods for:
@@ -55,7 +59,7 @@ import junit.framework.TestCase;
* <li>Cleaning up the workspace at the end</li>
* </ul>
*/
-public abstract class AbstractBuilderTest extends TestCase {
+public abstract class AbstractBuilderTest {
private static final boolean WINDOWS = java.io.File.separatorChar == '\\';
static final String PATH = "builderTests";
@@ -63,16 +67,14 @@ public abstract class AbstractBuilderTest extends TestCase {
private String workspace;
private List<IProject> projects;
- @Override
- protected void setUp() throws Exception {
- super.setUp();
+ @BeforeEach
+ public void setUp() throws Exception {
setAutoBuilding(false);
}
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
- ResourceHelper.cleanUp(getName());
+ @AfterEach
+ public void tearDown(TestInfo testInfo) throws Exception {
+ ResourceHelper.cleanUp(testInfo.getDisplayName());
// Bug 327126 Stop the indexer before tearing down so we don't deadlock
Job.getJobManager().cancel(CCorePlugin.getPDOMManager());
Job.getJobManager().join(CCorePlugin.getPDOMManager(), null);
@@ -113,7 +115,7 @@ public abstract class AbstractBuilderTest extends TestCase {
};
getWorkspace().run(body, null);
} finally {
- assertTrue(verifier.getMessage(), verifier.isDeltaValid());
+ assertTrue(verifier.isDeltaValid(), verifier.getMessage());
getWorkspace().removeResourceChangeListener(verifier);
printAllMarkers();
}
@@ -217,7 +219,6 @@ public abstract class AbstractBuilderTest extends TestCase {
resources.add(buildDir);
if (externalBuilder) {
resources.add(buildDir.getFile("makefile"));
- resources.add(buildDir.getFile("objects.mk"));
resources.add(buildDir.getFile("sources.mk"));
}
for (String obj : objs) {
@@ -240,14 +241,6 @@ public abstract class AbstractBuilderTest extends TestCase {
return resources;
}
- public AbstractBuilderTest() {
- super();
- }
-
- public AbstractBuilderTest(String name) {
- super(name);
- }
-
protected void setWorkspace(String name) {
workspace = name;
projects = new ArrayList<>();
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/testplugin/DiffUtil.java b/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/testplugin/DiffUtil.java
index 7c28815f94e..1e276b7839d 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/testplugin/DiffUtil.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/testplugin/DiffUtil.java
@@ -18,39 +18,23 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
-public class DiffUtil {
- private static final String DIFF_CMD = "diff -ub";
- private static DiffUtil fInstance;
-
- private DiffUtil() {
-
- }
-
- public static DiffUtil getInstance() {
- if (fInstance == null)
- fInstance = new DiffUtil();
- return fInstance;
- }
-
- private static String createCommand(String location1, String location2) {
- StringBuilder buf = new StringBuilder();
- buf.append(DIFF_CMD).append(" '").append(location1).append("' '").append(location2).append("'");
- return buf.toString();
- }
-
- public String diff(String location1, String location2) {
- InputStream in = invokeDiff(location1, location2);
- if (in == null)
- return null;
-
- BufferedReader br;
- br = new BufferedReader(new InputStreamReader(in));
- String line;
+public abstract class DiffUtil {
+ public static String diff(String location1, String location2) {
StringBuilder buf = new StringBuilder();
try {
- while ((line = br.readLine()) != null) {
- buf.append("\n");
- buf.append(line);
+ String[] command = new String[] { "diff", "-ub", location1, location2 };
+ Process p = Runtime.getRuntime().exec(command);
+ InputStream in = p.getInputStream();
+ if (in == null) {
+ return null;
+ }
+
+ try (BufferedReader br = new BufferedReader(new InputStreamReader(in))) {
+ String line;
+ while ((line = br.readLine()) != null) {
+ buf.append("\n");
+ buf.append(line);
+ }
}
} catch (IOException e) {
// TODO Auto-generated catch block
@@ -59,15 +43,4 @@ public class DiffUtil {
}
return buf.toString();
}
-
- private InputStream invokeDiff(String location1, String location2) {
- try {
- Process p = Runtime.getRuntime().exec(createCommand(location1, location2));
- return p.getInputStream();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return null;
- }
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/testplugin/ManagedBuildTestHelper.java b/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/testplugin/ManagedBuildTestHelper.java
index 58f3faecc86..c6df3aa9b1f 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/testplugin/ManagedBuildTestHelper.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/testplugin/ManagedBuildTestHelper.java
@@ -471,7 +471,7 @@ public class ManagedBuildTestHelper {
: getFileLocation(project, benchmarkFileLocation);
String location2 = testFileLocation.isAbsolute() ? testFileLocation.toString()
: getFileLocation(project, testFileLocation);
- String diff = DiffUtil.getInstance().diff(location1, location2);
+ String diff = DiffUtil.diff(location1, location2);
if (diff == null)
diff = "!diff failed!";
buffer.append(diff);
@@ -698,8 +698,7 @@ public class ManagedBuildTestHelper {
private static ArrayList<String> getContents(IPath fullPath) {
ArrayList<String> lines = new ArrayList<>();
- try {
- BufferedReader in = new BufferedReader(new FileReader(fullPath.toFile()));
+ try (BufferedReader in = new BufferedReader(new FileReader(fullPath.toFile()))) {
String line;
do {
line = in.readLine();
@@ -797,7 +796,7 @@ public class ManagedBuildTestHelper {
buffer.append(">>>>>>>>>>>>>>>start diff: \n");
String location1 = getFileLocation(bmFile.getProject(), bmFile.getProjectRelativePath());
String location2 = getFileLocation(tFile.getProject(), tFile.getProjectRelativePath());
- String diff = DiffUtil.getInstance().diff(location1, location2);
+ String diff = DiffUtil.diff(location1, location2);
if (diff == null)
diff = "!diff failed!";
buffer.append(diff);
@@ -876,7 +875,8 @@ public class ManagedBuildTestHelper {
return buff;
}
- static public IPath copyFilesToTempDir(IPath srcDir, IPath tmpRootDir, IPath tmpSubDir, IPath[] files) {
+ static public IPath copyFilesToTempDir(IPath srcDir, IPath tmpRootDir, IPath tmpSubDir, IPath[] files)
+ throws IOException {
IPath tmpSrcDir = null;
tmpSrcDir = tmpRootDir.append(tmpSubDir);
if (tmpRootDir.toString().equalsIgnoreCase(tmpSrcDir.toString())) {
@@ -898,46 +898,31 @@ public class ManagedBuildTestHelper {
for (int i = 0; i < files.length; i++) {
IPath file = files[i];
IPath srcFile = srcDir.append(file);
- FileReader srcReader = null;
- try {
- srcReader = new FileReader(srcFile.toFile());
- } catch (Exception e) {
- Assert.fail("File " + file.toString() + " could not be read.");
- return null;
- }
- if (file.segmentCount() > 1) {
- IPath newDir = tmpSrcDir;
- do {
- IPath dir = file.uptoSegment(1);
- newDir = newDir.append(dir);
- file = file.removeFirstSegments(1);
- newDir.toFile().mkdir();
- if (!newDir.toFile().exists()) {
- Assert.fail("Can't create temporary directory " + tmpSrcDirFile.toString());
- }
- } while (file.segmentCount() > 1);
- }
- IPath destFile = tmpSrcDir.append(files[i]);
- FileWriter writer = null;
- try {
- writer = new FileWriter(destFile.toFile());
- } catch (Exception e) {
- Assert.fail("File " + files[i].toString() + " could not be written.");
- return null;
- }
- try {
- int c;
- do {
- c = srcReader.read();
- if (c == -1)
- break;
- writer.write(c);
- } while (c != -1);
- srcReader.close();
- writer.close();
- } catch (Exception e) {
- Assert.fail("File " + file.toString() + " could not be copied.");
+ try (FileReader srcReader = new FileReader(srcFile.toFile())) {
+ if (file.segmentCount() > 1) {
+ IPath newDir = tmpSrcDir;
+ do {
+ IPath dir = file.uptoSegment(1);
+ newDir = newDir.append(dir);
+ file = file.removeFirstSegments(1);
+ newDir.toFile().mkdir();
+ if (!newDir.toFile().exists()) {
+ Assert.fail("Can't create temporary directory " + tmpSrcDirFile.toString());
+ }
+ } while (file.segmentCount() > 1);
+ }
+ IPath destFile = tmpSrcDir.append(files[i]);
+ try (FileWriter writer = new FileWriter(destFile.toFile())) {
+ int c;
+ do {
+ c = srcReader.read();
+ if (c == -1)
+ break;
+ writer.write(c);
+ } while (c != -1);
+ }
}
+
}
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/tests/suite/AutomatedIntegrationSuite.java b/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/tests/suite/AutomatedIntegrationSuite.java
index 9be71132fd4..7c2dae81626 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/tests/suite/AutomatedIntegrationSuite.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/tests/suite/AutomatedIntegrationSuite.java
@@ -19,14 +19,13 @@ import org.eclipse.cdt.build.core.scannerconfig.tests.CfgScannerConfigProfileMan
import org.eclipse.cdt.build.core.scannerconfig.tests.GCCSpecsConsoleParserTest;
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.dom.IPDOMManager;
-import org.eclipse.cdt.managedbuilder.core.regressions.RegressionTests;
+import org.eclipse.cdt.managedbuilder.core.regressions.RegressionTestSuite;
import org.eclipse.cdt.managedbuilder.core.tests.BuildDescriptionModelTests;
import org.eclipse.cdt.managedbuilder.core.tests.BuildSystem40Tests;
+import org.eclipse.cdt.managedbuilder.core.tests.ManagedBuildCore20Tests;
import org.eclipse.cdt.managedbuilder.core.tests.ManagedBuildCoreTests;
-import org.eclipse.cdt.managedbuilder.core.tests.ManagedBuildCoreTests20;
-import org.eclipse.cdt.managedbuilder.core.tests.ManagedBuildCoreTests_SharedToolOptions;
+import org.eclipse.cdt.managedbuilder.core.tests.ManagedBuildCore_SharedToolOptionsTests;
import org.eclipse.cdt.managedbuilder.core.tests.ManagedBuildDependencyCalculatorTests;
-import org.eclipse.cdt.managedbuilder.core.tests.ManagedBuildDependencyLibsTests;
import org.eclipse.cdt.managedbuilder.core.tests.ManagedBuildEnvironmentTests;
import org.eclipse.cdt.managedbuilder.core.tests.ManagedBuildMacrosTests;
import org.eclipse.cdt.managedbuilder.core.tests.ManagedBuildTCSupportedTest;
@@ -39,8 +38,8 @@ import org.eclipse.cdt.managedbuilder.core.tests.OptionCategoryEnablementTests;
import org.eclipse.cdt.managedbuilder.core.tests.OptionEnablementTests;
import org.eclipse.cdt.managedbuilder.core.tests.PathConverterTest;
import org.eclipse.cdt.managedbuilder.core.tests.ResourceBuildCoreTests;
-import org.eclipse.cdt.managedbuilder.language.settings.providers.tests.AllLanguageSettingsProvidersMBSTests;
-import org.eclipse.cdt.managedbuilder.templateengine.tests.AllTemplateEngineTests;
+import org.eclipse.cdt.managedbuilder.language.settings.providers.tests.AllLanguageSettingsProvidersMBSTestSuite;
+import org.eclipse.cdt.managedbuilder.templateengine.tests.AllTemplateEngineTestSuite;
import org.eclipse.cdt.projectmodel.tests.BackwardCompatiblityTests;
import org.eclipse.cdt.projectmodel.tests.CProjectDescriptionSerializationTests;
import org.eclipse.cdt.projectmodel.tests.OptionStringListValueTests;
@@ -64,18 +63,18 @@ public class AutomatedIntegrationSuite {
TestSuite suite = new TestSuite("Test for org.eclipse.cdt.managedbuild.core.tests");
//$JUnit-BEGIN$
// Preconditions
- suite.addTestSuite(Preconditions.class);
+ suite.addTestSuite(ManagedBuilderPreconditionsTests.class);
// build.core.scannerconfig.tests
suite.addTest(CfgScannerConfigProfileManagerTests.suite());
suite.addTestSuite(GCCSpecsConsoleParserTest.class);
// language settings providers tests
- suite.addTest(AllLanguageSettingsProvidersMBSTests.suite());
+ suite.addTest(AllLanguageSettingsProvidersMBSTestSuite.suite());
// managedbuilder.core.tests
- suite.addTest(ManagedBuildDependencyLibsTests.suite());
- suite.addTest(ManagedBuildCoreTests20.suite());
+ // Test converted to JUnit5: suite.addTest(ManagedBuildDependencyLibsTests.suite());
+ suite.addTest(ManagedBuildCore20Tests.suite());
suite.addTest(ManagedBuildCoreTests.suite());
suite.addTest(ManagedProjectUpdateTests.suite());
suite.addTest(ManagedCommandLineGeneratorTest.suite());
@@ -83,7 +82,7 @@ public class AutomatedIntegrationSuite {
suite.addTest(ManagedProject21MakefileTests.suite());
suite.addTest(ManagedProject30MakefileTests.suite());
suite.addTest(BuildSystem40Tests.suite());
- suite.addTest(ManagedBuildCoreTests_SharedToolOptions.suite());
+ suite.addTest(ManagedBuildCore_SharedToolOptionsTests.suite());
suite.addTest(ManagedBuildEnvironmentTests.suite());
suite.addTest(ManagedBuildMacrosTests.suite());
suite.addTest(ManagedBuildTCSupportedTest.suite());
@@ -95,7 +94,7 @@ public class AutomatedIntegrationSuite {
suite.addTest(PathConverterTest.suite());
// managedbuilder.templateengine.tests
- suite.addTest(AllTemplateEngineTests.suite());
+ suite.addTest(AllTemplateEngineTestSuite.suite());
// projectmodel.tests
suite.addTest(BackwardCompatiblityTests.suite());
@@ -104,7 +103,7 @@ public class AutomatedIntegrationSuite {
suite.addTest(ProjectModelTests.suite());
// regression tests
- suite.addTest(RegressionTests.suite());
+ suite.addTest(RegressionTestSuite.suite());
//$JUnit-END$
return suite;
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/tests/suite/Preconditions.java b/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/tests/suite/ManagedBuilderPreconditionsTests.java
index 68094517dae..3a99f2e9b84 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/tests/suite/Preconditions.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/tests/suite/ManagedBuilderPreconditionsTests.java
@@ -26,7 +26,11 @@ import org.eclipse.core.runtime.content.IContentTypeManager;
import junit.framework.TestCase;
-public class Preconditions extends TestCase {
+/**
+ * Check that preconditions for running managed builder tests are in place,
+ * see individual tests in this class for details.
+ */
+public class ManagedBuilderPreconditionsTests extends TestCase {
@Override
protected void setUp() throws Exception {
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/regressions/Bug_303953.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/regressions/Bug_303953.java
deleted file mode 100644
index d032b63ecdd..00000000000
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/regressions/Bug_303953.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 Broadcom Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Broadcom Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.managedbuilder.core.regressions;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.cdt.managedbuilder.testplugin.AbstractBuilderTest;
-import org.eclipse.cdt.managedbuilder.testplugin.ResourceDeltaVerifier;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * Tests that removing the last source file from a directory
- * causes the subdir.mk to be regenerated, and associated dervied
- * files should be deleted.
- */
-public class Bug_303953 extends AbstractBuilderTest {
-
- public void testBuildAfterSourcefileDelete() throws CoreException {
- setWorkspace("regressions");
- final IProject app = loadProject("helloworldC");
-
- List<IResource> buildOutputResources = new ArrayList<>();
- buildOutputResources.addAll(getProjectBuildExeResources("helloworldC", "Debug", "src/helloworldC"));
-
- // Ensure Debug is the active configuration
- setActiveConfigurationByName(app, "Debug");
-
- ResourceDeltaVerifier verifier = new ResourceDeltaVerifier();
- verifier.addExpectedChange(buildOutputResources.toArray(new IResource[buildOutputResources.size()]),
- IResourceDelta.ADDED, IResourceDelta.NO_CHANGE);
- verifier.addIgnore(new IResource[] { getWorkspace().getRoot(), app, app.getFile(".project") });
- verifyBuild(app, IncrementalProjectBuilder.FULL_BUILD, verifier);
-
- // Delete helloworldC
- IFile srcFile = app.getFile("src/helloworldC.c");
- assertTrue("1.1", srcFile.exists());
- srcFile.delete(false, null);
-
- // Build again
- // - derived files from helloworldC.c should be removed
- // - subdir.mk should be changed
- // - ignore other changes in the build tree (not the subject of this bug...)
-
- verifier = new ResourceDeltaVerifier();
- // These files should be removed
- IResource[] removed = new IResource[] { app.getFile("Debug/src/helloworldC.o"),
- app.getFile("Debug/src/helloworldC.d") };
- verifier.addExpectedChange(removed, IResourceDelta.REMOVED, IResourceDelta.NO_CHANGE);
- // subdir.mk has been updated
- IResource[] expected = new IResource[] { app.getFile("Debug/src/subdir.mk") };
- verifier.addExpectedChange(expected, IResourceDelta.CHANGED, IResourceDelta.CONTENT);
-
- // Ignore other resources
- Collection<IResource> ignored = getProjectBuildExeResources("helloworldC", "Debug", "src/helloworldC");
- ignored.removeAll(Arrays.asList(removed));
- ignored.removeAll(Arrays.asList(expected));
- ignored.add(getWorkspace().getRoot());
- ignored.add(app);
- verifier.addIgnore(ignored.toArray(new IResource[ignored.size()]));
- verifyBuild(app, IncrementalProjectBuilder.INCREMENTAL_BUILD, verifier);
- }
-
-}
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/regressions/Bug_303953Test.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/regressions/Bug_303953Test.java
new file mode 100644
index 00000000000..1211288aac8
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/regressions/Bug_303953Test.java
@@ -0,0 +1,154 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2021 Broadcom Corporation and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Broadcom Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.managedbuilder.core.regressions;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.io.ByteArrayInputStream;
+import java.io.UnsupportedEncodingException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.cdt.core.model.ICModelMarker;
+import org.eclipse.cdt.core.settings.model.CSourceEntry;
+import org.eclipse.cdt.core.settings.model.ICSourceEntry;
+import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
+import org.eclipse.cdt.managedbuilder.testplugin.AbstractBuilderTest;
+import org.eclipse.cdt.managedbuilder.testplugin.ResourceDeltaVerifier;
+import org.eclipse.core.resources.IBuildConfiguration;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.ICoreRunnable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.junit.jupiter.api.Test;
+
+/**
+ * Tests that removing the last source file from a directory
+ * causes the subdir.mk to be regenerated, and associated dervied
+ * files should be deleted.
+ */
+public class Bug_303953Test extends AbstractBuilderTest {
+
+ @Test
+ public void testBuildAfterSourcefileDelete() throws CoreException {
+ setWorkspace("regressions");
+ final IProject app = loadProject("helloworldC");
+
+ List<IResource> buildOutputResources = new ArrayList<>();
+ buildOutputResources.addAll(getProjectBuildExeResources("helloworldC", "Debug", "src/helloworldC"));
+
+ // Ensure Debug is the active configuration
+ setActiveConfigurationByName(app, "Debug");
+
+ ResourceDeltaVerifier verifier = new ResourceDeltaVerifier();
+ verifier.addExpectedChange(buildOutputResources.toArray(new IResource[buildOutputResources.size()]),
+ IResourceDelta.ADDED, IResourceDelta.NO_CHANGE);
+ verifier.addIgnore(
+ new IResource[] { getWorkspace().getRoot(), app, app.getFile(".project"), app.getFile(".cproject") });
+ verifyBuild(app, IncrementalProjectBuilder.FULL_BUILD, verifier);
+
+ // Delete helloworldC
+ IFile srcFile = app.getFile("src/helloworldC.c");
+ assertTrue(srcFile.exists(), "1.1");
+ srcFile.delete(false, null);
+
+ // Build again
+ // - derived files from helloworldC.c should be removed
+ // - subdir.mk should be changed
+ // - ignore other changes in the build tree (not the subject of this bug...)
+
+ verifier = new ResourceDeltaVerifier();
+ // These files should be removed
+ IResource[] removed = new IResource[] { app.getFile("Debug/src/helloworldC.o"),
+ app.getFile("Debug/src/helloworldC.d") };
+ verifier.addExpectedChange(removed, IResourceDelta.REMOVED, IResourceDelta.NO_CHANGE);
+ // subdir.mk has been updated
+ IResource[] expected = new IResource[] { app.getFile("Debug/src/subdir.mk") };
+ verifier.addExpectedChange(expected, IResourceDelta.CHANGED, IResourceDelta.CONTENT);
+
+ // Ignore other resources
+ Collection<IResource> ignored = getProjectBuildExeResources("helloworldC", "Debug", "src/helloworldC");
+ ignored.removeAll(Arrays.asList(removed));
+ ignored.removeAll(Arrays.asList(expected));
+ ignored.add(getWorkspace().getRoot());
+ ignored.add(app);
+ verifier.addIgnore(ignored.toArray(new IResource[ignored.size()]));
+ verifyBuild(app, IncrementalProjectBuilder.INCREMENTAL_BUILD, verifier);
+ }
+
+ /**
+ * Tests that source files in the root of the project are not treated
+ * specially with respect to removing the last of them (bug 575490).
+ */
+ @Test
+ public void testBuildAfterRootSourcefileDelete() throws CoreException, UnsupportedEncodingException {
+ setWorkspace("regressions");
+ final IProject app = loadProject("helloworldC");
+ setActiveConfigurationByName(app, "Debug");
+
+ // Change the source folder from /src to /
+ ManagedBuildManager.getBuildInfo(app).getDefaultConfiguration()
+ .setSourceEntries(new ICSourceEntry[] { new CSourceEntry(Path.ROOT, null, 0) });
+
+ // Add a new source file in the root
+ app.getFile("additional.c").create(new ByteArrayInputStream("int x = 42;\n".getBytes("UTF-8")), true, null);
+
+ // Build once: This will create a root subdir.mk referring to additional.c
+ ICoreRunnable build = new ICoreRunnable() {
+ @Override
+ public void run(IProgressMonitor monitor) throws CoreException {
+ getWorkspace().build(new IBuildConfiguration[] { app.getActiveBuildConfig() },
+ IncrementalProjectBuilder.FULL_BUILD, true, monitor);
+ }
+ };
+ getWorkspace().run(build, null);
+ IMarker[] markers = app.findMarkers(ICModelMarker.C_MODEL_PROBLEM_MARKER, true, IResource.DEPTH_INFINITE);
+ assertEquals(0, markers.length, "first build should succeed with no error markers");
+
+ // Remove additional.c behind Eclipse's back
+ app.getFile("additional.c").getLocation().toFile().delete();
+
+ // Build again: This is expected to fail because at the time the
+ // makefile is updated, the absence of additional.c hasn't been noticed
+ // yet. Only the refresh done at the end of this build will notice the
+ // removal.
+ getWorkspace().run(build, null);
+ markers = app.findMarkers(ICModelMarker.C_MODEL_PROBLEM_MARKER, true, IResource.DEPTH_INFINITE);
+ assertNotEquals(0, markers.length, "second build should produce an error marker");
+ // commented out because the exact wording may depend on the version of 'make' used
+ // assertEquals("make: *** No rule to make target '../additional.c', needed by 'additional.o'. Stop.",
+ // markers[0].getAttribute(IMarker.MESSAGE));
+
+ // Build again: The FULL_BUILD will ignore the delta indicating the
+ // removal of additional.c and therefore not regenerate the root
+ // subdir.mk (because now there are no source files in the root),
+ // leaving the stale one there that still refers to additional.c.
+ // This should succeed - before the fix, it would fail because the
+ // stale subdir.mk would still be included.
+ getWorkspace().run(build, null);
+ markers = app.findMarkers(ICModelMarker.C_MODEL_PROBLEM_MARKER, true, IResource.DEPTH_INFINITE);
+ assertEquals(0, markers.length, "final build should succeed with no error markers");
+ }
+
+}
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/regressions/Bug_335476.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/regressions/Bug_335476Test.java
index b2345a0f3a9..0ade26c8aba 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/regressions/Bug_335476.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/regressions/Bug_335476Test.java
@@ -13,6 +13,9 @@
*******************************************************************************/
package org.eclipse.cdt.managedbuilder.core.regressions;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
@@ -27,22 +30,25 @@ import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IncrementalProjectBuilder;
import org.eclipse.core.runtime.Path;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
/**
* This tests that an environment variable, which is part of the build
* (in this case referenced by a -I), makes it through to makefile
* correctly when it changes.
*/
-public class Bug_335476 extends AbstractBuilderTest {
+@Disabled("This is a test for a known failure - see Bug 335476")
+public class Bug_335476Test extends AbstractBuilderTest {
private final String VAR_NAME = "INC";
IProject app;
IEnvironmentVariableManager envManager = CCorePlugin.getDefault().getBuildEnvironmentManager();
ICdtVariableManager buildMacroManager = CCorePlugin.getDefault().getCdtVariableManager();
- @Override
- protected void setUp() throws Exception {
- super.setUp();
+ @BeforeEach
+ public void setUpLocal() throws Exception {
setWorkspace("regressions");
app = loadProject("bug_335476");
// Ensure Debug is the active configuration
@@ -94,11 +100,9 @@ public class Bug_335476 extends AbstractBuilderTest {
String value2 = buildMacroManager.resolveValue("${" + VAR_NAME + "}", "", ";",
CCorePlugin.getDefault().getProjectDescription(app, false).getActiveConfiguration());
- assertTrue(i + " EnvManager " + expected + " exepected, but was: " + value, expected.equals(value));
- assertTrue(i + " CdtVarManager " + expected + " exepected, but was: " + value2,
- expected.equals(value2));
- assertTrue(i + " Makefile: " + expected + " exepected, but was: " + buildVar,
- expected.equals(buildVar));
+ assertEquals(expected, value, i + " EnvManager " + expected + " exepected, but was: " + value);
+ assertEquals(expected, value2, i + " CdtVarManager " + expected + " exepected, but was: " + value2);
+ assertEquals(expected, buildVar, i + " Makefile: " + expected + " exepected, but was: " + buildVar);
found = true;
}
// Check that we at least matched
@@ -115,10 +119,12 @@ public class Bug_335476 extends AbstractBuilderTest {
}
}
+ @Test
public void testChangingEnvironmentBuildSystem_FULL_BUILD() throws Exception {
runTest(IncrementalProjectBuilder.FULL_BUILD);
}
+ @Test
public void testChangingEnvironmentBuildSystem_INC_BUILD() throws Exception {
runTest(IncrementalProjectBuilder.INCREMENTAL_BUILD);
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/regressions/Bug_580441Test.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/regressions/Bug_580441Test.java
new file mode 100644
index 00000000000..c5dbe8f8852
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/regressions/Bug_580441Test.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2022 Broadcom Corporation and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Broadcom Corporation - Bug 303953 test
+ * John Dallaway - Initial implementation (derived from bug 303953 test)
+ *******************************************************************************/
+package org.eclipse.cdt.managedbuilder.core.regressions;
+
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.io.ByteArrayInputStream;
+
+import org.eclipse.cdt.managedbuilder.testplugin.AbstractBuilderTest;
+import org.eclipse.core.resources.IBuildConfiguration;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRunnable;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.junit.jupiter.api.Test;
+
+/**
+ * Test that removal of a directory containing source file(s) is
+ * processed correctly by the default GnuMakefileGenerator.
+ */
+public class Bug_580441Test extends AbstractBuilderTest {
+
+ @Test
+ public void testBuildAfterPopulatedSourceFolderDelete() throws CoreException {
+ setWorkspace("regressions");
+ final IProject app = loadProject("helloworldC");
+
+ // Create additional source file at src/test/test.c
+ final IFolder testFolder = app.getFolder("src/test");
+ testFolder.create(false, false, null);
+ testFolder.getFile("test.c").create(new ByteArrayInputStream("int test;".getBytes()), false, null);
+
+ // Build debug configuration
+ setActiveConfigurationByName(app, "Debug");
+ buildConfig(app.getActiveBuildConfig());
+ assertTrue(app.getFile("Debug/src/test/test.o").exists(), "test.o not created");
+
+ // Delete folder containing test.c and build again
+ testFolder.delete(false, null);
+ buildConfig(app.getActiveBuildConfig());
+ assertFalse(app.getFolder("Debug/src/test").exists(), "test folder not deleted");
+ }
+
+ private void buildConfig(IBuildConfiguration config) throws CoreException {
+ ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
+ @Override
+ public void run(IProgressMonitor monitor) throws CoreException {
+ ResourcesPlugin.getWorkspace().build(new IBuildConfiguration[] { config },
+ IncrementalProjectBuilder.INCREMENTAL_BUILD, true, monitor);
+ }
+ }, null);
+ }
+
+}
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/regressions/RegressionTests.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/regressions/RegressionTestSuite.java
index 026d1055d7f..94de1f2a43f 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/regressions/RegressionTests.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/regressions/RegressionTestSuite.java
@@ -20,22 +20,22 @@ import junit.framework.TestSuite;
/**
* Regression tests for builder bugs
*/
-public class RegressionTests extends TestCase {
+public class RegressionTestSuite extends TestCase {
public static Test suite() {
- TestSuite suite = new TestSuite(RegressionTests.class.getName());
+ TestSuite suite = new TestSuite(RegressionTestSuite.class.getName());
// Test that common builder does the correct amount of work.
- suite.addTestSuite(Bug_303953.class);
+ // Test converted to JUnit5: suite.addTest(new JUnit4TestAdapter(Bug_303953Test.class));
return suite;
}
- public RegressionTests() {
+ public RegressionTestSuite() {
super(null);
}
- public RegressionTests(String name) {
+ public RegressionTestSuite(String name) {
super(name);
}
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/BuildDescriptionModelTests.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/BuildDescriptionModelTests.java
index 5cd67e38e39..ee09c004a19 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/BuildDescriptionModelTests.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/BuildDescriptionModelTests.java
@@ -55,6 +55,7 @@ import org.eclipse.cdt.managedbuilder.internal.buildmodel.DbgUtil;
import org.eclipse.cdt.managedbuilder.internal.core.Configuration;
import org.eclipse.cdt.managedbuilder.macros.BuildMacroException;
import org.eclipse.cdt.managedbuilder.macros.IBuildMacroProvider;
+import org.eclipse.cdt.managedbuilder.projectconverter.UpdateManagedProjectManager;
import org.eclipse.cdt.managedbuilder.testplugin.ManagedBuildTestHelper;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
@@ -62,6 +63,7 @@ import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
+import org.eclipse.ui.dialogs.IOverwriteQuery;
import junit.framework.Test;
import junit.framework.TestCase;
@@ -877,6 +879,17 @@ public class BuildDescriptionModelTests extends TestCase {
}
private IProject createProject(String name, String id) {
+
+ // In case the projects need to be updated...
+ IOverwriteQuery queryALL = new IOverwriteQuery() {
+ @Override
+ public String queryOverwrite(String file) {
+ return ALL;
+ }
+ };
+ UpdateManagedProjectManager.setBackupFileOverwriteQuery(queryALL);
+ UpdateManagedProjectManager.setUpdateProjectQuery(queryALL);
+
IProject proj = ManagedBuildTestHelper.createProject(name, id);
if (proj != null)
fCompositeCleaner.addRunnable(new ProjectCleaner(proj));
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/BuildFileGenerator.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/BuildFileGenerator.java
index a7711b4af50..e93050dbdc3 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/BuildFileGenerator.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/BuildFileGenerator.java
@@ -15,7 +15,7 @@ package org.eclipse.cdt.managedbuilder.core.tests;
import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
import org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator;
-import org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator;
+import org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceDelta;
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/BuildSystem40Tests.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/BuildSystem40Tests.java
index ce593337ddd..320a0079d60 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/BuildSystem40Tests.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/BuildSystem40Tests.java
@@ -69,8 +69,8 @@ public class BuildSystem40Tests extends TestCase {
}
public void test40() throws Exception {
- String[] makefiles = { "makefile", "objects.mk", "sources.mk", "d1/subdir.mk", "d1/d2/subdir.mk",
- "d1/d2/d3/subdir.mk", "d1_1/subdir.mk", "d1_1/d2_1/subdir.mk", "dir1/dd/excluded_c/subdir.mk",
+ String[] makefiles = { "makefile", "sources.mk", "d1/subdir.mk", "d1/d2/subdir.mk", "d1/d2/d3/subdir.mk",
+ "d1_1/subdir.mk", "d1_1/d2_1/subdir.mk", "dir1/dd/excluded_c/subdir.mk",
"dir1/dd/excluded_c/asd/subdir.mk", "dir1/dd/ff/subdir.mk", };
IProject[] projects = createProjects("test_40", null, null, true);
ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/CustomOptionCommandGenerator2.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/CustomOptionCommandGenerator2.java
new file mode 100644
index 00000000000..2d76300e07b
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/CustomOptionCommandGenerator2.java
@@ -0,0 +1,34 @@
+package org.eclipse.cdt.managedbuilder.core.tests;
+
+import org.eclipse.cdt.managedbuilder.core.BuildException;
+import org.eclipse.cdt.managedbuilder.core.IOption;
+import org.eclipse.cdt.utils.cdtvariables.IVariableSubstitutor;
+
+public class CustomOptionCommandGenerator2 extends CustomOptionCommandGenerator {
+
+ public CustomOptionCommandGenerator2() {
+ }
+
+ @Override
+ public String generateCommand(IOption option, IVariableSubstitutor macroSubstitutor) {
+ String command = super.generateCommand(option, macroSubstitutor);
+ if (command == null) {
+ try {
+ switch (option.getValueType()) {
+ case IOption.BOOLEAN:
+ return option.getBooleanValue() ? option.getCommand() : option.getCommandFalse();
+ case IOption.ENUMERATED:
+ return option.getEnumCommand(option.getSelectedEnum());
+ case IOption.TREE:
+ return option.getCommand(option.getStringValue());
+ default:
+ return option.getCommand() + option.getValue();
+ }
+ } catch (BuildException e) {
+ return "CustomOptionCommandGenerator2-error";
+ }
+ }
+ return command;
+ }
+
+}
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildClean.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCleanTest.java
index 84ce791e0e2..906ca2e218e 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildClean.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCleanTest.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 20116 Kichwa Coders Ltd and others.
+ * Copyright (c) 2016 Kichwa Coders Ltd and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -13,6 +13,10 @@
*******************************************************************************/
package org.eclipse.cdt.managedbuilder.core.tests;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import java.util.Collection;
import org.eclipse.cdt.managedbuilder.testplugin.AbstractBuilderTest;
@@ -24,34 +28,37 @@ import org.eclipse.core.resources.IWorkspaceDescription;
import org.eclipse.core.resources.IncrementalProjectBuilder;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
-public class ManagedBuildClean extends AbstractBuilderTest {
+public class ManagedBuildCleanTest extends AbstractBuilderTest {
private static final String PROJ_PATH = "testCleanProjects";
private IProject fInternalBuilderProject;
private IProject fExternalBuilderProject;
- @Override
- protected void setUp() throws Exception {
- super.setUp();
+ @BeforeEach
+ public void setUpLocal() throws Exception {
IWorkspaceDescription wsDescription = ResourcesPlugin.getWorkspace().getDescription();
wsDescription.setAutoBuilding(false);
ResourcesPlugin.getWorkspace().setDescription(wsDescription);
- assertNotNull("Cannot create testCleanInternal project",
- fInternalBuilderProject = ManagedBuildTestHelper.loadProject("testCleanInternal", PROJ_PATH));
- assertNotNull("Cannot create testCleanExternal project",
- fExternalBuilderProject = ManagedBuildTestHelper.loadProject("testCleanExternal", PROJ_PATH));
+ assertNotNull(fInternalBuilderProject = ManagedBuildTestHelper.loadProject("testCleanInternal", PROJ_PATH),
+ "Cannot create testCleanInternal project");
+ assertNotNull(fExternalBuilderProject = ManagedBuildTestHelper.loadProject("testCleanExternal", PROJ_PATH),
+ "Cannot create testCleanExternal project");
}
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
+ @AfterEach
+ public void tearDownLocal() throws Exception {
ManagedBuildTestHelper.removeProject(fInternalBuilderProject.getName());
}
+ @Test
public void testCleanInternal() throws Exception {
helperTestClean(fInternalBuilderProject, false);
}
+ @Test
public void testCleanExternal() throws Exception {
helperTestClean(fExternalBuilderProject, true);
}
@@ -63,7 +70,7 @@ public class ManagedBuildClean extends AbstractBuilderTest {
Collection<IResource> resources = getProjectBuildExeResources(project.getName(), "Debug",
"src/" + project.getName(), externalBuilder);
for (IResource resource : resources) {
- assertTrue("Resource not found: " + resource, resource.exists());
+ assertTrue(resource.exists(), "Resource not found: " + resource);
}
// do a clean and make sure files are gone
@@ -77,7 +84,7 @@ public class ManagedBuildClean extends AbstractBuilderTest {
// makefiles are not removed when cleaning
continue;
}
- assertFalse("Resource not deleted: " + resource, resource.exists());
+ assertFalse(resource.exists(), "Resource not deleted: " + resource);
}
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCoreTests20.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCore20Tests.java
index 644bdbdcd3e..b92fdb2db5c 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCoreTests20.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCore20Tests.java
@@ -63,7 +63,7 @@ import junit.framework.TestSuite;
/*
* These tests exercise CDT 2.0 manifest file functionality
*/
-public class ManagedBuildCoreTests20 extends TestCase {
+public class ManagedBuildCore20Tests extends TestCase {
private static final boolean boolVal = true;
private static final String testConfigId = "test.config.override";
private static final String testConfigName = "Tester";
@@ -78,24 +78,24 @@ public class ManagedBuildCoreTests20 extends TestCase {
private static final String anotherStringVal = "thevalue";
private static final String subExt = "bus";
- public ManagedBuildCoreTests20(String name) {
+ public ManagedBuildCore20Tests(String name) {
super(name);
}
public static Test suite() {
- TestSuite suite = new TestSuite(ManagedBuildCoreTests20.class.getName());
+ TestSuite suite = new TestSuite(ManagedBuildCore20Tests.class.getName());
// Note that some of the tests are dependent on others so run the suite as a whole
- suite.addTest(new ManagedBuildCoreTests20("testExtensions"));
- suite.addTest(new ManagedBuildCoreTests20("testProjectCreation"));
- suite.addTest(new ManagedBuildCoreTests20("testConfigurations"));
- suite.addTest(new ManagedBuildCoreTests20("testConfigurationReset"));
- suite.addTest(new ManagedBuildCoreTests20("testConfigBuildArtifact"));
- suite.addTest(new ManagedBuildCoreTests20("testMakeCommandManipulation"));
- suite.addTest(new ManagedBuildCoreTests20("testScannerInfoInterface"));
- suite.addTest(new ManagedBuildCoreTests20("testProjectRename"));
- suite.addTest(new ManagedBuildCoreTests20("testErrorParsers"));
- suite.addTest(new ManagedBuildCoreTests20("cleanup"));
+ suite.addTest(new ManagedBuildCore20Tests("testExtensions"));
+ suite.addTest(new ManagedBuildCore20Tests("testProjectCreation"));
+ suite.addTest(new ManagedBuildCore20Tests("testConfigurations"));
+ suite.addTest(new ManagedBuildCore20Tests("testConfigurationReset"));
+ suite.addTest(new ManagedBuildCore20Tests("testConfigBuildArtifact"));
+ suite.addTest(new ManagedBuildCore20Tests("testMakeCommandManipulation"));
+ suite.addTest(new ManagedBuildCore20Tests("testScannerInfoInterface"));
+ suite.addTest(new ManagedBuildCore20Tests("testProjectRename"));
+ suite.addTest(new ManagedBuildCore20Tests("testErrorParsers"));
+ suite.addTest(new ManagedBuildCore20Tests("cleanup"));
return suite;
}
@@ -891,7 +891,7 @@ public class ManagedBuildCoreTests20 extends TestCase {
private void checkRootProjectType(IProjectType type) throws BuildException {
// Project stuff
String expectedCleanCmd = "del /myworld";
- String expectedParserId = "org.eclipse.cdt.core.PE";
+ String expectedParserId = "org.eclipse.cdt.core.PE64";
String[] expectedOSList = { "win32" };
String[] expectedArchList = { "all" };
assertTrue(type.isTestProjectType());
@@ -1123,7 +1123,7 @@ public class ManagedBuildCoreTests20 extends TestCase {
*/
private void checkRootManagedProject(IManagedProject managedProj, String testValue) throws BuildException {
String expectedCleanCmd = "del /myworld";
- String expectedParserId = "org.eclipse.cdt.core.PE";
+ String expectedParserId = "org.eclipse.cdt.core.PE64";
String[] expectedOSList = { "win32" };
String[] expectedArchList = { "all" };
assertTrue(managedProj.getProjectType().isTestProjectType());
@@ -1571,7 +1571,7 @@ public class ManagedBuildCoreTests20 extends TestCase {
// Make sure the binary parser is hard-coded and available
IToolChain toolChain = configs[0].getToolChain();
ITargetPlatform targetPlatform = toolChain.getTargetPlatform();
- assertEquals("org.eclipse.cdt.core.PE", targetPlatform.getBinaryParserList()[0]);
+ assertEquals("org.eclipse.cdt.core.PE64", targetPlatform.getBinaryParserList()[0]);
String[] expectedOSList = { "win32", "linux", "solaris" };
assertTrue(Arrays.equals(expectedOSList, toolChain.getOSList()));
// Make sure the list is overridden
@@ -1880,7 +1880,7 @@ public class ManagedBuildCoreTests20 extends TestCase {
*/
private void checkErrorParsersProject(IManagedProject proj) throws BuildException {
// Target stuff
- String expectedBinParserId = "org.eclipse.cdt.core.PE";
+ String expectedBinParserId = "org.eclipse.cdt.core.PE64";
IConfiguration[] configs = proj.getConfigurations();
IToolChain toolChain = configs[0].getToolChain();
ITargetPlatform targetPlatform = toolChain.getTargetPlatform();
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCoreTests.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCoreTests.java
index 1bd037fb571..824d75d7362 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCoreTests.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCoreTests.java
@@ -80,12 +80,12 @@ public class ManagedBuildCoreTests extends TestCase {
int expectedSizeOSList = 5;
String[] expectedArchList = { "all" };
String expectedBinaryParser = "org.eclipse.cdt.core.ELF";
- String expectedBinaryParser2 = "org.eclipse.cdt.core.PE";
+ String expectedBinaryParser2 = "org.eclipse.cdt.core.PE64";
String[] expectedPlatformName = { "Dbg Platform", "Rel Platform" };
String expectedCommand = "make";
String expectedArguments = "-k";
String[] expectedBuilderName = { "Dbg Builder", "Rel Builder" };
- String expectedBuilderInfo = "org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator";
+ String expectedBuilderInfo = "org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator";
String[] expectedToolId1 = { "cdt.managedbuild.tool.testgnu.c.compiler.exe.debug",
"cdt.managedbuild.tool.testgnu.c.compiler.exe.release" };
String expectedSuperToolId1 = "cdt.managedbuild.tool.testgnu.c.compiler";
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCoreTests_SharedToolOptions.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCore_SharedToolOptionsTests.java
index ff8afb403b1..72b25cd1b9a 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCoreTests_SharedToolOptions.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCore_SharedToolOptionsTests.java
@@ -56,7 +56,7 @@ import junit.framework.TestSuite;
/*
* These tests exercise CDT 3.0 shared tool options extensions
*/
-public class ManagedBuildCoreTests_SharedToolOptions extends TestCase {
+public class ManagedBuildCore_SharedToolOptionsTests extends TestCase {
class IconComparator {
static final int None = 0;
@@ -173,7 +173,7 @@ public class ManagedBuildCoreTests_SharedToolOptions extends TestCase {
private IconComparator iconComparator;
private ValueHandlerComparator valueHandlerComparator;
- public ManagedBuildCoreTests_SharedToolOptions(String name) {
+ public ManagedBuildCore_SharedToolOptionsTests(String name) {
super(name);
iconComparator = new IconComparator();
@@ -181,12 +181,12 @@ public class ManagedBuildCoreTests_SharedToolOptions extends TestCase {
}
public static Test suite() {
- TestSuite suite = new TestSuite(ManagedBuildCoreTests_SharedToolOptions.class.getName());
+ TestSuite suite = new TestSuite(ManagedBuildCore_SharedToolOptionsTests.class.getName());
- suite.addTest(new ManagedBuildCoreTests_SharedToolOptions("testIcons"));
- suite.addTest(new ManagedBuildCoreTests_SharedToolOptions("testValueHandlers"));
- suite.addTest(new ManagedBuildCoreTests_SharedToolOptions("testOptions"));
- suite.addTest(new ManagedBuildCoreTests_SharedToolOptions("testConfiguration"));
+ suite.addTest(new ManagedBuildCore_SharedToolOptionsTests("testIcons"));
+ suite.addTest(new ManagedBuildCore_SharedToolOptionsTests("testValueHandlers"));
+ suite.addTest(new ManagedBuildCore_SharedToolOptionsTests("testOptions"));
+ suite.addTest(new ManagedBuildCore_SharedToolOptionsTests("testConfiguration"));
return suite;
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildDependencyCalculatorTests.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildDependencyCalculatorTests.java
index f1ce25d3ac6..c9d178f74a2 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildDependencyCalculatorTests.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildDependencyCalculatorTests.java
@@ -184,8 +184,8 @@ public class ManagedBuildDependencyCalculatorTests extends TestCase {
* test for dependency calculation as a side-effect of compilation
*/
public void test1DepCalc2() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk"),
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
+ Path.fromOSString("subdir.mk"),
// This file is different using Cygwin vs GCC
//Path.fromOSString("main.d"),
Path.fromOSString("Sources/subdir.mk"), Path.fromOSString("Sources/func1.d"),
@@ -199,8 +199,8 @@ public class ManagedBuildDependencyCalculatorTests extends TestCase {
* test for dependency calculation using Echo, a 2nd conmpilation step, and post-processing
*/
public void test1DepCalc3() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk"),
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
+ Path.fromOSString("subdir.mk"),
// This file is different using Cygwin vs GCC
//Path.fromOSString("main.d"),
Path.fromOSString("Sources/subdir.mk"), Path.fromOSString("Sources/func1.d"),
@@ -214,8 +214,8 @@ public class ManagedBuildDependencyCalculatorTests extends TestCase {
* test for dependency calculation that uses a separate, pre-build, step to generate dependency files
*/
public void test1DepCalcPreBuild() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk"),
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
+ Path.fromOSString("subdir.mk"),
// This file is different using Cygwin vs GCC
//Path.fromOSString("main.d"),
Path.fromOSString("Sources/subdir.mk"), Path.fromOSString("Sources/func1.d"),
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildDependencyLibsTests.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildDependencyLibsTests.java
index 437cbeb2159..a304317667a 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildDependencyLibsTests.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildDependencyLibsTests.java
@@ -13,6 +13,10 @@
*******************************************************************************/
package org.eclipse.cdt.managedbuilder.core.tests;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.fail;
+
import java.util.ArrayList;
import java.util.List;
@@ -40,9 +44,9 @@ import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.OperationCanceledException;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
public class ManagedBuildDependencyLibsTests extends AbstractBuilderTest {
private static final String PROJ_PATH = "depLibsProjects";
@@ -52,19 +56,6 @@ public class ManagedBuildDependencyLibsTests extends AbstractBuilderTest {
private IToolChain[] allToolChains;
- public ManagedBuildDependencyLibsTests(String name) {
- super(name);
- }
-
- public static Test suite() {
- TestSuite suite = new TestSuite(ManagedBuildDependencyLibsTests.class.getName());
-
- suite.addTest(new ManagedBuildDependencyLibsTests("testDepLibs"));
- suite.addTest(new ManagedBuildDependencyLibsTests("testDepUObjs"));
- suite.addTest(new ManagedBuildDependencyLibsTests("testGetArtifactTimeStampEscapeURI_bug377295"));
- return suite;
- }
-
private void buildProject(IProject curProject) {
try {
@@ -84,27 +75,30 @@ public class ManagedBuildDependencyLibsTests extends AbstractBuilderTest {
}
@Override
- protected void setUp() throws Exception {
- super.setUp();
+ public void setUp() {
+ // Don't run super class setUp
+ }
+
+ @BeforeEach
+ public void setUpLocal() throws Exception {
allToolChains = ManagedBuildManager.getRealToolChains();
IWorkspaceDescription wsDescription = ResourcesPlugin.getWorkspace().getDescription();
wsDescription.setAutoBuilding(false);
ResourcesPlugin.getWorkspace().setDescription(wsDescription);
- assertNotNull("Cannot create tapp project", fTapp = ManagedBuildTestHelper.loadProject("tapp", PROJ_PATH));
- assertNotNull("Cannot create tlib project", fTlib = ManagedBuildTestHelper.loadProject("tlib", PROJ_PATH));
- assertNotNull("Cannot create tobjs project", fTobjs = ManagedBuildTestHelper.loadProject("tobjs", PROJ_PATH));
+ assertNotNull(fTapp = ManagedBuildTestHelper.loadProject("tapp", PROJ_PATH), "Cannot create tapp project");
+ assertNotNull(fTlib = ManagedBuildTestHelper.loadProject("tlib", PROJ_PATH), "Cannot create tlib project");
+ assertNotNull(fTobjs = ManagedBuildTestHelper.loadProject("tobjs", PROJ_PATH), "Cannot create tobjs project");
IProjectDescription projDescription = fTapp.getDescription();
projDescription.setReferencedProjects(new IProject[] { fTlib, fTobjs });
fTapp.setDescription(projDescription, new NullProgressMonitor());
IToolChain toolChain = setToolChain(fTapp, null);
- assertNotNull("No compatible tool chain.", toolChain);
+ assertNotNull(toolChain, "No compatible tool chain.");
setToolChain(fTlib, toolChain);
setToolChain(fTobjs, toolChain);
}
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
+ @AfterEach
+ public void tearDownLocal() throws Exception {
ManagedBuildTestHelper.removeProject(fTapp.getName());
ManagedBuildTestHelper.removeProject(fTlib.getName());
ManagedBuildTestHelper.removeProject(fTobjs.getName());
@@ -215,6 +209,7 @@ public class ManagedBuildDependencyLibsTests extends AbstractBuilderTest {
return name;
}
+ @Test
public void testDepLibs() {
buildProject(fTapp);
long timeStamp = getArtifactTimeStamp(fTapp);
@@ -238,6 +233,7 @@ public class ManagedBuildDependencyLibsTests extends AbstractBuilderTest {
}
}
+ @Test
public void testDepUObjs() {
buildProject(fTapp);
long timeStamp = getArtifactTimeStamp(fTapp);
@@ -264,6 +260,7 @@ public class ManagedBuildDependencyLibsTests extends AbstractBuilderTest {
// Tests that the URI used to get the time stamp of the artifact is escaped correctly
// See AdditionalInput.getArtifactTimeStamp(IToolChain toolChain)
+ @Test
public void testGetArtifactTimeStampEscapeURI_bug377295() throws CoreException {
setWorkspace("regressions");
final IProject project = loadProject("helloworldC");
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildEnvironmentTests.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildEnvironmentTests.java
index 6b707506294..09b0bee4a29 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildEnvironmentTests.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildEnvironmentTests.java
@@ -14,11 +14,11 @@
package org.eclipse.cdt.managedbuilder.core.tests;
+import org.eclipse.cdt.core.envvar.IEnvironmentVariable;
import org.eclipse.cdt.core.testplugin.ResourceHelper;
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
import org.eclipse.cdt.managedbuilder.core.IManagedProject;
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
-import org.eclipse.cdt.managedbuilder.envvar.IBuildEnvironmentVariable;
import org.eclipse.cdt.managedbuilder.envvar.IEnvironmentBuildPathsChangeListener;
import org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider;
import org.eclipse.core.resources.IProject;
@@ -32,29 +32,14 @@ import junit.framework.TestSuite;
*
* */
public class ManagedBuildEnvironmentTests extends TestCase {
- // final private String REQUIRED_TYPE = "cdt.managedbuild.target.testgnu.exe"; //$NON-NLS-1$
// test variable names
final private String NAME_CWD = "CWD"; //$NON-NLS-1$
final private String NAME_PWD = "PWD"; //$NON-NLS-1$
- // final private String NAME_CMN = "COMMON"; //$NON-NLS-1$
- // final private String NAME_WSP = "WSP"; //$NON-NLS-1$
- // final private String NAME_PRJI = "PRJI"; //$NON-NLS-1$
- // final private String NAME_PRJL = "PRJL"; //$NON-NLS-1$
- // final private String NAME_CFGI = "CFGI"; //$NON-NLS-1$
- // final private String NAME_CFGL = "CFGL"; //$NON-NLS-1$
- // final private String NAME_CFGX = "CFGX"; //$NON-NLS-1$
- // final private String NAME_CFG = "CFG"; //$NON-NLS-1$
- // final private String NAME_REM1 = "REMTST1";//$NON-NLS-1$
- // final private String NAME_REM2 = "REMTST2";//$NON-NLS-1$
// test variable values
final private String VAL_CWDPWD = "CWD_&_PWD_should not be changed"; //$NON-NLS-1$
- // final private String VAL_DUMMY1 = "/a/b/c"; //$NON-NLS-1$
- // final private String VAL_DUMMY2 = "/d/e/f"; //$NON-NLS-1$
final private String VAL_PRO_INC = "/project/inc"; //$NON-NLS-1$
final private String VAL_PRO_LIB = "/project/lib"; //$NON-NLS-1$
- // final private String LISTENER_DATA = "O1T1O1O2T2T1O1T1O2T2"; //$NON-NLS-1$
-
// delimiters
final private String DEL_WIN = ";"; //$NON-NLS-1$
final private String DEL_UNIX = ":"; //$NON-NLS-1$
@@ -82,16 +67,6 @@ public class ManagedBuildEnvironmentTests extends TestCase {
public static Test suite() {
TestSuite suite = new TestSuite(ManagedBuildEnvironmentTests.class/*.getName()*/);
- // suite.addTest(new ManagedBuildEnvironmentTests("testEnvNotDef")); //$NON-NLS-1$
- // suite.addTest(new ManagedBuildEnvironmentTests("testEnvUpper")); //$NON-NLS-1$
- // suite.addTest(new ManagedBuildEnvironmentTests("testEnvAppend")); //$NON-NLS-1$
- // suite.addTest(new ManagedBuildEnvironmentTests("testEnvCWDPWD")); //$NON-NLS-1$
- // suite.addTest(new ManagedBuildEnvironmentTests("testEnvSuppliers")); //$NON-NLS-1$
- // suite.addTest(new ManagedBuildEnvironmentTests("testEnvGetPath")); //$NON-NLS-1$
- // suite.addTest(new ManagedBuildEnvironmentTests("testEnvSubscribe")); //$NON-NLS-1$
- // suite.addTest(new ManagedBuildEnvironmentTests("testEnvGetParams")); //$NON-NLS-1$
- // suite.addTest(new ManagedBuildEnvironmentTests("testEnvRemove")); //$NON-NLS-1$
- // suite.addTest(new ManagedBuildEnvironmentTests("testEnvProvider")); //$NON-NLS-1$
return suite;
}
@@ -102,57 +77,6 @@ public class ManagedBuildEnvironmentTests extends TestCase {
super.tearDown();
}
- // Checking behaviour when vars are not defined (except system)
- public void testEnvNotDef() {
- doInit();
- assertNotNull("System vars", envProvider.getVariables(null, true, false)); //$NON-NLS-1$
- assertNotNull("Worksp. vars", envProvider.getVariables(worksp, true, false)); //$NON-NLS-1$
- assertNotNull("Project vars", envProvider.getVariables(mproj, true, false)); //$NON-NLS-1$
- IConfiguration[] cfgs = mproj.getConfigurations();
- for (int k = 0; k < cfgs.length; k++) {
- assertNotNull("Project vars[" + k + "]", //$NON-NLS-1$ //$NON-NLS-2$
- envProvider.getVariables(cfgs[k], true, false));
- }
- }
-
- /**
- * testEnvUpper - check uplevel variables
- * In each context, up-level vars should be returned
- */
- // public void testEnvUpper(){
- // doInit();
- // addTestVariables();
- // IBuildEnvironmentVariable[] a = envProvider.getVariables(null, true, false);
- // IBuildEnvironmentVariable[] b = envProvider.getVariables(worksp, true, false);
- // assertTrue(varListContainNames(a, b));
- // IBuildEnvironmentVariable[] c = envProvider.getVariables(mproj, true, false);
- // assertTrue(varListContainNames(b, c));
- //
- // IConfiguration[] cfgs = mproj.getConfigurations();
- // for (int k=0; k<cfgs.length; k++) {
- // IBuildEnvironmentVariable[] d = envProvider.getVariables(cfgs[k], true, false);
- // assertTrue(varListContainNames(c, d));
- // }
- // }
-
- /**
- *
- *
- */
- // public void testEnvAppend(){
- // doInit();
- //
- // IBuildEnvironmentVariable a = envProvider.getVariable(NAME_CMN, worksp, true, false);
- // assertEquals(NAME_WSP, a.getValue());
- //
- // assertNotNull(a = envProvider.getVariable(NAME_CMN, mproj, true, false));
- // assertEquals(NAME_WSP+DEL_UNIX+NAME_PRJI, a.getValue());
- //
- // IConfiguration cfg = mproj.getConfigurations()[0];
- // assertNotNull(a = envProvider.getVariable(NAME_CMN, cfg, true, false));
- // assertEquals(NAME_WSP+DEL_UNIX+NAME_PRJI+DEL_UNIX+NAME_CFGI, a.getValue());
- // }
-
/**
*
*
@@ -161,97 +85,18 @@ public class ManagedBuildEnvironmentTests extends TestCase {
doInit();
IConfiguration cfg = mproj.getConfigurations()[0];
// CWD/PWD vars should NOT be overwritten anywhere
- // assertNull(envProvider.getVariable(NAME_CWD, worksp, true, false));
- // assertNull(envProvider.getVariable(NAME_CWD, mproj, true, false));
- IBuildEnvironmentVariable a = envProvider.getVariable(NAME_CWD, cfg, true, false);
+ IEnvironmentVariable a = envProvider.getVariable(NAME_CWD, cfg, false);
assertNotNull(a);
if (VAL_CWDPWD.equals(a.getValue()))
fail("CWD should not be rewritten !"); //$NON-NLS-1$
- // assertNull(envProvider.getVariable(NAME_PWD, worksp, true, false));
- // assertNull(envProvider.getVariable(NAME_PWD, mproj, true, false));
- a = envProvider.getVariable(NAME_PWD, cfg, true, false);
+ a = envProvider.getVariable(NAME_PWD, cfg, false);
assertNotNull(a);
if (VAL_CWDPWD.equals(a.getValue()))
fail("PWD should not be rewritten !"); //$NON-NLS-1$
- // try to delete: should fail
- // UserDefinedEnvironmentSupplier usup = getSupplier(cfg, cfg.getName());
- // assertNull(usup.deleteVariable(NAME_CWD, cfg));
- // assertNull(usup.deleteVariable(NAME_PWD, cfg));
- // assertNotNull(envProvider.getVariable(NAME_CWD, cfg, true, false));
- // assertNotNull(envProvider.getVariable(NAME_PWD, cfg, true, false));
}
- /*
- public void testEnvSuppliers() {
- doInit();
-
- IEnvironmentVariableSupplier[] arrSupSys = envProvider.getSuppliers(null);
- assertEquals("System suppliers count not equal to 1", arrSupSys.length, 1); //$NON-NLS-1$
- IBuildEnvironmentVariable[] a = arrSupSys[0].getVariables(null);
- assertNotNull(a);
- IBuildEnvironmentVariable[] b = envProvider.getVariables(null, false, false);
- assertTrue(varListContainNames(a, b));
- assertTrue(varListContainNames(b, a));
-
- IEnvironmentVariableSupplier[] arrSupWrk = envProvider.getSuppliers(worksp);
- assertEquals("Workspace suppliers count not equal to 1", arrSupWrk.length, 1); //$NON-NLS-1$
- a = arrSupWrk[0].getVariables(worksp);
- assertNotNull(a);
- b = envProvider.getVariables(worksp, false, false);
- assertTrue(varListContainNames(a, b));
- assertTrue(varListContainNames(b, a));
-
- IEnvironmentVariableSupplier[] arrSupPro = envProvider.getSuppliers(mproj);
- assertEquals("Project suppliers count not equal to 2", arrSupPro.length, 2); //$NON-NLS-1$
-
- b = envProvider.getVariables(mproj, false, false);
- for (int k=0; k<arrSupPro.length; k++ ) {
- assertTrue(varListContainNames(arrSupPro[k].getVariables(mproj), b));
- }
-
- IConfiguration[] configs = mproj.getConfigurations();
- for (int j=0; j<configs.length; j++) {
- b = envProvider.getVariables(configs[j], false, false);
- IEnvironmentVariableSupplier[] arrSupCfg = envProvider.getSuppliers(configs[j]);
- assertEquals("Configuration suppliers count not equal to 3", arrSupCfg.length, 3); //$NON-NLS-1$
- for (int k=0; k<arrSupCfg.length; k++ ) {
- assertTrue(varListContainNames(arrSupCfg[k].getVariables(configs[j]), b));
- }
- }
- }
- */
- /*
- * plugin.xml contents:
- <projectType id="cdt.managedbuild.target.testgnu.exe">
- ...
- <configuration name="Dbg"
- ...
- <tool
- ...
- <envVarBuildPath
- pathType="buildpathInclude"
- variableList="CFGI,CFG0,PRJI">
- </envVarBuildPath>
- <envVarBuildPath
- pathType="buildpathLibrary"
- variableList="CFGL,PRJL">
- </envVarBuildPath>
- ...
- <configuration name="Rel"
- ...
- <tool
- ...
- <envVarBuildPath
- pathType="buildpathInclude"
- variableList="CFGI,CFG1,PRJI">
- </envVarBuildPath>
- <envVarBuildPath
- pathType="buildpathLibrary"
- variableList="CFGL,PRJL">
- </envVarBuildPath>
- */
public void rm_testEnvGetPath() {
doInit();
IConfiguration[] configs = mproj.getConfigurations();
@@ -276,85 +121,6 @@ public class ManagedBuildEnvironmentTests extends TestCase {
}
}
- // public void testEnvSubscribe(){
- // doInit();
- // IConfiguration[] configs = mproj.getConfigurations();
- //
- // IConfiguration cfg = configs[0];
- // UserDefinedEnvironmentSupplier usup = getSupplier(cfg, cfg.getName());
- // assertNotNull(usup);
- // try {
- //
- // usup.deleteVariable(NAME_CFGI,configs[0]);
- // usup.deleteVariable(NAME_CFGI,configs[1]);
- // usup.deleteVariable(NAME_CFG+"0",configs[0]);
- // usup.deleteVariable(NAME_CFG+"1",configs[0]);
- // usup.deleteVariable(NAME_CFG+"0",configs[1]);
- // usup.deleteVariable(NAME_CFG+"1",configs[1]);
- // usup.deleteVariable(NAME_CFGL,configs[0]);
- // usup.deleteVariable(NAME_CFGL,configs[1]);
- // usup.deleteVariable(NAME_PRJI,mproj);
- // usup.deleteVariable(NAME_PRJL,mproj);
- // usup.deleteVariable(NAME_CFGX,mproj);
- // listenerResult = ""; //$NON-NLS-1$
- //
- // envProvider.subscribe(listener);
- // // should affect config Deb
- // usup.createVariable(NAME_CFGI,VAL_DUMMY2,IBuildEnvironmentVariable.ENVVAR_REPLACE, DEL_UNIX, configs[0]);
- // assertEquals("Step 1", listenerResult, LISTENER_DATA.substring(0,2)); //$NON-NLS-1$
- // // should affect config Rel
- // usup.createVariable(NAME_CFGI,VAL_DUMMY2,IBuildEnvironmentVariable.ENVVAR_REPLACE, DEL_UNIX, configs[1]);
- // assertEquals("Step 2", listenerResult, LISTENER_DATA.substring(0,4)); //$NON-NLS-1$
- //
- // // should affect config Deb
- // usup.createVariable(NAME_CFG+"0",VAL_DUMMY2,IBuildEnvironmentVariable.ENVVAR_REPLACE, DEL_UNIX, configs[0]); //$NON-NLS-1$
- // assertEquals("Step 3", listenerResult, LISTENER_DATA.substring(0,6)); //$NON-NLS-1$
- // // should not affect anything - variable not in path of cfg 0
- // usup.createVariable(NAME_CFG+"1",VAL_DUMMY2,IBuildEnvironmentVariable.ENVVAR_REPLACE, DEL_UNIX, configs[0]); //$NON-NLS-1$
- // assertEquals("Step 4", listenerResult, LISTENER_DATA.substring(0,6)); //$NON-NLS-1$
- //
- // // should affect config Deb
- // usup.createVariable(NAME_CFGL,VAL_DUMMY2,IBuildEnvironmentVariable.ENVVAR_REPLACE, DEL_UNIX, configs[0]);
- // assertEquals("Step 5", listenerResult, LISTENER_DATA.substring(0,8)); //$NON-NLS-1$
- // // should affect config Rel
- // usup.createVariable(NAME_CFGL,VAL_DUMMY2,IBuildEnvironmentVariable.ENVVAR_REPLACE, DEL_UNIX, configs[1]);
- // assertEquals("Step 6", listenerResult, LISTENER_DATA.substring(0,10)); //$NON-NLS-1$
- //
- // // should not affect anything - variable not in path of cfg 1
- // usup.createVariable(NAME_CFG+"0",VAL_DUMMY2,IBuildEnvironmentVariable.ENVVAR_REPLACE, DEL_UNIX, configs[1]); //$NON-NLS-1$
- // assertEquals("Step 7", listenerResult, LISTENER_DATA.substring(0,10)); //$NON-NLS-1$
- // // should affect config Rel
- // usup.createVariable(NAME_CFG+"1",VAL_DUMMY2,IBuildEnvironmentVariable.ENVVAR_REPLACE, DEL_UNIX, configs[1]); //$NON-NLS-1$
- // assertEquals("Step 8", listenerResult, LISTENER_DATA.substring(0,12)); //$NON-NLS-1$
- //
- // // should affect both configurations
- // usup.createVariable(NAME_PRJI,VAL_DUMMY2,IBuildEnvironmentVariable.ENVVAR_REPLACE, DEL_UNIX, mproj);
- // assertEquals("Step 9", listenerResult, LISTENER_DATA.substring(0,16)); //$NON-NLS-1$
- // // should affect both configurations
- // usup.createVariable(NAME_PRJL,VAL_DUMMY2,IBuildEnvironmentVariable.ENVVAR_REPLACE, DEL_UNIX, mproj);
- // assertEquals("Step 10", listenerResult, LISTENER_DATA); //$NON-NLS-1$
- //
- //
- // // should not affect anything - no changes
- // usup.createVariable(NAME_PRJL,VAL_DUMMY2,IBuildEnvironmentVariable.ENVVAR_REPLACE, DEL_UNIX, mproj);
- // assertEquals("Step 11", listenerResult, LISTENER_DATA); //$NON-NLS-1$
- // // should not affect anything - variable not in path
- // usup.createVariable(NAME_CFGX,VAL_DUMMY2, IBuildEnvironmentVariable.ENVVAR_REPLACE, DEL_UNIX, mproj);
- // assertEquals("Step 12", listenerResult, LISTENER_DATA); //$NON-NLS-1$
- //
- // envProvider.unsubscribe(listener);
- //
- // // should NOT affect anything - subscription cancelled
- // usup.createVariable(NAME_PRJI,VAL_DUMMY1,IBuildEnvironmentVariable.ENVVAR_REPLACE, DEL_UNIX, mproj);
- // usup.createVariable(NAME_CFGI,VAL_DUMMY1,IBuildEnvironmentVariable.ENVVAR_REPLACE, DEL_UNIX, configs[0]);
- // usup.createVariable(NAME_CFGI,VAL_DUMMY1,IBuildEnvironmentVariable.ENVVAR_REPLACE, DEL_UNIX, configs[1]);
- // assertEquals("Step 13", listenerResult, LISTENER_DATA); //$NON-NLS-1$
- //
- // } catch (Exception e) {
- // fail("Failed to create configuration vars !"); //$NON-NLS-1$
- // }
- // }
-
/**
*
*
@@ -362,185 +128,43 @@ public class ManagedBuildEnvironmentTests extends TestCase {
public void testEnvGetParams() {
doInit();
IEnvironmentVariableProvider envProvider = ManagedBuildManager.getEnvironmentVariableProvider();
- IBuildEnvironmentVariable x = null;
- IBuildEnvironmentVariable y = null;
+
+ // if "path" and "PATH" exist they should be equal
+ IEnvironmentVariable x = envProvider.getVariable("PATH", mproj.getConfigurations()[0], false);
+ IEnvironmentVariable y = envProvider.getVariable("path", mproj.getConfigurations()[0], false);
+ assertNotNull(x);
+ if (y != null) {
+ assertFalse(x.getName().equals(y.getName()));
+ }
+
if (System.getProperty("os.name").toLowerCase().startsWith("windows")) { //$NON-NLS-1$ //$NON-NLS-2$
assertEquals(envProvider.getDefaultDelimiter(), DEL_WIN);
- assertFalse(envProvider.isVariableCaseSensitive());
- // these var instances are different although contents is equal.
- x = envProvider.getVariable("PATH", mproj.getConfigurations()[0], true, false);
- assertNotNull(x);
- y = envProvider.getVariable("path", mproj.getConfigurations()[0], true, false);
- assertNotNull(y);
- assertEquals(x.getName(), y.getName());
- assertEquals(x.getValue(), y.getValue());
} else {
assertEquals(envProvider.getDefaultDelimiter(), DEL_UNIX);
- assertTrue(envProvider.isVariableCaseSensitive());
- // "path" is different var (may absent);
- x = envProvider.getVariable("PATH", mproj.getConfigurations()[0], true, false);
- assertNotNull(x);
- y = envProvider.getVariable("path", mproj.getConfigurations()[0], true, false);
- if (y != null) {
- assertFalse(x.getName().equals(y.getName()));
- }
+
}
}
/**
- *
- *
- */
- // public void testEnvRemove(){
- // doInit();
- // IEnvironmentVariableProvider env = ManagedBuildManager.getEnvironmentVariableProvider();
- // UserDefinedEnvironmentSupplier usup = null;
- //
- // // create vars for removal tests
- // assertNotNull(usup = getSupplier(worksp, "Workspace")); //$NON-NLS-1$
- // try {
- // assertNotNull(usup.createVariable(NAME_REM1, VAL_DUMMY1, IBuildEnvironmentVariable.ENVVAR_REPLACE, DEL_UNIX, worksp));
- // assertNotNull(usup.createVariable(NAME_REM2, VAL_DUMMY1, IBuildEnvironmentVariable.ENVVAR_REPLACE, DEL_UNIX, worksp));
- // } catch (Exception e) { fail(e.getLocalizedMessage()); }
- //
- // assertNotNull(usup = getSupplier(mproj, "Project")); //$NON-NLS-1$
- // try {
- // assertNotNull(usup.createVariable(NAME_REM1, VAL_DUMMY2, IBuildEnvironmentVariable.ENVVAR_REMOVE, DEL_UNIX, mproj));
- // assertNotNull(usup.createVariable(NAME_REM2, VAL_DUMMY2, IBuildEnvironmentVariable.ENVVAR_APPEND, DEL_UNIX, mproj));
- // } catch (Exception e) { fail(e.getLocalizedMessage()); }
- //
- // IConfiguration cfg = mproj.getConfigurations()[0];
- // assertNotNull(usup = getSupplier(cfg, "Configuration 0")); //$NON-NLS-1$
- // try {
- // assertNotNull(usup.createVariable(NAME_REM1, VAL_CWDPWD, IBuildEnvironmentVariable.ENVVAR_REMOVE, DEL_UNIX, cfg));
- // assertNotNull(usup.createVariable(NAME_REM2, VAL_CWDPWD, IBuildEnvironmentVariable.ENVVAR_REMOVE, DEL_UNIX, cfg));
- // } catch (Exception e) { fail(e.getLocalizedMessage()); }
- //
- // // Check vars presence/absence on different levels
- // IBuildEnvironmentVariable a = env.getVariable(NAME_REM1, worksp, true, false);
- // IBuildEnvironmentVariable b = env.getVariable(NAME_REM2, worksp, true, false);
- // assertNotNull(a);
- // assertNotNull(b);
- // a = env.getVariable(NAME_REM1, mproj, true, false);
- // b = env.getVariable(NAME_REM2, mproj, true, false);
- // assertNull(a);
- // assertNotNull(b);
- // assertEquals(b.getValue(), VAL_DUMMY1 + DEL_UNIX + VAL_DUMMY2);
- // a = env.getVariable(NAME_REM1, cfg, true, false);
- // b = env.getVariable(NAME_REM2, cfg, true, false);
- // assertNull(a);
- // assertNull(b);
- // }
- /**
* testEnvProvider() -
*/
public void testEnvProvider() {
doInit();
- IBuildEnvironmentVariable a = envProvider.getVariable(TestMacro.PRJ_VAR, mproj.getConfigurations()[0], true,
- false);
+ IEnvironmentVariable a = envProvider.getVariable(TestMacro.PRJ_VAR, mproj.getConfigurations()[0], false);
assertNotNull(a);
assertEquals(TestMacro.PRJ_VAR + mproj.getName(), a.getValue());
IConfiguration[] cfgs = mproj.getConfigurations();
- a = envProvider.getVariable(TestMacro.CFG_VAR, cfgs[0], true, false);
+ a = envProvider.getVariable(TestMacro.CFG_VAR, cfgs[0], false);
assertNotNull(a);
assertEquals(TestMacro.CFG_VAR + cfgs[0].getName(), a.getValue());
// no provider for another configurations
- a = envProvider.getVariable(TestMacro.CFG_VAR, cfgs[1], true, false);
+ a = envProvider.getVariable(TestMacro.CFG_VAR, cfgs[1], false);
assertNull(a);
- // combination user-defined and provided variables
- // UserDefinedEnvironmentSupplier usup = getSupplier(cfgs[0], cfgs[0].getName());
- // usup.createVariable(TestMacro.PRJ_VAR, VAL_DUMMY1, IBuildEnvironmentVariable.ENVVAR_PREPEND, DEL_UNIX, cfgs[0]);
- // a = envProvider.getVariable(TestMacro.PRJ_VAR, cfgs[0], true, false);
- // assertNotNull(a);
- // assertEquals(VAL_DUMMY1+DEL_UNIX+TestMacro.PRJ_VAR+mproj.getName(), a.getValue());
}
- /**
- * This test is not used iun suite. It just prints variabes
- */
- // public void testEnvPrint(){
- // doInit();
- // printVar("s-Var", envProvider.getVariables(null, false, false)); //$NON-NLS-1$
- // printVar("w-Var", envProvider.getVariables(worksp, false, false)); //$NON-NLS-1$
- // printVar("p-Var", envProvider.getVariables(mproj, false, false)); //$NON-NLS-1$
- // IConfiguration[] cfgs = mproj.getConfigurations();
- // for (int k=0; k<cfgs.length; k++) {
- // printVar("c[" + k + "]-Var", envProvider.getVariables(cfgs[k], false, false)); //$NON-NLS-1$ //$NON-NLS-2$
- // }
- // }
-
- // Create all required user variables
-
- // public static UserDefinedEnvironmentSupplier getSupplier(Object obj, String objName) {
- // IEnvironmentVariableSupplier[] arrSup = null;
- // arrSup = ManagedBuildManager.getEnvironmentVariableProvider().getSuppliers(obj);
- // for (int i=0; i<arrSup.length; i++ ) {
- // if (arrSup[i] instanceof UserDefinedEnvironmentSupplier) {
- // return (UserDefinedEnvironmentSupplier) arrSup[i];
- // }
- // }
- // fail("Cannot access user variable supplier for " + objName); //$NON-NLS-1$
- // return null;
- // }
-
- /**
- *
- *
- * Note: CWD and PWD vars are not allowed to be added/changed
- */
- // private void addTestVariables() {
- // final int STD_MODE = IBuildEnvironmentVariable.ENVVAR_REPLACE;
- // UserDefinedEnvironmentSupplier usup = null;
- // usup = getSupplier(worksp, "Workspace"); //$NON-NLS-1$
- // try {
- // if (usup != null) {
- // assertNotNull(usup.createVariable(NAME_CMN, NAME_WSP, IBuildEnvironmentVariable.ENVVAR_APPEND, DEL_UNIX, worksp));
- // assertNotNull(usup.createVariable(NAME_WSP,VAL_DUMMY1, STD_MODE, DEL_UNIX, worksp));
- // assertNull(usup.createVariable(NAME_CWD,VAL_CWDPWD, STD_MODE, DEL_UNIX, worksp));
- // assertNull(usup.createVariable(NAME_PWD,VAL_CWDPWD, STD_MODE, DEL_UNIX, worksp));
- // }
- // } catch (Exception e) {
- // fail("Failed to create workspace vars " + e.getLocalizedMessage()); //$NON-NLS-1$
- // }
- //
- // usup = getSupplier(mproj, "Project"); //$NON-NLS-1$
- // try {
- // if (usup != null) {
- // assertNotNull(usup.createVariable(NAME_CMN, NAME_PRJI, IBuildEnvironmentVariable.ENVVAR_APPEND, DEL_UNIX, mproj));
- // assertNotNull(usup.createVariable(NAME_PRJI,VAL_PRO_INC, STD_MODE, DEL_UNIX, mproj));
- // assertNotNull(usup.createVariable(NAME_PRJL,VAL_PRO_LIB, STD_MODE, DEL_UNIX, mproj));
- // assertNull(usup.createVariable(NAME_CWD, VAL_CWDPWD, STD_MODE, DEL_UNIX, mproj));
- // assertNull(usup.createVariable(NAME_PWD, VAL_CWDPWD, STD_MODE, DEL_UNIX, mproj));
- // }
- // } catch (Exception e) {
- // fail("Failed to create project vars " + e.getLocalizedMessage()); //$NON-NLS-1$
- // }
- //
- // IConfiguration[] configs = mproj.getConfigurations();
- // for (int i = 0; i < 2; i++) { // only 2 first configs are affected
- // IConfiguration cfg = configs[i];
- // usup = getSupplier(cfg, "Configuration " + cfg.getName()); //$NON-NLS-1$
- // try {
- // if (usup != null) {
- // assertNotNull(usup.createVariable(NAME_CMN, NAME_CFGI, IBuildEnvironmentVariable.ENVVAR_APPEND, DEL_UNIX, cfg));
- // assertNotNull(usup.createVariable(NAME_CFGI, "/config/include/"+i, STD_MODE, DEL_UNIX, cfg)); //$NON-NLS-1$
- // assertNotNull(usup.createVariable(NAME_CFG+i,"/config"+i+"/include",STD_MODE, DEL_UNIX, cfg)); //$NON-NLS-1$ //$NON-NLS-2$
- // assertNotNull(usup.createVariable(NAME_CFGL, "/config/lib/"+i, STD_MODE, DEL_UNIX, cfg)); //$NON-NLS-1$
- // assertNotNull(usup.createVariable(NAME_CFGX, "/config/unused", STD_MODE, DEL_UNIX, cfg)); //$NON-NLS-1$
- // assertNull(usup.createVariable(NAME_CWD, VAL_CWDPWD, STD_MODE, DEL_UNIX, cfg));
- // assertNull(usup.createVariable(NAME_PWD, VAL_CWDPWD, STD_MODE, DEL_UNIX, cfg));
- // }
- // } catch (Exception e) {
- // fail("Failed to create configuration vars for <" + cfg.getName() + "> - "+ e.getLocalizedMessage()); //$NON-NLS-1$ //$NON-NLS-2$
- // }
- // }
- // try {
- // proj.build(IncrementalProjectBuilder.FULL_BUILD, null);
- // } catch (Exception e) {}
- // }
private void doInit() {
envProvider = ManagedBuildManager.getEnvironmentVariableProvider();
assertNotNull(envProvider);
@@ -553,45 +177,6 @@ public class ManagedBuildEnvironmentTests extends TestCase {
assertNotNull(worksp);
}
- /*
- * Print contents of env.var array, with given header.
- */
- // private void printVar(String head, IBuildEnvironmentVariable[] vars) {
- // if (vars != null) {
- // if (vars.length > 0) {
- // for (int i=0; i < vars.length; i++) {
- // System.out.println(head + "[" + i + "] " + //$NON-NLS-1$ //$NON-NLS-2$
- // vars[i].getName() + " = " + //$NON-NLS-1$
- // vars[i].getValue() + " / " + //$NON-NLS-1$
- // vars[i].getOperation() + vars[i].getDelimiter());
- // }
- // } else { System.out.println(head + ": array is empty"); } //$NON-NLS-1$
- // } else { System.out.println(head + ": array is null"); } //$NON-NLS-1$
- // }
-
- /*
- * check that ALL variables from list "a" have correspondence
- * in list "b"
- * empty list or null are treated as corresponding to anything
- */
- // private boolean varListContainNames(IBuildEnvironmentVariable[] a, IBuildEnvironmentVariable[] b) {
- // if (a == null) return true;
- // else if (a.length == 0) return true;
- // else if (b == null) return false;
- //
- // for (int i=0; i<a.length; i++) {
- // boolean found = false;
- // for (int j=0; j<b.length; j++) {
- // if (a[i].getName().equals(b[j].getName())) {
- // found = true;
- // break;
- // }
- // }
- // if (!found) return false;
- // }
- // return true;
- // }
-
/**
*
* @param head
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildMacrosTests.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildMacrosTests.java
index 72479b0b2aa..01d4bc5bd41 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildMacrosTests.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildMacrosTests.java
@@ -57,7 +57,6 @@ public class ManagedBuildMacrosTests extends TestCase {
IConfiguration[] cfgs = null;
IBuildMacroProvider mp = null;
IWorkspace worksp = null;
- boolean windows = false;
boolean print = false; // allows to print most of macros on console
boolean flag = false; // uplevel flag for getMacro/getMacros methods
@@ -92,24 +91,6 @@ public class ManagedBuildMacrosTests extends TestCase {
public static Test suite() {
TestSuite suite = new TestSuite(ManagedBuildMacrosTests.class);
- //$JUnit-BEGIN$
- // suite.addTest(new ManagedBuildMacrosTests("testMacroConf"));//$NON-NLS-1$
- // suite.addTest(new ManagedBuildMacrosTests("testMacroEEnv"));//$NON-NLS-1$
- // suite.addTest(new ManagedBuildMacrosTests("testMacroInst"));//$NON-NLS-1$
- // suite.addTest(new ManagedBuildMacrosTests("testMacroProj"));//$NON-NLS-1$
- // suite.addTest(new ManagedBuildMacrosTests("testMacroWrks"));//$NON-NLS-1$
- // suite.addTest(new ManagedBuildMacrosTests("testMacroOptS"));//$NON-NLS-1$
- // suite.addTest(new ManagedBuildMacrosTests("testMacroOptL"));//$NON-NLS-1$
- // suite.addTest(new ManagedBuildMacrosTests("testMacroFile"));//$NON-NLS-1$
- // suite.addTest(new ManagedBuildMacrosTests("testMacroContext"));//$NON-NLS-1$
- //
- // suite.addTest(new ManagedBuildMacrosTests("testMacroResolve"));//$NON-NLS-1$
- // suite.addTest(new ManagedBuildMacrosTests("testMacroResolveExceptions"));//$NON-NLS-1$
- // suite.addTest(new ManagedBuildMacrosTests("testMacroResolveLoop"));//$NON-NLS-1$
- // suite.addTest(new ManagedBuildMacrosTests("testMacroResolveMake"));//$NON-NLS-1$
- // suite.addTest(new ManagedBuildMacrosTests("testMacroResolveCase"));//$NON-NLS-1$
- // suite.addTest(new ManagedBuildMacrosTests("testMacroSave"));//$NON-NLS-1$
- //$JUnit-END$
return suite;
}
@@ -120,127 +101,6 @@ public class ManagedBuildMacrosTests extends TestCase {
super.tearDown();
}
- /**
- * testMacroConf()
- */
- /* public void testMacroConf(){
- doInit();
- ms = mp.getSuppliers(IBuildMacroProvider.CONTEXT_CONFIGURATION, cfgs[0]);
- assertNotNull(ms);
- assertEquals(ms.length, 4);
- assertTrue(addMacro(TEST, IBuildMacro.VALUE_TEXT, TST[IBuildMacroProvider.CONTEXT_CONFIGURATION],
- IBuildMacroProvider.CONTEXT_CONFIGURATION, cfgs[0]));
- functionCalled = 0;
- String[] a = printMacros(mp.getMacros(IBuildMacroProvider.CONTEXT_CONFIGURATION, cfgs[0], flag), "Configuration"); //$NON-NLS-1$
- assertEquals(GET_MANY_CONFIG, functionCalled);
- String[] b = {"ConfigName", "BuildArtifactFileExt", //$NON-NLS-1$ //$NON-NLS-2$
- "BuildArtifactFileBaseName", "TargetArchList", //$NON-NLS-1$ //$NON-NLS-2$
- "TargetOsList", "BuildArtifactFileName", //$NON-NLS-1$ //$NON-NLS-2$
- "PWD", "CWD", "ConfigDescription", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- TEST, "NEW_FOR_CFG" }; //$NON-NLS-1$
- assertTrue(arrayContains(b, a));
- }
- */
- /**
- * testMacroEEnv()
- */
- /* public void testMacroEEnv(){
- doInit();
- ms = mp.getSuppliers(IBuildMacroProvider.CONTEXT_ECLIPSEENV, null);
- assertNotNull(ms);
- assertEquals(ms.length, 1);
- assertFalse(addMacro(TEST, IBuildMacro.VALUE_TEXT, TST[IBuildMacroProvider.CONTEXT_ECLIPSEENV],
- IBuildMacroProvider.CONTEXT_ECLIPSEENV, null));
- String[] a = printMacros(mp.getMacros(IBuildMacroProvider.CONTEXT_ECLIPSEENV, null, flag), "EclipseEnv"); //$NON-NLS-1$
- // String[] b = {"PATH", "USERNAME"}; //$NON-NLS-1$ //$NON-NLS-2$
- // assertTrue(arrayContains(b, a));
- }
- */
- /**
- * testMacroInst()
- */
- /* public void testMacroInst(){
- doInit();
- ms = mp.getSuppliers(IBuildMacroProvider.CONTEXT_INSTALLATIONS, null);
- assertNotNull(ms);
- assertEquals(ms.length, 1);
- assertFalse(addMacro(TEST, IBuildMacro.VALUE_TEXT, TST[IBuildMacroProvider.CONTEXT_INSTALLATIONS],
- IBuildMacroProvider.CONTEXT_INSTALLATIONS, null));
- String[] a = printMacros(mp.getMacros(IBuildMacroProvider.CONTEXT_INSTALLATIONS, null, flag), "Installations "); //$NON-NLS-1$
- String[] b = {"HostArchName", "MBSVersion", //$NON-NLS-1$ //$NON-NLS-2$
- "EclipseVersion", "HostOsName", "CDTVersion"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- assertTrue(arrayContains(b, a));
- }
- */
- /**
- * testMacroProj()
- */
- // public void testMacroProj(){
- // doInit();
- // ms = mp.getSuppliers(IBuildMacroProvider.CONTEXT_PROJECT, mproj);
- // assertNotNull(ms);
- // assertEquals(ms.length, 4);
- // assertTrue(addMacro(TEST, IBuildMacro.VALUE_TEXT, TST[IBuildMacroProvider.CONTEXT_PROJECT],
- // IBuildMacroProvider.CONTEXT_PROJECT, mproj));
- // functionCalled = 0;
- // String[] a = printMacros(mp.getMacros(IBuildMacroProvider.CONTEXT_PROJECT, mproj, flag), "Project "); //$NON-NLS-1$
- // assertEquals(GET_MANY_PROJECT, functionCalled);
- // String[] b = {"ProjDirPath", "ProjName", //$NON-NLS-1$ //$NON-NLS-2$
- // TEST, "NEW_FOR_PRJ"}; //$NON-NLS-1$
- // assertTrue(arrayContains(b, a));
- // }
-
- /**
- * testMacroWrks()
- */
- // public void testMacroWrks(){
- // doInit();
- // ms = mp.getSuppliers(IBuildMacroProvider.CONTEXT_WORKSPACE, worksp);
- // assertNotNull(ms);
- // assertEquals(ms.length, 5);
- // assertTrue(addMacro(TEST, IBuildMacro.VALUE_TEXT, TST[IBuildMacroProvider.CONTEXT_WORKSPACE],
- // IBuildMacroProvider.CONTEXT_WORKSPACE, worksp));
- // String[] a = printMacros(mp.getMacros(IBuildMacroProvider.CONTEXT_WORKSPACE, worksp, flag), "Workspace "); //$NON-NLS-1$
- // String[] b = {"DirectoryDelimiter", "WorkspaceDirPath", //$NON-NLS-1$ //$NON-NLS-2$
- // "PathDelimiter", TEST}; //$NON-NLS-1$
- // assertTrue(arrayContains(b, a));
- // }
-
- /**
- * testMacroOptn()
- */
- // public void testMacroOptS(){
- // doInit();
- // IToolChain tc = cfgs[0].getToolChain();
- // ITool t = cfgs[0].getTools()[0];
- // IOption opt = t.getOptionById(OPT_IDS);
- // assertNotNull(opt);
- //
- // // standard check of suppliers # and attempt to add macro (should fail)
- // ms = mp.getSuppliers(IBuildMacroProvider.CONTEXT_OPTION, new OptionContextData(opt,t));
- // assertNotNull(ms);
- // assertEquals(ms.length, 1);
- // assertFalse(addMacro(TEST, IBuildMacro.VALUE_TEXT, TST[IBuildMacroProvider.CONTEXT_OPTION], IBuildMacroProvider.CONTEXT_OPTION, new OptionContextData(opt,t)));
- //
- // // modify value and check that macros is resolved
- // try {
- // opt = cfgs[0].setOption(t, opt, "222 " + INC_DEF); //$NON-NLS-1$
- // String a = mp.resolveValue(opt.getStringValue(), UNKNOWN, LISTSEP, IBuildMacroProvider.CONTEXT_OPTION, new OptionContextData(opt,t));
- // assertEquals(a, "222 111"); //$NON-NLS-1$
- // } catch (BuildMacroException e) { fail(e.getLocalizedMessage()); }
- // catch (BuildException e) { fail(e.getLocalizedMessage()); }
- //
- // // Create resource configuration
- // IResourceConfiguration rc = cfgs[0].createResourceConfiguration(getFile());
- // assertNotNull(rc);
- // IOption ropt = rc.getTools()[0].getOptionById(OPT_IDS);
- // try {
- // ropt = rc.setOption(rc.getTools()[0], ropt, "333 " + INC_DEF); //$NON-NLS-1$
- // String a = mp.resolveValue(ropt.getStringValue(), UNKNOWN, LISTSEP, IBuildMacroProvider.CONTEXT_OPTION, new OptionContextData(opt,t));
- // assertEquals(a, "333 111"); //$NON-NLS-1$
- // } catch (Exception e) { fail(e.getLocalizedMessage()); }
- // }
-
public void testMacroOptL() {
doInit();
ITool t = cfgs[0].getTools()[0];
@@ -294,128 +154,6 @@ public class ManagedBuildMacrosTests extends TestCase {
}
/**
- * testMacroFile()
- */
- // public void testMacroFile(){
- // final String EIN = "ein.c"; //$NON-NLS-1$
- // final String AUS = "aus.o"; //$NON-NLS-1$
- // final String UP2W = "..\\..\\"; //$NON-NLS-1$
- // final String UP2U = "../../"; //$NON-NLS-1$
- // final String KLMN = "\\k\\l\\m\\n\\o\\p\\"; //$NON-NLS-1$
- // final String[] names =
- // {"InputFileName", "InputFileExt", "InputFileBaseName", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- // "InputFileRelPath", "InputDirRelPath", //$NON-NLS-1$ //$NON-NLS-2$
- // "OutputFileName", "OutputFileExt", "OutputFileBaseName",//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- // "OutputFileRelPath", "OutputDirRelPath"}; //$NON-NLS-1$ //$NON-NLS-2$
- // String[] values0wAbs =
- // {"a.f77", "f77", "a", "\\xz\\a.f77", "\\xz\\", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
- // "b.exe", "exe", "b", "\\tmp\\b.exe", "\\tmp\\"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
- // final String[] values0wRel =
- // {EIN, "c", "ein", UP2W+EIN, UP2W, //$NON-NLS-1$ //$NON-NLS-2$
- // AUS, "o", "aus", UP2W+AUS, UP2W}; //$NON-NLS-1$ //$NON-NLS-2$
- //
- // final String[] values0u =
- // {EIN, "c", "ein", UP2U+EIN, UP2U, //$NON-NLS-1$ //$NON-NLS-2$
- // AUS, "o", "aus", UP2U+AUS, UP2U}; //$NON-NLS-1$ //$NON-NLS-2$
- //
- // final String[] values1 =
- // {"$(notdir $<)", "$(suffix $(notdir $<))", //$NON-NLS-1$ //$NON-NLS-2$
- // "$(basename $(notdir $<))", "$<", "$(dir $<)", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- // "$(notdir $@)", "$(suffix $(notdir $@))", //$NON-NLS-1$ //$NON-NLS-2$
- // "$(basename $(notdir $@))", "$@", "$(dir $@)"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- //
- // FileContextData fd = null;
- //
- // doInit();
- // ITool t = cfgs[0].getTools()[0];
- // assertNotNull(t);
- // IOption opt = t.getOptionById(OPT_IDS);
- //
- // String dir=null;
- // try {
- // dir = mp.getMacro("WorkspaceDirPath", IBuildMacroProvider.CONTEXT_WORKSPACE, worksp, flag).getStringValue(); //$NON-NLS-1$
- // } catch (BuildMacroException e) { fail(e.getLocalizedMessage()); }
- // IPath p = (new Path(dir)).addTrailingSeparator();
- //
- // if (windows) {
- // // check behaviour in case of different disks usage
- //
- // // config #4 has changed BuilderMakeFileGenerator, #0 has standard one
- // IBuildEnvironmentVariable cwdvar = ManagedBuildManager.getEnvironmentVariableProvider().getVariable("CWD", cfgs[0], false, true); //$NON-NLS-1$
- // String dev0 = Path.fromOSString(cwdvar.getValue()).getDevice().toUpperCase();
- // String dev1 = (dev0.startsWith("C")) ? "D:" : "C:"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- // values0wAbs[3] = dev1 + values0wAbs[3];
- // values0wAbs[4] = dev1 + values0wAbs[4];
- // values0wAbs[8] = dev1 + values0wAbs[8];
- // values0wAbs[9] = dev1 + values0wAbs[9];
- //
- // fd = new FileContextData(new Path(values0wAbs[3]), new Path(values0wAbs[8]),opt,t);
- // for (int i=0; i<names.length; i++)
- // try {
- // assertEquals(values0wAbs[i], mp.getMacro(names[i], IBuildMacroProvider.CONTEXT_FILE, fd, flag).getStringValue());
- // } catch (BuildMacroException e) { fail(e.getLocalizedMessage()); }
- //
- // // check that relative path are reported OK
- // fd = new FileContextData(p.append(EIN), p.append(AUS),opt,t);
- // for (int i=0; i<names.length; i++)
- // try {
- // assertEquals(values0wRel[i], mp.getMacro(names[i], IBuildMacroProvider.CONTEXT_FILE, fd, flag).getStringValue());
- // } catch (BuildMacroException e) { fail(e.getLocalizedMessage()); }
- //
- //// //TODO:
- //// // check paths using changed BuilderMakeFileGenerator in cfg "Five"
- /////*
- //// int index = 4;
- //// ManagedBuildManager.setDefaultConfiguration(proj, cfgs[index]);
- //// OptionContextData op = new OptionContextData(cfgs[index].getTools()[0].getOptions()[0], cfgs[index].getToolChain());
- //// String p0 = dev0 + KLMN;
- //// fd = new FileContextData(new Path(p0+EIN), new Path(p0+AUS), op);
- //// assertNotNull(fd);
- //// //TODO: the same dir, upper dir, lower dir
- //// try {
- //// TestMacro.topBuildDir = Path.fromOSString(p0);
- //// assertEquals(p0+EIN, mp.getMacro(names[3], IBuildMacroProvider.CONTEXT_FILE, fd, flag).getStringValue());
- //// assertEquals(p0, mp.getMacro(names[4], IBuildMacroProvider.CONTEXT_FILE, fd, flag).getStringValue());
- //// assertEquals(p0+AUS, mp.getMacro(names[8], IBuildMacroProvider.CONTEXT_FILE, fd, flag).getStringValue());
- //// assertEquals(p0, mp.getMacro(names[9], IBuildMacroProvider.CONTEXT_FILE, fd, flag).getStringValue());
- ////// p0 = Path.fromOSString(p0).removeLastSegments(2).addTrailingSeparator().toOSString();
- ////// p0 = dev0+KLMN+"x\\";
- ////// TestMacro.topBuildDir = Path.fromOSString(p0);
- //// assertEquals(p0+EIN, mp.getMacro(names[3], IBuildMacroProvider.CONTEXT_FILE, fd, flag).getStringValue());
- //// assertEquals(p0, mp.getMacro(names[4], IBuildMacroProvider.CONTEXT_FILE, fd, flag).getStringValue());
- //// assertEquals(p0+AUS, mp.getMacro(names[8], IBuildMacroProvider.CONTEXT_FILE, fd, flag).getStringValue());
- //// assertEquals(p0, mp.getMacro(names[9], IBuildMacroProvider.CONTEXT_FILE, fd, flag).getStringValue());
- //// } catch (BuildMacroException e) { fail(e.getLocalizedMessage()); }
- ////// */
- //
- //
- // } else {
- // // check relative path only
- // fd = new FileContextData(p.append(EIN), p.append(AUS),opt,t);
- // for (int i=0; i<names.length; i++)
- // try {
- // assertEquals(values0u[i], mp.getMacro(names[i], IBuildMacroProvider.CONTEXT_FILE, fd, flag).getStringValue());
- // } catch (BuildMacroException e) { fail(e.getLocalizedMessage()); }
- // }
- //
- // // check supplier's parameters
- // assertNotNull(fd);
- // ms = mp.getSuppliers(IBuildMacroProvider.CONTEXT_FILE, fd);
- // assertNotNull(ms);
- // assertEquals(ms.length, 1);
- // assertFalse(addMacro(TEST, IBuildMacro.VALUE_TEXT,
- // TST[IBuildMacroProvider.CONTEXT_FILE], IBuildMacroProvider.CONTEXT_FILE, fd));
- //
- // // For config #3, macros should contain lines specified in plugin.xml
- // opt = cfgs[1].getTools()[0].getOptions()[0];
- // fd = new FileContextData(p.append(EIN), p.append(AUS),opt,cfgs[1].getTools()[0]);
- // for (int i=0; i<names.length; i++)
- // try {
- // assertEquals(values1[i], mp.getMacro(names[i], IBuildMacroProvider.CONTEXT_FILE, fd, flag).getStringValue());
- // } catch (BuildMacroException e) { fail(e.getLocalizedMessage()); }
- // }
-
- /**
* testMacroContext()
*/
public void rm_testMacroContext() {
@@ -436,62 +174,6 @@ public class ManagedBuildMacrosTests extends TestCase {
}
/**
- * testMacroResolve()
- */
- // public void testMacroResolve(){
- // doInit();
- // ms = mp.getSuppliers(IBuildMacroProvider.CONTEXT_WORKSPACE, worksp);
- // assertNotNull(ms);
- // String[] lst = {"AAA", "BBB", "CCC"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- // assertTrue(addMacro("LST", IBuildMacro.VALUE_TEXT_LIST, lst, //$NON-NLS-1$
- // IBuildMacroProvider.CONTEXT_WORKSPACE, worksp));
- // assertTrue(addMacro("ONE", IBuildMacro.VALUE_TEXT, "EIN", //$NON-NLS-1$ //$NON-NLS-2$
- // IBuildMacroProvider.CONTEXT_WORKSPACE, worksp));
- // //
- // assertTrue(addMacro("L1", IBuildMacro.VALUE_TEXT, "nested L1-${L2}-L1", //$NON-NLS-1$ //$NON-NLS-2$
- // IBuildMacroProvider.CONTEXT_WORKSPACE, worksp));
- // assertTrue(addMacro("L2", IBuildMacro.VALUE_TEXT, "L2-${L3}-L2", //$NON-NLS-1$ //$NON-NLS-2$
- // IBuildMacroProvider.CONTEXT_WORKSPACE, worksp));
- // assertTrue(addMacro("L3", IBuildMacro.VALUE_TEXT, "L3-${L4}-L3", //$NON-NLS-1$ //$NON-NLS-2$
- // IBuildMacroProvider.CONTEXT_WORKSPACE, worksp));
- // assertTrue(addMacro("L4", IBuildMacro.VALUE_TEXT, "L4", //$NON-NLS-1$ //$NON-NLS-2$
- // IBuildMacroProvider.CONTEXT_WORKSPACE, worksp));
- //
- // ms = mp.getSuppliers(IBuildMacroProvider.CONTEXT_PROJECT, mproj);
- // assertNotNull(ms);
- // assertTrue(addMacro("TWO", IBuildMacro.VALUE_TEXT, "ZWEI", //$NON-NLS-1$ //$NON-NLS-2$
- // IBuildMacroProvider.CONTEXT_PROJECT, mproj));
- // ms = mp.getSuppliers(IBuildMacroProvider.CONTEXT_CONFIGURATION, cfgs[0]);
- // assertNotNull(ms);
- // assertTrue(addMacro("three", IBuildMacro.VALUE_TEXT, "DREI", //$NON-NLS-1$ //$NON-NLS-2$
- // IBuildMacroProvider.CONTEXT_CONFIGURATION, cfgs[0]));
- //
- //
- // // check normal workflow
- // try {
- // final String pattern = "${ONE} - ${TWO} - ${three} -> ${LST}"; //$NON-NLS-1$
- // String a = mp.resolveValue(pattern, UNKNOWN, LISTSEP,
- // IBuildMacroProvider.CONTEXT_CONFIGURATION, cfgs[0]);
- // String b = mp.resolveValue(pattern, UNKNOWN, LISTSEP,
- // IBuildMacroProvider.CONTEXT_PROJECT, mproj);
- // String c = mp.resolveValue(pattern, UNKNOWN, LISTSEP,
- // IBuildMacroProvider.CONTEXT_WORKSPACE, worksp);
- // String d = mp.resolveValue("${L1}", UNKNOWN, LISTSEP, //$NON-NLS-1$
- // IBuildMacroProvider.CONTEXT_WORKSPACE, worksp);
- // String e = mp.resolveValue("${one} - ${Two} - ${THREE} -> ${lst}", UNKNOWN, LISTSEP, //$NON-NLS-1$
- // IBuildMacroProvider.CONTEXT_CONFIGURATION, cfgs[0]);
- //
- // assertEquals(a, "EIN - ZWEI - DREI -> AAA|BBB|CCC"); //$NON-NLS-1$
- // assertEquals(b, "EIN - ZWEI - <HZ> -> AAA|BBB|CCC"); //$NON-NLS-1$
- // assertEquals(c, "EIN - <HZ> - <HZ> -> AAA|BBB|CCC"); //$NON-NLS-1$
- // assertEquals(d, "nested L1-L2-L3-L4-L3-L2-L1"); //$NON-NLS-1$
- // assertEquals(e, "<HZ> - <HZ> - <HZ> -> <HZ>"); //$NON-NLS-1$
- // } catch (BuildMacroException e) {
- // fail("Exception while resolving: " + e.getLocalizedMessage()); //$NON-NLS-1$
- // }
- // }
-
- /**
* testMacroResolveExceptions()
*/
public void testMacroResolveExceptions() {
@@ -516,181 +198,6 @@ public class ManagedBuildMacrosTests extends TestCase {
assertTrue("Exception not raised for undefined delimiter", exceptionRaised); //$NON-NLS-1$
}
- /**
- * testMacroResolveLoop()
- */
- // public void testMacroResolveLoop() {
- // doInit();
- // int ctx = IBuildMacroProvider.CONTEXT_WORKSPACE;
- // Object obj = worksp;
- // ms = mp.getSuppliers(ctx, obj);
- // assertNotNull(ms);
- //
- // // check state before macros added (should be OK)
- // try {
- // mp.checkIntegrity(ctx, obj);
- // } catch (BuildMacroException e) {
- // fail("Macros integrity check is failed"); //$NON-NLS-1$
- // }
- //
- // // create macro which references to undefined macro
- // assertTrue(addMacro("B1", IBuildMacro.VALUE_TEXT, "B1-${B2}", ctx, obj)); //$NON-NLS-1$ //$NON-NLS-2$
- // rmMacro("B2", ctx, obj); // usually it does not exist, but to be sure... //$NON-NLS-1$
- //
- // // check state after macro added (should be exception)
- // try {
- // mp.checkIntegrity(ctx, obj);
- // fail("Macros misintegrity (ref to undefined) is not detected"); //$NON-NLS-1$
- // } catch (BuildMacroException e) {}
- //
- // // create "dead loop" of nested macros
- // assertTrue(addMacro("B2", IBuildMacro.VALUE_TEXT, "B2-${B3}", ctx, obj)); //$NON-NLS-1$ //$NON-NLS-2$
- // assertTrue(addMacro("B3", IBuildMacro.VALUE_TEXT, "B3-${B1}", ctx, obj)); //$NON-NLS-1$ //$NON-NLS-2$
- //
- // // check state after macros added (should be exception)
- // try {
- // mp.checkIntegrity(ctx, obj);
- // fail("Macros misintegrity (dead loop) is not detected"); //$NON-NLS-1$
- // } catch (BuildMacroException e) {}
- //
- // // remove "dead loop" of nested macros
- // assertTrue(rmMacro("B1", ctx, obj)); //$NON-NLS-1$
- // assertTrue(rmMacro("B2", ctx, obj)); //$NON-NLS-1$
- // assertTrue(rmMacro("B3", ctx, obj)); //$NON-NLS-1$
- //
- // // check state after macros removed (should be OK)
- // try {
- // mp.checkIntegrity(ctx, obj);
- // } catch (BuildMacroException e) {
- // fail("Macros integrity check is failed " + e.getLocalizedMessage()); //$NON-NLS-1$
- // }
- // }
- /**
- * testMacroResolveMake()
- */
- /*
- public void testMacroResolveMake(){
- final String p1 = "USERNAME: "; //$NON-NLS-1$
- final String p2 = "${USERNAME} "; //$NON-NLS-1$
- final String p3 = "PATH: "; //$NON-NLS-1$
- final String p4 = "${PATH} "; //$NON-NLS-1$
- final String p5 = "HostOsName: ${HostOsName} WorkspaceDirPath: ${WorkspaceDirPath}"; //$NON-NLS-1$
- final String ein1 = p1 + p2 + p3;
- final String ein2 = p4 + p5;
- final String ein = ein1 + ein2;
- final String aus1 = "@USERNAME "; //$NON-NLS-1$
- final String aus2 = "@PATH "; //$NON-NLS-1$
- doInit();
- // Config #0 contains "variableFormat" macro = "@=". Result: 2 first macros NOT resolved
- try {
- UserDefinedEnvironmentSupplier env = EnvironmentVariableProvider.fUserSupplier;
- env.createVariable("PATH","",IBuildEnvironmentVariable.ENVVAR_PREPEND,null,worksp);
- env.createVariable("USERNAME","",IBuildEnvironmentVariable.ENVVAR_PREPEND,null,worksp);
- functionCalled = 0;
- String a = mp.resolveValueToMakefileFormat(ein, UNKNOWN, LISTSEP, IBuildMacroProvider.CONTEXT_CONFIGURATION, cfgs[0]);
- String b = p1 + aus1 + p3 + mp.resolveValue(ein2, UNKNOWN, LISTSEP, IBuildMacroProvider.CONTEXT_CONFIGURATION, cfgs[0]);
- assertEquals(a, b); // Env var names should not be resolved but converted to Makefile format
- a = mp.resolveValueToMakefileFormat(ein, UNKNOWN, LISTSEP, IBuildMacroProvider.CONTEXT_PROJECT, mproj);
- assertEquals(a, b); // Project context should return the same as default configuration
- } catch (BuildMacroException e) {
- fail(e.getLocalizedMessage());
- }
- // Config #1 does not contain "variableFormat" macro. Result: all macros resolved.
- try {
- String a = mp.resolveValue(ein, UNKNOWN, LISTSEP, IBuildMacroProvider.CONTEXT_CONFIGURATION, cfgs[1]);
- String b = mp.resolveValueToMakefileFormat(ein, UNKNOWN, LISTSEP, IBuildMacroProvider.CONTEXT_CONFIGURATION, cfgs[1]);
- assertEquals(a, b);
- } catch (BuildMacroException e) {
- fail(e.getLocalizedMessage());
- }
- // check that "isReservedName" was not called before
- assertEquals(functionCalled & RESERVED_NAME, 0);
-
- // Config #2 contains "...Supplier" macro. Result: PATH unresolved, USERNAME resolved.
- try {
- String a = mp.resolveValue(p1 + p2, UNKNOWN, LISTSEP, IBuildMacroProvider.CONTEXT_CONFIGURATION, cfgs[2]);
- String b = mp.resolveValue(p5, UNKNOWN, LISTSEP, IBuildMacroProvider.CONTEXT_CONFIGURATION, cfgs[2]);
- a = a + p3 + aus2 + b; // USERNAME: xxx PATH: @PATH HostOsName: xxx ...
- b = mp.resolveValueToMakefileFormat(ein, UNKNOWN, LISTSEP, IBuildMacroProvider.CONTEXT_CONFIGURATION, cfgs[2]);
- assertEquals(a, b);
- // check that "isReservedName" has been called
- assertEquals(functionCalled & RESERVED_NAME, RESERVED_NAME);
- } catch (BuildMacroException e) {
- fail(e.getLocalizedMessage());
- }
- }
- */
-
- /**
- * testMacroResolveCase()
- */
- // public void testMacroResolveCase(){
- // doInit();
- // addVars();
- // final String winOut1 = "@CASETEST uppercase uppercase uppercase"; //$NON-NLS-1$
- // final String winOut2 = "@CASETEST @CASETEST @CASETEST @CASETEST"; //$NON-NLS-1$
- //
- // final String unixOut1 = "@CASETEST capitalize lowercase upper2low"; //$NON-NLS-1$
- // final String unixOut2 = "@CASETEST @CaseTest @casetest @CaSeTeSt"; //$NON-NLS-1$
- //
- // final String ein = "${CASETEST} ${CaseTest} ${casetest} ${CaSeTeSt}"; //$NON-NLS-1$
- // final int ctx = IBuildMacroProvider.CONTEXT_CONFIGURATION;
- // String a=null, b=null;
- // try {
- // // Config #0 contains isVariableCaseSensitive = false
- // a = mp.resolveValueToMakefileFormat(ein, UNKNOWN, LISTSEP, ctx, cfgs[0]);
- // // Config #3 contains isVariableCaseSensitive = true
- // b = mp.resolveValueToMakefileFormat(ein, UNKNOWN, LISTSEP, ctx, cfgs[3]);
- // } catch (BuildMacroException e) {
- // fail(e.getLocalizedMessage());
- // }
- // if (windows) {
- // assertEquals(a, winOut1);
- // assertEquals(b, winOut2);
- // } else { // linux
- // assertEquals(a, unixOut1);
- // assertEquals(b, unixOut2);
- // }
- // }
-
- /**
- * testMacroSave()
- */
-
- // public void testMacroSave(){
- // final String TO_SAVE_P = "TO_SAVE_P"; //$NON-NLS-1$
- // final String TO_SAVE_W = "TO_SAVE_W"; //$NON-NLS-1$
- // doInit();
- // ms = mp.getSuppliers(IBuildMacroProvider.CONTEXT_PROJECT, mproj);
- // assertNotNull(ms);
- // assertTrue(addMacro(TO_SAVE_P, IBuildMacro.VALUE_TEXT, TO_SAVE_P,
- // IBuildMacroProvider.CONTEXT_PROJECT, mproj));
- // ms = mp.getSuppliers(IBuildMacroProvider.CONTEXT_WORKSPACE, worksp);
- // assertNotNull(ms);
- // assertTrue(addMacro(TO_SAVE_W, IBuildMacro.VALUE_TEXT, TO_SAVE_W,
- // IBuildMacroProvider.CONTEXT_WORKSPACE, worksp));
- // try {
- // // Save the buildinfo, and then remove it, to be complete
- // ManagedBuildManager.saveBuildInfo(proj, true);
- // ManagedBuildManager.removeBuildInfo(proj);
- // proj.close(null);
- // proj.open(null);
- // } catch (CoreException e) {
- // fail("Failed on project close/open: " + e.getLocalizedMessage()); //$NON-NLS-1$
- // }
- // ms = mp.getSuppliers(IBuildMacroProvider.CONTEXT_PROJECT, mproj);
- // assertNotNull(ms);
- // String[] a = printMacros(mp.getMacros(IBuildMacroProvider.CONTEXT_PROJECT, mproj, flag), TO_SAVE_P);
- // String[] b1 = {TO_SAVE_P};
- // assertTrue(arrayContains(b1, a));
- //
- // ms = mp.getSuppliers(IBuildMacroProvider.CONTEXT_WORKSPACE, worksp);
- // assertNotNull(ms);
- // a = printMacros(mp.getMacros(IBuildMacroProvider.CONTEXT_WORKSPACE, worksp, flag), TO_SAVE_W);
- // String[] b2 = {TO_SAVE_W};
- // assertTrue(arrayContains(b2, a));
- // }
-
/*
* Below are service methods
*/
@@ -821,7 +328,6 @@ public class ManagedBuildMacrosTests extends TestCase {
assertNotNull(mp);
cfgs = mproj.getConfigurations();
assertNotNull(cfgs);
- windows = System.getProperty("os.name").toLowerCase().startsWith("windows"); //$NON-NLS-1$ //$NON-NLS-2$
}
/**
@@ -847,79 +353,7 @@ public class ManagedBuildMacrosTests extends TestCase {
}
return true;
}
- /**
- * addMacro
- * @param name
- * @param type
- * @param value
- * @param context
- * @param obj
- * @return
- */
- /*private boolean addMacro(String name, int type, String value, int context, Object obj) {
- assertNotNull(ms);
- for(int i=0; i<ms.length; i++) {
- if (ms[i] instanceof UserDefinedMacroSupplier) {
- return (((UserDefinedMacroSupplier)ms[i]).createMacro(name,type,value,context,obj) != null);
- }
- }
- return false;
- }*/
- /**
- * addMacro
- * @param name
- * @param type
- * @param value
- * @param context
- * @param obj
- * @return
- */
- /* private boolean addMacro(String name, int type, String[] value, int context, Object obj) {
- assertNotNull(ms);
- for(int i=0; i<ms.length; i++) {
- if (ms[i] instanceof UserDefinedMacroSupplier) {
- return (((UserDefinedMacroSupplier)ms[i]).createMacro(name,type,value,context,obj) != null);
- }
- }
- return false;
- }*/
- /**
- * rmMacro
- * @param name - name of macro
- * @param context
- * @param obj
- * @return
- */
- /* private boolean rmMacro(String name, int context, Object obj) {
- assertNotNull(ms);
- for(int i=0; i<ms.length; i++) {
- if (ms[i] instanceof UserDefinedMacroSupplier) {
- return (((UserDefinedMacroSupplier)ms[i]).deleteMacro(name,context,obj) != null);
- }
- }
- return false;
- }
- */
- /*
- * addVars() - adds macros for testMacroResolveCase
- */
- // private void addVars() {
- // int app = IBuildEnvironmentVariable.ENVVAR_APPEND;
- // String del = ""; //$NON-NLS-1$
- // UserDefinedEnvironmentSupplier usup = null;
- // usup = ManagedBuildEnvironmentTests.getSupplier(worksp, "Workspace"); //$NON-NLS-1$
- // if (usup != null) {
- // try {
- // usup.createVariable("casetest","lowercase", app, del, worksp ); //$NON-NLS-1$ //$NON-NLS-2$
- // usup.createVariable("CaseTest","capitalize", app, del, worksp ); //$NON-NLS-1$ //$NON-NLS-2$
- // usup.createVariable("CaSeTeSt","upper2low", app, del, worksp ); //$NON-NLS-1$ //$NON-NLS-2$
- // usup.createVariable("CASETEST","uppercase", app, del, worksp ); //$NON-NLS-1$ //$NON-NLS-2$
- // } catch (Exception e) {
- // fail("Failed to create workspace vars " + e.getLocalizedMessage()); //$NON-NLS-1$
- // }
- // }
- // }
/*
* getFile() - open or creates sample file in current project
*/
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedCommandLineGeneratorTest.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedCommandLineGeneratorTest.java
index 7d559a3222d..e46a393145c 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedCommandLineGeneratorTest.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedCommandLineGeneratorTest.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2011 Intel Corporation and others.
+ * Copyright (c) 2004, 2022 Intel Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -15,7 +15,9 @@
package org.eclipse.cdt.managedbuilder.core.tests;
import java.util.ArrayList;
+import java.util.Arrays;
+import org.eclipse.cdt.managedbuilder.core.BuildException;
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
import org.eclipse.cdt.managedbuilder.core.IManagedCommandLineGenerator;
@@ -24,7 +26,7 @@ import org.eclipse.cdt.managedbuilder.core.IOption;
import org.eclipse.cdt.managedbuilder.core.IProjectType;
import org.eclipse.cdt.managedbuilder.core.ITool;
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
-import org.eclipse.cdt.managedbuilder.internal.core.ManagedCommandLineGenerator;
+import org.eclipse.cdt.managedbuilder.core.ManagedCommandLineGenerator;
import org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator;
import org.eclipse.cdt.managedbuilder.testplugin.ManagedBuildTestHelper;
import org.eclipse.core.resources.IProject;
@@ -41,7 +43,9 @@ public class ManagedCommandLineGeneratorTest extends TestCase {
"${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}",
"${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT}",
"${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}",
+ "${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS} ${EXTRA_FLAGS}",
"${command} ${flags} ${output_flag}${output_prefix}${output} ${WRONG_VAR_NAME}" };
+ private static String TEST_TOOL_ID = "test.four.dot.zero.cdt.managedbuild.tool.gnu.c.linker";
private static String COMMAND_VAL = "[command]";
private static String FLAGS_VAL = "[flags]";
private static String[] FLAGS_ARRAY_VAL = FLAGS_VAL.split("\\s");
@@ -50,9 +54,12 @@ public class ManagedCommandLineGeneratorTest extends TestCase {
private static String OUTPUT_VAL = "[output]";
private static String INPUTS_VAL = "[inputs]";
private static String[] INPUTS_ARRAY_VAL = INPUTS_VAL.split("\\s");
+ private static String[] OBJECTS_ARRAY_VAL = new String[] { "obj0", "obj1" };
+ private static String[] LIBRARIES_ARRAY_VAL = new String[] { "lib0", "lib1" };
+ private static String EXTRA_FLAGS = "obj0 obj1 -llib0 -llib1";
private static String[] commandLineEtalonesForPatterns = {
COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + " " + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\""
- + " " + "\"" + INPUTS_VAL + "\"",
+ + " " + "\"" + INPUTS_VAL + "\" " + EXTRA_FLAGS,
COMMAND_VAL, COMMAND_VAL + " " + FLAGS_VAL, COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL,
COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + OUTPUT_PREFIX_VAL,
COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\"",
@@ -60,6 +67,8 @@ public class ManagedCommandLineGeneratorTest extends TestCase {
COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\"" + " "
+ "\"" + INPUTS_VAL + "\"",
COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\"" + " "
+ + "\"" + INPUTS_VAL + "\" " + EXTRA_FLAGS,
+ COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\"" + " "
+ "${WRONG_VAR_NAME}" };
public ManagedCommandLineGeneratorTest(String name) {
@@ -70,16 +79,14 @@ public class ManagedCommandLineGeneratorTest extends TestCase {
return new TestSuite(ManagedCommandLineGeneratorTest.class);
}
- public final void testGetCommandLineGenerator() {
- IManagedCommandLineGenerator gen = ManagedCommandLineGenerator.getCommandLineGenerator();
- assertNotNull(gen);
- }
-
- public final void testGenerateCommandLineInfoPatterns() {
- IManagedCommandLineGenerator gen = ManagedCommandLineGenerator.getCommandLineGenerator();
+ public final void testGenerateCommandLineInfoPatterns() throws BuildException {
+ ITool tool = ManagedBuildManager.getExtensionTool(TEST_TOOL_ID);
+ setToolOptionByType(tool, IOption.OBJECTS, OBJECTS_ARRAY_VAL);
+ setToolOptionByType(tool, IOption.LIBRARIES, LIBRARIES_ARRAY_VAL);
+ IManagedCommandLineGenerator gen = new ManagedCommandLineGenerator();
IManagedCommandLineInfo info = null;
for (int i = 0; i < testCommandLinePatterns.length; i++) {
- info = gen.generateCommandLineInfo(null, COMMAND_VAL, FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL, OUTPUT_PREFIX_VAL,
+ info = gen.generateCommandLineInfo(tool, COMMAND_VAL, FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL, OUTPUT_PREFIX_VAL,
OUTPUT_VAL, INPUTS_ARRAY_VAL, testCommandLinePatterns[i]);
assertNotNull(info);
if (i < commandLineEtalonesForPatterns.length) {
@@ -88,59 +95,63 @@ public class ManagedCommandLineGeneratorTest extends TestCase {
}
}
- public final void testGenerateCommandLineInfoDoublePattern() {
- IManagedCommandLineGenerator gen = ManagedCommandLineGenerator.getCommandLineGenerator();
+ public final void testGenerateCommandLineInfoDoublePattern() throws BuildException {
+ ITool tool = ManagedBuildManager.getExtensionTool(TEST_TOOL_ID);
+ IManagedCommandLineGenerator gen = new ManagedCommandLineGenerator();
- IManagedCommandLineInfo info = gen.generateCommandLineInfo(null, COMMAND_VAL, FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL,
+ IManagedCommandLineInfo info = gen.generateCommandLineInfo(tool, COMMAND_VAL, FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL,
OUTPUT_PREFIX_VAL, OUTPUT_VAL, INPUTS_ARRAY_VAL, "${OUTPUT_FLAG} ${OUTPUT_FLAG}");
assertNotNull(info);
assertEquals(OUTPUT_FLAG_VAL + " " + OUTPUT_FLAG_VAL, info.getCommandLine());
}
- public final void testGenerateCommandLineInfoParameters() {
- IManagedCommandLineGenerator gen = ManagedCommandLineGenerator.getCommandLineGenerator();
+ public final void testGenerateCommandLineInfoParameters() throws BuildException {
+ ITool tool = ManagedBuildManager.getExtensionTool(TEST_TOOL_ID);
+ setToolOptionByType(tool, IOption.OBJECTS, OBJECTS_ARRAY_VAL);
+ setToolOptionByType(tool, IOption.LIBRARIES, LIBRARIES_ARRAY_VAL);
+ IManagedCommandLineGenerator gen = new ManagedCommandLineGenerator();
- IManagedCommandLineInfo info = gen.generateCommandLineInfo(null, "", FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL,
+ IManagedCommandLineInfo info = gen.generateCommandLineInfo(tool, "", FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL,
OUTPUT_PREFIX_VAL, OUTPUT_VAL, INPUTS_ARRAY_VAL, null);
assertNotNull(info);
assertEquals(FLAGS_VAL + " " + OUTPUT_FLAG_VAL + " " + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\"" + " " + "\""
- + INPUTS_VAL + "\"", info.getCommandLine());
+ + INPUTS_VAL + "\" " + EXTRA_FLAGS, info.getCommandLine());
- info = gen.generateCommandLineInfo(null, COMMAND_VAL, new String[0], OUTPUT_FLAG_VAL, OUTPUT_PREFIX_VAL,
+ info = gen.generateCommandLineInfo(tool, COMMAND_VAL, new String[0], OUTPUT_FLAG_VAL, OUTPUT_PREFIX_VAL,
OUTPUT_VAL, INPUTS_ARRAY_VAL, null);
assertNotNull(info);
assertEquals(COMMAND_VAL + " " + OUTPUT_FLAG_VAL + " " + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\"" + " "
- + "\"" + INPUTS_VAL + "\"", info.getCommandLine());
+ + "\"" + INPUTS_VAL + "\" " + EXTRA_FLAGS, info.getCommandLine());
- info = gen.generateCommandLineInfo(null, COMMAND_VAL, FLAGS_ARRAY_VAL, "", OUTPUT_PREFIX_VAL, OUTPUT_VAL,
+ info = gen.generateCommandLineInfo(tool, COMMAND_VAL, FLAGS_ARRAY_VAL, "", OUTPUT_PREFIX_VAL, OUTPUT_VAL,
INPUTS_ARRAY_VAL, null);
assertNotNull(info);
assertEquals(COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL + "\"" + " " + "\""
- + INPUTS_VAL + "\"", info.getCommandLine());
+ + INPUTS_VAL + "\" " + EXTRA_FLAGS, info.getCommandLine());
- info = gen.generateCommandLineInfo(null, COMMAND_VAL, FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL, "", OUTPUT_VAL,
+ info = gen.generateCommandLineInfo(tool, COMMAND_VAL, FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL, "", OUTPUT_VAL,
INPUTS_ARRAY_VAL, null);
assertNotNull(info);
assertEquals(COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + " " + "\"" + OUTPUT_VAL + "\"" + " " + "\""
- + INPUTS_VAL + "\"", info.getCommandLine());
+ + INPUTS_VAL + "\" " + EXTRA_FLAGS, info.getCommandLine());
- info = gen.generateCommandLineInfo(null, COMMAND_VAL, FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL, OUTPUT_PREFIX_VAL, "",
+ info = gen.generateCommandLineInfo(tool, COMMAND_VAL, FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL, OUTPUT_PREFIX_VAL, "",
INPUTS_ARRAY_VAL, null);
assertNotNull(info);
assertEquals(COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + " " + OUTPUT_PREFIX_VAL + " " + "\""
- + INPUTS_VAL + "\"", info.getCommandLine());
+ + INPUTS_VAL + "\" " + EXTRA_FLAGS, info.getCommandLine());
- info = gen.generateCommandLineInfo(null, COMMAND_VAL, FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL, OUTPUT_PREFIX_VAL,
+ info = gen.generateCommandLineInfo(tool, COMMAND_VAL, FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL, OUTPUT_PREFIX_VAL,
OUTPUT_VAL, new String[0], null);
assertNotNull(info);
assertEquals(COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + " " + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL
- + "\"", info.getCommandLine());
+ + "\" " + EXTRA_FLAGS, info.getCommandLine());
- info = gen.generateCommandLineInfo(null, COMMAND_VAL, FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL, OUTPUT_PREFIX_VAL,
+ info = gen.generateCommandLineInfo(tool, COMMAND_VAL, FLAGS_ARRAY_VAL, OUTPUT_FLAG_VAL, OUTPUT_PREFIX_VAL,
OUTPUT_VAL, null, null);
assertNotNull(info);
assertEquals(COMMAND_VAL + " " + FLAGS_VAL + " " + OUTPUT_FLAG_VAL + " " + OUTPUT_PREFIX_VAL + "\"" + OUTPUT_VAL
- + "\"", info.getCommandLine());
+ + "\" " + EXTRA_FLAGS, info.getCommandLine());
}
public final void testCustomGenerator() {
@@ -194,8 +205,8 @@ public class ManagedCommandLineGeneratorTest extends TestCase {
"cdt.test.customOptionCommand.ProjectType");
IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(project);
IConfiguration config = info.getDefaultConfiguration();
- ITool[] tools = config.getToolsBySuperClassId("cdt.test.customOptionCommand.Tool");
- assertEquals(tools.length, 1);
+ ITool[] tools = config.getToolsBySuperClassId("cdt.test.customOptionCommand.Tool1");
+ assertEquals(1, tools.length);
ITool tool = tools[0];
@@ -229,6 +240,128 @@ public class ManagedCommandLineGeneratorTest extends TestCase {
}
}
+ public final void testCustomOptionCommandGenerator2() {
+ try {
+ IProject project = ManagedBuildTestHelper.createProject("COCG2", null, (IPath) null,
+ "cdt.test.customOptionCommand.ProjectType");
+ IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(project);
+ IConfiguration config = info.getDefaultConfiguration();
+
+ ITool[] tools = config.getToolsBySuperClassId("cdt.test.customOptionCommand.Tool2");
+ assertEquals(1, tools.length);
+
+ ITool tool = tools[0];
+
+ IOption optionString = tool.getOptionBySuperClassId("cdt.test.customOptionCommand.optionString");
+ IOption optionStringList = tool.getOptionBySuperClassId("cdt.test.customOptionCommand.optionStringList");
+ IOption optionBoolean = tool.getOptionBySuperClassId("cdt.test.customOptionCommand.optionBoolean");
+ IOption optionEnumerated = tool.getOptionBySuperClassId("cdt.test.customOptionCommand.optionEnumerated");
+ IOption optionIncludePath = tool.getOptionBySuperClassId("cdt.test.customOptionCommand.optionIncludePath");
+ IOption optionDefinedSymbols = tool
+ .getOptionBySuperClassId("cdt.test.customOptionCommand.optionDefinedSymbols");
+ IOption optionLibs = tool.getOptionBySuperClassId("cdt.test.customOptionCommand.optionLibs");
+ IOption optionUserObjs = tool.getOptionBySuperClassId("cdt.test.customOptionCommand.optionUserObjs");
+ IOption optionSymbolFiles = tool.getOptionBySuperClassId("cdt.test.customOptionCommand.optionSymbolFiles");
+ IOption optionIncludeFiles = tool
+ .getOptionBySuperClassId("cdt.test.customOptionCommand.optionIncludeFiles");
+ IOption optionLibPaths = tool.getOptionBySuperClassId("cdt.test.customOptionCommand.optionLibPaths");
+ IOption optionLibFiles = tool.getOptionBySuperClassId("cdt.test.customOptionCommand.optionLibFiles");
+ IOption optionUndefIncludePath = tool
+ .getOptionBySuperClassId("cdt.test.customOptionCommand.optionUndefIncludePath");
+ IOption optionUndefDefinedSymbols = tool
+ .getOptionBySuperClassId("cdt.test.customOptionCommand.optionUndefDefinedSymbols");
+ IOption optionUndefLibPaths = tool
+ .getOptionBySuperClassId("cdt.test.customOptionCommand.optionUndefLibPaths");
+ IOption optionUndefLibFiles = tool
+ .getOptionBySuperClassId("cdt.test.customOptionCommand.optionUndefLibFiles");
+ IOption optionUndefIncludeFiles = tool
+ .getOptionBySuperClassId("cdt.test.customOptionCommand.optionUndefIncludeFiles");
+ IOption optionUndefSymbolFiles = tool
+ .getOptionBySuperClassId("cdt.test.customOptionCommand.optionUndefSymbolFiles");
+ IOption optionTree = tool.getOptionBySuperClassId("cdt.test.customOptionCommand.optionTree");
+
+ assertTrue(optionString.getCommandGenerator() instanceof CustomOptionCommandGenerator);
+ assertTrue(optionStringList.getCommandGenerator() instanceof CustomOptionCommandGenerator);
+ assertTrue(optionBoolean.getCommandGenerator() instanceof CustomOptionCommandGenerator);
+ assertTrue(optionEnumerated.getCommandGenerator() instanceof CustomOptionCommandGenerator);
+ assertTrue(optionIncludePath.getCommandGenerator() instanceof CustomOptionCommandGenerator);
+ assertTrue(optionDefinedSymbols.getCommandGenerator() instanceof CustomOptionCommandGenerator);
+ assertTrue(optionLibs.getCommandGenerator() instanceof CustomOptionCommandGenerator);
+ assertTrue(optionUserObjs.getCommandGenerator() instanceof CustomOptionCommandGenerator);
+ assertTrue(optionSymbolFiles.getCommandGenerator() instanceof CustomOptionCommandGenerator);
+ assertTrue(optionIncludeFiles.getCommandGenerator() instanceof CustomOptionCommandGenerator);
+ assertTrue(optionLibPaths.getCommandGenerator() instanceof CustomOptionCommandGenerator);
+ assertTrue(optionLibFiles.getCommandGenerator() instanceof CustomOptionCommandGenerator);
+ assertTrue(optionUndefIncludePath.getCommandGenerator() instanceof CustomOptionCommandGenerator);
+ assertTrue(optionUndefDefinedSymbols.getCommandGenerator() instanceof CustomOptionCommandGenerator);
+ assertTrue(optionUndefLibPaths.getCommandGenerator() instanceof CustomOptionCommandGenerator);
+ assertTrue(optionUndefLibFiles.getCommandGenerator() instanceof CustomOptionCommandGenerator);
+ assertTrue(optionUndefIncludeFiles.getCommandGenerator() instanceof CustomOptionCommandGenerator);
+ assertTrue(optionUndefSymbolFiles.getCommandGenerator() instanceof CustomOptionCommandGenerator);
+ assertTrue(optionTree.getCommandGenerator() instanceof CustomOptionCommandGenerator);
+
+ optionString = config.setOption(tool, optionString, "${ProjName}");
+ optionStringList = config.setOption(tool, optionStringList, new String[] { "val1", "${ProjName}" });
+ optionBoolean = config.setOption(tool, optionBoolean, true);
+ optionEnumerated = config.setOption(tool, optionEnumerated,
+ "org.eclipse.cdt.managedbuilder.core.tests.enumeratedOptionValue2");
+ optionIncludePath = config.setOption(tool, optionIncludePath, new String[] { "val2", "${ProjName}" });
+ optionDefinedSymbols = config.setOption(tool, optionDefinedSymbols, new String[] { "val3", "${ProjName}" });
+ optionLibs = config.setOption(tool, optionLibs, new String[] { "val4", "${ProjName}" });
+ optionUserObjs = config.setOption(tool, optionUserObjs, new String[] { "val5", "${ProjName}" });
+ optionSymbolFiles = config.setOption(tool, optionSymbolFiles, new String[] { "val6", "${ProjName}" });
+ optionIncludeFiles = config.setOption(tool, optionIncludeFiles, new String[] { "val7", "${ProjName}" });
+ optionLibPaths = config.setOption(tool, optionLibPaths, new String[] { "val8", "${ProjName}" });
+ optionLibFiles = config.setOption(tool, optionLibFiles, new String[] { "val9", "${ProjName}" });
+ optionUndefIncludePath = config.setOption(tool, optionUndefIncludePath,
+ new String[] { "val10", "${ProjName}" });
+ optionUndefDefinedSymbols = config.setOption(tool, optionUndefDefinedSymbols,
+ new String[] { "val11", "${ProjName}" });
+ optionUndefLibPaths = config.setOption(tool, optionUndefLibPaths, new String[] { "val12", "${ProjName}" });
+ optionUndefLibFiles = config.setOption(tool, optionUndefLibFiles, new String[] { "val13", "${ProjName}" });
+ optionUndefIncludeFiles = config.setOption(tool, optionUndefIncludeFiles,
+ new String[] { "val14", "${ProjName}" });
+ optionUndefSymbolFiles = config.setOption(tool, optionUndefSymbolFiles,
+ new String[] { "val15", "${ProjName}" });
+ optionTree = config.setOption(tool, optionTree, "org.eclipse.cdt.managedbuilder.core.tests.treeOption2");
+
+ String command = tool.getToolCommandFlagsString(null, null);
+ assertEquals(String.join(" ", "-optString=COCG2", //
+ "-optStringList=\"val1;COCG2;\"", //
+ "-optBoolean=true", //
+ "-optEnumerated=value2", //
+ "-optIncludePath=\"val2;COCG2;\"", //
+ "-optDefinedSymbols=\"val3;COCG2;\"", //
+ "-optSymbolFiles=\"val6;COCG2;\"", //
+ "-optIncludeFiles=\"val7;COCG2;\"", //
+ "-optLibPaths=\"val8;COCG2;\"", //
+ "-optLibFiles=\"val9;COCG2;\"", //
+ "-optUndefIncludePath=\"val10;COCG2;\"", //
+ "-optUndefDefinedSymbols=\"val11;COCG2;\"", //
+ "-optUndefLibPaths=\"val12;COCG2;\"", //
+ "-optUndefLibFiles=\"val13;COCG2;\"", //
+ "-optUndefIncludeFiles=\"val14;COCG2;\"", //
+ "-optUndefSymbolFiles=\"val15;COCG2;\"", //
+ "-optTree=value2"), //
+ command);
+
+ String[] libs = config.getLibs(config.getArtifactExtension());
+ assertEquals(Arrays.asList("-optLibs=\"val4;COCG2;\"").toString(), Arrays.asList(libs).toString());
+ assertEquals(Arrays.asList(libs).toString(),
+ Arrays.asList(tool.getExtraFlags(IOption.LIBRARIES)).toString());
+
+ String[] userObjs = config.getUserObjects(config.getArtifactExtension());
+ assertEquals(Arrays.asList("-optUserObjs=\"val5;COCG2;\"").toString(), Arrays.asList(userObjs).toString());
+ assertEquals(Arrays.asList(userObjs).toString(),
+ Arrays.asList(tool.getExtraFlags(IOption.OBJECTS)).toString());
+
+ ManagedBuildTestHelper.removeProject("COCG2");
+ } catch (Exception e) {
+ e.printStackTrace();
+ fail("Test failed on project creation: " + e.getLocalizedMessage());
+ }
+ }
+
public final void testDollarValue() {
try {
IProject project = ManagedBuildTestHelper.createProject("CDV", null, (IPath) null,
@@ -287,4 +420,12 @@ public class ManagedCommandLineGeneratorTest extends TestCase {
}
}
+ private void setToolOptionByType(ITool tool, int valueType, String[] value) throws BuildException {
+ for (IOption option : tool.getOptions()) {
+ if (valueType == option.getValueType()) {
+ option.setValue(value);
+ }
+ }
+ }
+
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedProject21MakefileTests.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedProject21MakefileTests.java
index c0a0c689686..178634e3f03 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedProject21MakefileTests.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedProject21MakefileTests.java
@@ -156,42 +156,42 @@ public class ManagedProject21MakefileTests extends TestCase {
return false;
boolean succeeded = true;
- for (int i = 0; i < projects.length; i++) {
- IProject curProject = projects[i];
-
- IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(curProject);
-
- //check whether the managed build info is converted
- boolean isCompatible = UpdateManagedProjectManager.isCompatibleProject(info);
- assertTrue(isCompatible);
-
- if (isCompatible) {
- // Build the project in order to generate the maekfiles
- try {
- curProject.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, null);
- } catch (CoreException e) {
- fail(e.getStatus().getMessage());
- } catch (OperationCanceledException e) {
- fail("the project \"" + curProject.getName() + "\" build was cancelled, exception message: "
- + e.getMessage());
- }
+ try {
+ for (int i = 0; i < projects.length; i++) {
+ IProject curProject = projects[i];
+
+ IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(curProject);
+
+ //check whether the managed build info is converted
+ boolean isCompatible = UpdateManagedProjectManager.isCompatibleProject(info);
+ assertTrue(isCompatible);
+
+ if (isCompatible) {
+ // Build the project in order to generate the maekfiles
+ try {
+ curProject.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, null);
+ } catch (CoreException e) {
+ fail(e.getStatus().getMessage());
+ } catch (OperationCanceledException e) {
+ fail("the project \"" + curProject.getName() + "\" build was cancelled, exception message: "
+ + e.getMessage());
+ }
- //compare the generated makefiles to their benchmarks
- if (files != null && files.length > 0) {
- if (i == 0) {
- String configName = info.getDefaultConfiguration().getName();
- IPath buildDir = Path.fromOSString(configName);
- // succeeded = ManagedBuildTestHelper.compareBenchmarks(curProject, buildDir, files);
- IPath benchmarkLocationBase = resourcesLocation.append(benchmarkDir);
- IPath buildLocation = curProject.getLocation().append(buildDir);
- succeeded = ManagedBuildTestHelper.compareBenchmarks(curProject, buildLocation, files,
- benchmarkLocationBase);
+ //compare the generated makefiles to their benchmarks
+ if (files != null && files.length > 0) {
+ if (i == 0) {
+ String configName = info.getDefaultConfiguration().getName();
+ IPath buildDir = Path.fromOSString(configName);
+ // succeeded = ManagedBuildTestHelper.compareBenchmarks(curProject, buildDir, files);
+ IPath benchmarkLocationBase = resourcesLocation.append(benchmarkDir);
+ IPath buildLocation = curProject.getLocation().append(buildDir);
+ succeeded = ManagedBuildTestHelper.compareBenchmarks(curProject, buildLocation, files,
+ benchmarkLocationBase);
+ }
}
}
}
- }
-
- if (succeeded) { // Otherwise leave the projects around for comparison
+ } finally {
for (int i = 0; i < projects.length; i++)
ManagedBuildTestHelper.removeProject(projects[i].getName());
}
@@ -248,8 +248,8 @@ public class ManagedProject21MakefileTests extends TestCase {
* tests 2.1 style tool integration for a single file executable
*/
public void testSingleFileExe() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk") };
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
+ Path.fromOSString("subdir.mk") };
IProject[] projects = createProjects("singleFileExe", null, null, true);
buildProjects("singleFileExe", projects, makefiles);
}
@@ -258,8 +258,8 @@ public class ManagedProject21MakefileTests extends TestCase {
* tests 2.1 style tool integration for a two file SO
*/
public void testTwoFileSO() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk") };
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
+ Path.fromOSString("subdir.mk") };
IProject[] projects = createProjects("twoFileSO", null, null, true);
buildProjects("twoFileSO", projects, makefiles);
}
@@ -268,8 +268,8 @@ public class ManagedProject21MakefileTests extends TestCase {
* tests 2.1 style tool integration for multiple source files & a resource configuration
*/
public void testMultiResConfig() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk"), Path.fromOSString("source1/subdir.mk"),
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
+ Path.fromOSString("subdir.mk"), Path.fromOSString("source1/subdir.mk"),
Path.fromOSString("source2/subdir.mk"), Path.fromOSString("source2/source21/subdir.mk") };
IProject[] projects = createProjects("multiResConfig", null, null, true);
buildProjects("multiResConfig", projects, makefiles);
@@ -280,7 +280,7 @@ public class ManagedProject21MakefileTests extends TestCase {
*/
public void testLinkedLib() throws IOException {
boolean succeeded = false;
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
+ IPath[] makefiles = { Path.fromOSString("makefile"),
//Path.fromOSString("subdir.mk") // Can't compare this yet since it contains absolute paths!
Path.fromOSString("sources.mk") };
IPath[] linkedFiles = { Path.fromOSString("f1.c"), Path.fromOSString("f2.c"), Path.fromOSString("test_ar.h") };
@@ -309,11 +309,11 @@ public class ManagedProject21MakefileTests extends TestCase {
*/
public void testLinkedFolder() throws IOException {
boolean succeeded = false;
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("subdir.mk"), Path.fromOSString("sources.mk") };
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("subdir.mk"),
+ Path.fromOSString("sources.mk") };
IPath[] linkedFiles = { Path.fromOSString("f1.c"), Path.fromOSString("f2.c"), Path.fromOSString("test_ar.h"),
- Path.fromOSString("Benchmarks/makefile"), Path.fromOSString("Benchmarks/objects.mk"),
- Path.fromOSString("Benchmarks/subdir.mk"), Path.fromOSString("Benchmarks/sources.mk") };
+ Path.fromOSString("Benchmarks/makefile"), Path.fromOSString("Benchmarks/subdir.mk"),
+ Path.fromOSString("Benchmarks/sources.mk") };
File srcDirFile = CTestPlugin.getFileInPlugin(new Path("resources/test21Projects/linkedFolder/"));
IPath srcDir = Path.fromOSString(srcDirFile.toString());
IPath tmpSubDir = Path.fromOSString("CDTMBSTest");
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedProject30MakefileTests.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedProject30MakefileTests.java
index 9e95ee095f7..16175e57617 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedProject30MakefileTests.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedProject30MakefileTests.java
@@ -287,8 +287,8 @@ public class ManagedProject30MakefileTests extends TestCase {
* tests 3.0 style tool integration for a single file executable
*/
public void test30SingleFileExe() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk") };
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
+ Path.fromOSString("subdir.mk") };
IProject[] projects = createProjects("singleFileExe", null, null, true);
buildProjects(projects, makefiles);
}
@@ -297,8 +297,8 @@ public class ManagedProject30MakefileTests extends TestCase {
* tests 3.0 style tool integration for a two file SO
*/
public void test30TwoFileSO() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk") };
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
+ Path.fromOSString("subdir.mk") };
IProject[] projects = createProjects("twoFileSO", null, null, true);
buildProjects(projects, makefiles);
}
@@ -307,11 +307,11 @@ public class ManagedProject30MakefileTests extends TestCase {
* tests 3.0 style tool integration for multiple source files & a resource configuration
*/
public void test30MultiResConfig() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk"), Path.fromOSString("main.d"),
- Path.fromOSString("source1/subdir.mk"), Path.fromOSString("source1/Class1.d"),
- Path.fromOSString("source2/subdir.mk"), Path.fromOSString("source2/Class2.d"),
- Path.fromOSString("source2/source21/Class21.d"), Path.fromOSString("source2/source21/subdir.mk") };
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
+ Path.fromOSString("subdir.mk"), Path.fromOSString("main.d"), Path.fromOSString("source1/subdir.mk"),
+ Path.fromOSString("source1/Class1.d"), Path.fromOSString("source2/subdir.mk"),
+ Path.fromOSString("source2/Class2.d"), Path.fromOSString("source2/source21/Class21.d"),
+ Path.fromOSString("source2/source21/subdir.mk") };
IProject[] projects = createProjects("multiResConfig", null, null, true);
buildProjects(projects, makefiles);
}
@@ -320,7 +320,7 @@ public class ManagedProject30MakefileTests extends TestCase {
* tests 3.0 style tool integration for linked files
*/
public void test30LinkedLib() throws IOException {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
+ IPath[] makefiles = { Path.fromOSString("makefile"),
//Path.fromOSString("subdir.mk") // Can't compare this yet since it contains absolute paths!
Path.fromOSString("sources.mk") };
IPath[] linkedFiles = { Path.fromOSString("f1_30.c"), Path.fromOSString("f2_30.c"),
@@ -348,11 +348,11 @@ public class ManagedProject30MakefileTests extends TestCase {
* tests 3.0 style tool integration for a linked folder
*/
public void test30LinkedFolder() throws IOException {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("subdir.mk"), Path.fromOSString("sources.mk") };
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("subdir.mk"),
+ Path.fromOSString("sources.mk") };
IPath[] linkedFiles = { Path.fromOSString("f1.c"), Path.fromOSString("f2.c"), Path.fromOSString("test_ar.h"),
- Path.fromOSString("Benchmarks/makefile"), Path.fromOSString("Benchmarks/objects.mk"),
- Path.fromOSString("Benchmarks/subdir.mk"), Path.fromOSString("Benchmarks/sources.mk") };
+ Path.fromOSString("Benchmarks/makefile"), Path.fromOSString("Benchmarks/subdir.mk"),
+ Path.fromOSString("Benchmarks/sources.mk") };
File srcDirFile = CTestPlugin.getFileInPlugin(new Path("resources/test30Projects/linkedFolder/"));
IPath srcDir = Path.fromOSString(srcDirFile.toString());
IPath tmpRootDir = Path
@@ -377,9 +377,9 @@ public class ManagedProject30MakefileTests extends TestCase {
* tests 3.0 style tool integration with pre and post process steps added to typical compile & link
*/
public void test30CopyandDeploy() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk"), Path.fromOSString("main.d"),
- Path.fromOSString("Functions/subdir.mk"), Path.fromOSString("Functions/Func1.d") };
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
+ Path.fromOSString("subdir.mk"), Path.fromOSString("main.d"), Path.fromOSString("Functions/subdir.mk"),
+ Path.fromOSString("Functions/Func1.d") };
IProject[] projects = createProjects("copyandDeploy", null, null, true);
buildProjects(projects, makefiles);
}
@@ -389,8 +389,8 @@ public class ManagedProject30MakefileTests extends TestCase {
* occurs in the managedbuild system
*/
public void test30DeleteFile() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("subdir.mk"), Path.fromOSString("sources.mk") };
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("subdir.mk"),
+ Path.fromOSString("sources.mk") };
IProject[] projects = createProjects("deleteFile", null, null, true);
final IWorkspace workspace = ResourcesPlugin.getWorkspace();
@@ -419,8 +419,8 @@ public class ManagedProject30MakefileTests extends TestCase {
* "excluded from build" to see that this degenerative case is handled gracefully
*/
public void test30NoFilesToBuild() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("subdir.mk"), Path.fromOSString("sources.mk") };
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("subdir.mk"),
+ Path.fromOSString("sources.mk") };
IProject[] projects = createProjects("noFilesToBuild", null, null, true);
IProject project = projects[0];
@@ -437,8 +437,8 @@ public class ManagedProject30MakefileTests extends TestCase {
* tests 3.0 managed build system with a project which has a file with no file extesnion
*/
public void testFileWithNoExtension() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk") };
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
+ Path.fromOSString("subdir.mk") };
IProject[] projects = createProjects("testFileWithNoExtension", null, null, true);
buildProjects(projects, makefiles);
}
@@ -448,8 +448,8 @@ public class ManagedProject30MakefileTests extends TestCase {
* the proper commands are generated in the makefile which is created by the managedbuild system
*/
public void testPreAndPostProcessBuildSteps() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("subdir.mk"), Path.fromOSString("sources.mk") };
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("subdir.mk"),
+ Path.fromOSString("sources.mk") };
IProject[] projects = createProjects("preAndPostBuildSteps", null, null, true);
IProject project = projects[0];
@@ -467,8 +467,8 @@ public class ManagedProject30MakefileTests extends TestCase {
* the proper commands are generated in the makefile which is created by the managedbuild system
*/
public void testResourceCustomBuildStep() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("subdir.mk"), Path.fromOSString("sources.mk") };
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("subdir.mk"),
+ Path.fromOSString("sources.mk") };
ITool rcbsTool;
IInputType rcbsToolInputType;
IAdditionalInput rcbsToolInputTypeAdditionalInput;
@@ -497,8 +497,8 @@ public class ManagedProject30MakefileTests extends TestCase {
* tests 3.0 style tool integration with pre and post process steps added to typical compile & link
*/
public void test30_1() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk") };
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
+ Path.fromOSString("subdir.mk") };
IProject[] projects = createProjects("test30_1", null, null, true);
buildProjects(projects, makefiles);
}
@@ -507,8 +507,8 @@ public class ManagedProject30MakefileTests extends TestCase {
* tests 3.0 style tool integration with multiple input types use Eclipse content types
*/
public void test30_2() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk") };
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
+ Path.fromOSString("subdir.mk") };
IProject[] projects = createProjects("test30_2", null, null, true);
buildProjects(projects, makefiles);
}
@@ -543,8 +543,8 @@ public class ManagedProject30MakefileTests extends TestCase {
* tests external dependency calculation using Fortran modules
*/
public void CDTFortranTest1() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk") };
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
+ Path.fromOSString("subdir.mk") };
IProject[] projects = createProjects("CDTFortranTest1", null, null, true);
buildProjects(projects, makefiles);
}
@@ -553,9 +553,8 @@ public class ManagedProject30MakefileTests extends TestCase {
* tests external dependency calculation using Fortran modules
*/
public void CDTFortranTest2() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("sources.mk"), Path.fromOSString("module/subdir.mk"),
- Path.fromOSString("Sources/subdir.mk") };
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
+ Path.fromOSString("module/subdir.mk"), Path.fromOSString("Sources/subdir.mk") };
IProject[] projects = createProjects("CDTFortranTest2", null, null, true);
buildProjects(projects, makefiles);
}
@@ -564,15 +563,15 @@ public class ManagedProject30MakefileTests extends TestCase {
* tests the InputType assignToOption attribute
*/
public void TestATO() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk") };
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
+ Path.fromOSString("subdir.mk") };
IProject[] projects = createProjects("TestATO", null, null, true);
buildProjects(projects, makefiles);
}
public void testMacroSupportInBuildDefinitions() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk") };
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
+ Path.fromOSString("subdir.mk") };
IProject[] projects = createProjects("testMacroSupportInBuildDefinitions", null, null, true);
buildProjects(projects, makefiles);
}
@@ -582,9 +581,9 @@ public class ManagedProject30MakefileTests extends TestCase {
* tests managed build system with a project which has resources with spaces in their paths
*/
public void testSpaces() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk"),
- Path.fromOSString("main with spaces.d"), Path.fromOSString("sub folder with spaces/subdir.mk"),
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
+ Path.fromOSString("subdir.mk"), Path.fromOSString("main with spaces.d"),
+ Path.fromOSString("sub folder with spaces/subdir.mk"),
Path.fromOSString("sub folder with spaces/foo with spaces.d") };
IProject[] projects = createProjects("test with spaces", null, null, true);
buildProjects(projects, makefiles);
@@ -595,8 +594,8 @@ public class ManagedProject30MakefileTests extends TestCase {
* tests managed build system with a project which has resources with spaces in their paths
*/
public void testInputTypeOption() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk"), };
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
+ Path.fromOSString("subdir.mk"), };
IProject[] projects = createProjects("inputTypeOption", null, null, true);
buildProjects(projects, makefiles);
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedProjectUpdateTests.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedProjectUpdateTests.java
index 72b71808cfc..ef5e66cacf8 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedProjectUpdateTests.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedProjectUpdateTests.java
@@ -209,8 +209,8 @@ public class ManagedProjectUpdateTests extends TestCase {
* in case when user chooses to update the project
*/
public void testProjectUpdate12_Update() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk") };
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
+ Path.fromOSString("subdir.mk") };
doTestProjectUpdate("1.2", true, true, makefiles);
}
@@ -219,8 +219,8 @@ public class ManagedProjectUpdateTests extends TestCase {
* in case when user chooses to update the project
*/
public void testProjectUpdate20_Update() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk") };
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
+ Path.fromOSString("subdir.mk") };
doTestProjectUpdate("2.0", true, true, makefiles);
}
@@ -229,9 +229,8 @@ public class ManagedProjectUpdateTests extends TestCase {
* in case when user chooses to update the project
*/
public void testProjectUpdate21_Update() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk"),
- Path.fromOSString("Functions/subdir.mk") };
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
+ Path.fromOSString("subdir.mk"), Path.fromOSString("Functions/subdir.mk") };
doTestProjectUpdate("2.1", true, true, makefiles);
}
@@ -239,9 +238,8 @@ public class ManagedProjectUpdateTests extends TestCase {
* tests project v2.1 update of a C++ project with C source files
*/
public void testProjectUpdate21CPP_Update() {
- IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("objects.mk"),
- Path.fromOSString("sources.mk"), Path.fromOSString("subdir.mk"),
- Path.fromOSString("Functions/subdir.mk") };
+ IPath[] makefiles = { Path.fromOSString("makefile"), Path.fromOSString("sources.mk"),
+ Path.fromOSString("subdir.mk"), Path.fromOSString("Functions/subdir.mk") };
doTestProjectUpdate("2.1CPP", true, true, makefiles);
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/MultiVersionSupportTests.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/MultiVersionSupportTests.java
index b8b42c3c01f..992f945880a 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/MultiVersionSupportTests.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/MultiVersionSupportTests.java
@@ -409,11 +409,12 @@ public class MultiVersionSupportTests extends TestCase {
String expectedContent = "Converter for CDT 2.0 Project is invoked"; //$NON-NLS-1$
- BufferedReader data = new BufferedReader(new FileReader(inputFile));
- String actualContent;
+ try (BufferedReader data = new BufferedReader(new FileReader(inputFile))) {
+ String actualContent;
- if ((actualContent = data.readLine()) != null) {
- assertEquals(actualContent, expectedContent);
+ if ((actualContent = data.readLine()) != null) {
+ assertEquals(actualContent, expectedContent);
+ }
}
} catch (IOException e) {
@@ -434,11 +435,12 @@ public class MultiVersionSupportTests extends TestCase {
String expectedContent = "Converter for CDT 2.1 Project is invoked"; //$NON-NLS-1$
- BufferedReader data = new BufferedReader(new FileReader(inputFile));
- String actualContent;
+ try (BufferedReader data = new BufferedReader(new FileReader(inputFile))) {
+ String actualContent;
- if ((actualContent = data.readLine()) != null) {
- assertEquals(actualContent, expectedContent);
+ if ((actualContent = data.readLine()) != null) {
+ assertEquals(actualContent, expectedContent);
+ }
}
} catch (IOException e) {
@@ -459,11 +461,12 @@ public class MultiVersionSupportTests extends TestCase {
String expectedContent = "The converter for the projectType testProject_1.0.0 is invoked"; //$NON-NLS-1$
- BufferedReader data = new BufferedReader(new FileReader(inputFile));
- String actualContent;
+ try (BufferedReader data = new BufferedReader(new FileReader(inputFile))) {
+ String actualContent;
- if ((actualContent = data.readLine()) != null) {
- assertEquals(actualContent, expectedContent);
+ if ((actualContent = data.readLine()) != null) {
+ assertEquals(actualContent, expectedContent);
+ }
}
} catch (IOException e) {
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/PathConverterTest.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/PathConverterTest.java
index b4483ac60b1..d1cb3d8b565 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/PathConverterTest.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/PathConverterTest.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (C) 2006, 2011 Siemens AG.
+ * Copyright (c) 2006, 2011 Siemens AG.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ProjectConverter.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ProjectConverter.java
index fbffdbc0a51..de243193a3f 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ProjectConverter.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ProjectConverter.java
@@ -28,8 +28,7 @@ public class ProjectConverter implements IConvertManagedBuildObject {
String tmpDir = System.getProperty("java.io.tmpdir");
File outputFile = new File(tmpDir + "/converterOutput.txt");
- try {
- FileWriter out = new FileWriter(outputFile);
+ try (FileWriter out = new FileWriter(outputFile)) {
out.write("---------- Start-------");
out.write("Converter for the build object : '" + buildObj.getName() + "' is invoked.");
out.write("From Id : " + fromId);
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ResourceBuildCoreTests.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ResourceBuildCoreTests.java
index 5adb0f5c1ed..5124f00b814 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ResourceBuildCoreTests.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ResourceBuildCoreTests.java
@@ -25,10 +25,12 @@ import org.eclipse.cdt.managedbuilder.core.IOption;
import org.eclipse.cdt.managedbuilder.core.IOptionCategory;
import org.eclipse.cdt.managedbuilder.core.IProjectType;
import org.eclipse.cdt.managedbuilder.core.IResourceConfiguration;
+import org.eclipse.cdt.managedbuilder.core.IResourceInfo;
import org.eclipse.cdt.managedbuilder.core.ITool;
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin;
import org.eclipse.cdt.managedbuilder.core.ManagedCProjectNature;
+import org.eclipse.cdt.managedbuilder.internal.core.ResourceInfo;
import org.eclipse.cdt.managedbuilder.internal.core.Tool;
import org.eclipse.cdt.managedbuilder.testplugin.ManagedBuildTestHelper;
import org.eclipse.core.resources.IFile;
@@ -45,6 +47,7 @@ import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
+import org.junit.Assert;
import junit.framework.Test;
import junit.framework.TestCase;
@@ -68,6 +71,7 @@ public class ResourceBuildCoreTests extends TestCase {
TestSuite suite = new TestSuite(ResourceBuildCoreTests.class.getName());
suite.addTest(new ResourceBuildCoreTests("testResourceConfigurations"));
suite.addTest(new ResourceBuildCoreTests("testResourceConfigurationReset"));
+ suite.addTest(new ResourceBuildCoreTests("testResourceConfiguration_Bug580009"));
// suite.addTest(new ResourceBuildCoreTests("testResourceConfigurationBuildInfo"));
// suite.addTest(new ResourceBuildCoreTests("testResourceRename"));
return suite;
@@ -969,4 +973,138 @@ public class ResourceBuildCoreTests extends TestCase {
removeProject(renamedProjectName2);
}
+ protected IResourceInfo getResourceConfiguration(final IConfiguration config, final IResource resource) {
+
+ IResourceInfo resInfo = config.getResourceInfo(resource.getProjectRelativePath(), true); // 'true' to ensure exact path
+ if (resInfo == null) {
+ // Resource element for path may not yet exist, force-create it
+ resInfo = config.createFolderInfo(resource.getProjectRelativePath());
+ }
+ return resInfo;
+ }
+
+ /**
+ * Test that a folder level resource configuration correctly reloads from disk
+ * @throws Exception
+ */
+ public void testResourceConfiguration_Bug580009() throws Exception {
+
+ // Create a new project
+ IProject project = null;
+
+ try {
+ project = createProject(projectName);
+
+ // Now associate the builder with the project
+ ManagedBuildTestHelper.addManagedBuildNature(project);
+ IProjectDescription description = project.getDescription();
+ // Make sure it has a managed nature
+ if (description != null) {
+ assertTrue(description.hasNature(ManagedCProjectNature.MNG_NATURE_ID));
+ }
+
+ } catch (CoreException e) {
+ fail("Test failed on project creation: " + e.getLocalizedMessage());
+ }
+
+ // Find the base project type definition
+ IProjectType[] projTypes = ManagedBuildManager.getDefinedProjectTypes();
+ IProjectType projType = ManagedBuildManager.getProjectType("bug580009.tests.ptype");
+ assertNotNull(projType);
+
+ // Create the managed-project for our project
+ IManagedProject newProject = ManagedBuildManager.createManagedProject(project, projType);
+ assertEquals(newProject.getName(), projType.getName());
+ assertFalse(newProject.equals(projType));
+ ManagedBuildManager.setNewProjectVersion(project);
+
+ // Create a folder ('hello')
+ IFolder helloFolder = project.getProject().getFolder("hello");
+ if (!helloFolder.exists()) {
+ helloFolder.create(true, true, null);
+ }
+
+ // Get the configurations and make one of them as default configuration.
+ IConfiguration defaultConfig = null;
+ IConfiguration[] configs = projType.getConfigurations();
+ for (int i = 0; i < configs.length; ++i) {
+ // Make the first configuration the default
+ if (i == 0) {
+ defaultConfig = newProject.createConfiguration(configs[i], projType.getId() + "." + i);
+ } else {
+ newProject.createConfiguration(configs[i], projType.getId() + "." + i);
+ }
+ }
+ ManagedBuildManager.setDefaultConfiguration(project, defaultConfig);
+
+ //Set toolchain level option
+ IOption tcOption = defaultConfig.getToolChain().getOptionById("bug580009.tests.cfg1.tc.option.string");
+ ManagedBuildManager.setOption(defaultConfig, defaultConfig.getToolChain(), tcOption, true);
+ ManagedBuildManager.saveBuildInfo(project, true);
+ // Create Resource Configurations for hello.c
+ var resConfig = getResourceConfiguration(defaultConfig, helloFolder);
+
+ // Get the tools associated with the resource 'hello'.
+ ITool[] resTools = resConfig.getTools();
+ assertNotNull(resTools);
+ assertEquals(1, resTools.length);
+
+ // Get the build properties for the resource hello
+ ITool resTool = resTools[0];
+ String defaultResToolFlags = resTool.getToolFlags();
+
+ // Get the Test Option.
+ IOption resDebugOption = resTool.getOptionById("bug580009.tests.option.string");
+
+ // Get the default value of debug option for resource.
+ String defaultResDebugOptVal = resDebugOption.getStringValue();
+
+ // Now, override the value with "bug580009.tests.option.string"
+ IOption newResDebugOption = ManagedBuildManager.setOption(resConfig, resTool, resDebugOption, "SET");
+
+ // Get the overridden value of test option.
+ String newResDebugOptVal = newResDebugOption.getStringValue();
+ String newResToolFlags = resTool.getToolFlags();
+
+ // Make sure, default and overridden values are different.
+ assertNotSame(defaultResDebugOptVal, newResDebugOptVal);
+
+ //Check the config reports custom settings
+ Assert.assertTrue("hasCustomSettings should be true", ((ResourceInfo) resConfig).hasCustomSettings());
+
+ ManagedBuildManager.saveBuildInfo(project, true);
+
+ //Close project
+ project.close(null);
+ project.open(null);
+
+ //Reload configs
+ defaultConfig = ManagedBuildManager.getBuildInfo(project).getDefaultConfiguration();
+ var resInfo = defaultConfig.getResourceInfo(helloFolder.getProjectRelativePath(), true);
+
+ //Check the config still reports custom settings (sanity check)
+ Assert.assertTrue("hasCustomSettings should be true", ((ResourceInfo) resInfo).hasCustomSettings());
+
+ resTools = resInfo.getTools();
+ resTool = resTools[0];
+ resDebugOption = resTool.getOptionBySuperClassId("bug580009.tests.option.string");
+
+ // Set back to default value
+ IOption newResDebugOption2 = ManagedBuildManager.setOption(resInfo, resTool, resDebugOption, "UNSET");
+
+ //Check the config now reports no custom settings
+ Assert.assertFalse("hasCustomSettings should be false", ((ResourceInfo) resInfo).hasCustomSettings());
+
+ ManagedBuildManager.saveBuildInfo(project, true);
+
+ //Check the resource config no longer exists
+ resInfo = defaultConfig.getResourceInfo(helloFolder.getProjectRelativePath(), true);
+ Assert.assertNull("resInfo should be null", resInfo);
+
+ // Close and remove project.
+ ResourceHelper.joinIndexerBeforeCleanup(getName());
+ project.close(null);
+ removeProject(projectName);
+ }
+
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/TestPathConverter1.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/TestPathConverter1.java
index 3f9b3fdf5c0..fb49f381de3 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/TestPathConverter1.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/TestPathConverter1.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (C) 2006, 2011 Siemens AG.
+ * Copyright (c) 2006, 2011 Siemens AG.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/TestPathConverter2.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/TestPathConverter2.java
index abe6422b68b..e9de8ca427d 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/TestPathConverter2.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/TestPathConverter2.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (C) 2006 Siemens AG.
+ * Copyright (c) 2006 Siemens AG.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/TestPathConverter3.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/TestPathConverter3.java
index 394fe54bb0f..2d180a92fc2 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/TestPathConverter3.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/TestPathConverter3.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (C) 2006 Siemens AG.
+ * Copyright (c) 2006 Siemens AG.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/TestPathConverter4.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/TestPathConverter4.java
index bf745ac179f..d8af672d06d 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/TestPathConverter4.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/TestPathConverter4.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (C) 2006, 2010 Siemens AG.
+ * Copyright (c) 2006, 2010 Siemens AG.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/AllLanguageSettingsProvidersMBSTests.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/AllLanguageSettingsProvidersMBSTestSuite.java
index 2a13429717c..87fc4cfe990 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/AllLanguageSettingsProvidersMBSTests.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/AllLanguageSettingsProvidersMBSTestSuite.java
@@ -19,18 +19,19 @@ import junit.framework.TestSuite;
/**
* Test suite to test language settings providers defined in cdt.managedbuilder.core.
*/
-public class AllLanguageSettingsProvidersMBSTests extends TestSuite {
+public class AllLanguageSettingsProvidersMBSTestSuite extends TestSuite {
public static TestSuite suite() {
- return new AllLanguageSettingsProvidersMBSTests();
+ return new AllLanguageSettingsProvidersMBSTestSuite();
}
- public AllLanguageSettingsProvidersMBSTests() {
- super(AllLanguageSettingsProvidersMBSTests.class.getName());
+ public AllLanguageSettingsProvidersMBSTestSuite() {
+ super(AllLanguageSettingsProvidersMBSTestSuite.class.getName());
addTestSuite(LanguageSettingsProvidersMBSTest.class);
addTestSuite(GCCBuildCommandParserTest.class);
addTestSuite(BuiltinSpecsDetectorTest.class);
addTestSuite(GCCBuiltinSpecsDetectorTest.class);
+ addTestSuite(CompilationDatabaseParserTest.class);
}
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/BuiltinSpecsDetectorTest.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/BuiltinSpecsDetectorTest.java
index 4252f366330..7e643eb814b 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/BuiltinSpecsDetectorTest.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/BuiltinSpecsDetectorTest.java
@@ -223,7 +223,7 @@ public class BuiltinSpecsDetectorTest extends BaseTestCase {
@Override
protected List<String> parseOptions(final String line) {
- return new ArrayList<String>() {
+ return new ArrayList<>() {
{
add(line);
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/CompilationDatabaseParserTest.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/CompilationDatabaseParserTest.java
new file mode 100644
index 00000000000..a67532ca43c
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/CompilationDatabaseParserTest.java
@@ -0,0 +1,1028 @@
+/*******************************************************************************
+ * Copyright (c) 2019, 2020 Marc-Andre Laperle.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************/
+package org.eclipse.cdt.managedbuilder.language.settings.providers.tests;
+
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
+import java.io.ByteArrayInputStream;
+import java.io.FileReader;
+import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.cdt.core.CCorePlugin;
+import org.eclipse.cdt.core.dom.ast.gnu.cpp.GPPLanguage;
+import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvider;
+import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvidersKeeper;
+import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager;
+import org.eclipse.cdt.core.model.CoreModel;
+import org.eclipse.cdt.core.model.ICElement;
+import org.eclipse.cdt.core.model.ICProject;
+import org.eclipse.cdt.core.model.ITranslationUnit;
+import org.eclipse.cdt.core.settings.model.CIncludePathEntry;
+import org.eclipse.cdt.core.settings.model.CMacroEntry;
+import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
+import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
+import org.eclipse.cdt.core.settings.model.ICProjectDescription;
+import org.eclipse.cdt.core.settings.model.ICProjectDescriptionManager;
+import org.eclipse.cdt.core.settings.model.ICSourceEntry;
+import org.eclipse.cdt.core.settings.model.util.CDataUtil;
+import org.eclipse.cdt.core.testplugin.ResourceHelper;
+import org.eclipse.cdt.core.testplugin.util.BaseTestCase;
+import org.eclipse.cdt.internal.core.language.settings.providers.LanguageSettingsProvidersSerializer;
+import org.eclipse.cdt.managedbuilder.internal.language.settings.providers.CompilationDatabaseParser;
+import org.eclipse.cdt.managedbuilder.internal.language.settings.providers.CompileCommand;
+import org.eclipse.cdt.managedbuilder.language.settings.providers.AbstractBuildCommandParser;
+import org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuildCommandParser;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.jobs.Job;
+
+import com.google.gson.Gson;
+import com.google.gson.JsonSyntaxException;
+
+/**
+ * Test cases to test CompilationDatabaseParser (compile_commands.json).
+ */
+public class CompilationDatabaseParserTest extends BaseTestCase {
+ private static final String COMPILATION_DATABASE_PARSER_EXT = "org.eclipse.cdt.managedbuilder.core.CompilationDatabaseParser"; //$NON-NLS-1$
+ private static final String GCC_BUILD_COMMAND_PARSER_EXT = "org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"; //$NON-NLS-1$
+
+ private static final String ATTR_CDB_PATH = "cdb-path"; //$NON-NLS-1$
+ private static final String ATTR_BUILD_PARSER_ID = "build-parser-id"; //$NON-NLS-1$
+ private static final String ATTR_CDB_MODIFIED_TIME = "cdb-modified-time"; //$NON-NLS-1$
+ private static final String ATTR_EXCLUDE_FILES = "exclude-files"; //$NON-NLS-1$
+
+ private IFile fCdbFile;
+ private IFile fSourceFile;
+ private IFile fSourceFile2;
+ private IFile fOutsideCdbSourceFile;
+ private IProject fProject;
+ private IFolder fFolder;
+ private IFolder fFolderAllExcluded;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ try {
+ joinLanguageSettingsJobs();
+ } catch (Exception e) {
+ // ignore
+ }
+ super.tearDown();
+ }
+
+ private void createTestProject() throws Exception {
+ createTestProject(true, true, true, true, true, false);
+ }
+
+ private void createTestProject(boolean useAbsoluteSourcePath, boolean haveCommandDir, boolean validCommandDir,
+ boolean haveCommandLine, boolean validCommandLine) throws Exception {
+ createTestProject(useAbsoluteSourcePath, haveCommandDir, validCommandDir, haveCommandLine, validCommandLine,
+ false);
+ }
+
+ private void createTestProject(boolean useAbsoluteSourcePath, boolean haveCommandDir, boolean validCommandDir,
+ boolean haveCommandLine, boolean validCommandLine, boolean haveCommandArguments) throws Exception {
+ fProject = ResourceHelper.createCDTProjectWithConfig(getName());
+ fFolder = ResourceHelper.createFolder(fProject, "folder");
+ fFolderAllExcluded = ResourceHelper.createFolder(fProject, "folder-all-excluded");
+ IFolder subfolderAllExcluded = fFolderAllExcluded.getFolder("subfolder-all-excluded");
+ subfolderAllExcluded.create(true, true, new NullProgressMonitor());
+
+ fSourceFile = fFolder.getFile("test.cpp");
+ fSourceFile2 = fProject.getFile("test.cpp");
+ fOutsideCdbSourceFile = fFolder.getFile("outside.cpp");
+ List<IFile> files = Arrays.asList(fSourceFile, fSourceFile2, fOutsideCdbSourceFile,
+ fFolderAllExcluded.getFile("file1.cpp"), fFolderAllExcluded.getFile("file2.cpp"),
+ subfolderAllExcluded.getFile("file3.cpp"));
+
+ files.forEach(file -> {
+ try {
+ if (file.exists()) {
+ file.delete(true, null);
+ }
+ ResourceHelper.createFile(file, "//comment " + file.getLocation());
+ } catch (CoreException e) {
+ throw new RuntimeException(e);
+ }
+ });
+
+ IFile file = fProject.getFile("compile_commands.json");
+ if (file.exists()) {
+ file.delete(true, null);
+ }
+
+ // Command for proj/folder/test.cpp
+ CompileCommand command = new CompileCommand();
+ if (haveCommandDir) {
+ if (validCommandDir)
+ command.directory = fSourceFile.getParent().getLocation().toOSString();
+ else
+ command.directory = "foo";
+ }
+ String sourceFilePath = fSourceFile.getLocation().toOSString();
+ if (!useAbsoluteSourcePath) {
+ sourceFilePath = fSourceFile.getLocation().makeRelativeTo(fSourceFile.getParent().getLocation())
+ .toOSString();
+ }
+ command.file = sourceFilePath;
+ if (haveCommandLine) {
+ if (validCommandLine)
+ command.command = "g++ -I" + fFolder.getLocation().toOSString() + " -DFOO=2 " + sourceFilePath;
+ else
+ command.command = "foo";
+ }
+ if (haveCommandArguments) {
+ command.arguments = new String[] { "g++", "-I" + fFolder.getLocation().toOSString(), "-DFOO=2",
+ sourceFilePath };
+ }
+
+ // Command for proj/test.cpp
+ CompileCommand command2 = new CompileCommand();
+ if (haveCommandDir) {
+ if (validCommandDir)
+ command2.directory = fSourceFile2.getParent().getLocation().toOSString();
+ else
+ command2.directory = "foo";
+ }
+ String sourceFilePath2 = fSourceFile2.getLocation().toOSString();
+ if (!useAbsoluteSourcePath) {
+ sourceFilePath2 = fSourceFile2.getLocation().makeRelativeTo(fSourceFile2.getParent().getLocation())
+ .toOSString();
+ }
+ command2.file = sourceFilePath2;
+ if (haveCommandLine) {
+ if (validCommandLine)
+ command2.command = "g++ -I" + fFolder.getLocation().toOSString() + " -DFOO=3 " + sourceFilePath2;
+ else
+ command2.command = "foo";
+ }
+
+ if (haveCommandArguments) {
+ command2.arguments = new String[] { "g++", "-I" + fFolder.getLocation().toOSString(), "-DFOO=3",
+ sourceFilePath2 };
+ }
+
+ CompileCommand[] commands = new CompileCommand[2];
+ commands[0] = command;
+ commands[1] = command2;
+
+ String json = new Gson().toJson(commands);
+ fCdbFile = ResourceHelper.createFile(file, json);
+
+ ICConfigurationDescription cfgDescription = getConfigurationDescription(fProject, true);
+ GCCBuildCommandParser buildCommandParser = (GCCBuildCommandParser) LanguageSettingsManager
+ .getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
+ assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
+ List<ILanguageSettingsProvider> providers = new ArrayList<>();
+ providers.add(buildCommandParser);
+ ((ILanguageSettingsProvidersKeeper) cfgDescription).setLanguageSettingProviders(providers);
+ CoreModel.getDefault().setProjectDescription(cfgDescription.getProjectDescription().getProject(),
+ cfgDescription.getProjectDescription());
+ }
+
+ private void joinLanguageSettingsJobs() throws InterruptedException {
+ Job.getJobManager().join(CompilationDatabaseParser.JOB_FAMILY_COMPILATION_DATABASE_PARSER, null);
+ Job.getJobManager().join(AbstractBuildCommandParser.JOB_FAMILY_BUILD_COMMAND_PARSER, null);
+ Job.getJobManager().join(LanguageSettingsProvidersSerializer.JOB_FAMILY_SERIALIZE_LANGUAGE_SETTINGS_PROJECT,
+ null);
+ Job.getJobManager().join(LanguageSettingsProvidersSerializer.JOB_FAMILY_SERIALIZE_LANGUAGE_SETTINGS_WORKSPACE,
+ null);
+ }
+
+ /**
+ * Helper method to fetch a configuration description.
+ */
+ private ICConfigurationDescription getConfigurationDescription(IProject project, boolean writable) {
+ CoreModel coreModel = CoreModel.getDefault();
+ ICProjectDescriptionManager mngr = coreModel.getProjectDescriptionManager();
+ // project description
+ ICProjectDescription projectDescription = mngr.getProjectDescription(project, writable);
+ assertNotNull(projectDescription);
+ assertEquals(1, projectDescription.getConfigurations().length);
+ // configuration description
+ ICConfigurationDescription[] cfgDescriptions = projectDescription.getConfigurations();
+ return cfgDescriptions[0];
+ }
+
+ private ICConfigurationDescription getConfigurationDescription(IProject project, String configId,
+ boolean writable) {
+ CoreModel coreModel = CoreModel.getDefault();
+ ICProjectDescriptionManager mngr = coreModel.getProjectDescriptionManager();
+ // project description
+ ICProjectDescription projectDescription = mngr.getProjectDescription(project, writable);
+ assertNotNull(projectDescription);
+ return projectDescription.getConfigurationById(configId);
+ }
+
+ private void addLanguageSettingsProvider(ICConfigurationDescription cfgDescription,
+ ILanguageSettingsProvider provider) {
+ List<ILanguageSettingsProvider> providers = new ArrayList<>(
+ ((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders());
+ providers.add(provider);
+ ((ILanguageSettingsProvidersKeeper) cfgDescription).setLanguageSettingProviders(providers);
+ }
+
+ private CompilationDatabaseParser createCompilationDatabaseParser() {
+ CompilationDatabaseParser parser = (CompilationDatabaseParser) LanguageSettingsManager
+ .getExtensionProviderCopy(COMPILATION_DATABASE_PARSER_EXT, true);
+ assertTrue(parser.isEmpty());
+ return parser;
+ }
+
+ private CompilationDatabaseParser getCompilationDatabaseParser() throws CoreException {
+ ICConfigurationDescription cfgDescription = getConfigurationDescription(fProject, false);
+ return getCompilationDatabaseParser(cfgDescription);
+ }
+
+ private CompilationDatabaseParser getCompilationDatabaseParser(ICConfigurationDescription cfgDescription)
+ throws CoreException {
+ List<ILanguageSettingsProvider> settingProviders = ((ILanguageSettingsProvidersKeeper) cfgDescription)
+ .getLanguageSettingProviders();
+ for (ILanguageSettingsProvider languageSettingsProvider : settingProviders) {
+ if (languageSettingsProvider instanceof CompilationDatabaseParser) {
+ return (CompilationDatabaseParser) languageSettingsProvider;
+ }
+ }
+
+ return null;
+ }
+
+ private void assertExpectedEntries(CompilationDatabaseParser parser) {
+ assertExpectedEntries(parser, getConfigurationDescription(fProject, false).getId());
+ }
+
+ private void assertExpectedEntries(CompilationDatabaseParser parser, String configId) {
+ assertFalse(parser.isEmpty());
+ ICConfigurationDescription resCfgDescription = getConfigurationDescription(fProject, configId, false);
+ List<ICLanguageSettingEntry> entries = parser.getSettingEntries(resCfgDescription, fSourceFile, GPPLanguage.ID);
+
+ CIncludePathEntry expected = new CIncludePathEntry("/${ProjName}/folder",
+ CIncludePathEntry.VALUE_WORKSPACE_PATH);
+ CIncludePathEntry entry = (CIncludePathEntry) entries.get(0);
+ assertEquals(expected.getName(), entry.getName());
+ assertEquals(expected.getValue(), entry.getValue());
+ assertEquals(expected.getKind(), entry.getKind());
+ assertEquals(expected.getFlags(), entry.getFlags());
+ assertEquals(expected, entry);
+
+ assertEquals(new CMacroEntry("FOO", "2", 0), entries.get(1));
+
+ entries = parser.getSettingEntries(resCfgDescription, fSourceFile2, GPPLanguage.ID);
+
+ entry = (CIncludePathEntry) entries.get(0);
+ assertEquals(expected.getName(), entry.getName());
+ assertEquals(expected.getValue(), entry.getValue());
+ assertEquals(expected.getKind(), entry.getKind());
+ assertEquals(expected.getFlags(), entry.getFlags());
+ assertEquals(expected, entry);
+
+ assertEquals(new CMacroEntry("FOO", "3", 0), entries.get(1));
+ }
+
+ public void testParseCDB_WritableConfigDesc() throws Exception {
+ createTestProject();
+
+ ICProject cProject = CCorePlugin.getDefault().getCoreModel().create(fProject);
+ ICElement ce = CCorePlugin.getDefault().getCoreModel().create(fOutsideCdbSourceFile.getFullPath());
+ ITranslationUnit tu = (ITranslationUnit) ce;
+ assertFalse(
+ CDataUtil.isExcluded(tu.getPath(), getConfigurationDescription(fProject, false).getSourceEntries()));
+
+ CompilationDatabaseParser parser = createCompilationDatabaseParser();
+ parser.setBuildParserId(GCC_BUILD_COMMAND_PARSER_EXT);
+ parser.setCompilationDataBasePathProperty(fCdbFile.getLocation().toOSString());
+
+ ICConfigurationDescription cfgDescription = getConfigurationDescription(fProject, true);
+
+ parser.processCompileCommandsFile(null, cfgDescription);
+ assertFalse(parser.isEmpty());
+ CoreModel.getDefault().setProjectDescription(cfgDescription.getProjectDescription().getProject(),
+ cfgDescription.getProjectDescription());
+ joinLanguageSettingsJobs();
+
+ ICConfigurationDescription resCfgDescription = getConfigurationDescription(fProject, false);
+ assertExpectedEntries(parser);
+
+ assertFalse(CDataUtil.isExcluded(tu.getPath(), resCfgDescription.getSourceEntries()));
+ }
+
+ public void testParseCDB_WithExclusions() throws Exception {
+ createTestProject();
+
+ ICProject cProject = CCorePlugin.getDefault().getCoreModel().create(fProject);
+ ICElement ce = CCorePlugin.getDefault().getCoreModel().create(fOutsideCdbSourceFile.getFullPath());
+ ITranslationUnit tu = (ITranslationUnit) ce;
+ assertFalse(
+ CDataUtil.isExcluded(tu.getPath(), getConfigurationDescription(fProject, false).getSourceEntries()));
+
+ CompilationDatabaseParser parser = createCompilationDatabaseParser();
+ parser.setBuildParserId(GCC_BUILD_COMMAND_PARSER_EXT);
+ parser.setCompilationDataBasePathProperty(fCdbFile.getLocation().toOSString());
+ parser.setExcludeFiles(true);
+
+ ICConfigurationDescription cfgDescription = getConfigurationDescription(fProject, true);
+
+ parser.processCompileCommandsFile(null, cfgDescription);
+ CoreModel.getDefault().setProjectDescription(cfgDescription.getProjectDescription().getProject(),
+ cfgDescription.getProjectDescription());
+ joinLanguageSettingsJobs();
+
+ assertExpectedEntries(parser);
+
+ ICConfigurationDescription resCfgDescription = getConfigurationDescription(fProject, false);
+ ICSourceEntry[] sourceEntries = resCfgDescription.getSourceEntries();
+ assertTrue(CDataUtil.isExcluded(tu.getPath(), sourceEntries));
+ assertTrue(CDataUtil.isExcluded(fFolderAllExcluded.getFullPath(), sourceEntries));
+ assertFalse(CDataUtil.isExcluded(fFolder.getFullPath(), sourceEntries));
+ assertFalse(CDataUtil.isExcluded(fProject.getFullPath(), sourceEntries));
+ assertFalse(CDataUtil.isExcluded(fSourceFile.getFullPath(), sourceEntries));
+ assertFalse(CDataUtil.isExcluded(fSourceFile2.getFullPath(), sourceEntries));
+ }
+
+ public void testParseCDB_NoBuildCommandParser() throws Exception {
+ createTestProject();
+
+ ICProject cProject = CCorePlugin.getDefault().getCoreModel().create(fProject);
+ ICElement ce = CCorePlugin.getDefault().getCoreModel().create(fOutsideCdbSourceFile.getFullPath());
+ ITranslationUnit tu = (ITranslationUnit) ce;
+ assertFalse(
+ CDataUtil.isExcluded(tu.getPath(), getConfigurationDescription(fProject, false).getSourceEntries()));
+
+ CompilationDatabaseParser parser = createCompilationDatabaseParser();
+ parser.setCompilationDataBasePathProperty(fCdbFile.getLocation().toOSString());
+ parser.setExcludeFiles(true);
+
+ ICConfigurationDescription cfgDescription = getConfigurationDescription(fProject, true);
+ addLanguageSettingsProvider(cfgDescription, parser);
+
+ assertThrows(CoreException.class, () -> parser.processCompileCommandsFile(null, cfgDescription));
+ CoreModel.getDefault().setProjectDescription(cfgDescription.getProjectDescription().getProject(),
+ cfgDescription.getProjectDescription());
+ joinLanguageSettingsJobs();
+
+ ICConfigurationDescription resCfgDescription = getConfigurationDescription(fProject, false);
+ CompilationDatabaseParser resultParser = getCompilationDatabaseParser();
+ assertTrue(resultParser.isEmpty());
+ List<ICLanguageSettingEntry> entries = resultParser.getSettingEntries(resCfgDescription, fSourceFile,
+ GPPLanguage.ID);
+ assertTrue(entries == null);
+ assertFalse(CDataUtil.isExcluded(tu.getPath(), resCfgDescription.getSourceEntries()));
+ }
+
+ public void testParseCDB_InvalidBuildCommandParser() throws Exception {
+ createTestProject();
+
+ ICProject cProject = CCorePlugin.getDefault().getCoreModel().create(fProject);
+ ICElement ce = CCorePlugin.getDefault().getCoreModel().create(fOutsideCdbSourceFile.getFullPath());
+ ITranslationUnit tu = (ITranslationUnit) ce;
+ assertFalse(
+ CDataUtil.isExcluded(tu.getPath(), getConfigurationDescription(fProject, false).getSourceEntries()));
+
+ CompilationDatabaseParser parser = createCompilationDatabaseParser();
+ parser.setBuildParserId(GCC_BUILD_COMMAND_PARSER_EXT + "foo");
+ parser.setCompilationDataBasePathProperty(fCdbFile.getLocation().toOSString());
+ parser.setExcludeFiles(true);
+
+ ICConfigurationDescription cfgDescription = getConfigurationDescription(fProject, true);
+ addLanguageSettingsProvider(cfgDescription, parser);
+
+ assertThrows(CoreException.class, () -> parser.processCompileCommandsFile(null, cfgDescription));
+ CoreModel.getDefault().setProjectDescription(cfgDescription.getProjectDescription().getProject(),
+ cfgDescription.getProjectDescription());
+ joinLanguageSettingsJobs();
+
+ ICConfigurationDescription resCfgDescription = getConfigurationDescription(fProject, false);
+ CompilationDatabaseParser resultParser = getCompilationDatabaseParser();
+ assertTrue(resultParser.isEmpty());
+ List<ICLanguageSettingEntry> entries = resultParser.getSettingEntries(resCfgDescription, fSourceFile,
+ GPPLanguage.ID);
+ assertTrue(entries == null);
+ assertFalse(CDataUtil.isExcluded(tu.getPath(), resCfgDescription.getSourceEntries()));
+ }
+
+ public void testParseCDB_NonExistantCDB() throws Exception {
+ createTestProject();
+
+ ICProject cProject = CCorePlugin.getDefault().getCoreModel().create(fProject);
+ ICElement ce = CCorePlugin.getDefault().getCoreModel().create(fOutsideCdbSourceFile.getFullPath());
+ ITranslationUnit tu = (ITranslationUnit) ce;
+ assertFalse(
+ CDataUtil.isExcluded(tu.getPath(), getConfigurationDescription(fProject, false).getSourceEntries()));
+
+ CompilationDatabaseParser parser = createCompilationDatabaseParser();
+ parser.setBuildParserId(GCC_BUILD_COMMAND_PARSER_EXT);
+ parser.setCompilationDataBasePathProperty(new Path("/testParseCDB_NonExistantCDB").toOSString());
+ parser.setExcludeFiles(true);
+
+ ICConfigurationDescription cfgDescription = getConfigurationDescription(fProject, true);
+ addLanguageSettingsProvider(cfgDescription, parser);
+
+ assertThrows(CoreException.class, () -> parser.processCompileCommandsFile(null, cfgDescription));
+ CoreModel.getDefault().setProjectDescription(cfgDescription.getProjectDescription().getProject(),
+ cfgDescription.getProjectDescription());
+ joinLanguageSettingsJobs();
+
+ ICConfigurationDescription resCfgDescription = getConfigurationDescription(fProject, false);
+ CompilationDatabaseParser resultParser = getCompilationDatabaseParser();
+ assertTrue(resultParser.isEmpty());
+ List<ICLanguageSettingEntry> entries = resultParser.getSettingEntries(resCfgDescription, fSourceFile,
+ GPPLanguage.ID);
+ assertTrue(entries == null);
+ assertFalse(CDataUtil.isExcluded(tu.getPath(), resCfgDescription.getSourceEntries()));
+ }
+
+ public void testParseCDB_EmptyCDBPath() throws Exception {
+ createTestProject();
+
+ ICProject cProject = CCorePlugin.getDefault().getCoreModel().create(fProject);
+ ICElement ce = CCorePlugin.getDefault().getCoreModel().create(fOutsideCdbSourceFile.getFullPath());
+ ITranslationUnit tu = (ITranslationUnit) ce;
+ assertFalse(
+ CDataUtil.isExcluded(tu.getPath(), getConfigurationDescription(fProject, false).getSourceEntries()));
+
+ CompilationDatabaseParser parser = createCompilationDatabaseParser();
+ parser.setBuildParserId(GCC_BUILD_COMMAND_PARSER_EXT);
+ parser.setCompilationDataBasePathProperty("");
+ parser.setExcludeFiles(true);
+
+ ICConfigurationDescription cfgDescription = getConfigurationDescription(fProject, true);
+ addLanguageSettingsProvider(cfgDescription, parser);
+
+ assertThrows(CoreException.class, () -> parser.processCompileCommandsFile(null, cfgDescription));
+ CoreModel.getDefault().setProjectDescription(cfgDescription.getProjectDescription().getProject(),
+ cfgDescription.getProjectDescription());
+ joinLanguageSettingsJobs();
+
+ ICConfigurationDescription resCfgDescription = getConfigurationDescription(fProject, false);
+ CompilationDatabaseParser resultParser = getCompilationDatabaseParser();
+ assertTrue(resultParser.isEmpty());
+ List<ICLanguageSettingEntry> entries = resultParser.getSettingEntries(resCfgDescription, fSourceFile,
+ GPPLanguage.ID);
+ assertTrue(entries == null);
+ assertFalse(CDataUtil.isExcluded(tu.getPath(), resCfgDescription.getSourceEntries()));
+ }
+
+ public void testParseCDB_DirectoryCDBPath() throws Exception {
+ createTestProject();
+
+ ICProject cProject = CCorePlugin.getDefault().getCoreModel().create(fProject);
+ ICElement ce = CCorePlugin.getDefault().getCoreModel().create(fOutsideCdbSourceFile.getFullPath());
+ ITranslationUnit tu = (ITranslationUnit) ce;
+ assertFalse(
+ CDataUtil.isExcluded(tu.getPath(), getConfigurationDescription(fProject, false).getSourceEntries()));
+
+ CompilationDatabaseParser parser = createCompilationDatabaseParser();
+ parser.setBuildParserId(GCC_BUILD_COMMAND_PARSER_EXT);
+ parser.setCompilationDataBasePathProperty(fCdbFile.getParent().getLocation().toOSString());
+ parser.setExcludeFiles(true);
+
+ ICConfigurationDescription cfgDescription = getConfigurationDescription(fProject, true);
+ addLanguageSettingsProvider(cfgDescription, parser);
+
+ assertThrows(CoreException.class, () -> parser.processCompileCommandsFile(null, cfgDescription));
+ CoreModel.getDefault().setProjectDescription(cfgDescription.getProjectDescription().getProject(),
+ cfgDescription.getProjectDescription());
+ joinLanguageSettingsJobs();
+
+ ICConfigurationDescription resCfgDescription = getConfigurationDescription(fProject, false);
+ CompilationDatabaseParser resultParser = getCompilationDatabaseParser();
+ assertTrue(resultParser.isEmpty());
+ List<ICLanguageSettingEntry> entries = resultParser.getSettingEntries(resCfgDescription, fSourceFile,
+ GPPLanguage.ID);
+ assertTrue(entries == null);
+ assertFalse(CDataUtil.isExcluded(tu.getPath(), resCfgDescription.getSourceEntries()));
+ }
+
+ public void testParseCDB_ProjectRelativeCDBPath() throws Exception {
+ createTestProject();
+
+ ICProject cProject = CCorePlugin.getDefault().getCoreModel().create(fProject);
+
+ CompilationDatabaseParser parser = (CompilationDatabaseParser) LanguageSettingsManager
+ .getExtensionProviderCopy(COMPILATION_DATABASE_PARSER_EXT, true);
+ assertTrue(parser.isEmpty());
+ parser.setBuildParserId(GCC_BUILD_COMMAND_PARSER_EXT);
+ parser.setCompilationDataBasePathProperty(new Path("${ProjDirPath}")
+ .append(fCdbFile.getFullPath().makeRelativeTo(cProject.getProject().getFullPath())).toOSString());
+ parser.setExcludeFiles(true);
+
+ ICConfigurationDescription cfgDescription = getConfigurationDescription(fProject, true);
+
+ parser.processCompileCommandsFile(null, cfgDescription);
+ assertFalse(parser.isEmpty());
+ CoreModel.getDefault().setProjectDescription(cfgDescription.getProjectDescription().getProject(),
+ cfgDescription.getProjectDescription());
+ joinLanguageSettingsJobs();
+
+ assertExpectedEntries(parser);
+
+ ICConfigurationDescription resCfgDescription = getConfigurationDescription(fProject, false);
+ }
+
+ public void testParseCDB_WorkspaceVarCDBPath() throws Exception {
+ createTestProject();
+
+ ICProject cProject = CCorePlugin.getDefault().getCoreModel().create(fProject);
+
+ CompilationDatabaseParser parser = (CompilationDatabaseParser) LanguageSettingsManager
+ .getExtensionProviderCopy(COMPILATION_DATABASE_PARSER_EXT, true);
+ assertTrue(parser.isEmpty());
+ parser.setBuildParserId(GCC_BUILD_COMMAND_PARSER_EXT);
+ parser.setCompilationDataBasePathProperty(
+ new Path("${WorkspaceDirPath}")
+ .append(fCdbFile.getFullPath()
+ .makeRelativeTo(cProject.getProject().getWorkspace().getRoot().getFullPath()))
+ .toOSString());
+ parser.setExcludeFiles(true);
+
+ ICConfigurationDescription cfgDescription = getConfigurationDescription(fProject, true);
+
+ parser.processCompileCommandsFile(null, cfgDescription);
+ assertFalse(parser.isEmpty());
+ CoreModel.getDefault().setProjectDescription(cfgDescription.getProjectDescription().getProject(),
+ cfgDescription.getProjectDescription());
+ joinLanguageSettingsJobs();
+
+ assertExpectedEntries(parser);
+
+ ICConfigurationDescription resCfgDescription = getConfigurationDescription(fProject, false);
+ }
+
+ public void testParseCDB_InvalidJson() throws Exception {
+ createTestProject();
+
+ ICProject cProject = CCorePlugin.getDefault().getCoreModel().create(fProject);
+ ICElement ce = CCorePlugin.getDefault().getCoreModel().create(fOutsideCdbSourceFile.getFullPath());
+ ITranslationUnit tu = (ITranslationUnit) ce;
+ assertFalse(
+ CDataUtil.isExcluded(tu.getPath(), getConfigurationDescription(fProject, false).getSourceEntries()));
+
+ //Make the Json invalid
+ String cdbOsString = fCdbFile.getLocation().toOSString();
+ Files.write(Paths.get(cdbOsString), new byte[] { 'f', 'o', 'o' });
+ try (FileReader reader = new FileReader(cdbOsString)) {
+ Gson gson = new Gson();
+ CompileCommand[] compileCommands = gson.fromJson(reader, CompileCommand[].class);
+ assertTrue("Json should have been invalid and thrown an JsonSyntaxException", false);
+ } catch (JsonSyntaxException e) {
+
+ } catch (Exception e) {
+ assertTrue("Json should have been invalid and thrown an JsonSyntaxException", false);
+ }
+
+ CompilationDatabaseParser parser = (CompilationDatabaseParser) LanguageSettingsManager
+ .getExtensionProviderCopy(COMPILATION_DATABASE_PARSER_EXT, true);
+ assertTrue(parser.isEmpty());
+ parser.setBuildParserId(GCC_BUILD_COMMAND_PARSER_EXT);
+ parser.setCompilationDataBasePathProperty(fCdbFile.getLocation().toOSString());
+ parser.setExcludeFiles(true);
+
+ ICConfigurationDescription cfgDescription = getConfigurationDescription(fProject, true);
+ addLanguageSettingsProvider(cfgDescription, parser);
+
+ assertThrows(CoreException.class, () -> parser.processCompileCommandsFile(null, cfgDescription));
+
+ CoreModel.getDefault().setProjectDescription(cfgDescription.getProjectDescription().getProject(),
+ cfgDescription.getProjectDescription());
+ joinLanguageSettingsJobs();
+
+ ICConfigurationDescription resCfgDescription = getConfigurationDescription(fProject, false);
+ CompilationDatabaseParser resultParser = getCompilationDatabaseParser();
+ assertTrue(resultParser.isEmpty());
+ List<ICLanguageSettingEntry> entries = resultParser.getSettingEntries(resCfgDescription, fSourceFile,
+ GPPLanguage.ID);
+ assertTrue(entries == null);
+ assertFalse(CDataUtil.isExcluded(tu.getPath(), resCfgDescription.getSourceEntries()));
+ }
+
+ public void testParseCDB_RelativePaths() throws Exception {
+ createTestProject(false, true, true, true, true);
+
+ ICProject cProject = CCorePlugin.getDefault().getCoreModel().create(fProject);
+ ICElement ce = CCorePlugin.getDefault().getCoreModel().create(fOutsideCdbSourceFile.getFullPath());
+ ITranslationUnit tu = (ITranslationUnit) ce;
+ assertFalse(
+ CDataUtil.isExcluded(tu.getPath(), getConfigurationDescription(fProject, false).getSourceEntries()));
+
+ CompilationDatabaseParser parser = createCompilationDatabaseParser();
+ parser.setBuildParserId(GCC_BUILD_COMMAND_PARSER_EXT);
+ parser.setCompilationDataBasePathProperty(fCdbFile.getLocation().toOSString());
+
+ ICConfigurationDescription cfgDescription = getConfigurationDescription(fProject, true);
+
+ parser.processCompileCommandsFile(null, cfgDescription);
+ assertFalse(parser.isEmpty());
+ CoreModel.getDefault().setProjectDescription(cfgDescription.getProjectDescription().getProject(),
+ cfgDescription.getProjectDescription());
+ joinLanguageSettingsJobs();
+
+ assertExpectedEntries(parser);
+
+ ICConfigurationDescription resCfgDescription = getConfigurationDescription(fProject, false);
+ assertFalse(CDataUtil.isExcluded(tu.getPath(), resCfgDescription.getSourceEntries()));
+ }
+
+ public void testParseCDB_InvalidCommandDir() throws Exception {
+ createTestProject(true, true, false, true, true);
+
+ ICProject cProject = CCorePlugin.getDefault().getCoreModel().create(fProject);
+ ICElement ce = CCorePlugin.getDefault().getCoreModel().create(fOutsideCdbSourceFile.getFullPath());
+ ITranslationUnit tu = (ITranslationUnit) ce;
+ assertFalse(
+ CDataUtil.isExcluded(tu.getPath(), getConfigurationDescription(fProject, false).getSourceEntries()));
+
+ CompilationDatabaseParser parser = createCompilationDatabaseParser();
+ parser.setBuildParserId(GCC_BUILD_COMMAND_PARSER_EXT);
+ parser.setCompilationDataBasePathProperty(fCdbFile.getLocation().toOSString());
+
+ ICConfigurationDescription cfgDescription = getConfigurationDescription(fProject, true);
+
+ parser.processCompileCommandsFile(null, cfgDescription);
+ assertFalse(parser.isEmpty());
+ CoreModel.getDefault().setProjectDescription(cfgDescription.getProjectDescription().getProject(),
+ cfgDescription.getProjectDescription());
+ joinLanguageSettingsJobs();
+
+ ICConfigurationDescription resCfgDescription = getConfigurationDescription(fProject, false);
+ List<ICLanguageSettingEntry> entries = parser.getSettingEntries(resCfgDescription, fSourceFile2,
+ GPPLanguage.ID);
+
+ // Since the directory could not be used as working dir, both files CDB entries will match
+ // the same source file and only the last one will be recorder in language setting entries.
+ CIncludePathEntry expected = new CIncludePathEntry("/${ProjName}/folder",
+ CIncludePathEntry.VALUE_WORKSPACE_PATH);
+ CIncludePathEntry entry = (CIncludePathEntry) entries.get(0);
+ assertEquals(expected.getName(), entry.getName());
+ assertEquals(expected.getValue(), entry.getValue());
+ assertEquals(expected.getKind(), entry.getKind());
+ assertEquals(expected.getFlags(), entry.getFlags());
+ assertEquals(expected, entry);
+
+ assertEquals(new CMacroEntry("FOO", "3", 0), entries.get(1));
+
+ assertFalse(CDataUtil.isExcluded(tu.getPath(), resCfgDescription.getSourceEntries()));
+ }
+
+ public void testParseCDB_NoCommandDir() throws Exception {
+ createTestProject(true, false, true, true, true);
+
+ ICProject cProject = CCorePlugin.getDefault().getCoreModel().create(fProject);
+ ICElement ce = CCorePlugin.getDefault().getCoreModel().create(fOutsideCdbSourceFile.getFullPath());
+ ITranslationUnit tu = (ITranslationUnit) ce;
+ assertFalse(
+ CDataUtil.isExcluded(tu.getPath(), getConfigurationDescription(fProject, false).getSourceEntries()));
+
+ CompilationDatabaseParser parser = createCompilationDatabaseParser();
+ parser.setBuildParserId(GCC_BUILD_COMMAND_PARSER_EXT);
+ parser.setCompilationDataBasePathProperty(fCdbFile.getLocation().toOSString());
+
+ ICConfigurationDescription cfgDescription = getConfigurationDescription(fProject, true);
+
+ parser.processCompileCommandsFile(null, cfgDescription);
+ assertFalse(parser.isEmpty());
+ CoreModel.getDefault().setProjectDescription(cfgDescription.getProjectDescription().getProject(),
+ cfgDescription.getProjectDescription());
+ joinLanguageSettingsJobs();
+
+ ICConfigurationDescription resCfgDescription = getConfigurationDescription(fProject, false);
+ List<ICLanguageSettingEntry> entries = parser.getSettingEntries(resCfgDescription, fSourceFile2,
+ GPPLanguage.ID);
+
+ // Since the directory could not be used as working dir, both files CDB entries will match
+ // the same source file and only the last one will be recorder in language setting entries.
+ CIncludePathEntry expected = new CIncludePathEntry("/${ProjName}/folder",
+ CIncludePathEntry.VALUE_WORKSPACE_PATH);
+ CIncludePathEntry entry = (CIncludePathEntry) entries.get(0);
+ assertEquals(expected.getName(), entry.getName());
+ assertEquals(expected.getValue(), entry.getValue());
+ assertEquals(expected.getKind(), entry.getKind());
+ assertEquals(expected.getFlags(), entry.getFlags());
+ assertEquals(expected, entry);
+
+ assertEquals(new CMacroEntry("FOO", "3", 0), entries.get(1));
+
+ assertFalse(CDataUtil.isExcluded(tu.getPath(), resCfgDescription.getSourceEntries()));
+ }
+
+ public void testParseCDB_InvalidCommandLine() throws Exception {
+ createTestProject(true, true, true, true, false);
+
+ ICProject cProject = CCorePlugin.getDefault().getCoreModel().create(fProject);
+ ICElement ce = CCorePlugin.getDefault().getCoreModel().create(fOutsideCdbSourceFile.getFullPath());
+ ITranslationUnit tu = (ITranslationUnit) ce;
+ assertFalse(
+ CDataUtil.isExcluded(tu.getPath(), getConfigurationDescription(fProject, false).getSourceEntries()));
+
+ CompilationDatabaseParser parser = createCompilationDatabaseParser();
+ parser.setBuildParserId(GCC_BUILD_COMMAND_PARSER_EXT);
+ parser.setCompilationDataBasePathProperty(fCdbFile.getLocation().toOSString());
+
+ ICConfigurationDescription cfgDescription = getConfigurationDescription(fProject, true);
+
+ parser.processCompileCommandsFile(null, cfgDescription);
+ assertFalse(parser.isEmpty());
+ CoreModel.getDefault().setProjectDescription(cfgDescription.getProjectDescription().getProject(),
+ cfgDescription.getProjectDescription());
+ joinLanguageSettingsJobs();
+
+ ICConfigurationDescription resCfgDescription = getConfigurationDescription(fProject, false);
+ assertNull(parser.getSettingEntries(resCfgDescription, fSourceFile, GPPLanguage.ID));
+ assertNull(parser.getSettingEntries(resCfgDescription, fSourceFile2, GPPLanguage.ID));
+
+ assertFalse(CDataUtil.isExcluded(tu.getPath(), resCfgDescription.getSourceEntries()));
+ }
+
+ public void testParseCDB_NoCommandLine() throws Exception {
+ createTestProject(true, true, true, false, true);
+
+ ICProject cProject = CCorePlugin.getDefault().getCoreModel().create(fProject);
+ ICElement ce = CCorePlugin.getDefault().getCoreModel().create(fOutsideCdbSourceFile.getFullPath());
+ ITranslationUnit tu = (ITranslationUnit) ce;
+ assertFalse(
+ CDataUtil.isExcluded(tu.getPath(), getConfigurationDescription(fProject, false).getSourceEntries()));
+
+ CompilationDatabaseParser parser = createCompilationDatabaseParser();
+ parser.setBuildParserId(GCC_BUILD_COMMAND_PARSER_EXT);
+ parser.setCompilationDataBasePathProperty(fCdbFile.getLocation().toOSString());
+
+ ICConfigurationDescription cfgDescription = getConfigurationDescription(fProject, true);
+
+ parser.processCompileCommandsFile(null, cfgDescription);
+ assertFalse(parser.isEmpty());
+ CoreModel.getDefault().setProjectDescription(cfgDescription.getProjectDescription().getProject(),
+ cfgDescription.getProjectDescription());
+ joinLanguageSettingsJobs();
+
+ ICConfigurationDescription resCfgDescription = getConfigurationDescription(fProject, false);
+ assertNull(parser.getSettingEntries(resCfgDescription, fSourceFile, GPPLanguage.ID));
+ assertNull(parser.getSettingEntries(resCfgDescription, fSourceFile2, GPPLanguage.ID));
+
+ assertFalse(CDataUtil.isExcluded(tu.getPath(), resCfgDescription.getSourceEntries()));
+ }
+
+ public void testParseCDB_CommandArguments() throws Exception {
+ createTestProject(true, true, true, false, false, true);
+
+ ICProject cProject = CCorePlugin.getDefault().getCoreModel().create(fProject);
+ ICElement ce = CCorePlugin.getDefault().getCoreModel().create(fOutsideCdbSourceFile.getFullPath());
+ ITranslationUnit tu = (ITranslationUnit) ce;
+ assertFalse(
+ CDataUtil.isExcluded(tu.getPath(), getConfigurationDescription(fProject, false).getSourceEntries()));
+
+ CompilationDatabaseParser parser = createCompilationDatabaseParser();
+ parser.setBuildParserId(GCC_BUILD_COMMAND_PARSER_EXT);
+ parser.setCompilationDataBasePathProperty(fCdbFile.getLocation().toOSString());
+
+ ICConfigurationDescription cfgDescription = getConfigurationDescription(fProject, true);
+
+ parser.processCompileCommandsFile(null, cfgDescription);
+ CoreModel.getDefault().setProjectDescription(cfgDescription.getProjectDescription().getProject(),
+ cfgDescription.getProjectDescription());
+ joinLanguageSettingsJobs();
+
+ assertExpectedEntries(parser);
+ }
+
+ public void testClear() throws Exception {
+ createTestProject();
+
+ ICProject cProject = CCorePlugin.getDefault().getCoreModel().create(fProject);
+ ICElement ce = CCorePlugin.getDefault().getCoreModel().create(fOutsideCdbSourceFile.getFullPath());
+ ITranslationUnit tu = (ITranslationUnit) ce;
+ assertFalse(
+ CDataUtil.isExcluded(tu.getPath(), getConfigurationDescription(fProject, false).getSourceEntries()));
+
+ CompilationDatabaseParser parser = createCompilationDatabaseParser();
+ parser.setBuildParserId(GCC_BUILD_COMMAND_PARSER_EXT);
+ parser.setCompilationDataBasePathProperty(fCdbFile.getLocation().toOSString());
+
+ ICConfigurationDescription cfgDescription = getConfigurationDescription(fProject, true);
+
+ parser.processCompileCommandsFile(null, cfgDescription);
+ assertFalse(parser.isEmpty());
+
+ parser.clear();
+ assertTrue(parser.isEmpty());
+ assertEquals(parser.getProperty(ATTR_CDB_MODIFIED_TIME), "");
+ }
+
+ public void testCloneShallow() throws Exception {
+ createTestProject();
+
+ ICProject cProject = CCorePlugin.getDefault().getCoreModel().create(fProject);
+ ICElement ce = CCorePlugin.getDefault().getCoreModel().create(fOutsideCdbSourceFile.getFullPath());
+ ITranslationUnit tu = (ITranslationUnit) ce;
+ assertFalse(
+ CDataUtil.isExcluded(tu.getPath(), getConfigurationDescription(fProject, false).getSourceEntries()));
+
+ CompilationDatabaseParser parser = createCompilationDatabaseParser();
+ parser.setBuildParserId(GCC_BUILD_COMMAND_PARSER_EXT);
+ parser.setCompilationDataBasePathProperty(fCdbFile.getLocation().toOSString());
+
+ ICConfigurationDescription cfgDescription = getConfigurationDescription(fProject, true);
+
+ parser.processCompileCommandsFile(null, cfgDescription);
+ assertFalse(parser.isEmpty());
+
+ CompilationDatabaseParser clonedShallow = parser.cloneShallow();
+ assertEquals(clonedShallow.getProperty(ATTR_CDB_PATH), parser.getProperty(ATTR_CDB_PATH));
+ assertEquals(clonedShallow.getProperty(ATTR_BUILD_PARSER_ID), parser.getProperty(ATTR_BUILD_PARSER_ID));
+ assertEquals(clonedShallow.getProperty(ATTR_EXCLUDE_FILES), parser.getProperty(ATTR_EXCLUDE_FILES));
+ assertEquals(clonedShallow.getProperty(ATTR_CDB_MODIFIED_TIME), "");
+ }
+
+ public void testClone() throws Exception {
+ createTestProject();
+
+ ICProject cProject = CCorePlugin.getDefault().getCoreModel().create(fProject);
+ ICElement ce = CCorePlugin.getDefault().getCoreModel().create(fOutsideCdbSourceFile.getFullPath());
+ ITranslationUnit tu = (ITranslationUnit) ce;
+ assertFalse(
+ CDataUtil.isExcluded(tu.getPath(), getConfigurationDescription(fProject, false).getSourceEntries()));
+
+ CompilationDatabaseParser parser = createCompilationDatabaseParser();
+ parser.setBuildParserId(GCC_BUILD_COMMAND_PARSER_EXT);
+ parser.setCompilationDataBasePathProperty(fCdbFile.getLocation().toOSString());
+
+ ICConfigurationDescription cfgDescription = getConfigurationDescription(fProject, true);
+
+ parser.processCompileCommandsFile(null, cfgDescription);
+ assertFalse(parser.isEmpty());
+
+ ICConfigurationDescription resCfgDescription = getConfigurationDescription(fProject, false);
+ List<ICLanguageSettingEntry> entries = parser.getSettingEntries(resCfgDescription, fSourceFile, GPPLanguage.ID);
+ assertExpectedEntries(parser);
+
+ CompilationDatabaseParser cloned = parser.clone();
+ entries = cloned.getSettingEntries(resCfgDescription, fSourceFile, GPPLanguage.ID);
+ assertExpectedEntries(cloned);
+ assertEquals(cloned.getProperty(ATTR_CDB_MODIFIED_TIME), parser.getProperty(ATTR_CDB_MODIFIED_TIME));
+ }
+
+ /*
+ * This test not only checks that the language settings are updated when the CDB file timestamp changes,
+ * it also tests the scenario where the parser is called with a read-only configuration description,
+ * which typically happens when the configuration gets first loaded. Testing the read-only case on
+ * its own is difficult because there is currently no way to clear the entries without reloading them when
+ * the project description is written so running the parser again after that with the read-only config
+ * would not yield any language settings differences. Updating the time-stamp allows us to see a
+ * difference before/after even running on a read-only config.
+ */
+ public void testParseCDB_UpdateWithModifiedCDB_ReadonlyConfig() throws Exception {
+ createTestProject();
+
+ ICProject cProject = CCorePlugin.getDefault().getCoreModel().create(fProject);
+ ICElement ce = CCorePlugin.getDefault().getCoreModel().create(fOutsideCdbSourceFile.getFullPath());
+ ITranslationUnit tu = (ITranslationUnit) ce;
+ assertFalse(
+ CDataUtil.isExcluded(tu.getPath(), getConfigurationDescription(fProject, false).getSourceEntries()));
+
+ CompilationDatabaseParser parser = createCompilationDatabaseParser();
+ parser.setBuildParserId(GCC_BUILD_COMMAND_PARSER_EXT);
+ parser.setCompilationDataBasePathProperty(fCdbFile.getLocation().toOSString());
+
+ ICConfigurationDescription cfgDescription = getConfigurationDescription(fProject, true);
+ addLanguageSettingsProvider(cfgDescription, parser);
+ CoreModel.getDefault().setProjectDescription(cfgDescription.getProjectDescription().getProject(),
+ cfgDescription.getProjectDescription());
+ joinLanguageSettingsJobs();
+ parser = getCompilationDatabaseParser();
+ assertFalse(parser.isEmpty());
+
+ cfgDescription = getConfigurationDescription(fProject, false);
+ assertExpectedEntries(parser);
+
+ assertFalse(CDataUtil.isExcluded(tu.getPath(), cfgDescription.getSourceEntries()));
+
+ // Modify the CDB, only to contain one file with different macro definition.
+ String sourceFilePath = fSourceFile.getLocation().toOSString();
+ CompileCommand command = new CompileCommand();
+ command.directory = fSourceFile.getParent().getLocation().toOSString();
+ command.file = sourceFilePath;
+ command.command = "g++ -I" + fFolder.getLocation().toOSString() + " -DFOO=200 " + sourceFilePath;
+ CompileCommand[] commands = new CompileCommand[1];
+ commands[0] = command;
+ String json = new Gson().toJson(commands);
+ InputStream inputStream = new ByteArrayInputStream(json.getBytes());
+ // Make sure the timestamp is different, in case the code runs fast and
+ // in case the system doesn't support milliseconds granularity.
+ while (fCdbFile.getLocalTimeStamp() / 1000 == System.currentTimeMillis() / 1000) {
+ Thread.sleep(5);
+ }
+ fCdbFile.setContents(inputStream, IFile.FORCE, null);
+
+ parser = getCompilationDatabaseParser(cfgDescription);
+ parser.setExcludeFiles(true);
+ // Intentionally using a read-only cfgDescription to test this case.
+ parser.processCompileCommandsFile(null, cfgDescription);
+ joinLanguageSettingsJobs();
+
+ cfgDescription = getConfigurationDescription(fProject, false);
+ parser = getCompilationDatabaseParser(cfgDescription);
+
+ assertTrue(CDataUtil.isExcluded(tu.getPath(), cfgDescription.getSourceEntries()));
+
+ assertFalse(parser.isEmpty());
+ List<ICLanguageSettingEntry> entries = parser.getSettingEntries(cfgDescription, fSourceFile, GPPLanguage.ID);
+
+ CIncludePathEntry expected = new CIncludePathEntry("/${ProjName}/folder",
+ CIncludePathEntry.VALUE_WORKSPACE_PATH);
+ CIncludePathEntry entry = (CIncludePathEntry) entries.get(0);
+ assertEquals(expected.getName(), entry.getName());
+ assertEquals(expected.getValue(), entry.getValue());
+ assertEquals(expected.getKind(), entry.getKind());
+ assertEquals(expected.getFlags(), entry.getFlags());
+ assertEquals(expected, entry);
+
+ assertEquals(new CMacroEntry("FOO", "200", 0), entries.get(1));
+
+ entries = parser.getSettingEntries(cfgDescription, fSourceFile2, GPPLanguage.ID);
+ assertNull(entries);
+ }
+
+ public void testParseCDB_ReloadActiveConfigOnly() throws Exception {
+ createTestProject();
+
+ ICProject cProject = CCorePlugin.getDefault().getCoreModel().create(fProject);
+ ICElement ce = CCorePlugin.getDefault().getCoreModel().create(fOutsideCdbSourceFile.getFullPath());
+ ITranslationUnit tu = (ITranslationUnit) ce;
+ assertFalse(
+ CDataUtil.isExcluded(tu.getPath(), getConfigurationDescription(fProject, false).getSourceEntries()));
+
+ CompilationDatabaseParser config1Parser = createCompilationDatabaseParser();
+ config1Parser.setBuildParserId(GCC_BUILD_COMMAND_PARSER_EXT);
+ config1Parser.setCompilationDataBasePathProperty(fCdbFile.getLocation().toOSString());
+
+ ICConfigurationDescription cfgDescription = getConfigurationDescription(fProject, true);
+
+ addLanguageSettingsProvider(cfgDescription, config1Parser);
+ final String config1_id = cfgDescription.getId();
+
+ config1Parser.processCompileCommandsFile(null, cfgDescription);
+ ICProjectDescription projectDescription = cfgDescription.getProjectDescription();
+ CoreModel.getDefault().setProjectDescription(fProject, projectDescription);
+ joinLanguageSettingsJobs();
+
+ assertExpectedEntries(config1Parser);
+
+ // Add a second config with same language settings provider configuration
+ final String config2_id = "test.config2";
+ ICConfigurationDescription cfgDescription2 = projectDescription.createConfiguration(config2_id,
+ config2_id + " Name", cfgDescription);
+
+ CompilationDatabaseParser config2Parser = getCompilationDatabaseParser(cfgDescription2);
+ config2Parser.processCompileCommandsFile(null, cfgDescription2);
+
+ CoreModel.getDefault().setProjectDescription(fProject, projectDescription);
+ joinLanguageSettingsJobs();
+
+ assertExpectedEntries(config2Parser, config2_id);
+
+ // Touch the CDB to allow a reload.
+ while (fCdbFile.getLocalTimeStamp() / 1000 == System.currentTimeMillis() / 1000) {
+ // In case the system doesn't support milliseconds granularity.
+ Thread.sleep(5);
+ }
+ fCdbFile.setLocalTimeStamp(System.currentTimeMillis());
+
+ String oldTimeStampConfig1 = config1Parser.getProperty(ATTR_CDB_MODIFIED_TIME);
+ String oldTimeStampConfig2 = config2Parser.getProperty(ATTR_CDB_MODIFIED_TIME);
+ cfgDescription = getConfigurationDescription(fProject, config1_id, true);
+ ICConfigurationDescription defaultCfgDescription = cfgDescription.getProjectDescription()
+ .getDefaultSettingConfiguration();
+ assertEquals(defaultCfgDescription, cfgDescription);
+ cfgDescription2 = getConfigurationDescription(fProject, config2_id, true);
+ assertNotEquals(defaultCfgDescription, cfgDescription2);
+
+ // Each language settings provider register to their respective config description when a project description is reloaded, this simulates that.
+ config1Parser.processCompileCommandsFile(null, cfgDescription);
+ joinLanguageSettingsJobs();
+ config2Parser.processCompileCommandsFile(null, cfgDescription2);
+ joinLanguageSettingsJobs();
+
+ assertNotEquals(oldTimeStampConfig1, config1Parser.getProperty(ATTR_CDB_MODIFIED_TIME));
+ assertEquals(oldTimeStampConfig2, config2Parser.getProperty(ATTR_CDB_MODIFIED_TIME));
+ }
+}
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/GCCBuildCommandParserTest.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/GCCBuildCommandParserTest.java
index 31877514bbc..e4b6f892b6e 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/GCCBuildCommandParserTest.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/GCCBuildCommandParserTest.java
@@ -20,6 +20,8 @@ import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import org.eclipse.cdt.core.ErrorParserManager;
import org.eclipse.cdt.core.dom.ast.gnu.cpp.GPPLanguage;
@@ -407,6 +409,59 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
}
/**
+ * Test that an option string containing extra characters after its pattern (often the source file name) gets trimmed properly.
+ */
+ public void testAbstractBuildCommandParser_FileNameRemovalInOption() throws Exception {
+ IProject project = ResourceHelper.createCDTProjectWithConfig(getName());
+ ICConfigurationDescription[] cfgDescriptions = getConfigurationDescriptions(project);
+ ICConfigurationDescription cfgDescription = cfgDescriptions[0];
+
+ final IFile file = ResourceHelper.createFile(project, "file.cpp");
+ final IFile file2 = ResourceHelper.createFile(project, "file2.cpp");
+
+ AbstractBuildCommandParser parser = new MockBuildCommandParser() {
+ final Pattern GENERIC_OPTION_PATTERN = Pattern.compile("-.*");
+
+ @Override
+ protected AbstractOptionParser[] getOptionParsers() {
+ return new AbstractOptionParser[] { new IncludePathOptionParser("-Isimple", "simple"),
+ new IncludePathOptionParser("-I(arg)withbackreference\\1", "willnotwork"),
+ new IncludePathOptionParser("-I(?<mygroup>arg)withbackreference\\k<mygroup>",
+ "backreferenceworks") };
+ }
+
+ @Override
+ protected List<String> parseOptions(String line) {
+ List<String> options = new ArrayList<>();
+ Matcher optionMatcher = GENERIC_OPTION_PATTERN.matcher(line);
+ while (optionMatcher.find()) {
+ String option = optionMatcher.group(0);
+ if (option != null) {
+ options.add(option);
+ }
+ }
+ return options;
+ }
+ };
+ parser.startup(cfgDescription, null);
+ parser.processLine("command -Iargwithbackreferencearg file.cpp");
+ parser.processLine("command -Isimple file2.cpp");
+ parser.shutdown();
+
+ ICLanguageSetting ls = cfgDescription.getLanguageSettingForFile(file.getProjectRelativePath(), true);
+ String languageId = ls.getLanguageId();
+
+ List<ICLanguageSettingEntry> entries = parser.getSettingEntries(cfgDescription, file, languageId);
+ assertEquals(1, entries.size());
+ assertEquals(new CIncludePathEntry("/${ProjName}/backreferenceworks", ICSettingEntry.VALUE_WORKSPACE_PATH),
+ entries.get(0));
+
+ entries = parser.getSettingEntries(cfgDescription, file2, languageId);
+ assertEquals(1, entries.size());
+ assertEquals(new CIncludePathEntry("/${ProjName}/simple", ICSettingEntry.VALUE_WORKSPACE_PATH), entries.get(0));
+ }
+
+ /**
* Test parsing of one typical entry.
*/
public void testOneEntry() throws Exception {
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/templateengine/tests/AllTemplateEngineTests.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/templateengine/tests/AllTemplateEngineTestSuite.java
index ba5313791b7..ece48e30e79 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/templateengine/tests/AllTemplateEngineTests.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/templateengine/tests/AllTemplateEngineTestSuite.java
@@ -23,10 +23,10 @@ import junit.framework.TestSuite;
*
* @since 4.0
*/
-public class AllTemplateEngineTests extends TestSuite {
+public class AllTemplateEngineTestSuite extends TestSuite {
public static void main(String[] args) {
- junit.textui.TestRunner.run(AllTemplateEngineTests.suite());
+ junit.textui.TestRunner.run(AllTemplateEngineTestSuite.suite());
}
/**
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/projectmodel/tests/CProjectDescriptionSerializationTests.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/projectmodel/tests/CProjectDescriptionSerializationTests.java
index f7d2fb39c40..dbe9223c266 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/projectmodel/tests/CProjectDescriptionSerializationTests.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/projectmodel/tests/CProjectDescriptionSerializationTests.java
@@ -172,6 +172,7 @@ public class CProjectDescriptionSerializationTests extends TestCase {
// Create model project and accompanied descriptions
IProject project = BuildSystemTestHelper.createProject(projectName);
ICProjectDescription des = coreModel.createProjectDescription(project, false);
+ des.setConfigurationRelations(ICProjectDescription.CONFIGS_INDEPENDENT);
Assert.assertNotNull("createDescription returned null!", des);
{
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/projectmodel/tests/ProjectModelTests.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/projectmodel/tests/ProjectModelTests.java
index d473bb553e7..db29e0a2383 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/projectmodel/tests/ProjectModelTests.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/projectmodel/tests/ProjectModelTests.java
@@ -574,126 +574,134 @@ public class ProjectModelTests extends TestCase implements IElementChangedListen
public void testMacroEntries() throws Exception {
final String projectName = "test3";
IProject project = createProject(projectName);
- CoreModel coreModel = CoreModel.getDefault();
- ICProjectDescription des = coreModel.getProjectDescription(project);
- assertNull("detDescription1 returned not null!", des);
+ try {
+ CoreModel coreModel = CoreModel.getDefault();
+ ICProjectDescription des = coreModel.getProjectDescription(project);
+ assertNull("detDescription1 returned not null!", des);
- des = coreModel.createProjectDescription(project, true);
- assertNotNull("createDescription returned null!", des);
+ des = coreModel.createProjectDescription(project, true);
+ assertNotNull("createDescription returned null!", des);
- assertNull("detDescription2 returned not null!", coreModel.getProjectDescription(project));
+ assertNull("detDescription2 returned not null!", coreModel.getProjectDescription(project));
- assertFalse("new des should be not valid", des.isValid());
+ assertFalse("new des should be not valid", des.isValid());
- assertEquals(0, des.getConfigurations().length);
+ assertEquals(0, des.getConfigurations().length);
- ManagedBuildInfo info = ManagedBuildManager.createBuildInfo(project);
- IProjectType type = ManagedBuildManager.getProjectType("cdt.managedbuild.target.gnu30.exe");
- assertNotNull("project type not found", type);
+ ManagedBuildInfo info = ManagedBuildManager.createBuildInfo(project);
+ IProjectType type = ManagedBuildManager.getProjectType("cdt.managedbuild.target.gnu30.exe");
+ assertNotNull("project type not found", type);
- ManagedProject mProj = new ManagedProject(project, type);
- info.setManagedProject(mProj);
+ ManagedProject mProj = new ManagedProject(project, type);
+ info.setManagedProject(mProj);
- IConfiguration cfgs[] = type.getConfigurations();
+ IConfiguration cfgs[] = type.getConfigurations();
- for (int i = 0; i < cfgs.length; i++) {
- String id = ManagedBuildManager.calculateChildId(cfgs[i].getId(), null);
- Configuration config = new Configuration(mProj, (Configuration) cfgs[i], id, false, true);
- CConfigurationData data = config.getConfigurationData();
- assertNotNull("data is null for created configuration", data);
- des.createConfiguration("org.eclipse.cdt.managedbuilder.core.configurationDataProvider", data);
- }
- coreModel.setProjectDescription(project, des);
-
- des = coreModel.getProjectDescription(project);
- assertNotNull("project description is null ", des);
- assertTrue("des should be valid ", des.isValid());
-
- ICConfigurationDescription cfgDess[] = des.getConfigurations();
-
- assertEquals(2, cfgDess.length);
-
- ICConfigurationDescription cfgDes = cfgDess[0];
- ICResourceDescription rcDess[] = cfgDes.getResourceDescriptions();
- assertEquals(1, rcDess.length);
- assertEquals(cfgDes.getRootFolderDescription(), rcDess[0]);
- assertFalse(cfgDes.isModified());
- assertEquals(cfgDes.getRootFolderDescription(), cfgDes.getResourceDescription(new Path(""), true));
- assertEquals(cfgDes.getRootFolderDescription(), cfgDes.getResourceDescription(new Path(""), false));
- assertEquals(cfgDes.getRootFolderDescription(), cfgDes.getResourceDescription(new Path(""), false));
- assertEquals(cfgDes.getRootFolderDescription(), cfgDes.getResourceDescription(new Path("ds/sd/sdf/"), false));
- assertEquals(cfgDes.getRootFolderDescription(), cfgDes.getResourceDescription(new Path(""), true));
- assertEquals(null, cfgDes.getResourceDescription(new Path("ds/sd/sdf/"), true));
+ for (int i = 0; i < cfgs.length; i++) {
+ String id = ManagedBuildManager.calculateChildId(cfgs[i].getId(), null);
+ Configuration config = new Configuration(mProj, (Configuration) cfgs[i], id, false, true);
+ CConfigurationData data = config.getConfigurationData();
+ assertNotNull("data is null for created configuration", data);
+ des.createConfiguration("org.eclipse.cdt.managedbuilder.core.configurationDataProvider", data);
+ }
+ coreModel.setProjectDescription(project, des);
- ICFolderDescription rf = cfgDes.getRootFolderDescription();
- ICLanguageSetting setting = rf.getLanguageSettingForFile("a.c");
- ICLanguageSettingEntry entries[] = setting.getSettingEntries(ICLanguageSettingEntry.MACRO);
+ des = coreModel.getProjectDescription(project);
+ assertNotNull("project description is null ", des);
+ assertTrue("des should be valid ", des.isValid());
+
+ ICConfigurationDescription cfgDess[] = des.getConfigurations();
+
+ assertEquals(2, cfgDess.length);
+
+ ICConfigurationDescription cfgDes = cfgDess[0];
+ ICResourceDescription rcDess[] = cfgDes.getResourceDescriptions();
+ assertEquals(1, rcDess.length);
+ assertEquals(cfgDes.getRootFolderDescription(), rcDess[0]);
+ assertFalse(cfgDes.isModified());
+ assertEquals(cfgDes.getRootFolderDescription(), cfgDes.getResourceDescription(new Path(""), true));
+ assertEquals(cfgDes.getRootFolderDescription(), cfgDes.getResourceDescription(new Path(""), false));
+ assertEquals(cfgDes.getRootFolderDescription(), cfgDes.getResourceDescription(new Path(""), false));
+ assertEquals(cfgDes.getRootFolderDescription(),
+ cfgDes.getResourceDescription(new Path("ds/sd/sdf/"), false));
+ assertEquals(cfgDes.getRootFolderDescription(), cfgDes.getResourceDescription(new Path(""), true));
+ assertEquals(null, cfgDes.getResourceDescription(new Path("ds/sd/sdf/"), true));
+
+ ICFolderDescription rf = cfgDes.getRootFolderDescription();
+ ICLanguageSetting setting = rf.getLanguageSettingForFile("a.c");
+ ICLanguageSettingEntry entries[] = setting.getSettingEntries(ICLanguageSettingEntry.MACRO);
- if (isPrint) {
- for (int i = 0; i < entries.length; i++) {
- System.out
- .println("name = \"" + entries[i].getName() + "\", value = \"" + entries[i].getValue() + "\"");
+ if (isPrint) {
+ for (int i = 0; i < entries.length; i++) {
+ System.out.println(
+ "name = \"" + entries[i].getName() + "\", value = \"" + entries[i].getValue() + "\"");
+ }
}
- }
- CMacroEntry entry = new CMacroEntry("a", "b", 0);
- List<ICLanguageSettingEntry> list = new ArrayList<>();
- list.add(entry);
- list.addAll(Arrays.asList(entries));
+ CMacroEntry entry = new CMacroEntry("a", "b", 0);
+ List<ICLanguageSettingEntry> list = new ArrayList<>();
+ list.add(entry);
+ list.addAll(Arrays.asList(entries));
- setting.setSettingEntries(ICLanguageSettingEntry.MACRO, list);
+ setting.setSettingEntries(ICLanguageSettingEntry.MACRO, list);
- ICLanguageSettingEntry updatedEntries[] = setting.getSettingEntries(ICLanguageSettingEntry.MACRO);
- assertEquals(entries.length + 1, updatedEntries.length);
+ ICLanguageSettingEntry updatedEntries[] = setting.getSettingEntries(ICLanguageSettingEntry.MACRO);
+ assertEquals(entries.length + 1, updatedEntries.length);
- boolean found = false;
- for (int i = 0; i < updatedEntries.length; i++) {
- if (updatedEntries[i].getName().equals("a") && updatedEntries[i].getValue().equals("b")) {
- found = true;
- break;
+ boolean found = false;
+ for (int i = 0; i < updatedEntries.length; i++) {
+ if (updatedEntries[i].getName().equals("a") && updatedEntries[i].getValue().equals("b")) {
+ found = true;
+ break;
+ }
}
- }
- assertTrue(found);
+ assertTrue(found);
+ } finally {
+ project.delete(true, null);
+ }
}
public void testActiveCfg() throws Exception {
final String projectName = "test8";
IProject project = createProject(projectName, "cdt.managedbuild.target.gnu30.exe");
- CoreModel coreModel = CoreModel.getDefault();
+ try {
+ CoreModel coreModel = CoreModel.getDefault();
- ICProjectDescription des = coreModel.getProjectDescription(project);
- ICConfigurationDescription cfgs[] = des.getConfigurations();
- String id1 = cfgs[0].getId();
- cfgs[1].getId();
+ ICProjectDescription des = coreModel.getProjectDescription(project);
+ ICConfigurationDescription cfgs[] = des.getConfigurations();
+ String id1 = cfgs[0].getId();
+ cfgs[1].getId();
- cfgs[0].setActive();
- assertEquals(cfgs[0], des.getActiveConfiguration());
+ cfgs[0].setActive();
+ assertEquals(cfgs[0], des.getActiveConfiguration());
- coreModel.setProjectDescription(project, des);
+ coreModel.setProjectDescription(project, des);
- des = coreModel.getProjectDescription(project);
- cfgs = des.getConfigurations();
- assertEquals(id1, des.getActiveConfiguration().getId());
+ des = coreModel.getProjectDescription(project);
+ cfgs = des.getConfigurations();
+ assertEquals(id1, des.getActiveConfiguration().getId());
- ICConfigurationDescription newActive = null;
- for (int i = 0; i < cfgs.length; i++) {
- if (!cfgs[i].getId().equals(id1)) {
- newActive = cfgs[i];
- break;
+ ICConfigurationDescription newActive = null;
+ for (int i = 0; i < cfgs.length; i++) {
+ if (!cfgs[i].getId().equals(id1)) {
+ newActive = cfgs[i];
+ break;
+ }
}
- }
-
- String newActiveId = newActive.getId();
- newActive.setActive();
- assertEquals(newActive, des.getActiveConfiguration());
- coreModel.setProjectDescription(project, des);
+ String newActiveId = newActive.getId();
+ newActive.setActive();
+ assertEquals(newActive, des.getActiveConfiguration());
- des = coreModel.getProjectDescription(project);
- assertEquals(newActiveId, des.getActiveConfiguration().getId());
+ coreModel.setProjectDescription(project, des);
+ des = coreModel.getProjectDescription(project);
+ assertEquals(newActiveId, des.getActiveConfiguration().getId());
+ } finally {
+ project.delete(true, null);
+ }
}
/**
diff --git a/build/org.eclipse.cdt.managedbuilder.core/.classpath b/build/org.eclipse.cdt.managedbuilder.core/.classpath
index 01836c4842f..e801ebfb468 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/.classpath
+++ b/build/org.eclipse.cdt.managedbuilder.core/.classpath
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/build/org.eclipse.cdt.managedbuilder.core/.settings/.api_filters b/build/org.eclipse.cdt.managedbuilder.core/.settings/.api_filters
new file mode 100644
index 00000000000..592beac0f73
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.core/.settings/.api_filters
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.cdt.managedbuilder.core" version="2">
+ <resource path="src/org/eclipse/cdt/managedbuilder/makegen/gnu/ManagedBuildGnuToolInfo.java" type="org.eclipse.cdt.managedbuilder.makegen.gnu.ManagedBuildGnuToolInfo">
+ <filter comment="Squash over zealous warning from PDE. See Bug 558477" id="576725006">
+ <message_arguments>
+ <message_argument value="IManagedBuildGnuToolInfo"/>
+ <message_argument value="ManagedBuildGnuToolInfo"/>
+ </message_arguments>
+ </filter>
+ </resource>
+</component>
diff --git a/build/org.eclipse.cdt.managedbuilder.core/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.managedbuilder.core/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.core/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.managedbuilder.core/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.managedbuilder.core/.settings/org.eclipse.jdt.core.prefs
index 2b6ecff8a01..e3a8104f9ca 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/.settings/org.eclipse.jdt.core.prefs
+++ b/build/org.eclipse.cdt.managedbuilder.core/.settings/org.eclipse.jdt.core.prefs
@@ -30,9 +30,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -49,6 +49,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
@@ -107,6 +108,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
@@ -144,13 +146,14 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -158,21 +161,24 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@@ -264,11 +270,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@@ -299,6 +306,8 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@@ -323,13 +332,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@@ -377,6 +390,8 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do no
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@@ -413,9 +428,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@@ -454,10 +472,14 @@ org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/build/org.eclipse.cdt.managedbuilder.core/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.managedbuilder.core/.settings/org.eclipse.jdt.ui.prefs
index e44576346c4..d35ba9b5231 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/.settings/org.eclipse.jdt.ui.prefs
+++ b/build/org.eclipse.cdt.managedbuilder.core/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,4 @@
+cleanup.add_all=false
cleanup.add_default_serial_version_id=true
cleanup.add_generated_serial_version_id=false
cleanup.add_missing_annotations=true
@@ -11,25 +12,72 @@ cleanup.always_use_blocks=true
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=false
cleanup.always_use_this_for_non_static_method_access=false
+cleanup.array_with_curly=false
+cleanup.arrays_fill=false
+cleanup.bitwise_conditional_expression=false
+cleanup.boolean_literal=false
+cleanup.boolean_value_rather_than_comparison=false
+cleanup.break_loop=false
+cleanup.collection_cloning=false
+cleanup.comparing_on_criteria=false
+cleanup.comparison_statement=false
+cleanup.controlflow_merge=false
cleanup.convert_functional_interfaces=false
cleanup.convert_to_enhanced_for_loop=false
+cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
+cleanup.convert_to_switch_expressions=false
cleanup.correct_indentation=false
+cleanup.do_while_rather_than_while=true
+cleanup.double_negation=false
+cleanup.else_if=false
+cleanup.embedded_if=false
+cleanup.evaluate_nullable=false
+cleanup.extract_increment=false
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
+cleanup.hash=false
+cleanup.if_condition=false
cleanup.insert_inferred_type_arguments=false
+cleanup.instanceof=false
+cleanup.instanceof_keyword=false
+cleanup.invert_equals=false
+cleanup.join=false
+cleanup.lazy_logical_operator=false
cleanup.make_local_variable_final=true
cleanup.make_parameters_final=false
cleanup.make_private_fields_final=true
cleanup.make_type_abstract_if_missing_method=false
cleanup.make_variable_declarations_final=false
+cleanup.map_cloning=false
+cleanup.merge_conditional_blocks=false
+cleanup.multi_catch=false
cleanup.never_use_blocks=false
cleanup.never_use_parentheses_in_expressions=true
+cleanup.no_string_creation=false
+cleanup.no_super=false
+cleanup.number_suffix=false
+cleanup.objects_equals=false
+cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
+cleanup.operand_factorization=false
cleanup.organize_imports=true
+cleanup.overridden_assignment=false
+cleanup.plain_replacement=false
+cleanup.precompile_regex=false
+cleanup.primitive_comparison=false
+cleanup.primitive_parsing=false
+cleanup.primitive_rather_than_wrapper=false
+cleanup.primitive_serialization=false
+cleanup.pull_out_if_from_if_else=false
+cleanup.pull_up_assignment=false
+cleanup.push_down_negation=false
cleanup.qualify_static_field_accesses_with_declaring_class=false
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
cleanup.qualify_static_member_accesses_with_declaring_class=false
cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.reduce_indentation=false
+cleanup.redundant_comparator=false
+cleanup.redundant_falling_through_block_end=false
cleanup.remove_private_constructors=true
cleanup.remove_redundant_modifiers=false
cleanup.remove_redundant_semicolons=true
@@ -37,25 +85,57 @@ cleanup.remove_redundant_type_arguments=true
cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true
cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_array_creation=false
cleanup.remove_unnecessary_casts=true
cleanup.remove_unnecessary_nls_tags=false
cleanup.remove_unused_imports=true
cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_method_parameters=false
cleanup.remove_unused_private_fields=true
cleanup.remove_unused_private_members=false
cleanup.remove_unused_private_methods=true
cleanup.remove_unused_private_types=true
+cleanup.return_expression=false
+cleanup.simplify_lambda_expression_and_method_ref=false
+cleanup.single_used_field=false
cleanup.sort_members=false
cleanup.sort_members_all=false
+cleanup.standard_comparison=false
+cleanup.static_inner_class=false
+cleanup.strictly_equal_or_different=false
+cleanup.stringbuffer_to_stringbuilder=false
+cleanup.stringbuilder=false
+cleanup.stringbuilder_for_local_vars=true
+cleanup.stringconcat_to_textblock=false
+cleanup.substring=false
+cleanup.switch=false
+cleanup.system_property=false
+cleanup.system_property_boolean=false
+cleanup.system_property_file_encoding=false
+cleanup.system_property_file_separator=false
+cleanup.system_property_line_separator=false
+cleanup.system_property_path_separator=false
+cleanup.ternary_operator=false
+cleanup.try_with_resource=false
+cleanup.unlooped_while=false
+cleanup.unreachable_block=false
cleanup.use_anonymous_class_creation=false
+cleanup.use_autoboxing=false
cleanup.use_blocks=false
cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_directly_map_method=false
cleanup.use_lambda=true
cleanup.use_parentheses_in_expressions=false
+cleanup.use_string_is_blank=false
cleanup.use_this_for_non_static_field_access=false
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
cleanup.use_this_for_non_static_method_access=false
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_unboxing=false
+cleanup.use_var=false
+cleanup.useless_continue=false
+cleanup.useless_return=false
+cleanup.valueof_rather_than_instantiation=false
cleanup_profile=_CDT
cleanup_settings_version=2
eclipse.preferences.version=1
diff --git a/build/org.eclipse.cdt.managedbuilder.core/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.managedbuilder.core/META-INF/MANIFEST.MF
index 49db4305758..e83988ef44e 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.managedbuilder.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.core; singleton:=true
-Bundle-Version: 8.7.100.qualifier
+Bundle-Version: 9.4.100.qualifier
Bundle-Activator: org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin
@@ -14,16 +14,17 @@ Export-Package: org.eclipse.cdt.build.core.scannerconfig,
org.eclipse.cdt.managedbuilder.core,
org.eclipse.cdt.managedbuilder.envvar,
org.eclipse.cdt.managedbuilder.internal.buildmodel;x-friends:="org.eclipse.cdt.managedbuilder.ui",
- org.eclipse.cdt.managedbuilder.internal.core;x-friends:="org.eclipse.cdt.managedbuilder.ui",
+ org.eclipse.cdt.managedbuilder.internal.core;x-friends:="org.eclipse.cdt.managedbuilder.ui,org.eclipse.cdt.managedbuilder.headlessbuilderapp",
org.eclipse.cdt.managedbuilder.internal.dataprovider;x-internal:=true,
org.eclipse.cdt.managedbuilder.internal.envvar;x-internal:=true,
- org.eclipse.cdt.managedbuilder.internal.language.settings.providers;x-internal:=true,
+ org.eclipse.cdt.managedbuilder.internal.language.settings.providers;x-friends:="org.eclipse.cdt.managedbuilder.ui",
org.eclipse.cdt.managedbuilder.internal.macros;x-friends:="org.eclipse.cdt.managedbuilder.ui",
org.eclipse.cdt.managedbuilder.internal.scannerconfig;x-internal:=true,
org.eclipse.cdt.managedbuilder.language.settings.providers,
org.eclipse.cdt.managedbuilder.macros,
org.eclipse.cdt.managedbuilder.makegen,
org.eclipse.cdt.managedbuilder.makegen.gnu,
+ org.eclipse.cdt.managedbuilder.makegen.gnu2;x-internal:=true,
org.eclipse.cdt.managedbuilder.makegen.internal;x-internal:=true,
org.eclipse.cdt.managedbuilder.pdomdepgen,
org.eclipse.cdt.managedbuilder.projectconverter,
@@ -32,14 +33,14 @@ Export-Package: org.eclipse.cdt.build.core.scannerconfig,
org.eclipse.cdt.managedbuilder.templateengine,
org.eclipse.cdt.managedbuilder.templateengine.processes,
org.eclipse.cdt.newmake.core
-Require-Bundle: org.eclipse.cdt.core;bundle-version="[5.0.0,7.0.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
+Require-Bundle: org.eclipse.cdt.core;bundle-version="[7.0.0,8.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.14.0,4.0.0)",
org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
org.eclipse.ui;bundle-version="[3.2.0,4.0.0)",
org.eclipse.core.variables;bundle-version="[3.1.100,4.0.0)",
org.eclipse.cdt.make.core;visibility:=reexport,
org.eclipse.core.filesystem;bundle-version="1.2.0"
Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: com.ibm.icu.text
+Bundle-RequiredExecutionEnvironment: JavaSE-11
+Import-Package: com.google.gson;version="2.8.0"
Automatic-Module-Name: org.eclipse.cdt.managedbuilder.core
diff --git a/build/org.eclipse.cdt.managedbuilder.core/about.html b/build/org.eclipse.cdt.managedbuilder.core/about.html
index 164f781a8fd..b3134865230 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/about.html
+++ b/build/org.eclipse.cdt.managedbuilder.core/about.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
</head>
+
<body lang="EN-US">
<h2>About This Content</h2>
@@ -16,7 +17,7 @@
(&quot;Content&quot;). Unless otherwise indicated below, the Content
is provided to you under the terms and conditions of the Eclipse
Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ available at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
@@ -29,8 +30,9 @@
license exists, contact the Redistributor. Unless otherwise indicated
below, the terms and conditions of the EPL still apply to any source
code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ href="https://www.eclipse.org/">https://www.eclipse.org</a>.
</p>
</body>
+
</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.managedbuilder.core/plugin.properties b/build/org.eclipse.cdt.managedbuilder.core/plugin.properties
index 5112695a91c..05c1695ec50 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/plugin.properties
+++ b/build/org.eclipse.cdt.managedbuilder.core/plugin.properties
@@ -73,7 +73,6 @@ option.name.5 = Undefined Include Paths
option.name.6 = Undefined Symbols
option.name.7 = Undefined Symbol Files
option.name.8 = Undefined Include Files
-extension.name.7 = CDT Headless Build
extension-point.name = Managed Build Tools 2.0 (Deprecated)
extension-point.name.0 = Managed Build Definitions
extension-point.name.1 = Managed Build Project Converter
@@ -84,6 +83,7 @@ GCCBuildOutputParser.name = CDT GCC Build Output Parser
GCCBuiltinCompilerSettings.name = CDT GCC Built-in Compiler Settings
GCCBuiltinCompilerSettingsMinGW.name = CDT GCC Built-in Compiler Settings MinGW
GCCBuiltinCompilerSettingsCygwin.name = CDT GCC Built-in Compiler Settings Cygwin
+CompilationDatabaseParser.name = Compilation Database Parser
ManagedBuildSettingEntries.name = CDT Managed Build Setting Entries
extension.name.8 = C/C++ Scanner Discovery Problem
extension.name.9 = HeadlessBuilder Additional Settings \ No newline at end of file
diff --git a/build/org.eclipse.cdt.managedbuilder.core/plugin.xml b/build/org.eclipse.cdt.managedbuilder.core/plugin.xml
index 8a3c70c4966..f4892de8a22 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/plugin.xml
+++ b/build/org.eclipse.cdt.managedbuilder.core/plugin.xml
@@ -355,7 +355,7 @@
variableFormat="${=}"
isVariableCaseSensitive="true"
reservedMacroNames="ROOT,DEPS,OBJS,.*_SRCS,EXECUTABLES,SUBDIRS,LIBS,USER_OBJS,.*_INPUTS,.*_OUTPUTS"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator"
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator"
macroInputFileNameValue="$(notdir $&lt;)"
macroInputFileExtValue="$(suffix $(notdir $&lt;))"
macroInputFileBaseNameValue="$(basename $(notdir $&lt;))"
@@ -592,19 +592,6 @@
</processType>
</extension>
<extension
- id="headlessbuild"
- name="%extension.name.7"
- point="org.eclipse.core.runtime.applications">
- <application
- cardinality="singleton-global"
- thread="main"
- visible="true">
- <run
- class="org.eclipse.cdt.managedbuilder.internal.core.HeadlessBuilder">
- </run>
- </application>
- </extension>
- <extension
point="org.eclipse.cdt.core.LanguageSettingsProvider">
<provider
class="org.eclipse.cdt.managedbuilder.internal.language.settings.providers.MBSLanguageSettingsProvider"
@@ -642,7 +629,13 @@
class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuildCommandParser"
id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"
name="%GCCBuildOutputParser.name"
- parameter="(g?cc)|([gc]\+\+)|(clang)"
+ parameter="([^/\\\\]*)((g?cc)|([gc]\+\+)|(clang))"
+ prefer-non-shared="true">
+ </provider>
+ <provider
+ class="org.eclipse.cdt.managedbuilder.internal.language.settings.providers.CompilationDatabaseParser"
+ id="org.eclipse.cdt.managedbuilder.core.CompilationDatabaseParser"
+ name="%CompilationDatabaseParser.name"
prefer-non-shared="true">
</provider>
</extension>
diff --git a/build/org.eclipse.cdt.managedbuilder.core/schema/ManagedBuildTools.exsd b/build/org.eclipse.cdt.managedbuilder.core/schema/ManagedBuildTools.exsd
index f530f6c8cec..ae7409bbe1d 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/schema/ManagedBuildTools.exsd
+++ b/build/org.eclipse.cdt.managedbuilder.core/schema/ManagedBuildTools.exsd
@@ -514,7 +514,7 @@ Additional special types exist to flag options of special relevance to the build
<attribute name="binaryParser" type="string">
<annotation>
<documentation>
- Set this to the ID of the binary parser for the output format of your target. Currently there are only 2 choices: org.eclipse.cdt.core.ELF for *nix targets, and &quot;org.eclipse.cdt.core.PE&quot; for targets that build for Windows, like Cygwin.
+ Set this to the ID of the binary parser for the output format of your target. Currently there are only 2 choices: org.eclipse.cdt.core.ELF for *nix targets, and &quot;org.eclipse.cdt.core.PE64&quot; for targets that build for Windows, like Cygwin.
</documentation>
</annotation>
</attribute>
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/build/internal/core/scannerconfig/CfgScannerConfigUtil.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/build/internal/core/scannerconfig/CfgScannerConfigUtil.java
index b0355bec955..2c0474b4c63 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/build/internal/core/scannerconfig/CfgScannerConfigUtil.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/build/internal/core/scannerconfig/CfgScannerConfigUtil.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2012 Intel Corporation and others.
+ * Copyright (c) 2007, 2020 Intel Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,9 +10,11 @@
*
* Contributors:
* Intel Corporation - Initial API and implementation
+ * Sergei Kovalchuk (NXP)
*******************************************************************************/
package org.eclipse.cdt.build.internal.core.scannerconfig;
+import java.text.MessageFormat;
import java.util.Set;
import java.util.TreeSet;
@@ -30,8 +32,6 @@ import org.eclipse.cdt.managedbuilder.internal.core.Tool;
import org.eclipse.cdt.managedbuilder.internal.core.ToolChain;
import org.eclipse.core.runtime.Assert;
-import com.ibm.icu.text.MessageFormat;
-
public class CfgScannerConfigUtil {
public static CfgInfoContext adjustPerRcTypeContext(CfgInfoContext context) {
if (((Configuration) context.getConfiguration()).isPreference())
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/build/internal/core/scannerconfig/PerFileSettingsCalculator.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/build/internal/core/scannerconfig/PerFileSettingsCalculator.java
index e6660e7ade1..f5311da24cd 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/build/internal/core/scannerconfig/PerFileSettingsCalculator.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/build/internal/core/scannerconfig/PerFileSettingsCalculator.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2016 Intel Corporation and others.
+ * Copyright (c) 2007, 2020 Intel Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -21,6 +21,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.Objects;
import java.util.Set;
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
@@ -266,7 +267,7 @@ public class PerFileSettingsCalculator {
if (!fExtsSet.equals(other.fExtsSet))
return false;
- if (!CDataUtil.objectsEqual(fMaxMatchInfo, other.fMaxMatchInfo))
+ if (!Objects.equals(fMaxMatchInfo, other.fMaxMatchInfo))
return false;
return true;
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IBuilder.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IBuilder.java
index 756f1adb36a..7c21837bad7 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IBuilder.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IBuilder.java
@@ -46,7 +46,6 @@ public interface IBuilder extends IHoldsOptions, IMakeBuilderInfo {
public static final String CONVERT_TO_ID = "convertToId"; //$NON-NLS-1$
public static final String VARIABLE_FORMAT = "variableFormat"; //$NON-NLS-1$
- public static final String IS_VARIABLE_CASE_SENSITIVE = "isVariableCaseSensitive"; //$NON-NLS-1$
public static final String RESERVED_MACRO_NAMES = "reservedMacroNames"; //$NON-NLS-1$
public static final String RESERVED_MACRO_NAME_SUPPLIER = "reservedMacroNameSupplier"; //$NON-NLS-1$
public static final String IS_SYSTEM = "isSystem"; //$NON-NLS-1$
@@ -274,13 +273,6 @@ public interface IBuilder extends IHoldsOptions, IMakeBuilderInfo {
public String getBuilderVariablePattern();
/**
- * Returns whether the builder supports case sensitive variables or not
- *
- * @return boolean
- */
- public boolean isVariableCaseSensitive();
-
- /**
* Returns an array of Strings representing the patterns of the builder/buildfile-generator
* reserved variables
*
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IManagedCommandLineInfo.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IManagedCommandLineInfo.java
index 4cfce2cdbca..8fc0d3cb609 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IManagedCommandLineInfo.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IManagedCommandLineInfo.java
@@ -41,7 +41,9 @@ public interface IManagedCommandLineInfo {
/**
* provide list of resources used by tool for transformation
+ * @deprecated Useless method that does not handle whitespace properly.
*/
+ @Deprecated
public String getInputs();
/**
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IOptionPathConverter.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IOptionPathConverter.java
index 189d4e94441..02889fe188e 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IOptionPathConverter.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IOptionPathConverter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (C) 2006, 2010 Siemens AG.
+ * Copyright (c) 2006, 2010 Siemens AG.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IResourceConfiguration.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IResourceConfiguration.java
index 83e88e6a084..0a3b9e2becb 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IResourceConfiguration.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IResourceConfiguration.java
@@ -228,4 +228,9 @@ public interface IResourceConfiguration extends IResourceInfo {
void setRebuildState(boolean rebuild);
void setTools(ITool[] tools);
+
+ /**
+ * @since 9.2
+ */
+ IToolChain getBaseToolChain();
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ITool.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ITool.java
index c4cd22e506b..72ab25837c5 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ITool.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ITool.java
@@ -714,4 +714,11 @@ public interface ITool extends IHoldsOptions {
void setHidden(boolean hidden);
String getUniqueRealName();
+
+ /**
+ * @since 9.4
+ */
+ default public String[] getExtraFlags(int optionType) {
+ return new String[0];
+ }
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java
index 8186fc07b92..36a52608c23 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java
@@ -88,7 +88,6 @@ import org.eclipse.cdt.managedbuilder.internal.core.FolderInfo;
import org.eclipse.cdt.managedbuilder.internal.core.IMatchKeyProvider;
import org.eclipse.cdt.managedbuilder.internal.core.InputType;
import org.eclipse.cdt.managedbuilder.internal.core.ManagedBuildInfo;
-import org.eclipse.cdt.managedbuilder.internal.core.ManagedCommandLineGenerator;
import org.eclipse.cdt.managedbuilder.internal.core.ManagedMakeMessages;
import org.eclipse.cdt.managedbuilder.internal.core.ManagedProject;
import org.eclipse.cdt.managedbuilder.internal.core.MatchKey;
@@ -112,7 +111,7 @@ import org.eclipse.cdt.managedbuilder.internal.macros.BuildMacroProvider;
import org.eclipse.cdt.managedbuilder.internal.tcmodification.ToolChainModificationManager;
import org.eclipse.cdt.managedbuilder.macros.IBuildMacroProvider;
import org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator;
-import org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator;
+import org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator;
import org.eclipse.cdt.managedbuilder.projectconverter.UpdateManagedProjectManager;
import org.eclipse.cdt.managedbuilder.tcmodification.IToolChainModificationManager;
import org.eclipse.core.resources.ICommand;
@@ -127,6 +126,7 @@ import org.eclipse.core.resources.IncrementalProjectBuilder;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtension;
import org.eclipse.core.runtime.IExtensionPoint;
@@ -313,24 +313,14 @@ public class ManagedBuildManager extends AbstractCExtension {
e.printStackTrace();
}
- // Get the project types for this project and all referenced projects
- List<IProjectType> definedTypes = null;
- // To Do
-
// Create the array and copy the elements over
int size = projectTypes != null ? projectTypes.size() : 0;
- size += definedTypes != null ? definedTypes.size() : 0;
IProjectType[] types = new IProjectType[size];
- if (size > 0) {
- int n = 0;
- for (int i = 0; i < projectTypes.size(); i++)
- types[n++] = projectTypes.get(i);
-
- if (definedTypes != null)
- for (int i = 0; i < definedTypes.size(); i++)
- types[n++] = definedTypes.get(i);
+ int n = 0;
+ for (IProjectType type : projectTypes) {
+ types[n++] = type;
}
return types;
@@ -797,7 +787,7 @@ public class ManagedBuildManager extends AbstractCExtension {
if (tool != null) {
return tool.getCommandLineGenerator();
}
- return ManagedCommandLineGenerator.getCommandLineGenerator();
+ return new ManagedCommandLineGenerator();
}
/**
@@ -858,7 +848,7 @@ public class ManagedBuildManager extends AbstractCExtension {
return;
}
} catch (BuildException e) {return;}
-
+
// Figure out if there is a listener for this change
IResource resource = config.getOwner();
List listeners = (List) getBuildModelListeners().get(resource);
@@ -1363,10 +1353,10 @@ public class ManagedBuildManager extends AbstractCExtension {
try {
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.newDocument();
-
+
// Get the build information for the project
ManagedBuildInfo buildInfo = (ManagedBuildInfo) getBuildInfo(project);
-
+
// Save the build info
if (buildInfo != null &&
!buildInfo.isReadOnly() &&
@@ -1381,7 +1371,7 @@ public class ManagedBuildManager extends AbstractCExtension {
Element rootElement = doc.createElement(ROOT_NODE_NAME);
doc.appendChild(rootElement);
buildInfo.serialize(doc, rootElement);
-
+
// Transform the document to something we can save in a file
ByteArrayOutputStream stream = new ByteArrayOutputStream();
Transformer transformer = TransformerFactory.newInstance().newTransformer();
@@ -1391,11 +1381,11 @@ public class ManagedBuildManager extends AbstractCExtension {
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(stream);
transformer.transform(source, result);
-
+
// Save the document
IFile projectFile = project.getFile(SETTINGS_FILE_NAME);
String utfString = stream.toString("UTF-8"); //$NON-NLS-1$
-
+
if (projectFile.exists()) {
if (projectFile.isReadOnly()) {
// If we are not running headless, and there is a UI Window around, grab it
@@ -1429,7 +1419,7 @@ public class ManagedBuildManager extends AbstractCExtension {
} else {
projectFile.create(new ByteArrayInputStream(utfString.getBytes("UTF-8")), IResource.FORCE, new NullProgressMonitor()); //$NON-NLS-1$
}
-
+
// Close the streams
stream.close();
}
@@ -1450,7 +1440,7 @@ public class ManagedBuildManager extends AbstractCExtension {
// Save to IFile failed
err = e;
}
-
+
if (err != null) {
// Put out an error message indicating that the attempted write to the .cdtbuild project file failed
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
@@ -1458,7 +1448,7 @@ public class ManagedBuildManager extends AbstractCExtension {
IWorkbenchWindow windows[] = PlatformUI.getWorkbench().getWorkbenchWindows();
window = windows[0];
}
-
+
final Shell shell = window.getShell();
if (shell != null) {
final String exceptionMsg = err.getMessage();
@@ -1536,9 +1526,9 @@ public class ManagedBuildManager extends AbstractCExtension {
for (int i=0; i < configs.length; i++) {
ManagedBuildManager.performValueHandlerEvent(configs[i], IManagedOptionValueHandler.EVENT_CLOSE);
}
-
+
info.setValid(false);
-
+
try {
resource.setSessionProperty(buildInfoProperty, null);
} catch (CoreException e) {
@@ -1819,7 +1809,7 @@ public class ManagedBuildManager extends AbstractCExtension {
return Status.OK_STATUS;
/*
ManagedBuildInfo buildInfo = null;
-
+
// Get the build info associated with this project for this session
try {
buildInfo = findBuildInfo(resource.getProject(), true);
@@ -1925,8 +1915,7 @@ public class ManagedBuildManager extends AbstractCExtension {
}
// So there is a project file, load the information there
- InputStream stream = new FileInputStream(cdtbuild);
- try {
+ try (InputStream stream = new FileInputStream(cdtbuild)) {
DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document = parser.parse(stream);
String fileVersion = null;
@@ -1951,8 +1940,6 @@ public class ManagedBuildManager extends AbstractCExtension {
// o The major versions are equal, but the remainder of the .cdtbuild version # is
// greater than the MBS version #
boolean compatible = false;
- if (version == null)
- compatible = false;
if (buildInfoVersion.getMajor() != version.getMajor())
compatible = false;
if (buildInfoVersion.getMinor() > version.getMinor())
@@ -2042,11 +2029,11 @@ public class ManagedBuildManager extends AbstractCExtension {
//project.setSessionProperty(buildInfoProperty, buildInfo);
setLoaddedBuildInfo(project, buildInfo);
}
- } catch (Exception e) {
- throw e;
}
- buildInfo.setValid(true);
+ if (buildInfo != null) {
+ buildInfo.setValid(true);
+ }
return buildInfo;
}
@@ -2729,7 +2716,7 @@ public class ManagedBuildManager extends AbstractCExtension {
} catch (Exception e) {
// TODO: Issue error reagarding not being able to load the project file (.cdtbuild)
}
-
+
try {
// Check if the project needs its container initialized
initBuildInfoContainer(buildInfo);
@@ -2811,7 +2798,7 @@ public class ManagedBuildManager extends AbstractCExtension {
*/
/* synchronized private static ManagedBuildInfo findBuildInfoSynchronized(IProject project, boolean forceLoad) {
ManagedBuildInfo buildInfo = null;
-
+
// Check if there is any build info associated with this project for this session
try {
buildInfo = (ManagedBuildInfo)project.getSessionProperty(buildInfoProperty);
@@ -2822,7 +2809,7 @@ public class ManagedBuildManager extends AbstractCExtension {
} catch (CoreException e) {
// return null;
}
-
+
if(buildInfo == null && forceLoad){
// Make sure the extension information is loaded first
try {
@@ -2831,11 +2818,11 @@ public class ManagedBuildManager extends AbstractCExtension {
e.printStackTrace();
return null;
}
-
-
+
+
// Check weather getBuildInfo is called from converter
buildInfo = UpdateManagedProjectManager.getConvertedManagedBuildInfo(project);
-
+
// Nothing in session store, so see if we can load it from cdtbuild
if (buildInfo == null) {
try {
@@ -2852,7 +2839,7 @@ public class ManagedBuildManager extends AbstractCExtension {
IWorkbenchWindow windows[] = PlatformUI.getWorkbench().getWorkbenchWindows();
window = windows[0];
}
-
+
final Shell shell = window.getShell();
final String exceptionMsg = e.getMessage();
//using syncExec could cause a dead-lock
@@ -2866,7 +2853,7 @@ public class ManagedBuildManager extends AbstractCExtension {
}
} );
}
-
+
if (buildInfo != null && !buildInfo.isContainerInited()) {
// NOTE: If this is called inside the above rule, then an IllegalArgumentException can
// occur when the CDT project file is saved - it uses the Workspace Root as the scheduling rule.
@@ -2880,7 +2867,7 @@ public class ManagedBuildManager extends AbstractCExtension {
}
}
}
-
+
return buildInfo;
}
*/
@@ -2974,40 +2961,22 @@ public class ManagedBuildManager extends AbstractCExtension {
* plugin
*/
public static URL getURLInBuildDefinitions(DefaultManagedConfigElement element, IPath path) {
-
- IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(EXTENSION_POINT_ID);
- if (extensionPoint != null) {
- IExtension[] extensions = extensionPoint.getExtensions();
- if (extensions != null) {
-
- // Iterate over all extensions that contribute to .buildDefinitions
- for (IExtension extension : extensions) {
- // Determine whether the configuration element that is
- // associated with the path, is valid for the extension that
- // we are currently processing.
- //
- // Note: If not done, icon file names would have to be unique
- // across several plug-ins.
- if (element.getExtension().getExtensionPointUniqueIdentifier() == extension
- .getExtensionPointUniqueIdentifier()) {
- // Get the path-name
- Bundle bundle = Platform.getBundle(extension.getNamespace());
- URL url = Platform.find(bundle, path);
- if (url != null) {
- try {
- return Platform.asLocalURL(url);
- } catch (IOException e) {
- // Ignore the exception
- return null;
- }
- } else {
- // Print a warning
- outputIconError(path.toString());
- }
- }
+ IExtension extension = element.getExtension();
+ if (extension != null) {
+ Bundle bundle = Platform.getBundle(extension.getContributor().getName());
+ URL url = FileLocator.find(bundle, path);
+ if (url != null) {
+ try {
+ return FileLocator.toFileURL(url);
+ } catch (IOException e) {
+ // Ignore the exception
}
}
}
+
+ // Print a warning
+ outputIconError(path.toString());
+
return null;
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedCommandLineGenerator.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedCommandLineGenerator.java
new file mode 100644
index 00000000000..1d5a6f715ec
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedCommandLineGenerator.java
@@ -0,0 +1,168 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2016 Intel Corporation and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Intel Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.managedbuilder.core;
+
+import java.util.stream.Stream;
+
+import org.eclipse.cdt.managedbuilder.internal.core.Tool;
+
+/**
+ * @since 9.2
+ */
+public class ManagedCommandLineGenerator implements IManagedCommandLineGenerator {
+
+ private static final String DOUBLE_QUOTE = "\""; //$NON-NLS-1$
+ private static final String WHITESPACE = " "; //$NON-NLS-1$
+
+ private static final String CMD_LINE_PRM_NAME = "COMMAND"; //$NON-NLS-1$
+ private static final String FLAGS_PRM_NAME = "FLAGS"; //$NON-NLS-1$
+ private static final String OUTPUT_FLAG_PRM_NAME = "OUTPUT_FLAG"; //$NON-NLS-1$
+ private static final String OUTPUT_PREFIX_PRM_NAME = "OUTPUT_PREFIX"; //$NON-NLS-1$
+ private static final String OUTPUT_PRM_NAME = "OUTPUT"; //$NON-NLS-1$
+ private static final String INPUTS_PRM_NAME = "INPUTS"; //$NON-NLS-1$
+ private static final String EXTRA_FLAGS_PRM_NAME = "EXTRA_FLAGS"; //$NON-NLS-1$
+
+ private String makeVariable(String variableName) {
+ return "${" + variableName + "}"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ @Override
+ public IManagedCommandLineInfo generateCommandLineInfo(ITool tool, String commandName, String[] flags,
+ String outputFlag, String outputPrefix, String outputName, String[] inputResources,
+ String commandLinePattern) {
+ if (commandLinePattern == null || commandLinePattern.length() <= 0) {
+ commandLinePattern = Tool.DEFAULT_PATTERN;
+ }
+
+ // if the output name isn't a variable then quote it
+ if (outputName.length() > 0 && outputName.indexOf("$(") != 0) { //$NON-NLS-1$
+ outputName = DOUBLE_QUOTE + outputName + DOUBLE_QUOTE;
+ }
+
+ String inputsStr = ""; //$NON-NLS-1$
+ if (inputResources != null) {
+ for (String inp : inputResources) {
+ if (inp != null && !inp.isEmpty()) {
+ // if the input resource isn't a variable then quote it
+ if (inp.indexOf("$(") != 0) { //$NON-NLS-1$
+ inp = DOUBLE_QUOTE + inp + DOUBLE_QUOTE;
+ }
+ inputsStr = inputsStr + inp + WHITESPACE;
+ }
+ }
+ inputsStr = inputsStr.trim();
+ }
+
+ String flagsStr = stringArrayToString(flags);
+
+ String command = commandLinePattern;
+
+ // Workaround GNU ld limitation that requires additional objects and libraries to be last on command line
+ String[] extraFlags = mergeArrays(tool.getExtraFlags(IOption.OBJECTS), tool.getExtraFlags(IOption.LIBRARIES));
+ String extraFlagsStr = stringArrayToString(extraFlags);
+
+ // Need to update "flags" in order to make the change visible outside the makefile generator.
+ // NOTE: Do not update the flagsStr as it would render the options listed twice!
+ flags = mergeArrays(flags, extraFlags);
+
+ command = command.replace(makeVariable(CMD_LINE_PRM_NAME), commandName);
+ command = command.replace(makeVariable(FLAGS_PRM_NAME), flagsStr);
+ command = command.replace(makeVariable(OUTPUT_FLAG_PRM_NAME), outputFlag);
+ command = command.replace(makeVariable(OUTPUT_PREFIX_PRM_NAME), outputPrefix);
+ command = command.replace(makeVariable(OUTPUT_PRM_NAME), outputName);
+ command = command.replace(makeVariable(INPUTS_PRM_NAME), inputsStr);
+ command = command.replace(makeVariable(EXTRA_FLAGS_PRM_NAME), extraFlagsStr);
+
+ command = command.replace(makeVariable(CMD_LINE_PRM_NAME.toLowerCase()), commandName);
+ command = command.replace(makeVariable(FLAGS_PRM_NAME.toLowerCase()), flagsStr);
+ command = command.replace(makeVariable(OUTPUT_FLAG_PRM_NAME.toLowerCase()), outputFlag);
+ command = command.replace(makeVariable(OUTPUT_PREFIX_PRM_NAME.toLowerCase()), outputPrefix);
+ command = command.replace(makeVariable(OUTPUT_PRM_NAME.toLowerCase()), outputName);
+ command = command.replace(makeVariable(INPUTS_PRM_NAME.toLowerCase()), inputsStr);
+ command = command.replace(makeVariable(EXTRA_FLAGS_PRM_NAME.toLowerCase()), extraFlagsStr);
+
+ return toManagedCommandLineInfo(tool, command.trim(), commandLinePattern, commandName, flags, outputFlag,
+ outputPrefix, outputName, inputResources);
+ }
+
+ @Deprecated(since = "9.2", forRemoval = true)
+ protected IManagedCommandLineInfo toManagedCommandLineInfo(String commandLine, String commandLinePattern,
+ String commandName, String[] flags, String outputFlag, String outputPrefix, String outputName,
+ String[] inputResources) {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * @since 9.3
+ */
+ protected IManagedCommandLineInfo toManagedCommandLineInfo(ITool tool, String commandLine,
+ String commandLinePattern, String commandName, String[] flags, String outputFlag, String outputPrefix,
+ String outputName, String[] inputResources) {
+ String flagsStr = stringArrayToString(flags);
+ String inputResourcesStr = stringArrayToString(inputResources);
+
+ return new IManagedCommandLineInfo() {
+ @Override
+ public String getCommandLine() {
+ return commandLine;
+ }
+
+ @Override
+ public String getCommandLinePattern() {
+ return commandLinePattern;
+ }
+
+ @Override
+ public String getCommandName() {
+ return commandName;
+ }
+
+ @Override
+ public String getFlags() {
+ return flagsStr;
+ }
+
+ @Override
+ public String getOutputFlag() {
+ return outputFlag;
+ }
+
+ @Override
+ public String getOutputPrefix() {
+ return outputPrefix;
+ }
+
+ @Override
+ public String getOutput() {
+ return outputName;
+ }
+
+ @Override
+ public String getInputs() {
+ return inputResourcesStr;
+ }
+ };
+ }
+
+ private String stringArrayToString(String[] array) {
+ if (array == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return String.join(WHITESPACE, array);
+ }
+
+ private String[] mergeArrays(String[]... arrays) {
+ return Stream.of(arrays).flatMap(Stream::of).toArray(String[]::new);
+ }
+}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/OptionStringValue.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/OptionStringValue.java
index c5ffdabefe3..1ed9732ca14 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/OptionStringValue.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/OptionStringValue.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2016 Intel Corporation and others.
+ * Copyright (c) 2007, 2020 Intel Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -14,9 +14,10 @@
*******************************************************************************/
package org.eclipse.cdt.managedbuilder.core;
+import java.util.Objects;
+
import org.eclipse.cdt.core.settings.model.ICLibraryFileEntry;
import org.eclipse.cdt.core.settings.model.ICStorageElement;
-import org.eclipse.cdt.core.settings.model.util.CDataUtil;
import org.eclipse.cdt.internal.core.SafeStringInterner;
import org.eclipse.cdt.managedbuilder.internal.core.Option;
@@ -163,16 +164,16 @@ public final class OptionStringValue {
if (isBuiltIn != other.isBuiltIn)
return false;
- if (!CDataUtil.objectsEqual(value, other.value))
+ if (!Objects.equals(value, other.value))
return false;
- if (!CDataUtil.objectsEqual(srcPath, other.srcPath))
+ if (!Objects.equals(srcPath, other.srcPath))
return false;
- if (!CDataUtil.objectsEqual(srcRootPath, other.srcRootPath))
+ if (!Objects.equals(srcRootPath, other.srcRootPath))
return false;
- if (!CDataUtil.objectsEqual(srcPrefixMapping, other.srcPrefixMapping))
+ if (!Objects.equals(srcPrefixMapping, other.srcPrefixMapping))
return false;
return true;
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/envvar/IEnvironmentVariableProvider.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/envvar/IEnvironmentVariableProvider.java
index 09326b88c61..1ce5e814a91 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/envvar/IEnvironmentVariableProvider.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/envvar/IEnvironmentVariableProvider.java
@@ -102,12 +102,6 @@ public interface IEnvironmentVariableProvider {
public String getDefaultDelimiter();
/**
- * @return true if the OS supports case sensitive variables (Unix-like systems) or false
- * if it does not (Win32 systems)
- */
- public boolean isVariableCaseSensitive();
-
- /**
* This method is defined to be used basically by the UI classes and should not be used by the
* tool-integrator
* @return the array of the provider-internal suppliers for the given level
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/buildmodel/BuildDescription.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/buildmodel/BuildDescription.java
index 629c4a11d84..7be81a763d1 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/buildmodel/BuildDescription.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/buildmodel/BuildDescription.java
@@ -26,6 +26,7 @@ import java.util.Map.Entry;
import java.util.Set;
import java.util.Vector;
+import org.eclipse.cdt.core.envvar.IEnvironmentVariable;
import org.eclipse.cdt.core.settings.model.CSourceEntry;
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
import org.eclipse.cdt.core.settings.model.ICSettingEntry;
@@ -56,7 +57,6 @@ import org.eclipse.cdt.managedbuilder.core.ITool;
import org.eclipse.cdt.managedbuilder.core.IToolChain;
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin;
-import org.eclipse.cdt.managedbuilder.envvar.IBuildEnvironmentVariable;
import org.eclipse.cdt.managedbuilder.internal.core.Configuration;
import org.eclipse.cdt.managedbuilder.internal.macros.FileContextData;
import org.eclipse.cdt.managedbuilder.internal.macros.OptionContextData;
@@ -1424,7 +1424,7 @@ public class BuildDescription implements IBuildDescription {
depFiles = new IPath[1];
depFiles[0] = new Path(
buildRc.getLocation().segment(buildRc.getLocation().segmentCount() - 1))
- .removeFileExtension().addFileExtension("d"); //$NON-NLS-1$
+ .removeFileExtension().addFileExtension("d"); //$NON-NLS-1$
}
if (depFiles != null) {
@@ -1498,11 +1498,11 @@ public class BuildDescription implements IBuildDescription {
}
protected Map<String, String> calculateEnvironment() {
- IBuildEnvironmentVariable variables[] = ManagedBuildManager.getEnvironmentVariableProvider().getVariables(fCfg,
- true, true);
+ IEnvironmentVariable[] variables = ManagedBuildManager.getEnvironmentVariableProvider().getVariables(fCfg,
+ true);
Map<String, String> map = new HashMap<>();
- for (IBuildEnvironmentVariable var : variables) {
+ for (IEnvironmentVariable var : variables) {
map.put(var.getName(), var.getValue());
}
return map;
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/buildmodel/BuildModelMessages.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/buildmodel/BuildModelMessages.java
index 1c15980a3f0..4eb1fb944a2 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/buildmodel/BuildModelMessages.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/buildmodel/BuildModelMessages.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2011 Intel Corporation and others.
+ * Copyright (c) 2007, 2020 Intel Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -11,14 +11,14 @@
* Contributors:
* Intel Corporation - Initial API and implementation
* IBM Corporation
+ * Sergei Kovalchuk (NXP)
*******************************************************************************/
package org.eclipse.cdt.managedbuilder.internal.buildmodel;
+import java.text.MessageFormat;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
-import com.ibm.icu.text.MessageFormat;
-
public class BuildModelMessages {
private static final String BUNDLE_NAME = "org.eclipse.cdt.managedbuilder.internal.buildmodel.BuildModelMessages"; //$NON-NLS-1$
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/AdditionalInput.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/AdditionalInput.java
index dada8d82a19..f37f241e131 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/AdditionalInput.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/AdditionalInput.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2005, 2019 Intel Corporation and others.
+ * Copyright (c) 2005, 2020 Intel Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -21,6 +21,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
+import java.util.regex.Pattern;
import org.eclipse.cdt.core.cdtvariables.CdtVariableException;
import org.eclipse.cdt.core.settings.model.ICStorageElement;
@@ -493,6 +494,8 @@ public class AdditionalInput implements IAdditionalInput {
return dirs;
}
+ final static Pattern extPattern = Pattern.compile("(?!\\.)(\\d+(\\.\\d+(\\.\\d+)?)?)(?![\\d\\.])$"); //$NON-NLS-1$
+
private URI findLibrary(IToolChain toolChain, final String libName, List<String> dirs) throws CoreException {
final String libSO = getDynamicLibPrefix(toolChain) + libName + '.' + getDynamicLibExtension(toolChain);
final String libA = getStaticLibPrefix(toolChain) + libName + '.' + getStaticLibExtension(toolChain);
@@ -505,15 +508,14 @@ public class AdditionalInput implements IAdditionalInput {
return false;
if (libSO.length() == name.length())
return true; // we don't necessarily have a version extension
- if (name.charAt(libSO.length()) != '.')
- return false;
- String ext = libName.substring(libSO.length() + 1);
- try {
- Integer.parseInt(ext);
- return true;
- } catch (NumberFormatException e) {
+ if (name.length() <= libSO.length() + 1 || name.charAt(libSO.length()) != '.')
return false;
- }
+ String ext = name.substring(libSO.length() + 1);
+
+ // Check the version extension to be in form of "<Major>.<Minor>.<Build>",
+ // for example: "1.10.0", "1.10", "1" are the valid version extensions
+ //
+ return extPattern.matcher(ext).matches();
}
boolean equals(String a, String b) {
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java
index 7098f24baf8..f3da4f8db5d 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2016 Intel Corporation and others.
+ * Copyright (c) 2004, 2020 Intel Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -23,6 +23,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.Objects;
import java.util.Set;
import java.util.SortedMap;
import java.util.StringTokenizer;
@@ -66,7 +67,7 @@ import org.eclipse.cdt.managedbuilder.macros.IFileContextBuildMacroValues;
import org.eclipse.cdt.managedbuilder.macros.IReservedMacroNameSupplier;
import org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator;
import org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator2;
-import org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator;
+import org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IncrementalProjectBuilder;
import org.eclipse.core.runtime.Assert;
@@ -101,7 +102,6 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider
private String convertToId;
private FileContextBuildMacroValues fileContextBuildMacroValues;
private String builderVariablePattern;
- private Boolean isVariableCaseSensitive;
private String[] reservedMacroNames;
private IReservedMacroNameSupplier reservedMacroNameSupplier;
private IConfigurationElement reservedMacroNameSupplierElement;
@@ -315,9 +315,6 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider
builderVariablePattern = builder.builderVariablePattern;
- if (builder.isVariableCaseSensitive != null)
- isVariableCaseSensitive = builder.isVariableCaseSensitive;
-
if (builder.reservedMacroNames != null)
reservedMacroNames = builder.reservedMacroNames.clone();
@@ -412,14 +409,13 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider
setCommand(builder.getCommand());
if (!getArgumentsAttribute().equals(builder.getArgumentsAttribute()))
setArgumentsAttribute(builder.getArgumentsAttribute());
- if (!CDataUtil.objectsEqual(getAutoBuildTargetAttribute(), builder.getAutoBuildTargetAttribute())) {
+ if (!Objects.equals(getAutoBuildTargetAttribute(), builder.getAutoBuildTargetAttribute())) {
autoBuildTarget = builder.getAutoBuildTargetAttribute();
}
- if (!CDataUtil.objectsEqual(getIncrementalBuildTargetAttribute(),
- builder.getIncrementalBuildTargetAttribute())) {
+ if (!Objects.equals(getIncrementalBuildTargetAttribute(), builder.getIncrementalBuildTargetAttribute())) {
incrementalBuildTarget = builder.getIncrementalBuildTargetAttribute();
}
- if (!CDataUtil.objectsEqual(getCleanBuildTargetAttribute(), builder.getCleanBuildTargetAttribute())) {
+ if (!Objects.equals(getCleanBuildTargetAttribute(), builder.getCleanBuildTargetAttribute())) {
cleanBuildTarget = builder.getCleanBuildTargetAttribute();
}
}
@@ -429,7 +425,6 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider
/* public Builder(IToolChain parent, String Id, String name, Builder builder, ICStorageElement el) {
this(parent, Id, name, builder);
-
loadFromProject(el);
}
*/
@@ -473,11 +468,6 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider
// get the 'variableFormat' attribute
builderVariablePattern = SafeStringInterner.safeIntern(element.getAttribute(VARIABLE_FORMAT));
- // get the 'isVariableCaseSensitive' attribute
- String isCS = element.getAttribute(IS_VARIABLE_CASE_SENSITIVE);
- if (isCS != null)
- isVariableCaseSensitive = Boolean.parseBoolean(isCS);
-
// get the reserved macro names
String reservedNames = element.getAttribute(RESERVED_MACRO_NAMES);
if (reservedNames != null)
@@ -1095,18 +1085,20 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider
@Override
public String getArguments() {
String args = getArgumentsAttribute();
- String stopOnErrCmd = getStopOnErrCmd(isStopOnError());
- int parallelNum = getParallelizationNum();
- String parallelCmd = isParallelBuildOn() ? getParallelizationCmd(parallelNum) : EMPTY_STRING;
+ if (isDefaultBuildArgsOnly()) {
+ String stopOnErrCmd = getStopOnErrCmd(isStopOnError());
+ int parallelNum = getParallelizationNum();
+ String parallelCmd = isParallelBuildOn() ? getParallelizationCmd(parallelNum) : EMPTY_STRING;
- String reversedStopOnErrCmd = getStopOnErrCmd(!isStopOnError());
- String reversedParallelBuildCmd = !isParallelBuildOn() ? getParallelizationCmd(parallelNum) : EMPTY_STRING;
+ String reversedStopOnErrCmd = getStopOnErrCmd(!isStopOnError());
+ String reversedParallelBuildCmd = !isParallelBuildOn() ? getParallelizationCmd(parallelNum) : EMPTY_STRING;
- args = removeCmd(args, reversedStopOnErrCmd);
- args = removeCmd(args, reversedParallelBuildCmd);
+ args = removeCmd(args, reversedStopOnErrCmd);
+ args = removeCmd(args, reversedParallelBuildCmd);
- args = addCmd(args, stopOnErrCmd);
- args = addCmd(args, parallelCmd);
+ args = addCmd(args, stopOnErrCmd);
+ args = addCmd(args, parallelCmd);
+ }
return args != null ? args.trim() : null;
}
@@ -1303,16 +1295,6 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider
@Override
public void setArguments(String newArgs) {
- if (getArguments().equals(newArgs))
- return;
-
- if (newArgs != null) {
- String stopOnErrCmd = getStopOnErrCmd(isStopOnError());
- String parallelCmd = isParallelBuildOn() ? getParallelizationCmd(getParallelizationNum()) : EMPTY_STRING;
-
- newArgs = removeCmd(newArgs, stopOnErrCmd);
- newArgs = removeCmd(newArgs, parallelCmd);
- }
setArgumentsAttribute(newArgs);
}
@@ -1485,16 +1467,6 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider
}
@Override
- public boolean isVariableCaseSensitive() {
- if (isVariableCaseSensitive == null) {
- if (superClass != null)
- return getSuperClass().isVariableCaseSensitive();
- return true;
- }
- return isVariableCaseSensitive.booleanValue();
- }
-
- @Override
public String[] getReservedMacroNames() {
if (reservedMacroNames == null && superClass != null)
return getSuperClass().getReservedMacroNames();
@@ -1867,7 +1839,6 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider
String path = getBuildPathAttribute();
if(path == null)
return true;
-
if(isWorkspaceBuildPath == null){
if(superClass != null)
return superClass.isWorkspaceBuildPath();
@@ -1899,6 +1870,16 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider
}
@Override
+ public boolean isDefaultBuildCmdOnly() {
+ return isExtensionBuilder || (command == null && superClass != null);
+ }
+
+ @Override
+ public boolean isDefaultBuildArgsOnly() {
+ return isExtensionBuilder || (args == null && superClass != null);
+ }
+
+ @Override
public boolean isStopOnError() {
if (stopOnErr == null) {
if (superClass != null) {
@@ -1957,6 +1938,28 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider
}
}
+ @Override
+ public void setUseDefaultBuildCmdOnly(boolean on) throws CoreException {
+ if (!isExtensionBuilder && superClass != null) {
+ if (on) {
+ command = null;
+ } else {
+ command = getCommand();
+ }
+ }
+ }
+
+ @Override
+ public void setUseDefaultBuildArgsOnly(boolean on) throws CoreException {
+ if (!isExtensionBuilder && superClass != null) {
+ if (on) {
+ args = null;
+ } else {
+ args = EMPTY_STRING;
+ }
+ }
+ }
+
public String getAutoBuildTargetAttribute() {
if (autoBuildTarget == null) {
if (superClass != null)
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/CommonBuilder.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/CommonBuilder.java
index f453a2c979f..2d6c149f7ce 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/CommonBuilder.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/CommonBuilder.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2019 Intel Corporation and others.
+ * Copyright (c) 2007, 2021 Intel Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -16,12 +16,14 @@
* Andrew Gvozdev (Quoin Inc) - Saving build output implemented in different way (bug 306222)
* Umair Sair (Mentor Graphics) - Project dependencies are not built in the correct order (bug 546407)
* Umair Sair (Mentor Graphics) - Setting current project for markers creation (bug 545976)
+ * Torbjörn Svensson (STMicroelectronics) - bug #571134
*******************************************************************************/
package org.eclipse.cdt.managedbuilder.internal.core;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URI;
+import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -61,6 +63,7 @@ import org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator;
import org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator2;
import org.eclipse.cdt.newmake.core.IMakeBuilderInfo;
import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IIncrementalProjectBuilder2;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceDelta;
@@ -83,7 +86,7 @@ import org.eclipse.core.runtime.SubProgressMonitor;
import org.eclipse.core.runtime.jobs.ISchedulingRule;
import org.eclipse.core.runtime.jobs.Job;
-public class CommonBuilder extends ACBuilder {
+public class CommonBuilder extends ACBuilder implements IIncrementalProjectBuilder2 {
public final static String BUILDER_ID = ManagedBuilderCorePlugin.getUniqueIdentifier() + ".genmakebuilder"; //$NON-NLS-1$
private static final String ERROR_HEADER = "GeneratedmakefileBuilder error ["; //$NON-NLS-1$
@@ -102,6 +105,7 @@ public class CommonBuilder extends ACBuilder {
private boolean fBuildErrOccured;
private Set<String> builtRefConfigIds = new HashSet<>();
+ private Set<String> scheduledConfigIds = new HashSet<>();
public CommonBuilder() {
}
@@ -436,6 +440,7 @@ public class CommonBuilder extends ACBuilder {
fBuildSet.start(this);
builtRefConfigIds.clear();
+ scheduledConfigIds.clear();
IProject project = getProject();
@@ -486,6 +491,7 @@ public class CommonBuilder extends ACBuilder {
if (status.getSeverity() != IStatus.OK)
throw new CoreException(status);
+ scheduledConfigIds.add(activeCfg.getId());
IConfiguration rcfgs[] = getReferencedConfigs(builders);
monitor.beginTask("", num + rcfgs.length); //$NON-NLS-1$
@@ -518,6 +524,8 @@ public class CommonBuilder extends ACBuilder {
build(kind, new CfgBuildInfo(builders[i], isForeground), new SubProgressMonitor(monitor, 1));
}
}
+
+ scheduledConfigIds.remove(activeCfg.getId());
}
if (isForeground)
@@ -580,6 +588,13 @@ public class CommonBuilder extends ACBuilder {
IProject project = cfg.getOwner().getProject();
fBuildSet.getCfgIdSet(project, true).add(cfg.getId());
+ if (scheduledConfigIds.contains(cfg.getId())) {
+ ManagedBuilderCorePlugin.log(new Status(IStatus.WARNING, ManagedBuilderCorePlugin.getUniqueIdentifier(),
+ MessageFormat.format(ManagedMakeMessages.getString("CommonBuilder.circular_dependency"), //$NON-NLS-1$
+ project.getName(), cfg.getName())));
+ continue;
+ }
+
if (!builtRefConfigIds.contains(cfg.getId())) {
if (VERBOSE) {
outputTrace(cfg.getOwner().getProject().getName(),
@@ -967,7 +982,7 @@ public class CommonBuilder extends ACBuilder {
//in case an error occured, make it behave in the old stile:
if (cfg.needsRebuild()) {
//make a full clean if an info needs a rebuild
- clean(new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN));
+ clean((Map<String, String>) null, new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN));
makefileRegenerationNeeded = true;
} else if (delta != null && !makefileRegenerationNeeded) {
// Create a delta visitor to detect the build type
@@ -975,7 +990,8 @@ public class CommonBuilder extends ACBuilder {
bInfo.getBuildInfo().getManagedProject().getConfigurations());
delta.accept(visitor);
if (visitor.shouldBuildFull()) {
- clean(new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN));
+ clean((Map<String, String>) null,
+ new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN));
makefileRegenerationNeeded = true;
}
}
@@ -1033,16 +1049,22 @@ public class CommonBuilder extends ACBuilder {
}
@Override
- protected void clean(IProgressMonitor monitor) throws CoreException {
+ protected final void clean(IProgressMonitor monitor) throws CoreException {
+ throw new IllegalStateException(
+ "Unexpected/incorrect call to old clean method. Client code must call clean(Map,IProgressMonitor)"); //$NON-NLS-1$
+ }
+
+ @Override
+ public void clean(Map<String, String> args, IProgressMonitor monitor) throws CoreException {
if (DEBUG_EVENTS)
- printEvent(IncrementalProjectBuilder.CLEAN_BUILD, null);
+ printEvent(IncrementalProjectBuilder.CLEAN_BUILD, args);
IProject curProject = getProject();
if (!isCdtProjectCreated(curProject))
return;
- IBuilder[] builders = ManagedBuilderCorePlugin.createBuilders(curProject, null);
+ IBuilder[] builders = ManagedBuilderCorePlugin.createBuilders(curProject, args);
for (IBuilder builder : builders) {
CfgBuildInfo bInfo = new CfgBuildInfo(builder, true);
clean(bInfo, monitor);
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java
index 81d6821d0eb..bf4b762ffab 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java
@@ -30,6 +30,7 @@ import java.util.Vector;
import org.eclipse.cdt.build.core.scannerconfig.ICfgScannerConfigBuilderInfo2Set;
import org.eclipse.cdt.build.internal.core.scannerconfig.CfgDiscoveredPathManager.PathInfoCache;
import org.eclipse.cdt.core.ErrorParserManager;
+import org.eclipse.cdt.core.cdtvariables.CdtVariableException;
import org.eclipse.cdt.core.settings.model.CSourceEntry;
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
import org.eclipse.cdt.core.settings.model.ICExternalSetting;
@@ -65,6 +66,7 @@ import org.eclipse.cdt.managedbuilder.core.IManagedOptionValueHandler;
import org.eclipse.cdt.managedbuilder.core.IManagedProject;
import org.eclipse.cdt.managedbuilder.core.IOption;
import org.eclipse.cdt.managedbuilder.core.IOptionApplicability;
+import org.eclipse.cdt.managedbuilder.core.IOptionCommandGenerator;
import org.eclipse.cdt.managedbuilder.core.IProjectType;
import org.eclipse.cdt.managedbuilder.core.IResourceConfiguration;
import org.eclipse.cdt.managedbuilder.core.IResourceInfo;
@@ -77,11 +79,15 @@ import org.eclipse.cdt.managedbuilder.envvar.IConfigurationEnvironmentVariableSu
import org.eclipse.cdt.managedbuilder.internal.dataprovider.BuildConfigurationData;
import org.eclipse.cdt.managedbuilder.internal.enablement.OptionEnablementExpression;
import org.eclipse.cdt.managedbuilder.internal.macros.BuildMacroProvider;
+import org.eclipse.cdt.managedbuilder.internal.macros.BuildfileMacroSubstitutor;
import org.eclipse.cdt.managedbuilder.internal.macros.FileContextData;
+import org.eclipse.cdt.managedbuilder.internal.macros.IMacroContextInfo;
+import org.eclipse.cdt.managedbuilder.internal.macros.IMacroContextInfoProvider;
import org.eclipse.cdt.managedbuilder.internal.macros.OptionContextData;
import org.eclipse.cdt.managedbuilder.macros.BuildMacroException;
import org.eclipse.cdt.managedbuilder.macros.IBuildMacroProvider;
import org.eclipse.cdt.managedbuilder.macros.IConfigurationBuildMacroSupplier;
+import org.eclipse.cdt.utils.cdtvariables.SupplierBasedCdtVariableSubstitutor;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceDelta;
@@ -95,6 +101,7 @@ import org.osgi.framework.Version;
public class Configuration extends BuildObject implements IConfiguration, IBuildPropertiesRestriction,
IBuildPropertyChangeListener, IRealBuildObjectAssociation {
+ private static final String WHITE_SPACE = " "; //$NON-NLS-1$
private static final String EMPTY_STRING = ""; //$NON-NLS-1$
private static final String EMPTY_CFG_ID = "org.eclipse.cdt.build.core.emptycfg"; //$NON-NLS-1$
private static final String LANGUAGE_SETTINGS_PROVIDER_DELIMITER = ";"; //$NON-NLS-1$
@@ -2600,25 +2607,51 @@ public class Configuration extends BuildObject implements IConfiguration, IBuild
IOption option = opts[i];
try {
if (option.getValueType() == IOption.OBJECTS) {
- String unresolved[] = option.getUserObjects();
- if (unresolved != null && unresolved.length > 0) {
- for (int k = 0; k < unresolved.length; k++) {
- try {
- String resolved[] = ManagedBuildManager.getBuildMacroProvider()
- .resolveStringListValueToMakefileFormat(unresolved[k], "", //$NON-NLS-1$
- " ", //$NON-NLS-1$
- IBuildMacroProvider.CONTEXT_OPTION,
- new OptionContextData(option, tool));
- if (resolved != null && resolved.length > 0)
- objs.addAll(Arrays.asList(resolved));
- } catch (BuildMacroException e) {
- // TODO: report error
- continue;
+ // check to see if the option has an applicability calculator
+ IOptionApplicability applicabilityCalculator = option.getApplicabilityCalculator();
+
+ if (applicabilityCalculator == null
+ || applicabilityCalculator.isOptionUsedInCommandLine(this, tool, option)) {
+ boolean generateDefaultCommand = true;
+ IOptionCommandGenerator commandGenerator = option.getCommandGenerator();
+ if (commandGenerator != null) {
+ SupplierBasedCdtVariableSubstitutor macroSubstitutor = new BuildfileMacroSubstitutor(
+ null, EMPTY_STRING, WHITE_SPACE);
+ IMacroContextInfoProvider provider = BuildMacroProvider.getDefault();
+ IMacroContextInfo info = provider.getMacroContextInfo(BuildMacroProvider.CONTEXT_OPTION,
+ new OptionContextData(option, tool));
+ if (info != null) {
+ macroSubstitutor.setMacroContextInfo(info);
+ String command = commandGenerator.generateCommand(option, macroSubstitutor);
+ if (command != null) {
+ objs.add(command);
+ generateDefaultCommand = false;
+ }
+ }
+ }
+
+ if (generateDefaultCommand) {
+ String unresolved[] = option.getUserObjects();
+ if (unresolved != null && unresolved.length > 0) {
+ for (int k = 0; k < unresolved.length; k++) {
+ try {
+ String resolved[] = ManagedBuildManager.getBuildMacroProvider()
+ .resolveStringListValueToMakefileFormat(unresolved[k], "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_OPTION,
+ new OptionContextData(option, tool));
+ if (resolved != null && resolved.length > 0)
+ objs.addAll(Arrays.asList(resolved));
+ } catch (BuildMacroException e) {
+ // TODO: report error
+ continue;
+ }
+ }
}
}
}
}
- } catch (BuildException e) {
+ } catch (BuildException | CdtVariableException e) {
// TODO: report error
continue;
}
@@ -2643,35 +2676,54 @@ public class Configuration extends BuildObject implements IConfiguration, IBuild
if (option.getValueType() == IOption.LIBRARIES) {
// check to see if the option has an applicability calculator
- IOptionApplicability applicabilitytCalculator = option.getApplicabilityCalculator();
-
- if (applicabilitytCalculator == null
- || applicabilitytCalculator.isOptionUsedInCommandLine(this, tool, option)) {
- String command = option.getCommand();
- String[] allLibs = option.getLibraries();
- for (int j = 0; j < allLibs.length; j++) {
- try {
- String resolved[] = ManagedBuildManager.getBuildMacroProvider()
- .resolveStringListValueToMakefileFormat(allLibs[j], "", //$NON-NLS-1$
- " ", //$NON-NLS-1$
- IBuildMacroProvider.CONTEXT_OPTION,
- new OptionContextData(option, tool));
- if (resolved != null && resolved.length > 0) {
- for (int k = 0; k < resolved.length; k++) {
- String string = resolved[k];
- if (string.length() > 0)
- libs.add(command + string);
- }
+ IOptionApplicability applicabilityCalculator = option.getApplicabilityCalculator();
+
+ if (applicabilityCalculator == null
+ || applicabilityCalculator.isOptionUsedInCommandLine(this, tool, option)) {
+ boolean generateDefaultCommand = true;
+ IOptionCommandGenerator commandGenerator = option.getCommandGenerator();
+ if (commandGenerator != null) {
+ SupplierBasedCdtVariableSubstitutor macroSubstitutor = new BuildfileMacroSubstitutor(
+ null, EMPTY_STRING, WHITE_SPACE);
+ IMacroContextInfoProvider provider = BuildMacroProvider.getDefault();
+ IMacroContextInfo info = provider.getMacroContextInfo(BuildMacroProvider.CONTEXT_OPTION,
+ new OptionContextData(option, tool));
+ if (info != null) {
+ macroSubstitutor.setMacroContextInfo(info);
+ String command = commandGenerator.generateCommand(option, macroSubstitutor);
+ if (command != null) {
+ libs.add(command);
+ generateDefaultCommand = false;
}
- } catch (BuildMacroException e) {
- // TODO: report error
- continue;
}
+ }
+ if (generateDefaultCommand) {
+ String command = option.getCommand();
+ String[] allLibs = option.getLibraries();
+ for (int j = 0; j < allLibs.length; j++) {
+ try {
+ String resolved[] = ManagedBuildManager.getBuildMacroProvider()
+ .resolveStringListValueToMakefileFormat(allLibs[j], " ", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_OPTION,
+ new OptionContextData(option, tool));
+ if (resolved != null && resolved.length > 0) {
+ for (int k = 0; k < resolved.length; k++) {
+ String string = resolved[k];
+ if (string.length() > 0)
+ libs.add(command + string);
+ }
+ }
+ } catch (BuildMacroException e) {
+ // TODO: report error
+ continue;
+ }
+ }
}
}
}
- } catch (BuildException e) {
+ } catch (BuildException | CdtVariableException e) {
// TODO: report error
continue;
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java
index 64ac3c306df..6ae65299220 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java
@@ -31,6 +31,7 @@ import org.eclipse.cdt.core.ConsoleOutputStream;
import org.eclipse.cdt.core.ErrorParserManager;
import org.eclipse.cdt.core.ICommandLauncher;
import org.eclipse.cdt.core.IMarkerGenerator;
+import org.eclipse.cdt.core.envvar.IEnvironmentVariable;
import org.eclipse.cdt.core.model.ICModelMarker;
import org.eclipse.cdt.core.resources.ACBuilder;
import org.eclipse.cdt.core.resources.IConsole;
@@ -47,7 +48,6 @@ import org.eclipse.cdt.managedbuilder.core.IConfiguration;
import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin;
-import org.eclipse.cdt.managedbuilder.envvar.IBuildEnvironmentVariable;
import org.eclipse.cdt.managedbuilder.internal.buildmodel.DescriptionBuilder;
import org.eclipse.cdt.managedbuilder.internal.buildmodel.IBuildModelBuilder;
import org.eclipse.cdt.managedbuilder.internal.buildmodel.ParallelBuilder;
@@ -978,8 +978,8 @@ public class GeneratedMakefileBuilder extends ACBuilder {
launcher.showCommand(true);
// Set the environmennt
- IBuildEnvironmentVariable variables[] = ManagedBuildManager.getEnvironmentVariableProvider()
- .getVariables(cfg, true, true);
+ IEnvironmentVariable[] variables = ManagedBuildManager.getEnvironmentVariableProvider().getVariables(cfg,
+ true);
String[] envp = null;
ArrayList<String> envList = new ArrayList<>();
if (variables != null) {
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuildMessages.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuildMessages.java
index a1e9bfecd75..d3a634dda7a 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuildMessages.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuildMessages.java
@@ -28,15 +28,8 @@ public class HeadlessBuildMessages extends NLS {
public static String HeadlessBuilder_CouldntLockWorkspace;
public static String HeadlessBuilder_Directory;
public static String HeadlessBuilder_encountered_errors;
- public static String HeadlessBuilder_EnvVar_Append;
- public static String HeadlessBuilder_EnvVar_Prepend;
- public static String HeadlessBuilder_EnvVar_Remove;
- public static String HeadlessBuilder_EnvVar_Replace;
public static String HeadlessBuilder_Error;
public static String HeadlessBuilder_help_requested;
- public static String HeadlessBuilder_importAll;
- public static String HeadlessBuilder_IncludeFile;
- public static String HeadlessBuilder_InlucdePath;
public static String HeadlessBuilder_invalid_argument;
public static String HeadlessBuilder_is_not_accessible;
public static String HeadlessBuilder_is_not_valid_in_workspace;
@@ -50,22 +43,9 @@ public class HeadlessBuildMessages extends NLS {
public static String HeadlessBuilder_RegExSyntaxError;
public static String HeadlessBuilder_Skipping;
public static String HeadlessBuilder_Skipping2;
- public static String HeadlessBuilder_ToolOption_Replace;
- public static String HeadlessBuilder_ToolOption_Append;
- public static String HeadlessBuilder_ToolOption_Prepend;
- public static String HeadlessBuilder_ToolOption_Remove;
- public static String HeadlessBuilder_ToolOption_Types;
public static String HeadlessBuilder_unknown_argument;
public static String HeadlessBuilder_URI;
- public static String HeadlessBuilder_usage;
- public static String HeadlessBuilder_usage_build;
- public static String HeadlessBuilder_usage_clean_build;
public static String HeadlessBuilder_invalid_uri;
- public static String HeadlessBuilder_PreprocessorDefine;
- public static String HeadlessBuilder_usage_import;
- public static String HeadlessBuilder_usage_marker_type;
- public static String HeadlessBuilder_usage_no_indexer;
- public static String HeadlessBuilder_usage_print_all_error_markers;
public static String HeadlessBuilder_Workspace;
public static String HeadlessBuilder_WorkspaceInUse;
static {
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuildMessages.properties b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuildMessages.properties
index a37862a7581..a883c3c089f 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuildMessages.properties
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuildMessages.properties
@@ -23,10 +23,6 @@ HeadlessBuilder_completed_successfully=Headless build completed successfully
HeadlessBuilder_CouldntLockWorkspace=Could not obtain lock for workspace location
HeadlessBuilder_Directory=Directory:\u0020
HeadlessBuilder_encountered_errors=Headless build encountered errors
-HeadlessBuilder_EnvVar_Append=\ \ \ -Ea {var=value} append value to environment variable when running all tools
-HeadlessBuilder_EnvVar_Prepend=\ \ \ -Ep {var=value} prepend value to environment variable when running all tools
-HeadlessBuilder_EnvVar_Remove=\ \ \ -Er {var} remove/unset the given environment variable
-HeadlessBuilder_EnvVar_Replace=\ \ \ -E {var=value} replace/add value to environment variable when running all tools
HeadlessBuilder_Error=Error:\u0020
HeadlessBuilder_help_requested=Help Requested
HeadlessBuilder_invalid_argument=Invalid Arguments:\u0020
@@ -43,23 +39,7 @@ HeadlessBuilder_Skipping=Skipping "
HeadlessBuilder_Skipping2=". Skipping...
HeadlessBuilder_unknown_argument=Unknown argument:\u0020
HeadlessBuilder_URI=URI:\u0020
-HeadlessBuilder_usage=Usage:\u0020
-HeadlessBuilder_usage_build=\ \ \ -build {project_name_reg_ex{/config_reg_ex} | all}
-HeadlessBuilder_usage_clean_build=\ \ \ -cleanBuild {project_name_reg_ex{/config_reg_ex} | all}
-HeadlessBuilder_usage_import=\ \ \ -import {[uri:/]/path/to/project}
-HeadlessBuilder_usage_marker_type=\ \ \ -markerType Marker types to fail build on {all | cdt | marker_id}
-HeadlessBuilder_usage_no_indexer=\ \ \ -no-indexer Disable indexer
-HeadlessBuilder_usage_print_all_error_markers=\ \ \ -printErrorMarkers Print all error markers
-HeadlessBuilder_importAll=\ \ \ -importAll {[uri:/]/path/to/projectTreeURI} Import all projects under URI
-HeadlessBuilder_IncludeFile=\ \ \ -include {include_file} additional include_file to pass to tools
-HeadlessBuilder_InlucdePath=\ \ \ -I {include_path} additional include_path to add to tools
HeadlessBuilder_invalid_uri=Invalid project URI:
HeadlessBuilder_MustSpecifyWorkspace=Must specify a location for the workspace. Restart with the '-data' switch.
-HeadlessBuilder_PreprocessorDefine=\ \ \ -D {prepoc_define} addition preprocessor defines to pass to the tools
-HeadlessBuilder_ToolOption_Replace=\ \ \ -T {toolid} {optionid=value} replace a tool option value in each configuration built
-HeadlessBuilder_ToolOption_Append=\ \ \ -Ta {toolid} {optionid=value} append to a tool option value in each configuration built
-HeadlessBuilder_ToolOption_Prepend=\ \ \ -Tp {toolid} {optionid=value} prepend to a tool option value in each configuration built
-HeadlessBuilder_ToolOption_Remove=\ \ \ -Tr {toolid} {optionid=value} remove a tool option value in each configuration built
-HeadlessBuilder_ToolOption_Types=\ \ \ Tool option values are parsed as a string, comma separated list of strings or a boolean based on the option's type\u0020
HeadlessBuilder_Workspace=Workspace\u0020
HeadlessBuilder_WorkspaceInUse=Workspace already in use\!
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuilder.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuilder.java
index a23612c389c..b630186246a 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuilder.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuilder.java
@@ -18,6 +18,7 @@
* R. Zulliger, C. Walther (Indel AG) - Bug 355609 Disable indexer
* John Dallaway - Bug 513763 Save workspace on conclusion
* Torbjörn Svensson (STMicroelectronics) - bug #330204
+ * Marc Siebenhaar (top-logic.com) - Bug #573512
*******************************************************************************/
package org.eclipse.cdt.managedbuilder.internal.core;
@@ -31,6 +32,7 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -84,6 +86,8 @@ import org.eclipse.osgi.service.datalocation.Location;
*
* IApplication ID: org.eclipse.cdt.managedbuilder.core.headlessbuild
* Provides:
+ * - Remove projects from workspace : -remove {[uri:/]/path/to/project}
+ * - Remove all projects in the tree : -removeAll {[uri:/]/path/to/projectTreeURI}
* - Import projects : -import {[uri:/]/path/to/project}
* - Import all projects in the tree : -importAll {[uri:/]/path/to/projectTreeURI}
* - Build projects / the workspace : -build {project_name_reg_ex/config_name_reg_ex | all}
@@ -100,6 +104,7 @@ import org.eclipse.osgi.service.datalocation.Location;
* - Prepend to a tool option value: -Tp {toolid} {optionid=value}
* - Remove a tool option: -Tr {toolid} {optionid=value}
* - Disable indexer: -no-indexer
+ * - Verbose progress updates: -verbose
* - Error marker types to consider: -markerType {all | cdt | marker_id}
* where:
* all is all markers -- default
@@ -116,10 +121,38 @@ public class HeadlessBuilder implements IApplication {
* IProgressMonitor to provide printing of task
*/
public static class PrintingProgressMonitor extends NullProgressMonitor {
+
+ /**
+ * During operations, such as remove projects, the subtask has useful
+ * information for users. However during a normal build there ends
+ * up being lots of output that is of little value.
+ */
+ private boolean printSubtasks;
+
+ /**
+ * The progress monitor some times received a subtask with the same
+ * name as the main task, in the UI that change is not visible,
+ * but at the command line it is an extra line of output, so
+ * suppress that case.
+ */
+ private String last;
+
+ public PrintingProgressMonitor(boolean printSubtasks) {
+ this.printSubtasks = printSubtasks;
+ }
+
@Override
public void beginTask(String name, int totalWork) {
if (name != null && name.length() > 0)
System.out.println(name);
+ last = name;
+ }
+
+ @Override
+ public void subTask(String name) {
+ if (printSubtasks && name != null && name.length() > 0 && !Objects.equals(last, name))
+ System.out.println(name);
+ last = name;
}
}
@@ -174,7 +207,13 @@ public class HeadlessBuilder implements IApplication {
public static final Integer ERROR = 1;
/** OK return status */
public static final Integer OK = IApplication.EXIT_OK;
+ /** Show usage return status */
+ public static final Integer SHOW_USAGE = 2;
+ /** Set of project URIs / paths to remove */
+ protected final Set<String> projectsToRemove = new HashSet<>();
+ /** Tree of projects to recursively remove */
+ protected final Set<String> projectTreeToRemove = new HashSet<>();
/** Set of project URIs / paths to import */
protected final Set<String> projectsToImport = new HashSet<>();
/** Tree of projects to recursively import */
@@ -186,6 +225,7 @@ public class HeadlessBuilder implements IApplication {
protected boolean buildAll = false;
protected boolean cleanAll = false;
protected boolean disableIndexer = false;
+ protected boolean verboseProgressMonitor = false;
/** List of Tool Option values being set */
protected List<ToolOption> toolOptions = new ArrayList<>();
@@ -269,18 +309,28 @@ public class HeadlessBuilder implements IApplication {
/*
* Build the given configurations using the specified build type (FULL, CLEAN, INCREMENTAL)
*/
- protected void buildConfigurations(Map<IProject, Set<ICConfigurationDescription>> projConfigs,
- final IProgressMonitor monitor, final int buildType) throws CoreException {
+ protected boolean buildConfigurations(Map<IProject, Set<ICConfigurationDescription>> projConfigs,
+ final IProgressMonitor monitor, final int buildType, List<String> allBuildErrors) throws CoreException {
+ boolean buildSuccessful = true;
for (Map.Entry<IProject, Set<ICConfigurationDescription>> entry : projConfigs.entrySet()) {
Set<ICConfigurationDescription> cfgDescs = entry.getValue();
- IConfiguration[] configs = new IConfiguration[cfgDescs.size()];
- int i = 0;
- for (ICConfigurationDescription cfgDesc : cfgDescs)
- configs[i++] = ManagedBuildManager.getConfigurationForDescription(cfgDesc);
+ for (ICConfigurationDescription cfgDesc : cfgDescs) {
+ IConfiguration[] configs = new IConfiguration[] {
+ ManagedBuildManager.getConfigurationForDescription(cfgDesc) };
+
+ ManagedBuildManager.buildConfigurations(configs, null, new SubProgressMonitor(monitor, 1), true,
+ buildType);
+
+ buildSuccessful = buildSuccessful && isProjectSuccesfullyBuild(entry.getKey());
+ if (printErrorMarkers) {
+ accumulateErrorMarkers(entry.getKey(), allBuildErrors);
+ }
+ }
- ManagedBuildManager.buildConfigurations(configs, null, new SubProgressMonitor(monitor, 1), true, buildType);
}
+
+ return buildSuccessful;
}
/**
@@ -291,7 +341,7 @@ public class HeadlessBuilder implements IApplication {
*/
protected int importProject(String projURIStr, boolean recurse) throws CoreException {
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
- IProgressMonitor monitor = new PrintingProgressMonitor();
+ IProgressMonitor monitor = new PrintingProgressMonitor(verboseProgressMonitor);
InputStream in = null;
try {
URI project_uri = null;
@@ -389,6 +439,91 @@ public class HeadlessBuilder implements IApplication {
return OK;
}
+ /**
+ * Close and remove a project from the workspace
+ * @param projURIStr base URI string
+ * @param recurse should we recurse down the URI removing all projects?
+ * @return int OK / ERROR
+ */
+ protected int removeProject(String projURIStr, boolean recurse) throws CoreException {
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+ IProgressMonitor monitor = new PrintingProgressMonitor(true);
+ InputStream in = null;
+ try {
+ URI project_uri = null;
+ try {
+ project_uri = URI.create(projURIStr);
+ } catch (Exception e) {
+ // Will be treated as straightforward path in the case below
+ }
+
+ // Handle local paths as well
+ if (project_uri == null || project_uri.getScheme() == null) {
+ IPath p = new Path(projURIStr).addTrailingSeparator();
+ project_uri = URIUtil.toURI(p);
+
+ // Handle relative paths as relative to cwd
+ if (project_uri.getScheme() == null) {
+ String cwd = System.getProperty("user.dir"); //$NON-NLS-1$
+ p = new Path(cwd).addTrailingSeparator();
+ p = p.append(projURIStr);
+ project_uri = URIUtil.toURI(p);
+ }
+ if (project_uri.getScheme() == null) {
+ System.err.println(HeadlessBuildMessages.HeadlessBuilder_invalid_uri + project_uri);
+ return ERROR;
+ }
+ }
+
+ if (recurse) {
+ if (!EFS.getStore(project_uri).fetchInfo().exists()) {
+ System.err.println(HeadlessBuildMessages.HeadlessBuilder_Directory + project_uri
+ + HeadlessBuildMessages.HeadlessBuilder_cant_be_found);
+ return ERROR;
+ }
+ for (IFileStore info : EFS.getStore(project_uri).childStores(EFS.NONE, monitor)) {
+ if (!info.fetchInfo().isDirectory())
+ continue;
+ int status = removeProject(info.toURI().toString(), recurse);
+ if (status != OK)
+ return status;
+ }
+ }
+
+ // Load the project description
+ IFileStore fstore = EFS.getStore(project_uri).getChild(".project"); //$NON-NLS-1$
+ if (!fstore.fetchInfo().exists()) {
+ if (!recurse) {
+ System.err.println(HeadlessBuildMessages.HeadlessBuilder_project + project_uri
+ + HeadlessBuildMessages.HeadlessBuilder_cant_be_found);
+ return ERROR;
+ }
+ // .project not found; OK if we're not recursing
+ return OK;
+ }
+
+ in = fstore.openInputStream(EFS.NONE, monitor);
+ IProjectDescription desc = root.getWorkspace().loadProjectDescription(in);
+
+ // Check that a project with the name exist in the workspace, then close and remove the project gently from workspace
+ IProject project = root.getProject(desc.getName());
+ if (project.exists()) {
+ if (project.isOpen()) {
+ project.close(monitor);
+ }
+ project.delete(false, true, monitor);
+ return OK;
+ }
+ } finally {
+ try {
+ if (in != null)
+ in.close();
+ } catch (IOException e2) {
+ /* don't care */ }
+ }
+ return OK;
+ }
+
protected boolean isProjectSuccesfullyBuild(IProject project) {
try {
for (String markerType : markerTypes) {
@@ -432,7 +567,6 @@ public class HeadlessBuilder implements IApplication {
if (!checkInstanceLocation())
return ERROR;
- IProgressMonitor monitor = new PrintingProgressMonitor();
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
final boolean isAutoBuilding = root.getWorkspace().isAutoBuilding();
@@ -452,7 +586,7 @@ public class HeadlessBuilder implements IApplication {
// Handle user provided arguments
if (!getArguments((String[]) context.getArguments().get(IApplicationContext.APPLICATION_ARGS)))
- return ERROR;
+ return SHOW_USAGE;
if (markerTypesDefault || markerTypesAll) {
markerTypes.clear();
@@ -479,17 +613,32 @@ public class HeadlessBuilder implements IApplication {
if (System.getProperty("org.eclipse.cdt.core.console") == null) //$NON-NLS-1$
System.setProperty("org.eclipse.cdt.core.console", "org.eclipse.cdt.core.systemConsole"); //$NON-NLS-1$ //$NON-NLS-2$
- /*
- * Perform the project import
- */
- // Import any projects that need importing
+ // Perform the import of list of project trees
+ projectTreeToImport.removeAll(projectTreeToRemove);
+ for (String projURIStr : projectTreeToImport) {
+ int status = importProject(projURIStr, true);
+ if (status != OK)
+ return status;
+ }
+
+ // Perform the removal of list of project trees
+ for (String projURIStr : projectTreeToRemove) {
+ int status = removeProject(projURIStr, true);
+ if (status != OK)
+ return status;
+ }
+
+ // Perform the import of list of single projects
+ projectsToImport.removeAll(projectsToRemove);
for (String projURIStr : projectsToImport) {
int status = importProject(projURIStr, false);
if (status != OK)
return status;
}
- for (String projURIStr : projectTreeToImport) {
- int status = importProject(projURIStr, true);
+
+ // Perform the removal of list of single projects
+ for (String projURIStr : projectsToRemove) {
+ int status = removeProject(projURIStr, false);
if (status != OK)
return status;
}
@@ -521,6 +670,8 @@ public class HeadlessBuilder implements IApplication {
ManagedBuildManager.saveBuildInfo(project, true);
}
+ IProgressMonitor monitor = new PrintingProgressMonitor(verboseProgressMonitor);
+
// Clean the projects
if (cleanAll) {
// Ensure we clean all the configurations
@@ -536,7 +687,8 @@ public class HeadlessBuilder implements IApplication {
for (String regEx : projectRegExToClean)
matchConfigurations(regEx, allProjects, configsToBuild);
// Clean the list of configurations
- buildConfigurations(configsToBuild, monitor, IncrementalProjectBuilder.CLEAN_BUILD);
+ buildConfigurations(configsToBuild, monitor, IncrementalProjectBuilder.CLEAN_BUILD,
+ new ArrayList<>());
}
// Build the projects the user wants building
@@ -545,26 +697,18 @@ public class HeadlessBuilder implements IApplication {
ACBuilder.setAllConfigBuild(true);
System.out.println(HeadlessBuildMessages.HeadlessBuilder_building_all);
- root.getWorkspace().build(IncrementalProjectBuilder.FULL_BUILD, monitor);
- for (IProject p : root.getProjects()) {
- buildSuccessful = buildSuccessful && isProjectSuccesfullyBuild(p);
- if (printErrorMarkers) {
- accumulateErrorMarkers(p, allBuildErrors);
- }
- }
+
+ // Collect build configurations for all projects in workspace
+ matchConfigurations(".*", allProjects, configsToBuild); //$NON-NLS-1$
} else {
// Resolve the regular expression project names to build configurations
for (String regEx : projectRegExToBuild)
matchConfigurations(regEx, allProjects, configsToBuild);
- // Build the list of configurations
- buildConfigurations(configsToBuild, monitor, IncrementalProjectBuilder.FULL_BUILD);
- for (IProject p : configsToBuild.keySet()) {
- buildSuccessful = buildSuccessful && isProjectSuccesfullyBuild(p);
- if (printErrorMarkers) {
- accumulateErrorMarkers(p, allBuildErrors);
- }
- }
}
+
+ // Build the list of configurations
+ buildSuccessful = buildConfigurations(configsToBuild, monitor, IncrementalProjectBuilder.FULL_BUILD,
+ allBuildErrors);
} finally {
// Reset the tool options
if (!savedToolOptions.isEmpty())
@@ -594,7 +738,7 @@ public class HeadlessBuilder implements IApplication {
root.getWorkspace().setDescription(desc);
// Save modified workspace (bug 513763)
- root.getWorkspace().save(true, monitor);
+ root.getWorkspace().save(true, new PrintingProgressMonitor(verboseProgressMonitor));
}
if (printErrorMarkers) {
if (buildSuccessful) {
@@ -643,6 +787,8 @@ public class HeadlessBuilder implements IApplication {
* Helper method to process expected arguments
*
* Arguments
+ * -remove {[uri:/]/path/to/project}
+ * -removeAll {[uri:/]/path/to/projectTreeURI} Remove all projects in the tree
* -import {[uri:/]/path/to/project}
* -importAll {[uri:/]/path/to/projectTreeURI} Import all projects in the tree
* -build {project_name_reg_ex/config_name_reg_ex | all}
@@ -659,6 +805,7 @@ public class HeadlessBuilder implements IApplication {
* -Tp {toolid} {optionid=value} prepend to a tool option value
* -Tr {toolid} {optionid=value} remove a tool option value
* -no-indexer Disable indexer
+ * -verbose Verbose progress monitor updates
* -markerType Which markers to consider
* -printErrorMarkers Print all error markers that caused build to fail
*
@@ -673,6 +820,10 @@ public class HeadlessBuilder implements IApplication {
for (int i = 0; i < args.length; i++) {
if ("-help".equals(args[i])) { //$NON-NLS-1$
throw new Exception(HeadlessBuildMessages.HeadlessBuilder_help_requested);
+ } else if ("-remove".equals(args[i])) { //$NON-NLS-1$
+ projectsToRemove.add(args[++i]);
+ } else if ("-removeAll".equals(args[i])) { //$NON-NLS-1$
+ projectTreeToRemove.add(args[++i]);
} else if ("-import".equals(args[i])) { //$NON-NLS-1$
projectsToImport.add(args[++i]);
} else if ("-importAll".equals(args[i])) { //$NON-NLS-1$
@@ -722,6 +873,8 @@ public class HeadlessBuilder implements IApplication {
addToolOption(toolId, option, ToolOption.REMOVE);
} else if ("-no-indexer".equals(args[i])) { //$NON-NLS-1$
disableIndexer = true;
+ } else if ("-verbose".equals(args[i])) { //$NON-NLS-1$
+ verboseProgressMonitor = true;
} else if ("-markerType".equals(args[i])) { //$NON-NLS-1$
addMarkerType(args[++i]);
} else if ("-printErrorMarkers".equals(args[i])) { //$NON-NLS-1$
@@ -731,30 +884,8 @@ public class HeadlessBuilder implements IApplication {
}
}
} catch (Exception e) {
- // Print usage
- System.err.println(
- HeadlessBuildMessages.HeadlessBuilder_invalid_argument + args != null ? Arrays.toString(args) : ""); //$NON-NLS-1$
+ System.err.println(HeadlessBuildMessages.HeadlessBuilder_invalid_argument + Arrays.toString(args));
System.err.println(HeadlessBuildMessages.HeadlessBuilder_Error + e.getMessage());
- System.err.println(HeadlessBuildMessages.HeadlessBuilder_usage);
- System.err.println(HeadlessBuildMessages.HeadlessBuilder_usage_import);
- System.err.println(HeadlessBuildMessages.HeadlessBuilder_importAll);
- System.err.println(HeadlessBuildMessages.HeadlessBuilder_usage_build);
- System.err.println(HeadlessBuildMessages.HeadlessBuilder_usage_clean_build);
- System.err.println(HeadlessBuildMessages.HeadlessBuilder_usage_no_indexer);
- System.err.println(HeadlessBuildMessages.HeadlessBuilder_usage_marker_type);
- System.err.println(HeadlessBuildMessages.HeadlessBuilder_usage_print_all_error_markers);
- System.err.println(HeadlessBuildMessages.HeadlessBuilder_InlucdePath);
- System.err.println(HeadlessBuildMessages.HeadlessBuilder_IncludeFile);
- System.err.println(HeadlessBuildMessages.HeadlessBuilder_PreprocessorDefine);
- System.err.println(HeadlessBuildMessages.HeadlessBuilder_EnvVar_Replace);
- System.err.println(HeadlessBuildMessages.HeadlessBuilder_EnvVar_Append);
- System.err.println(HeadlessBuildMessages.HeadlessBuilder_EnvVar_Prepend);
- System.err.println(HeadlessBuildMessages.HeadlessBuilder_EnvVar_Remove);
- System.err.println(HeadlessBuildMessages.HeadlessBuilder_ToolOption_Replace);
- System.err.println(HeadlessBuildMessages.HeadlessBuilder_ToolOption_Append);
- System.err.println(HeadlessBuildMessages.HeadlessBuilder_ToolOption_Prepend);
- System.err.println(HeadlessBuildMessages.HeadlessBuilder_ToolOption_Remove);
- System.err.println(HeadlessBuildMessages.HeadlessBuilder_ToolOption_Types);
return false;
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuilderExternalSettingsProvider.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuilderExternalSettingsProvider.java
index 46648561369..f0501865df9 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuilderExternalSettingsProvider.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuilderExternalSettingsProvider.java
@@ -58,16 +58,15 @@ public class HeadlessBuilderExternalSettingsProvider extends CExternalSettingPro
static void hookExternalSettingsProvider() {
if (additionalSettings.isEmpty())
return;
- // Remove the external settings providers from all the hooked projects
+ // hook the external settings providers to all projects
for (IProject project : ResourcesPlugin.getWorkspace().getRoot().getProjects()) {
ICProjectDescription desc = CCorePlugin.getDefault().getProjectDescription(project);
if (desc == null)
continue;
for (ICConfigurationDescription cfg : desc.getConfigurations()) {
- String[] extSettingIds = cfg.getExternalSettingsProviderIds();
- String[] newSettingIds = new String[extSettingIds.length + 1];
- System.arraycopy(extSettingIds, 0, newSettingIds, 0, extSettingIds.length);
- newSettingIds[extSettingIds.length] = ID;
+ List<String> settingIds = new ArrayList<>(Arrays.asList(cfg.getExternalSettingsProviderIds()));
+ settingIds.add(ID);
+ String[] newSettingIds = settingIds.toArray(String[]::new);
cfg.setExternalSettingsProviderIds(newSettingIds);
}
try {
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedBuildInfo.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedBuildInfo.java
index 043eab79113..c13311800e7 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedBuildInfo.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedBuildInfo.java
@@ -19,6 +19,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import org.eclipse.cdt.core.envvar.IEnvironmentVariable;
import org.eclipse.cdt.core.model.CModelException;
import org.eclipse.cdt.core.model.CoreModel;
import org.eclipse.cdt.core.model.ICProject;
@@ -50,7 +51,6 @@ import org.eclipse.cdt.managedbuilder.core.ITool;
import org.eclipse.cdt.managedbuilder.core.IToolChain;
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin;
-import org.eclipse.cdt.managedbuilder.envvar.IBuildEnvironmentVariable;
import org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider;
import org.eclipse.cdt.managedbuilder.internal.macros.OptionContextData;
import org.eclipse.cdt.managedbuilder.internal.scannerconfig.ManagedBuildCPathEntryContainer;
@@ -993,8 +993,8 @@ public class ManagedBuildInfo implements IManagedBuildInfo, IScannerInfo {
private String getCWD() {
String cwd = ""; //$NON-NLS-1$
- IBuildEnvironmentVariable cwdvar = ManagedBuildManager.getEnvironmentVariableProvider().getVariable("CWD", //$NON-NLS-1$
- getDefaultConfiguration(), false, true);
+ IEnvironmentVariable cwdvar = ManagedBuildManager.getEnvironmentVariableProvider().getVariable("CWD", //$NON-NLS-1$
+ getDefaultConfiguration(), true);
if (cwdvar != null) {
cwd = cwdvar.getValue().replace('\\', '/');
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedCommandLineGenerator.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedCommandLineGenerator.java
index 6e52fc3b789..d447167cf20 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedCommandLineGenerator.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedCommandLineGenerator.java
@@ -17,6 +17,10 @@ import org.eclipse.cdt.managedbuilder.core.IManagedCommandLineGenerator;
import org.eclipse.cdt.managedbuilder.core.IManagedCommandLineInfo;
import org.eclipse.cdt.managedbuilder.core.ITool;
+/**
+ * @deprecated Use {@link org.eclipse.cdt.managedbuilder.core.ManagedCommandLineGenerator}
+ */
+@Deprecated
public class ManagedCommandLineGenerator implements IManagedCommandLineGenerator {
public final String AT = "@"; //$NON-NLS-1$
@@ -51,7 +55,6 @@ public class ManagedCommandLineGenerator implements IManagedCommandLineGenerator
private static ManagedCommandLineGenerator cmdLineGen;
protected ManagedCommandLineGenerator() {
- cmdLineGen = null;
}
public static ManagedCommandLineGenerator getCommandLineGenerator() {
@@ -60,70 +63,12 @@ public class ManagedCommandLineGenerator implements IManagedCommandLineGenerator
return cmdLineGen;
}
- private String makeVariable(String variableName) {
- return "${" + variableName + "}"; //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.cdt.managedbuilder.core.IManagedCommandLineGenerator#getCommandLineInfo(org.eclipse.cdt.managedbuilder.core.ITool, java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String[], java.lang.String)
- */
@Override
public IManagedCommandLineInfo generateCommandLineInfo(ITool tool, String commandName, String[] flags,
String outputFlag, String outputPrefix, String outputName, String[] inputResources,
String commandLinePattern) {
- if (commandLinePattern == null || commandLinePattern.length() <= 0)
- commandLinePattern = Tool.DEFAULT_PATTERN;
-
- // if the output name isn't a variable then quote it
- if (outputName.length() > 0 && outputName.indexOf("$(") != 0) //$NON-NLS-1$
- outputName = DOUBLE_QUOTE + outputName + DOUBLE_QUOTE;
-
- String inputsStr = ""; //$NON-NLS-1$
- if (inputResources != null) {
- for (String inp : inputResources) {
- if (inp != null && inp.length() > 0) {
- // if the input resource isn't a variable then quote it
- if (inp.indexOf("$(") != 0) { //$NON-NLS-1$
- inp = DOUBLE_QUOTE + inp + DOUBLE_QUOTE;
- }
- inputsStr = inputsStr + inp + WHITESPACE;
- }
- }
- inputsStr = inputsStr.trim();
- }
-
- String flagsStr = stringArrayToString(flags);
-
- String command = commandLinePattern;
-
- command = command.replace(makeVariable(CMD_LINE_PRM_NAME), commandName);
- command = command.replace(makeVariable(FLAGS_PRM_NAME), flagsStr);
- command = command.replace(makeVariable(OUTPUT_FLAG_PRM_NAME), outputFlag);
- command = command.replace(makeVariable(OUTPUT_PREFIX_PRM_NAME), outputPrefix);
- command = command.replace(makeVariable(OUTPUT_PRM_NAME), outputName);
- command = command.replace(makeVariable(INPUTS_PRM_NAME), inputsStr);
-
- command = command.replace(makeVariable(CMD_LINE_PRM_NAME.toLowerCase()), commandName);
- command = command.replace(makeVariable(FLAGS_PRM_NAME.toLowerCase()), flagsStr);
- command = command.replace(makeVariable(OUTPUT_FLAG_PRM_NAME.toLowerCase()), outputFlag);
- command = command.replace(makeVariable(OUTPUT_PREFIX_PRM_NAME.toLowerCase()), outputPrefix);
- command = command.replace(makeVariable(OUTPUT_PRM_NAME.toLowerCase()), outputName);
- command = command.replace(makeVariable(INPUTS_PRM_NAME.toLowerCase()), inputsStr);
-
- return new ManagedCommandLineInfo(command.trim(), commandLinePattern, commandName, stringArrayToString(flags),
- outputFlag, outputPrefix, outputName, stringArrayToString(inputResources));
+ // Forward the call to the API implementation
+ return new org.eclipse.cdt.managedbuilder.core.ManagedCommandLineGenerator().generateCommandLineInfo(tool,
+ commandName, flags, outputFlag, outputPrefix, outputName, inputResources, commandLinePattern);
}
-
- private String stringArrayToString(String[] array) {
- if (array == null || array.length <= 0)
- return ""; //$NON-NLS-1$
- StringBuilder sb = new StringBuilder();
- for (int i = 0; i < array.length; i++) {
- if (i > 0) // we add whitespace after each but not first so .trim() is a no-op
- sb.append(WHITESPACE);
- sb.append(array[i]);
- }
- return sb.toString().trim();
- }
-
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedCommandLineInfo.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedCommandLineInfo.java
index c90d4e726ab..02f6d745354 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedCommandLineInfo.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedCommandLineInfo.java
@@ -15,6 +15,10 @@ package org.eclipse.cdt.managedbuilder.internal.core;
import org.eclipse.cdt.managedbuilder.core.IManagedCommandLineInfo;
+/**
+ * @deprecated Use {@link org.eclipse.cdt.managedbuilder.core.ManagedCommandLineGenerator}
+ */
+@Deprecated
public class ManagedCommandLineInfo implements IManagedCommandLineInfo {
private String commandLine;
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedMakeMessages.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedMakeMessages.java
index 0380c9cf5fb..053e7b3e906 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedMakeMessages.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedMakeMessages.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2011 IBM Corporation and others.
+ * Copyright (c) 2004, 2020 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,14 +10,14 @@
*
* Contributors:
* IBM - Initial API and implementation
+ * Sergei Kovalchuk (NXP)
*******************************************************************************/
package org.eclipse.cdt.managedbuilder.internal.core;
+import java.text.MessageFormat;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
-import com.ibm.icu.text.MessageFormat;
-
/**
* @since 2.0
*/
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/MultiFileInfo.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/MultiFileInfo.java
index de509d8ab8b..c56e36347ac 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/MultiFileInfo.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/MultiFileInfo.java
@@ -18,6 +18,7 @@ import org.eclipse.cdt.managedbuilder.core.IConfiguration;
import org.eclipse.cdt.managedbuilder.core.IFileInfo;
import org.eclipse.cdt.managedbuilder.core.IResourceInfo;
import org.eclipse.cdt.managedbuilder.core.ITool;
+import org.eclipse.cdt.managedbuilder.core.IToolChain;
import org.eclipse.core.resources.IResource;
/**
@@ -160,4 +161,9 @@ public class MultiFileInfo extends MultiResourceInfo implements IFileInfo {
}
}
+ @Override
+ public IToolChain getBaseToolChain() {
+ return ((IFileInfo) fRis[curr]).getBaseToolChain();
+ }
+
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Option.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Option.java
index 8a16828d6c3..393df9fe958 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Option.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Option.java
@@ -17,6 +17,7 @@
*******************************************************************************/
package org.eclipse.cdt.managedbuilder.internal.core;
+import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -29,6 +30,7 @@ import org.eclipse.cdt.internal.core.SafeStringInterner;
import org.eclipse.cdt.managedbuilder.core.BuildException;
import org.eclipse.cdt.managedbuilder.core.IBuildObject;
import org.eclipse.cdt.managedbuilder.core.IBuildPropertiesRestriction;
+import org.eclipse.cdt.managedbuilder.core.IConfiguration;
import org.eclipse.cdt.managedbuilder.core.IHoldsOptions;
import org.eclipse.cdt.managedbuilder.core.IManagedConfigElement;
import org.eclipse.cdt.managedbuilder.core.IManagedOptionValueHandler;
@@ -54,10 +56,10 @@ import org.eclipse.core.runtime.Status;
import org.osgi.framework.Version;
public class Option extends BuildObject implements IOption, IBuildPropertiesRestriction {
- private static final String IS_BUILTIN_EMPTY = "IS_BUILTIN_EMPTY";
- private static final String IS_VALUE_EMPTY = "IS_VALUE_EMPTY";
+ private static final String IS_BUILTIN_EMPTY = "IS_BUILTIN_EMPTY"; //$NON-NLS-1$
+ private static final String IS_VALUE_EMPTY = "IS_VALUE_EMPTY"; //$NON-NLS-1$
// Static default return values
- public static final String EMPTY_STRING = "";
+ public static final String EMPTY_STRING = ""; //$NON-NLS-1$
public static final String[] EMPTY_STRING_ARRAY = new String[0];
public static final OptionStringValue[] EMPTY_LV_ARRAY = new OptionStringValue[0];
@@ -511,7 +513,37 @@ public class Option extends BuildObject implements IOption, IBuildPropertiesRest
if (superClassId != null && superClassId.length() > 0) {
superClass = ManagedBuildManager.getExtensionOption(superClassId);
if (superClass == null) {
- // TODO: Report error
+ /*
+ * This can happen when options are set at the resource level, for a project using a toolchain definition
+ * where there are options at the toolchain level & one or more of those options is set at a
+ * non-default value.
+ *
+ * In these cases the superclass is set to the option from the parent not the extension's ID
+ * Workaround this by searching for any missing superclass IDs at on the parent configs toolchain
+ *
+ * See the "bug580009.tests.cfg1.tc" definition in org.eclipse.cdt.managedbuilder.core.tests for an example
+ */
+ IBuildObject parent = this.getParent();
+ if (parent instanceof IToolChain) {
+ IConfiguration config = ((IToolChain) parent).getParent();
+ IOption foundOption = null;
+ //In rare cases the RootFolderInfo may not have loaded & will cause an NPE
+ if (config != null && config.getRootFolderInfo() != null) {
+ IToolChain parentToolchain = config.getToolChain();
+ if (parentToolchain != null) {
+ foundOption = parentToolchain.getOptionById(superClassId);
+ }
+ }
+ if (foundOption != null) {
+ superClass = foundOption;
+ } else {
+ ManagedBuilderCorePlugin.log(new Status(IStatus.ERROR, ManagedBuilderCorePlugin.PLUGIN_ID,
+ MessageFormat.format("Missing superclass \"{0}\" for \"{1}\"", superClassId, getId()))); //$NON-NLS-1$
+ }
+ } else {
+ ManagedBuilderCorePlugin.log(new Status(IStatus.ERROR, ManagedBuilderCorePlugin.PLUGIN_ID,
+ MessageFormat.format("Missing superclass \"{0}\" for \"{1}\"", superClassId, getId()))); //$NON-NLS-1$
+ }
}
}
@@ -668,13 +700,13 @@ public class Option extends BuildObject implements IOption, IBuildPropertiesRest
boolean isBuiltinEmpty = false;
if (element.getAttribute(IS_VALUE_EMPTY) != null) {
- Boolean isEmpty = new Boolean(element.getAttribute(IS_VALUE_EMPTY));
+ Boolean isEmpty = Boolean.valueOf(element.getAttribute(IS_VALUE_EMPTY));
if (isEmpty.booleanValue()) {
isValueEmpty = true;
}
}
if (element.getAttribute(IS_BUILTIN_EMPTY) != null) {
- Boolean isEmpty = new Boolean(element.getAttribute(IS_BUILTIN_EMPTY));
+ Boolean isEmpty = Boolean.valueOf(element.getAttribute(IS_BUILTIN_EMPTY));
if (isEmpty.booleanValue()) {
isBuiltinEmpty = true;
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/PluginResources.properties b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/PluginResources.properties
index f56b381c147..92cd9a7fe09 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/PluginResources.properties
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/PluginResources.properties
@@ -164,6 +164,7 @@ CommonBuilder.13=can not clean programmatically: build folder is not accessible
CommonBuilder.22=Building referenced configurations..
CommonBuilder.23=Buildfile generation error occurred..
CommonBuilder.24=Build stopped..
+CommonBuilder.circular_dependency=Circular dependency detected in "Project Properties -> C/C++ General -> Path and Symbols -> References tab" for project {0} <{1}>. Build of dependency aborted to prevent infinite cyclic build.
ParallelBuilder.missingOutDir=Failed to create output directory {0}
MakeBuilder.buildError=
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ResourceConfiguration.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ResourceConfiguration.java
index 74ce5b7a7a7..5ee7e6c027a 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ResourceConfiguration.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ResourceConfiguration.java
@@ -918,6 +918,7 @@ public class ResourceConfiguration extends ResourceInfo implements IFileInfo {
return list.toArray(new BuildLanguageData[list.size()]);
}
+ @Override
public IToolChain getBaseToolChain() {
ITool tools[] = getToolsToInvoke();
ITool baseTool = null;
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java
index 894a6c9eea6..9b01d256fa6 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java
@@ -65,6 +65,7 @@ import org.eclipse.cdt.managedbuilder.core.ITool;
import org.eclipse.cdt.managedbuilder.core.IToolChain;
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin;
+import org.eclipse.cdt.managedbuilder.core.ManagedCommandLineGenerator;
import org.eclipse.cdt.managedbuilder.internal.dataprovider.BuildEntryStorage;
import org.eclipse.cdt.managedbuilder.internal.dataprovider.BuildLanguageData;
import org.eclipse.cdt.managedbuilder.internal.enablement.OptionEnablementExpression;
@@ -73,6 +74,8 @@ import org.eclipse.cdt.managedbuilder.internal.macros.BuildfileMacroSubstitutor;
import org.eclipse.cdt.managedbuilder.internal.macros.FileContextData;
import org.eclipse.cdt.managedbuilder.internal.macros.IMacroContextInfo;
import org.eclipse.cdt.managedbuilder.internal.macros.IMacroContextInfoProvider;
+import org.eclipse.cdt.managedbuilder.internal.macros.OptionContextData;
+import org.eclipse.cdt.managedbuilder.macros.BuildMacroException;
import org.eclipse.cdt.managedbuilder.macros.IBuildMacroProvider;
import org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyGenerator;
import org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyGeneratorType;
@@ -102,7 +105,7 @@ import org.osgi.framework.Version;
public class Tool extends HoldsOptions
implements ITool, IOptionCategory, IMatchKeyProvider<Tool>, IRealBuildObjectAssociation {
- public static final String DEFAULT_PATTERN = "${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}"; //$NON-NLS-1$
+ public static final String DEFAULT_PATTERN = "${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS} ${EXTRA_FLAGS}"; //$NON-NLS-1$
public static final String DEFAULT_CBS_PATTERN = "${COMMAND}"; //$NON-NLS-1$
//property name for holding the rebuild state
@@ -2190,7 +2193,7 @@ public class Tool extends HoldsOptions
} catch (CoreException e) {
}
}
- return ManagedCommandLineGenerator.getCommandLineGenerator();
+ return new ManagedCommandLineGenerator();
}
/* (non-Javadoc)
@@ -2655,15 +2658,37 @@ public class Tool extends HoldsOptions
boolean generateDefaultCommand = true;
IOptionCommandGenerator commandGenerator = option.getCommandGenerator();
if (commandGenerator != null) {
- IMacroContextInfo info = provider.getMacroContextInfo(BuildMacroProvider.CONTEXT_FILE,
- new FileContextData(inputFileLocation, outputFileLocation, option, this));
- if (info != null) {
- macroSubstitutor.setMacroContextInfo(info);
- String command = commandGenerator.generateCommand(option, macroSubstitutor);
- if (command != null) {
- sb.append(command);
- generateDefaultCommand = false;
+ switch (option.getValueType()) {
+ case IOption.BOOLEAN:
+ case IOption.ENUMERATED:
+ case IOption.TREE:
+ case IOption.STRING:
+ case IOption.STRING_LIST:
+ case IOption.INCLUDE_FILES:
+ case IOption.INCLUDE_PATH:
+ case IOption.LIBRARY_PATHS:
+ case IOption.LIBRARY_FILES:
+ case IOption.MACRO_FILES:
+ case IOption.UNDEF_INCLUDE_FILES:
+ case IOption.UNDEF_INCLUDE_PATH:
+ case IOption.UNDEF_LIBRARY_PATHS:
+ case IOption.UNDEF_LIBRARY_FILES:
+ case IOption.UNDEF_MACRO_FILES:
+ case IOption.PREPROCESSOR_SYMBOLS:
+ case IOption.UNDEF_PREPROCESSOR_SYMBOLS:
+ IMacroContextInfo info = provider.getMacroContextInfo(BuildMacroProvider.CONTEXT_FILE,
+ new FileContextData(inputFileLocation, outputFileLocation, option, this));
+ if (info != null) {
+ macroSubstitutor.setMacroContextInfo(info);
+ String command = commandGenerator.generateCommand(option, macroSubstitutor);
+ if (command != null) {
+ sb.append(command);
+ generateDefaultCommand = false;
+ }
}
+ break;
+ default:
+ break;
}
}
if (generateDefaultCommand) {
@@ -4228,4 +4253,102 @@ public class Tool extends HoldsOptions
// Tool does not have any ApplicabilityCalculator.
return null;
}
+
+ @Override
+ public String[] getExtraFlags(int optionType) {
+ if (optionType != IOption.LIBRARIES && optionType != IOption.OBJECTS) {
+ // Early exit to avoid performance penalty
+ return new String[0];
+ }
+
+ Vector<String> flags = new Vector<>();
+ for (IOption option : getOptions()) {
+ try {
+ if (option.getValueType() != optionType) {
+ continue;
+ }
+
+ // check to see if the option has an applicability calculator
+ IOptionApplicability applicabilityCalculator = option.getApplicabilityCalculator();
+
+ if (applicabilityCalculator == null
+ || applicabilityCalculator.isOptionUsedInCommandLine(this, this, option)) {
+ boolean generateDefaultCommand = true;
+ IOptionCommandGenerator commandGenerator = option.getCommandGenerator();
+ if (commandGenerator != null) {
+ SupplierBasedCdtVariableSubstitutor macroSubstitutor = new BuildfileMacroSubstitutor(null,
+ EMPTY_STRING, WHITE_SPACE);
+ IMacroContextInfoProvider provider = BuildMacroProvider.getDefault();
+ IMacroContextInfo info = provider.getMacroContextInfo(BuildMacroProvider.CONTEXT_OPTION,
+ new OptionContextData(option, this));
+ if (info != null) {
+ macroSubstitutor.setMacroContextInfo(info);
+ String command = commandGenerator.generateCommand(option, macroSubstitutor);
+ if (command != null) {
+ flags.add(command);
+ generateDefaultCommand = false;
+ }
+ }
+ }
+
+ if (generateDefaultCommand) {
+ switch (optionType) {
+ case IOption.LIBRARIES: {
+ String command = option.getCommand();
+ String[] libs = option.getLibraries();
+ for (String lib : libs) {
+ try {
+ String resolved[] = ManagedBuildManager.getBuildMacroProvider()
+ .resolveStringListValueToMakefileFormat(lib, " ", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_OPTION,
+ new OptionContextData(option, this));
+ if (resolved != null && resolved.length > 0) {
+ for (String string : resolved) {
+ if (!string.isEmpty()) {
+ flags.add(command + string);
+ }
+ }
+ }
+ } catch (BuildMacroException e) {
+ // TODO: report error
+ continue;
+ }
+ }
+ break;
+ }
+ case IOption.OBJECTS: {
+ String userObjs[] = option.getUserObjects();
+ if (userObjs != null && userObjs.length > 0) {
+ for (String userObj : userObjs) {
+ try {
+ String resolved[] = ManagedBuildManager.getBuildMacroProvider()
+ .resolveStringListValueToMakefileFormat(userObj, "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_OPTION,
+ new OptionContextData(option, this));
+ if (resolved != null && resolved.length > 0) {
+ flags.addAll(Arrays.asList(resolved));
+ }
+ } catch (BuildMacroException e) {
+ // TODO: report error
+ continue;
+ }
+ }
+ }
+ break;
+ }
+ default:
+ // Cannot happen
+ break;
+ }
+ }
+ }
+ } catch (BuildException | CdtVariableException e) {
+ // TODO: report error
+ continue;
+ }
+ }
+ return flags.toArray(new String[flags.size()]);
+ }
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolChain.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolChain.java
index 523dca4c776..c2f09859f11 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolChain.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolChain.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2016 Intel Corporation and others.
+ * Copyright (c) 2004, 2020 Intel Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -22,6 +22,7 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
import java.util.SortedMap;
import java.util.StringTokenizer;
@@ -2646,7 +2647,7 @@ public class ToolChain extends HoldsOptions
}
void setUnusedChildren(String children) {
- if (CDataUtil.objectsEqual(unusedChildren, children))
+ if (Objects.equals(unusedChildren, children))
return;
unusedChildrenSet = null;
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/BuildLanguageData.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/BuildLanguageData.java
index 9e4d91da569..68a0133508d 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/BuildLanguageData.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/BuildLanguageData.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2016 Intel Corporation and others.
+ * Copyright (c) 2007, 2020 Intel Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -18,6 +18,7 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
import org.eclipse.cdt.core.settings.model.extension.CLanguageData;
@@ -145,7 +146,6 @@ public class BuildLanguageData extends CLanguageData {
optValue = buf.toString();
}
return optValue;
-
}
*/
@Override
@@ -316,13 +316,12 @@ public class BuildLanguageData extends CLanguageData {
/* private IOption[] getOptionsForType(int type){
Map map = getTypeToOptionArrayMap();
return (IOption[])map.get(Integer.valueOf(type));
-
}
*/
@Override
public void setLanguageId(String id) {
- if (CDataUtil.objectsEqual(id, fInputType.getLanguageId(fTool))) {
+ if (Objects.equals(id, fInputType.getLanguageId(fTool))) {
// fInputType = fTool.getEdtableInputType(fInputType);
obtainEditableInputType();
fInputType.setLanguageIdAttribute(id);
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/ConfigurationDataProvider.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/ConfigurationDataProvider.java
index 33203750cc5..37b4064c516 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/ConfigurationDataProvider.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/ConfigurationDataProvider.java
@@ -355,7 +355,6 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem
}
}
} catch (CoreException e) {
- mProj = null;
}
if (mProj == null) {
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/DataProviderMessages.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/DataProviderMessages.java
index 372edb43ed4..cb747980a31 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/DataProviderMessages.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/DataProviderMessages.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2011 Intel Corporation and others.
+ * Copyright (c) 2007, 2020 Intel Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,14 +10,14 @@
*
* Contributors:
* Intel Corporation - Initial API and implementation
+ * Sergei Kovalchuk (NXP)
*******************************************************************************/
package org.eclipse.cdt.managedbuilder.internal.dataprovider;
+import java.text.MessageFormat;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
-import com.ibm.icu.text.MessageFormat;
-
public class DataProviderMessages {
private static final String BUNDLE_NAME = "org.eclipse.cdt.managedbuilder.internal.dataprovider.DataProviderMessages"; //$NON-NLS-1$
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/EnvironmentVariableProvider.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/EnvironmentVariableProvider.java
index 6b84144f62c..0fee0afb75f 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/EnvironmentVariableProvider.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/EnvironmentVariableProvider.java
@@ -180,11 +180,6 @@ public class EnvironmentVariableProvider implements IEnvironmentVariableProvider
}
@Override
- public boolean isVariableCaseSensitive() {
- return fMngr.isVariableCaseSensitive();
- }
-
- @Override
public IEnvironmentVariableSupplier[] getSuppliers(Object level) {
return null;
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/StoredBuildPathEnvironmentContainer.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/StoredBuildPathEnvironmentContainer.java
index 4e18abf35da..bdcca87afb1 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/StoredBuildPathEnvironmentContainer.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/StoredBuildPathEnvironmentContainer.java
@@ -23,7 +23,6 @@ import org.eclipse.cdt.internal.core.envvar.EnvVarDescriptor;
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
import org.eclipse.cdt.managedbuilder.core.IEnvVarBuildPath;
import org.eclipse.cdt.managedbuilder.core.ITool;
-import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin;
import org.eclipse.cdt.managedbuilder.envvar.IBuildEnvironmentVariable;
import org.eclipse.cdt.utils.envvar.StorableEnvironment;
@@ -49,8 +48,6 @@ public class StoredBuildPathEnvironmentContainer extends StorableEnvironmentLoad
private IConfiguration fConfiguration;
private StorableEnvironment fEnvironment;
private int fPathType;
- private boolean fIsVariableCaseSensitive = ManagedBuildManager.getEnvironmentVariableProvider()
- .isVariableCaseSensitive();
public StoredBuildPathEnvironmentContainer(int pathType) {
fPathType = pathType == IEnvVarBuildPath.BUILDPATH_LIBRARY ? IEnvVarBuildPath.BUILDPATH_LIBRARY
@@ -190,7 +187,7 @@ public class StoredBuildPathEnvironmentContainer extends StorableEnvironmentLoad
* returns true if the variable names are equal and false otherwise
*/
private boolean varNamesEqual(String name1, String name2) {
- return fIsVariableCaseSensitive ? name1.equals(name2) : name1.equalsIgnoreCase(name2);
+ return name1.equals(name2);
}
/* (non-Javadoc)
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/language/settings/providers/CompilationDatabaseParser.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/language/settings/providers/CompilationDatabaseParser.java
new file mode 100644
index 00000000000..c543ae5a19e
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/language/settings/providers/CompilationDatabaseParser.java
@@ -0,0 +1,545 @@
+/*******************************************************************************
+ * Copyright (c) 2019, 2020 Marc-Andre Laperle and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Marc-Andre Laperle - Initial API and implementation
+ * Sergei Kovalchuk (NXP)
+ *******************************************************************************/
+package org.eclipse.cdt.managedbuilder.internal.language.settings.providers;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.net.URI;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.nio.file.attribute.FileTime;
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+import java.util.Stack;
+
+import org.eclipse.cdt.core.CCorePlugin;
+import org.eclipse.cdt.core.cdtvariables.ICdtVariableManager;
+import org.eclipse.cdt.core.language.settings.providers.ICListenerAgent;
+import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsEditableProvider;
+import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvider;
+import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvidersKeeper;
+import org.eclipse.cdt.core.language.settings.providers.IWorkingDirectoryTracker;
+import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsSerializableProvider;
+import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsStorage;
+import org.eclipse.cdt.core.model.CoreModel;
+import org.eclipse.cdt.core.model.ICElement;
+import org.eclipse.cdt.core.model.ICElementVisitor;
+import org.eclipse.cdt.core.model.ICProject;
+import org.eclipse.cdt.core.model.ITranslationUnit;
+import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
+import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
+import org.eclipse.cdt.core.settings.model.ICProjectDescription;
+import org.eclipse.cdt.core.settings.model.ICSourceEntry;
+import org.eclipse.cdt.core.settings.model.util.CDataUtil;
+import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin;
+import org.eclipse.cdt.managedbuilder.language.settings.providers.AbstractBuildCommandParser;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceProxy;
+import org.eclipse.core.resources.IResourceProxyVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.resources.WorkspaceJob;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.QualifiedName;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.SubMonitor;
+
+import com.google.gson.Gson;
+
+/**
+ * This language settings provider takes a compile_commands.json file as input (aka, Compilation Database or CDB) and parses the commands
+ * with a chosen build command parser. The command parser can be any implementation of AbstractBuildCommandParser like GCCBuildCommandParser,
+ * MSVCBuildCommandParser, etc.
+ *
+ * The file json file is re-parsed at startup through {@link #registerListener(ICConfigurationDescription)} but only if the timestamp changed.
+ * It it also parsed when the options are modified in the UI through {@link #processCompileCommandsFile(IProgressMonitor, ICConfigurationDescription)}
+ */
+public class CompilationDatabaseParser extends LanguageSettingsSerializableProvider
+ implements ICListenerAgent, ILanguageSettingsEditableProvider {
+
+ public static final String JOB_FAMILY_COMPILATION_DATABASE_PARSER = "org.eclipse.cdt.managedbuilder.internal.language.settings.providers.CompilationDatabaseParser"; //$NON-NLS-1$
+
+ private static final String ATTR_CDB_PATH = "cdb-path"; //$NON-NLS-1$
+ private static final String ATTR_BUILD_PARSER_ID = "build-parser-id"; //$NON-NLS-1$
+ private static final String ATTR_CDB_MODIFIED_TIME = "cdb-modified-time"; //$NON-NLS-1$
+ private static final String ATTR_EXCLUDE_FILES = "exclude-files"; //$NON-NLS-1$
+
+ public String getCompilationDataBasePathProperty() {
+ return getProperty(ATTR_CDB_PATH);
+ }
+
+ /**
+ * Resolve the compilation database path property by expanding variables (if any) and check that the file exists and is readable.
+ *
+ * @param cfgDescription the configuration description used to resolved variables that depend on it
+ * @return the resolved, readable path of the compilation database
+ * @throws CoreException On failure to resolve variables or non readable path
+ */
+ public String resolveCompilationDataBasePath(ICConfigurationDescription cfgDescription) throws CoreException {
+ ICdtVariableManager varManager = CCorePlugin.getDefault().getCdtVariableManager();
+ String compilationDataBasePath = varManager.resolveValue(getCompilationDataBasePathProperty(), "", null, //$NON-NLS-1$
+ cfgDescription);
+
+ if (Files.isDirectory(Paths.get(compilationDataBasePath))
+ || !Files.isReadable(Paths.get(compilationDataBasePath)))
+ throw new CoreException(new Status(Status.ERROR, ManagedBuilderCorePlugin.PLUGIN_ID, MessageFormat
+ .format(Messages.CompilationDatabaseParser_CDBNotFound, getCompilationDataBasePathProperty())));
+
+ return compilationDataBasePath;
+ }
+
+ public void setCompilationDataBasePathProperty(String compilationDataBasePathProperty) {
+ setProperty(ATTR_CDB_PATH, compilationDataBasePathProperty);
+ }
+
+ public void setExcludeFiles(boolean selection) {
+ setPropertyBool(ATTR_EXCLUDE_FILES, selection);
+ }
+
+ public boolean getExcludeFiles() {
+ return getPropertyBool(ATTR_EXCLUDE_FILES);
+ }
+
+ public void setBuildParserId(String parserId) {
+ setProperty(ATTR_BUILD_PARSER_ID, parserId);
+ }
+
+ public String getBuildParserId() {
+ return getProperty(ATTR_BUILD_PARSER_ID);
+ }
+
+ public Long getCDBModifiedTime(String cdbPath) throws IOException {
+ FileTime lastModifiedTime = Files.getLastModifiedTime(Paths.get(cdbPath));
+ return lastModifiedTime.toMillis();
+ }
+
+ /**
+ * Visit all folders and exclude all files that do not have entries coming from the CDB.
+ * The algorithm detects when whole folders can be excluded to prevent a large number of
+ * individual file exclusions.
+ */
+ private final class ExcludeSourceFilesVisitor implements ICElementVisitor {
+ private final ICConfigurationDescription cfgDescription;
+ ICSourceEntry[] entries = null;
+ private final IProgressMonitor monitor;
+ private final int sourceFilesCount;
+ private int nbChecked = 0;
+
+ // Keep track of excluded files and folders as we visit each folder in a depth-first manner.
+ private Stack<FolderExclusionInfo> folderExclusionInfos = new Stack<>();
+
+ private class FolderExclusionInfo {
+ // In case not all files are excluded in this folder, we need to keep track of which folders we'll exclude individually.
+ private ArrayList<IPath> childrenFoldersWithAllFilesExcluded = new ArrayList<>();
+ // In case not all files are excluded in this folder, we need to keep track of which files we'll exclude individually.
+ private ArrayList<IPath> excludedSourceFiles = new ArrayList<>();
+ // True if all children of the folder are excluded, recursively.
+ // Children folders can set this to false on their parent when non-excluded files are detected.
+ // Therefore, this value is reliable only when all children are visited.
+ private boolean allFilesExcluded = true;
+ }
+
+ //Note: monitor already has ticks allocated for number of source files (not considering exclusions though)
+ private ExcludeSourceFilesVisitor(IProgressMonitor monitor, int sourceFilesCount,
+ ICConfigurationDescription cfgDescription) {
+ this.monitor = monitor;
+ this.sourceFilesCount = sourceFilesCount;
+ this.cfgDescription = cfgDescription;
+ this.entries = cfgDescription.getSourceEntries();
+ }
+
+ public ICSourceEntry[] getSourceEntries() {
+ return entries;
+ }
+
+ @Override
+ public boolean visit(ICElement element) throws CoreException {
+ int elementType = element.getElementType();
+ if (elementType != ICElement.C_UNIT) {
+ boolean isSourceContainer = elementType == ICElement.C_CCONTAINER || elementType == ICElement.C_PROJECT;
+ if (isSourceContainer) {
+ folderExclusionInfos.push(new FolderExclusionInfo());
+ }
+ return isSourceContainer;
+ }
+
+ ITranslationUnit tu = (ITranslationUnit) element;
+ if (tu.isSourceUnit()) {
+ handleTranslationUnit(tu);
+ }
+ return false;
+ }
+
+ private void handleTranslationUnit(ITranslationUnit tu) throws CoreException {
+ FolderExclusionInfo folderInfo = folderExclusionInfos.peek();
+ List<ICLanguageSettingEntry> list = getSettingEntries(cfgDescription, tu.getResource(),
+ tu.getLanguage().getId());
+ if (list == null) {
+ folderInfo.excludedSourceFiles.add(tu.getResource().getFullPath());
+ } else {
+ folderInfo.allFilesExcluded = false;
+ }
+
+ monitor.worked(1);
+ if (nbChecked % 100 == 0) {
+ monitor.subTask(String.format(Messages.CompilationDatabaseParser_ProgressExcludingFiles, nbChecked,
+ sourceFilesCount));
+ }
+ nbChecked++;
+ }
+
+ @Override
+ public void leave(ICElement element) throws CoreException {
+ int elementType = element.getElementType();
+ if (elementType == ICElement.C_CCONTAINER || elementType == ICElement.C_PROJECT) {
+
+ FolderExclusionInfo folderInfo = folderExclusionInfos.pop();
+
+ if (folderInfo.allFilesExcluded && !folderExclusionInfos.isEmpty()) {
+ // Consider this folder for exclusion later, maybe the parent will also be excluded
+ folderExclusionInfos.peek().childrenFoldersWithAllFilesExcluded.add(element.getPath());
+ } else {
+ if (!folderExclusionInfos.isEmpty()) {
+ folderExclusionInfos.peek().allFilesExcluded = false;
+ }
+
+ // Exclude all children folders previously considered for exclusion, since the parent
+ // (the currently visited element) cannot be excluded, we have to exclude them individually.
+ for (IPath excludedFolder : folderInfo.childrenFoldersWithAllFilesExcluded) {
+ entries = CDataUtil.setExcluded(excludedFolder, true, true, entries);
+ }
+
+ // Exclude all direct children files that need to be excluded.
+ for (IPath excludedFile : folderInfo.excludedSourceFiles) {
+ entries = CDataUtil.setExcluded(excludedFile, false, true, entries);
+ }
+ }
+ }
+ }
+ }
+
+ private static class CDBWorkingDirectoryTracker implements IWorkingDirectoryTracker {
+ URI currentDirectory = null;
+
+ @Override
+ public URI getWorkingDirectoryURI() {
+ return currentDirectory;
+ }
+
+ public void setCurrentDirectory(URI currentDirectory) {
+ this.currentDirectory = currentDirectory;
+ }
+ }
+
+ @Override
+ public void registerListener(ICConfigurationDescription cfgDescription) {
+ unregisterListener();
+ try {
+ processCompileCommandsFile(null, cfgDescription);
+ } catch (CoreException e) {
+ ManagedBuilderCorePlugin.log(e);
+ }
+ }
+
+ @Override
+ public void unregisterListener() {
+ }
+
+ /**
+ * Processes the compilation database based on the attributes previously set.
+ * Parses the commands and sets the language setting entries. If cfgDescription is a writable configuration, it is assumed that the caller will call
+ * CoreModel#setProjectDescription. Otherwise if cfgDescription is read-only, the method will restart itself with a writable configuration description and call CoreModel#setProjectDescription.
+ */
+ public boolean processCompileCommandsFile(IProgressMonitor monitor, ICConfigurationDescription cfgDescription)
+ throws CoreException {
+ if (cfgDescription.isReadOnly()) {
+ scheduleOnWritableCfgDescription(cfgDescription);
+ return false;
+ }
+
+ if (!cfgDescription.equals(cfgDescription.getProjectDescription().getDefaultSettingConfiguration()))
+ return false;
+
+ if (getCompilationDataBasePathProperty().isEmpty()) {
+ throw new CoreException(new Status(Status.ERROR, ManagedBuilderCorePlugin.PLUGIN_ID,
+ Messages.CompilationDatabaseParser_CDBNotConfigured));
+ }
+
+ String cdbPath = resolveCompilationDataBasePath(cfgDescription);
+
+ try {
+ if (!getProperty(ATTR_CDB_MODIFIED_TIME).isEmpty()
+ && getProperty(ATTR_CDB_MODIFIED_TIME).equals(getCDBModifiedTime(cdbPath).toString())) {
+ return false;
+ }
+ } catch (IOException e) {
+ throw new CoreException(new Status(Status.ERROR, ManagedBuilderCorePlugin.PLUGIN_ID,
+ Messages.CompilationDatabaseParser_ErrorProcessingCompilationDatabase, e));
+ }
+
+ if (getBuildParserId().isEmpty()) {
+ throw new CoreException(new Status(Status.ERROR, ManagedBuilderCorePlugin.PLUGIN_ID,
+ MessageFormat.format(Messages.CompilationDatabaseParser_BuildCommandParserNotConfigured, cdbPath)));
+ }
+
+ if (!isEmpty()) {
+ clear();
+ }
+ Long cdbModifiedTime;
+ try {
+ cdbModifiedTime = getCDBModifiedTime(cdbPath);
+ } catch (Exception e) {
+ //setProperty(ATTR_CDB_MODIFIED_TIME, Long.toString(0L));
+ throw new CoreException(new Status(Status.ERROR, ManagedBuilderCorePlugin.PLUGIN_ID,
+ Messages.CompilationDatabaseParser_ErrorProcessingCompilationDatabase, e));
+ }
+
+ int totalTicks = getExcludeFiles() ? 100 : 60;
+ SubMonitor subMonitor = SubMonitor.convert(monitor, totalTicks);
+ subMonitor.subTask(Messages.CompilationDatabaseParser_ProgressParsingJSONFile);
+ subMonitor.split(5);
+
+ CompileCommand[] compileCommands = null;
+ try (FileReader reader = new FileReader(cdbPath)) {
+ Gson gson = new Gson();
+ compileCommands = gson.fromJson(reader, CompileCommand[].class);
+ } catch (Exception e) {
+ //setProperty(ATTR_CDB_MODIFIED_TIME, Long.toString(0L));
+ throw new CoreException(new Status(Status.ERROR, ManagedBuilderCorePlugin.PLUGIN_ID,
+ Messages.CompilationDatabaseParser_ErrorProcessingCompilationDatabase, e));
+ }
+
+ if (compileCommands == null) {
+ throw new CoreException(new Status(Status.ERROR, ManagedBuilderCorePlugin.PLUGIN_ID,
+ Messages.CompilationDatabaseParser_ErrorProcessingCompilationDatabase,
+ new NullPointerException(Messages.CompilationDatabaseParser_StillNull)));
+ }
+
+ AbstractBuildCommandParser outputParser;
+ try {
+ outputParser = getBuildCommandParser(cfgDescription, getBuildParserId());
+ } catch (Exception e) {
+ //setProperty(ATTR_CDB_MODIFIED_TIME, Long.toString(0L));
+ throw new CoreException(new Status(Status.ERROR, ManagedBuilderCorePlugin.PLUGIN_ID,
+ Messages.CompilationDatabaseParser_ErrorProcessingCompilationDatabase, e));
+ }
+
+ CDBWorkingDirectoryTracker workingDirectoryTracker = new CDBWorkingDirectoryTracker();
+
+ SubMonitor parseCmdsMonitor = SubMonitor.convert(subMonitor.split(50), compileCommands.length);
+ outputParser.startup(cfgDescription, workingDirectoryTracker);
+ for (int i = 0; i < compileCommands.length; i++) {
+ CompileCommand c = compileCommands[i];
+ // Don't spam the progress view too much
+ if (i % 100 == 0) {
+ parseCmdsMonitor.subTask(String.format(Messages.CompilationDatabaseParser_ProgressParsingBuildCommands,
+ i, compileCommands.length));
+ }
+ String dir = c.getDirectory();
+ workingDirectoryTracker.setCurrentDirectory(null);
+ if (dir != null) {
+ File file = new File(dir);
+ if (file.exists()) {
+ workingDirectoryTracker.setCurrentDirectory(file.toURI());
+ }
+ }
+
+ String command = c.getCommand();
+ if (command != null) {
+ outputParser.processLine(command);
+ } else if (c.getArguments() != null) {
+ outputParser.processLine(String.join(" ", c.getArguments())); //$NON-NLS-1$
+ }
+ parseCmdsMonitor.worked(1);
+ }
+ LanguageSettingsStorage storage = outputParser.copyStorage();
+ SubMonitor entriesMonitor = SubMonitor.convert(subMonitor.split(5), storage.getLanguages().size());
+ entriesMonitor.subTask(Messages.CompilationDatabaseParser_ProgressApplyingEntries);
+ for (String language : storage.getLanguages()) {
+ SubMonitor langMonitor = entriesMonitor.split(1);
+ Set<String> resourcePaths = storage.getResourcePaths(language);
+ SubMonitor langEntriesMonitor = SubMonitor.convert(langMonitor, resourcePaths.size());
+ for (String resourcePath : resourcePaths) {
+ IFile file = cfgDescription.getProjectDescription().getProject().getFile(new Path(resourcePath));
+ if (file.exists()) {
+ List<ICLanguageSettingEntry> settingEntries = storage.getSettingEntries(resourcePath, language);
+ setSettingEntries(cfgDescription, file, language, settingEntries);
+ }
+ langEntriesMonitor.worked(1);
+ }
+ }
+
+ if (getExcludeFiles()) {
+ excludeFiles(cfgDescription, subMonitor);
+ }
+
+ setProperty(ATTR_CDB_MODIFIED_TIME, cdbModifiedTime.toString());
+ touchProjectDes(cfgDescription.getProjectDescription());
+ return true;
+ }
+
+ private void scheduleOnWritableCfgDescription(ICConfigurationDescription cfgDescription) {
+ WorkspaceJob job = new WorkspaceJob(Messages.CompilationDatabaseParser_Job) {
+ @Override
+ public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
+ // If the config description we have been given is read-only, we need to get a writable one instead in order to be able to set source entries (exclusions).
+ // The tricky thing is that in that situation, the CompilationDatabaseParser instance (this) came from the read-only project description so anything that is
+ // saved that is not stored in the project description (i.e. calls to setProperties) will be saved to the wrong instance so when we call setProjectDescription, our changes will be ignored.
+ // So instead, restart the whole thing with the corresponding CompilationDatabaseParser instance in the writable config.
+ IProject project = cfgDescription.getProjectDescription().getProject();
+ if (!project.isAccessible()) {
+ // Project was probably closed while the job was waiting to start.
+ return Status.CANCEL_STATUS;
+ }
+
+ ICProjectDescription projectDescription = CCorePlugin.getDefault().getCoreModel()
+ .getProjectDescription(project.getProject(), true);
+ ICConfigurationDescription writableCfg = projectDescription
+ .getConfigurationById(cfgDescription.getId());
+ if (!(writableCfg instanceof ILanguageSettingsProvidersKeeper)) {
+ return Status.CANCEL_STATUS;
+ }
+
+ CompilationDatabaseParser parser = null;
+ List<ILanguageSettingsProvider> settingProviders = ((ILanguageSettingsProvidersKeeper) writableCfg)
+ .getLanguageSettingProviders();
+ for (ILanguageSettingsProvider languageSettingsProvider : settingProviders) {
+ if (languageSettingsProvider.getId().equals(CompilationDatabaseParser.this.getId())
+ && languageSettingsProvider instanceof CompilationDatabaseParser) {
+ parser = (CompilationDatabaseParser) languageSettingsProvider;
+ break;
+ }
+ }
+
+ if (parser == null) {
+ // Seems very unlikely to get here. This should mean that the provider was disabled before the job ran.
+ return Status.CANCEL_STATUS;
+ }
+
+ try {
+ if (parser.processCompileCommandsFile(monitor, writableCfg)) {
+ CoreModel.getDefault().setProjectDescription(project.getProject(), projectDescription);
+ }
+ } catch (CoreException e) {
+ // If we are running this in a WorkspaceJob it's because the CfgDescription was read-only so we are probably loading the project.
+ // We don't want to pop-up jarring error dialogs on start-up. Ideally, CDT would have problem markers for project setup issues.
+ ManagedBuilderCorePlugin.log(e);
+ }
+
+ return Status.OK_STATUS;
+ }
+
+ @Override
+ public boolean belongsTo(Object family) {
+ return family == JOB_FAMILY_COMPILATION_DATABASE_PARSER;
+ }
+ };
+
+ // Using root rule because of call to setProjectDescription above
+ job.setRule(ResourcesPlugin.getWorkspace().getRoot());
+ job.schedule();
+ }
+
+ private void excludeFiles(ICConfigurationDescription cfgDescription, SubMonitor subMonitor) throws CoreException {
+ ICProject cProject = CCorePlugin.getDefault().getCoreModel()
+ .create(cfgDescription.getProjectDescription().getProject());
+ // Getting a approximation of the number of source files we will have to visit based on file names.
+ // Much faster than going through the CElements. Then do the real work and report progress.
+ // It's possible that the approximation will be pretty wrong if there are a lot of already excluded files
+ // then we won't visit them in the ExcludeSourceFilesVisitor and the progress monitor won't be ticked for those.
+ int sourceFilesCount[] = new int[1];
+ cProject.getProject().accept(new IResourceProxyVisitor() {
+ @Override
+ public boolean visit(IResourceProxy proxy) throws CoreException {
+ if (CoreModel.isValidSourceUnitName(cProject.getProject(), proxy.getName()))
+ sourceFilesCount[0]++;
+ return true;
+ }
+ }, IResource.DEPTH_INFINITE, IResource.NONE);
+ SubMonitor sourceMonitor = SubMonitor.convert(subMonitor.split(35), sourceFilesCount[0]);
+
+ ExcludeSourceFilesVisitor sourceFileVisitor = new ExcludeSourceFilesVisitor(sourceMonitor, sourceFilesCount[0],
+ cfgDescription);
+ cProject.accept(sourceFileVisitor);
+ ICSourceEntry[] sourceEntries = sourceFileVisitor.getSourceEntries();
+
+ subMonitor.split(5);
+ if (sourceEntries != null) {
+ cfgDescription.setSourceEntries(sourceEntries);
+ }
+ }
+
+ private void touchProjectDes(ICProjectDescription desc) {
+ // Make sure the project description is marked as modified so that language settings serialization kicks in.
+ // We need to let the setProjectDescription do the serialization because we cannot do it on a writable description
+ // and we need a writable description because we need to call setSourceEntries!
+ final QualifiedName TOUCH_PROPERTY = new QualifiedName(CCorePlugin.PLUGIN_ID, "touch-project"); //$NON-NLS-1$
+ desc.setSessionProperty(TOUCH_PROPERTY, ""); //$NON-NLS-1$
+ desc.setSessionProperty(TOUCH_PROPERTY, null);
+ }
+
+ private AbstractBuildCommandParser getBuildCommandParser(ICConfigurationDescription cfgDesc, String id)
+ throws CloneNotSupportedException {
+ ICConfigurationDescription configurationDescription = cfgDesc;
+ if (configurationDescription instanceof ILanguageSettingsProvidersKeeper) {
+ List<ILanguageSettingsProvider> settingProviders = ((ILanguageSettingsProvidersKeeper) configurationDescription)
+ .getLanguageSettingProviders();
+ for (ILanguageSettingsProvider languageSettingsProvider : settingProviders) {
+ if (languageSettingsProvider instanceof AbstractBuildCommandParser
+ && languageSettingsProvider instanceof ILanguageSettingsEditableProvider) {
+ AbstractBuildCommandParser buildParser = (AbstractBuildCommandParser) languageSettingsProvider;
+ if (buildParser.getId().equals(id))
+ return (AbstractBuildCommandParser) ((ILanguageSettingsEditableProvider) buildParser).clone();
+ }
+ }
+ }
+
+ throw new IllegalArgumentException(MessageFormat
+ .format(Messages.CompilationDatabaseParser_BuildCommandParserNotFound, id, cfgDesc.getName()));
+ }
+
+ @Override
+ public boolean isEmpty() {
+ // treat provider that has been executed as not empty
+ // to let "Clear" button to restart the provider
+ return getProperty(ATTR_CDB_MODIFIED_TIME).isEmpty() && super.isEmpty();
+ }
+
+ @Override
+ public void clear() {
+ super.clear();
+ setProperty(ATTR_CDB_MODIFIED_TIME, null);
+ }
+
+ @Override
+ public CompilationDatabaseParser cloneShallow() throws CloneNotSupportedException {
+ CompilationDatabaseParser clone = (CompilationDatabaseParser) super.cloneShallow();
+ clone.setProperty(ATTR_CDB_MODIFIED_TIME, null);
+ return clone;
+ }
+
+ @Override
+ public CompilationDatabaseParser clone() throws CloneNotSupportedException {
+ return (CompilationDatabaseParser) super.clone();
+ }
+}
diff --git a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/CompileCommand.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/language/settings/providers/CompileCommand.java
index 81e7e95187a..fa58863dee4 100644
--- a/build/org.eclipse.cdt.cmake.core/src/org/eclipse/cdt/cmake/core/internal/CompileCommand.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/language/settings/providers/CompileCommand.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2016 QNX Software Systems and others.
+ * Copyright (c) 2016, 2019 QNX Software Systems and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -7,14 +7,18 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Marc-André Laperle - Moved to managed builder
*******************************************************************************/
-package org.eclipse.cdt.cmake.core.internal;
+package org.eclipse.cdt.managedbuilder.internal.language.settings.providers;
public class CompileCommand {
- private String directory;
- private String command;
- private String file;
+ public String directory;
+ public String command;
+ public String file;
+ public String[] arguments;
public String getDirectory() {
return directory;
@@ -28,4 +32,7 @@ public class CompileCommand {
return file;
}
+ public String[] getArguments() {
+ return arguments;
+ }
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/language/settings/providers/Messages.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/language/settings/providers/Messages.java
new file mode 100644
index 00000000000..9eb07ef9370
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/language/settings/providers/Messages.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Marc-Andre Laperle.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************/
+
+package org.eclipse.cdt.managedbuilder.internal.language.settings.providers;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.cdt.managedbuilder.internal.language.settings.providers.messages"; //$NON-NLS-1$
+
+ public static String CompilationDatabaseParser_BuildCommandParserNotConfigured;
+ public static String CompilationDatabaseParser_BuildCommandParserNotFound;
+ public static String CompilationDatabaseParser_CDBNotConfigured;
+ public static String CompilationDatabaseParser_CDBNotFound;
+ public static String CompilationDatabaseParser_ErrorProcessingCompilationDatabase;
+ public static String CompilationDatabaseParser_Job;
+ public static String CompilationDatabaseParser_ProgressApplyingEntries;
+ public static String CompilationDatabaseParser_ProgressExcludingFiles;
+ public static String CompilationDatabaseParser_ProgressParsingBuildCommands;
+ public static String CompilationDatabaseParser_ProgressParsingJSONFile;
+
+ public static String CompilationDatabaseParser_StillNull;
+
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/language/settings/providers/messages.properties b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/language/settings/providers/messages.properties
new file mode 100644
index 00000000000..bf4d06bd974
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/language/settings/providers/messages.properties
@@ -0,0 +1,22 @@
+################################################################################
+# Copyright (c) 2019 Marc-Andre Laperle.
+#
+# This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+################################################################################
+
+CompilationDatabaseParser_BuildCommandParserNotConfigured=Compilation database parser does not have a build command parser configured.
+CompilationDatabaseParser_BuildCommandParserNotFound=Could not find '{0}' language settings provider in configuration '{1}'
+CompilationDatabaseParser_CDBNotConfigured=Compilation database (usually compile_commands.json) path not set.
+CompilationDatabaseParser_CDBNotFound=Compilation database (usually compile_commands.json) not found at location {0}.
+CompilationDatabaseParser_ErrorProcessingCompilationDatabase=Error processing compilation database.
+CompilationDatabaseParser_Job=Discover Compilation Database language settings
+CompilationDatabaseParser_ProgressApplyingEntries=Applying language setting entries
+CompilationDatabaseParser_ProgressExcludingFiles=Excluding files not in compilation database. Checking %d/%d (Estimate)
+CompilationDatabaseParser_ProgressParsingBuildCommands=Parsing build commands (%d/%d)
+CompilationDatabaseParser_ProgressParsingJSONFile=Parsing JSON file
+CompilationDatabaseParser_StillNull=Compilation database (usually compile_commands.json) appears to be empty
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/BuildfileMacroSubstitutor.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/BuildfileMacroSubstitutor.java
index a937b15f0e4..8b2c7359f51 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/BuildfileMacroSubstitutor.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/BuildfileMacroSubstitutor.java
@@ -53,7 +53,6 @@ public class BuildfileMacroSubstitutor extends SupplierBasedCdtVariableSubstitut
private static final String PATTERN_MACRO_NAME = "="; //$NON-NLS-1$
private IConfiguration fConfiguration;
private IBuilder fBuilder;
- private HashSet<String> fCaseInsensitiveReferencedNames;
private ICdtVariableManager fVarMngr;
private ICConfigurationDescription fCfgDes;
@@ -257,26 +256,16 @@ public class BuildfileMacroSubstitutor extends SupplierBasedCdtVariableSubstitut
String macroName = macro.getName();
String ref = null;
IReservedMacroNameSupplier supplier = getReservedMacroNameSupplier();
- //on win32 all environment variable names are converted to upper case
macroName = EnvVarOperationProcessor.normalizeName(macroName);
if (supplier == null || !supplier.isReservedName(macroName, fConfiguration)) {
String pattern = fBuilder.getBuilderVariablePattern();
if (pattern != null && pattern.indexOf(PATTERN_MACRO_NAME) != -1) {
- if (fBuilder.isVariableCaseSensitive()
- || getCaseInsensitiveReferencedNames().add(macroName.toUpperCase())) {
- ref = pattern.replaceAll(PATTERN_MACRO_NAME, macroName);
- }
+ ref = pattern.replaceAll(PATTERN_MACRO_NAME, macroName);
}
}
return ref;
}
- protected Set<String> getCaseInsensitiveReferencedNames() {
- if (fCaseInsensitiveReferencedNames == null)
- fCaseInsensitiveReferencedNames = new HashSet<>();
- return fCaseInsensitiveReferencedNames;
- }
-
/* (non-Javadoc)
* @see org.eclipse.cdt.managedbuilder.internal.macros.DefaultMacroSubstitutor#setMacroContextInfo(org.eclipse.cdt.managedbuilder.internal.macros.IMacroContextInfo)
*/
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/MbsMacroSupplier.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/MbsMacroSupplier.java
index 2872e375c94..ae90cf4a416 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/MbsMacroSupplier.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/MbsMacroSupplier.java
@@ -39,11 +39,11 @@ import org.eclipse.cdt.managedbuilder.macros.IBuildMacroProvider;
import org.eclipse.cdt.managedbuilder.macros.IFileContextBuildMacroValues;
import org.eclipse.cdt.managedbuilder.macros.IFileContextData;
import org.eclipse.cdt.managedbuilder.macros.IOptionContextData;
-import org.eclipse.cdt.utils.Platform;
import org.eclipse.cdt.utils.cdtvariables.CdtVariableResolver;
import org.eclipse.cdt.utils.cdtvariables.IVariableSubstitutor;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Platform;
import org.osgi.framework.Bundle;
import org.osgi.framework.Version;
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/scannerconfig/ManagedBuildCPathEntryContainer.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/scannerconfig/ManagedBuildCPathEntryContainer.java
index f79826aaf91..2850c816fcb 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/scannerconfig/ManagedBuildCPathEntryContainer.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/scannerconfig/ManagedBuildCPathEntryContainer.java
@@ -21,6 +21,7 @@ import java.util.Set;
import java.util.Vector;
import org.eclipse.cdt.build.internal.core.scannerconfig2.CfgScannerConfigProfileManager;
+import org.eclipse.cdt.core.envvar.IEnvironmentVariable;
import org.eclipse.cdt.core.model.CoreModel;
import org.eclipse.cdt.core.model.IMacroEntry;
import org.eclipse.cdt.core.model.IPathEntry;
@@ -36,7 +37,6 @@ import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
import org.eclipse.cdt.managedbuilder.core.ITarget;
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin;
-import org.eclipse.cdt.managedbuilder.envvar.IBuildEnvironmentVariable;
import org.eclipse.cdt.managedbuilder.internal.core.ManagedBuildInfo;
import org.eclipse.cdt.managedbuilder.scannerconfig.IManagedScannerInfoCollector;
import org.eclipse.core.resources.IProject;
@@ -147,8 +147,8 @@ public class ManagedBuildCPathEntryContainer implements IPathEntryContainer {
IProgressMonitor monitor = new NullProgressMonitor();
IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(project);
IConfiguration config = info.getDefaultConfiguration();
- IBuildEnvironmentVariable[] vars = ManagedBuildManager.getEnvironmentVariableProvider()
- .getVariables(config, true, true);
+ IEnvironmentVariable[] vars = ManagedBuildManager.getEnvironmentVariableProvider()
+ .getVariables(config, true);
Properties env = new Properties();
if (vars != null)
for (int i = 0; i < vars.length; ++i)
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/AbstractBuiltinSpecsDetector.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/AbstractBuiltinSpecsDetector.java
index c06d5a17c0c..507f5c6cce7 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/AbstractBuiltinSpecsDetector.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/AbstractBuiltinSpecsDetector.java
@@ -26,6 +26,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.Optional;
import java.util.Set;
import org.eclipse.cdt.core.CCorePlugin;
@@ -776,9 +777,6 @@ public abstract class AbstractBuiltinSpecsDetector extends AbstractLanguageSetti
Map<String, String> envMap = new HashMap<>();
for (IEnvironmentVariable var : getEnvironmentVariables()) {
String name = var.getName();
- if (!envMngr.isVariableCaseSensitive()) {
- name = name.toUpperCase();
- }
envMap.put(name, var.getValue());
}
return envMap;
@@ -894,23 +892,41 @@ public abstract class AbstractBuiltinSpecsDetector extends AbstractLanguageSetti
* @return file extension associated with the language or {@code null} if not found.
*/
protected String getSpecFileExtension(String languageId) {
- String ext = null;
+ Optional<String> extension = Optional.empty();
ILanguageDescriptor langDescriptor = LanguageManager.getInstance().getLanguageDescriptor(languageId);
if (langDescriptor != null) {
IContentType[] contentTypes = langDescriptor.getContentTypes();
if (contentTypes != null && contentTypes.length > 0) {
String[] fileExtensions = contentTypes[0].getFileSpecs(IContentType.FILE_EXTENSION_SPEC);
- if (fileExtensions != null && fileExtensions.length > 0) {
- ext = fileExtensions[0];
+ if (fileExtensions != null) {
+ List<String> extensions = Arrays.asList(fileExtensions);
+ extension = selectBestSpecFileExtension(extensions);
}
}
}
- if (ext == null) {
+ if (!extension.isPresent()) {
ManagedBuilderCorePlugin.log(new Status(IStatus.ERROR, ManagedBuilderCorePlugin.PLUGIN_ID,
"Unable to find file extension for language " + languageId)); //$NON-NLS-1$
+ return null;
}
- return ext;
+ return extension.get();
+ }
+
+ /**
+ * Return the best extension to use for calculating spec file from a list of extensions.
+ * @param extensions list of possible extensions to choose from
+ * @return one of the extensions deemed the best one to use from the list
+ * @since 9.0
+ */
+ protected Optional<String> selectBestSpecFileExtension(List<String> extensions) {
+ return extensions.stream().filter(s -> s != null && !s.isEmpty()).findFirst().map(ext -> {
+ // Bug 562452: Special case where we prefer not to use .C for c++ files.
+ if ("C".equals(ext) && extensions.contains("cpp")) { //$NON-NLS-1$//$NON-NLS-2$
+ return "cpp"; //$NON-NLS-1$
+ }
+ return ext;
+ });
}
/**
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/AbstractLanguageSettingsOutputScanner.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/AbstractLanguageSettingsOutputScanner.java
index 9f1540db227..ac877d93ebb 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/AbstractLanguageSettingsOutputScanner.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/AbstractLanguageSettingsOutputScanner.java
@@ -19,6 +19,7 @@ import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
@@ -40,12 +41,14 @@ import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
import org.eclipse.cdt.core.settings.model.ICSettingEntry;
import org.eclipse.cdt.core.settings.model.util.CDataUtil;
+import org.eclipse.cdt.internal.core.LRUCache;
import org.eclipse.cdt.internal.core.XmlUtil;
import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin;
import org.eclipse.cdt.utils.EFSExtensionManager;
import org.eclipse.cdt.utils.cdtvariables.CdtVariableResolver;
import org.eclipse.core.filesystem.EFS;
import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
@@ -89,6 +92,64 @@ public abstract class AbstractLanguageSettingsOutputScanner extends LanguageSett
protected String parsedResourceName = null;
protected boolean isResolvingPaths = true;
+ private static final int FIND_RESOURCES_CACHE_SIZE = 100;
+
+ private LRUCache<URI, IResource[]> workspaceRootFindContainersForLocationURICache = new LRUCache<>(
+ FIND_RESOURCES_CACHE_SIZE);
+ private LRUCache<URI, IResource[]> workspaceRootFindFilesForLocationURICache = new LRUCache<>(
+ FIND_RESOURCES_CACHE_SIZE);
+ private HashMap<IProject, LRUCache<IPath, List<IResource>>> findPathInProjectCache = new HashMap<>();
+
+ //String pathStr, URI baseURI -> URI
+ private static class MappedURIKey {
+ URI baseURI;
+ String pathStr;
+
+ public MappedURIKey(URI baseURI, String pathStr) {
+ super();
+ this.baseURI = baseURI;
+ this.pathStr = pathStr;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((baseURI == null) ? 0 : baseURI.hashCode());
+ result = prime * result + ((pathStr == null) ? 0 : pathStr.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ MappedURIKey other = (MappedURIKey) obj;
+ if (baseURI == null) {
+ if (other.baseURI != null)
+ return false;
+ } else if (!baseURI.equals(other.baseURI))
+ return false;
+ if (pathStr == null) {
+ if (other.pathStr != null)
+ return false;
+ } else if (!pathStr.equals(other.pathStr))
+ return false;
+ return true;
+ }
+ }
+
+ // Caches the result of determineMappedURI
+ private LRUCache<MappedURIKey, URI> mappedURICache = new LRUCache<>(FIND_RESOURCES_CACHE_SIZE);
+ // Caches the result of getFilesystemLocation
+ private LRUCache<URI, IPath> fileSystemLocationCache = new LRUCache<>(FIND_RESOURCES_CACHE_SIZE);
+ // Caches the result of new File(pathname).exists()
+ private LRUCache<IPath, Boolean> pathExistsCache = new LRUCache<>(FIND_RESOURCES_CACHE_SIZE);
+
/** @since 8.2 */
protected EFSExtensionProvider efsProvider = null;
@@ -135,33 +196,66 @@ public abstract class AbstractLanguageSettingsOutputScanner extends LanguageSett
*/
protected static abstract class AbstractOptionParser {
private final int kind;
- private final String patternStr;
private final Pattern pattern;
- private final String nameExpression;
- private final String valueExpression;
private final int extraFlag;
private String parsedName;
private String parsedValue;
+ private final Pattern removeExtraFileNamePattern;
+
+ private static final Pattern numGroupPattern = Pattern.compile("\\$(\\d+)"); //$NON-NLS-1$
+ private final MatcherReplacement nameMatcherReplacement;
+ private final MatcherReplacement valueMatcherReplacement;
/**
* Constructor.
*
* @param kind - kind of language settings entries being parsed by the parser.
* @param pattern - regular expression pattern being parsed by the parser.
- * @param nameExpression - capturing group expression defining name of an entry.
- * @param valueExpression - capturing group expression defining value of an entry.
+ * The pattern may be embedded into another pattern for intermediate
+ * parsing so it is best to avoid using numbered group back-reference e.g. \1
+ * @param nameExpression - capturing group expression (numbered or named) defining name of an entry.
+ * @param valueExpression - capturing group expression (numbered or named) defining value of an entry.
* @param extraFlag - extra-flag to add while creating language settings entry.
*/
public AbstractOptionParser(int kind, String pattern, String nameExpression, String valueExpression,
int extraFlag) {
this.kind = kind;
- this.patternStr = pattern;
- this.nameExpression = nameExpression;
- this.valueExpression = valueExpression;
this.extraFlag = extraFlag;
this.pattern = Pattern.compile(pattern);
+ this.removeExtraFileNamePattern = Pattern.compile("(" + pattern + ").*"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ nameMatcherReplacement = new MatcherReplacement(nameExpression);
+ valueMatcherReplacement = new MatcherReplacement(valueExpression);
+ }
+
+ // Represents a replacement to be applied on a matcher, pre-calculating the group number used in the replacement if possible.
+ private static class MatcherReplacement {
+ private final String replacementExpression;
+ private final int replacementGroupNum;
+
+ private MatcherReplacement(String replacementExpression) {
+ this.replacementExpression = replacementExpression;
+ int groupNum = -1;
+ if (replacementExpression != null) {
+ // If the expression is just a single numbered group reference (the common case), we can predetermine
+ // which group we will need to retrieve on the matcher when we will parse the option string.
+ Matcher numGroupMatcher = numGroupPattern.matcher(replacementExpression);
+ if (numGroupMatcher.matches())
+ groupNum = Integer.parseInt(numGroupMatcher.group(1));
+ }
+ replacementGroupNum = groupNum;
+ }
+
+ private String replace(Matcher matcher) {
+ if (replacementGroupNum != -1)
+ return matcher.group(replacementGroupNum);
+ // The expression is not a simple numbered group, fall-back to normal replacement (slow).
+ if (replacementExpression != null)
+ return matcher.replaceAll(replacementExpression);
+ return null;
+ }
}
/**
@@ -195,15 +289,6 @@ public abstract class AbstractLanguageSettingsOutputScanner extends LanguageSett
}
/**
- * Return value represented by the capturing group expression.
- */
- private String parseStr(Matcher matcher, String str) {
- if (str != null)
- return matcher.replaceAll(str);
- return null;
- }
-
- /**
* Test for a match and parse a portion of input string representing a single option
* to retrieve name and value.
*
@@ -213,14 +298,18 @@ public abstract class AbstractLanguageSettingsOutputScanner extends LanguageSett
*/
public boolean parseOption(String optionString) {
// get rid of extra text at the end (for example file name could be confused for an argument)
- @SuppressWarnings("nls")
- String option = optionString.replaceFirst("(" + patternStr + ").*", "$1");
+ Matcher matcherRemoveExtra = removeExtraFileNamePattern.matcher(optionString);
+ String option = optionString;
+ if (!matcherRemoveExtra.matches()) {
+ return false;
+ }
+ option = matcherRemoveExtra.group(1);
Matcher matcher = pattern.matcher(option);
boolean isMatch = matcher.matches();
if (isMatch) {
- parsedName = parseStr(matcher, nameExpression);
- parsedValue = parseStr(matcher, valueExpression);
+ parsedName = nameMatcherReplacement.replace(matcher);
+ parsedValue = valueMatcherReplacement.replace(matcher);
}
return isMatch;
}
@@ -402,6 +491,20 @@ public abstract class AbstractLanguageSettingsOutputScanner extends LanguageSett
protected abstract AbstractOptionParser[] getOptionParsers();
/**
+ * @return array of option parsers defining how to parse a string to
+ * {@link ICLanguageSettingEntry}.
+ * See {@link AbstractOptionParser} and its specific extenders.
+ *
+ * @param optionToParse the option string to be parsed.
+ * This can be used as a hint in order to return a subset of parsers, for better performance.
+ *
+ * @since 9.1
+ */
+ protected AbstractOptionParser[] getOptionParsers(String optionToParse) {
+ return getOptionParsers();
+ }
+
+ /**
* @return {@code true} when the provider tries to resolve relative or remote paths
* to the existing paths in the workspace or local file-system using certain heuristics.
*/
@@ -438,6 +541,16 @@ public abstract class AbstractLanguageSettingsOutputScanner extends LanguageSett
currentLanguageId = null;
currentResource = null;
cwdTracker = null;
+ clearCaches();
+ }
+
+ private void clearCaches() {
+ workspaceRootFindContainersForLocationURICache.clear();
+ workspaceRootFindFilesForLocationURICache.clear();
+ findPathInProjectCache.clear();
+ mappedURICache.clear();
+ fileSystemLocationCache.clear();
+ pathExistsCache.clear();
}
@Override
@@ -475,8 +588,8 @@ public abstract class AbstractLanguageSettingsOutputScanner extends LanguageSett
List<String> options = parseOptions(line);
if (options != null) {
- AbstractOptionParser[] optionParsers = getOptionParsers();
for (String option : options) {
+ AbstractOptionParser[] optionParsers = getOptionParsers(option);
for (AbstractOptionParser optionParser : optionParsers) {
try {
if (optionParser.parseOption(option)) {
@@ -671,15 +784,16 @@ public abstract class AbstractLanguageSettingsOutputScanner extends LanguageSett
* Find file resource in the workspace for a given URI with a preference for the resource
* to reside in the given project.
*/
- private static IResource findFileForLocationURI(URI uri, IProject preferredProject, boolean checkExistence) {
+ private IResource findFileForLocationURI(URI uri, IProject preferredProject, boolean checkExistence) {
if (!uri.isAbsolute()) {
// IWorkspaceRoot.findFilesForLocationURI(URI) below requires an absolute URI
// therefore we haven't/aren't going to find the file based on this URI.
return null;
}
IResource sourceFile = null;
- IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
- IResource[] resources = root.findFilesForLocationURI(uri);
+
+ IResource[] resources = workspaceRootFindFilesForLocationURICache.computeIfAbsent(uri,
+ key -> ResourcesPlugin.getWorkspace().getRoot().findFilesForLocationURI(key));
for (IResource rc : resources) {
if (!checkExistence || rc.isAccessible()) {
if (rc.getProject().equals(preferredProject)) {
@@ -698,9 +812,11 @@ public abstract class AbstractLanguageSettingsOutputScanner extends LanguageSett
* Return a resource in workspace corresponding the given folder {@link URI} preferable residing in
* the provided project.
*/
- private static IResource findContainerForLocationURI(URI uri, IProject preferredProject, boolean checkExistence) {
+ private IResource findContainerForLocationURI(URI uri, IProject preferredProject, boolean checkExistence) {
IResource resource = null;
- IResource[] resources = ResourcesPlugin.getWorkspace().getRoot().findContainersForLocationURI(uri);
+
+ IResource[] resources = workspaceRootFindContainersForLocationURICache.computeIfAbsent(uri,
+ key -> ResourcesPlugin.getWorkspace().getRoot().findContainersForLocationURI(key));
for (IResource rc : resources) {
if ((rc instanceof IProject || rc instanceof IFolder) && (!checkExistence || rc.isAccessible())) { // treat IWorkspaceRoot as non-workspace path
if (rc.getProject().equals(preferredProject)) {
@@ -731,7 +847,20 @@ public abstract class AbstractLanguageSettingsOutputScanner extends LanguageSett
}
// try to find absolute path in the workspace
- if (sourceFile == null && new Path(parsedResourceName).isAbsolute()) {
+ Path parsedPath = new Path(parsedResourceName);
+ if (sourceFile == null && parsedPath.isAbsolute()) {
+ // It will often happen that the file will be under the project and in the local file system, so check there first.
+ IPath projectLocation = currentProject != null ? currentProject.getLocation() : null;
+ if (projectLocation != null) {
+ IPath relativePath = parsedPath.makeRelativeTo(projectLocation);
+ if (!relativePath.equals(parsedPath)) {
+ IFile file = currentProject.getFile(relativePath);
+ if (file.isAccessible()) {
+ return file;
+ }
+ }
+ }
+
URI uri = org.eclipse.core.filesystem.URIUtil.toURI(parsedResourceName);
sourceFile = findFileForLocationURI(uri, currentProject, /*checkExistence*/ true);
}
@@ -882,34 +1011,45 @@ public abstract class AbstractLanguageSettingsOutputScanner extends LanguageSett
* @return {@link URI} of the resource
*/
private URI determineMappedURI(String pathStr, URI baseURI) {
- URI uri = null;
+ return mappedURICache.computeIfAbsent(new MappedURIKey(baseURI, pathStr), key -> {
+ URI uri = null;
- if (baseURI == null) {
- if (new Path(pathStr).isAbsolute()) {
- uri = resolvePathFromBaseLocation(pathStr, Path.ROOT);
- }
- } else if (baseURI.getScheme().equals(EFS.SCHEME_FILE)) {
- // location on the local file-system
- IPath baseLocation = org.eclipse.core.filesystem.URIUtil.toPath(baseURI);
- // careful not to use Path here but 'pathStr' as String as we want to properly navigate symlinks
- uri = resolvePathFromBaseLocation(pathStr, baseLocation);
- } else {
- // location on a remote file-system
- IPath path = new Path(pathStr); // use canonicalized path here, in particular replace all '\' with '/' for Windows paths
- URI remoteUri = efsProvider.append(baseURI, path.toString());
- if (remoteUri != null) {
- String localPath = efsProvider.getMappedPath(remoteUri);
- if (localPath != null) {
- uri = org.eclipse.core.filesystem.URIUtil.toURI(localPath);
+ if (baseURI == null) {
+ if (new Path(pathStr).isAbsolute()) {
+ uri = resolvePathFromBaseLocation(pathStr, Path.ROOT);
+ }
+ } else if (baseURI.getScheme().equals(EFS.SCHEME_FILE)) {
+ // location on the local file-system
+ IPath baseLocation = org.eclipse.core.filesystem.URIUtil.toPath(baseURI);
+ // careful not to use Path here but 'pathStr' as String as we want to properly navigate symlinks
+ uri = resolvePathFromBaseLocation(pathStr, baseLocation);
+ } else {
+ // location on a remote file-system
+ IPath path = new Path(pathStr); // use canonicalized path here, in particular replace all '\' with '/' for Windows paths
+ URI remoteUri = efsProvider.append(baseURI, path.toString());
+ if (remoteUri != null) {
+ String localPath = efsProvider.getMappedPath(remoteUri);
+ if (localPath != null) {
+ uri = org.eclipse.core.filesystem.URIUtil.toURI(localPath);
+ }
}
}
- }
- if (uri == null) {
- // if everything fails just wrap string to URI
- uri = org.eclipse.core.filesystem.URIUtil.toURI(pathStr);
- }
- return uri;
+ if (uri == null) {
+ // if everything fails just wrap string to URI
+ uri = org.eclipse.core.filesystem.URIUtil.toURI(pathStr);
+ }
+ return uri;
+ });
+ }
+
+ /**
+ * Find all resources in the project which might be represented by relative path passed.
+ */
+ private List<IResource> findPathInProject(IPath path, IProject project) {
+ LRUCache<IPath, List<IResource>> cache = findPathInProjectCache.computeIfAbsent(project,
+ key -> new LRUCache<>(FIND_RESOURCES_CACHE_SIZE));
+ return cache.computeIfAbsent(path, key -> findPathInFolder(path, project));
}
/**
@@ -952,7 +1092,7 @@ public abstract class AbstractLanguageSettingsOutputScanner extends LanguageSett
// prefer current project
if (currentProject != null) {
- List<IResource> result = findPathInFolder(path, currentProject);
+ List<IResource> result = findPathInProject(path, currentProject);
int size = result.size();
if (size == 1) { // found the one
return result.get(0);
@@ -969,7 +1109,7 @@ public abstract class AbstractLanguageSettingsOutputScanner extends LanguageSett
for (String prjName : referencedProjectsNames) {
IProject prj = root.getProject(prjName);
if (prj.isOpen()) {
- List<IResource> result = findPathInFolder(path, prj);
+ List<IResource> result = findPathInProject(path, prj);
int size = result.size();
if (size == 1 && rc == null) {
rc = result.get(0);
@@ -991,7 +1131,7 @@ public abstract class AbstractLanguageSettingsOutputScanner extends LanguageSett
IResource rc = null;
for (IProject prj : projects) {
if (!prj.equals(currentProject) && !referencedProjectsNames.contains(prj.getName()) && prj.isOpen()) {
- List<IResource> result = findPathInFolder(path, prj);
+ List<IResource> result = findPathInProject(path, prj);
int size = result.size();
if (size == 1 && rc == null) {
rc = result.get(0);
@@ -1018,22 +1158,24 @@ public abstract class AbstractLanguageSettingsOutputScanner extends LanguageSett
if (uri == null)
return null;
- String pathStr = efsProvider.getMappedPath(uri);
- uri = org.eclipse.core.filesystem.URIUtil.toURI(pathStr);
+ return fileSystemLocationCache.computeIfAbsent(uri, (k) -> {
+ String pathStr = efsProvider.getMappedPath(uri);
+ URI resUri = org.eclipse.core.filesystem.URIUtil.toURI(pathStr);
- if (uri != null && uri.isAbsolute()) {
- try {
- File file = new java.io.File(uri);
- String canonicalPathStr = file.getCanonicalPath();
- if (new Path(pathStr).getDevice() == null) {
- return new Path(canonicalPathStr).setDevice(null);
+ if (resUri != null && resUri.isAbsolute()) {
+ try {
+ File file = new java.io.File(resUri);
+ String canonicalPathStr = file.getCanonicalPath();
+ if (new Path(pathStr).getDevice() == null) {
+ return new Path(canonicalPathStr).setDevice(null);
+ }
+ return new Path(canonicalPathStr);
+ } catch (Exception e) {
+ ManagedBuilderCorePlugin.log(e);
}
- return new Path(canonicalPathStr);
- } catch (Exception e) {
- ManagedBuilderCorePlugin.log(e);
}
- }
- return null;
+ return null;
+ });
}
/**
@@ -1114,7 +1256,10 @@ public abstract class AbstractLanguageSettingsOutputScanner extends LanguageSett
IPath location = getFilesystemLocation(uri);
if (location != null) {
String loc = location.toString();
- if (new File(loc).exists()) {
+ boolean exists = pathExistsCache.computeIfAbsent(location, (s) -> {
+ return new File(loc).exists();
+ });
+ if (exists) {
return optionParser.createEntry(loc, loc, flag);
}
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/GCCBuildCommandParser.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/GCCBuildCommandParser.java
index 2548a73d152..64e6507df4b 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/GCCBuildCommandParser.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/GCCBuildCommandParser.java
@@ -13,6 +13,11 @@
*******************************************************************************/
package org.eclipse.cdt.managedbuilder.language.settings.providers;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
import org.eclipse.cdt.core.errorparsers.RegexErrorPattern;
import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsEditableProvider;
import org.eclipse.cdt.core.settings.model.ICSettingEntry;
@@ -32,32 +37,124 @@ import org.eclipse.cdt.core.settings.model.ICSettingEntry;
*/
public class GCCBuildCommandParser extends AbstractBuildCommandParser implements ILanguageSettingsEditableProvider {
@SuppressWarnings("nls")
- static final AbstractOptionParser[] optionParsers = { new IncludePathOptionParser("-I\\s*([\"'])(.*)\\1", "$2"),
- new IncludePathOptionParser("-I\\s*([^\\s\"']*)", "$1"),
- new IncludePathOptionParser("-isystem\\s*([\"'])(.*)\\1", "$2"),
- new IncludePathOptionParser("-isystem\\s*([^\\s\"']*)", "$1"),
- new IncludePathOptionParser("-(F|(iframework))\\s*([\"'])(.*)\\3", "$4", ICSettingEntry.FRAMEWORKS_MAC),
- new IncludePathOptionParser("-(F|(iframework))\\s*([^\\s\"']*)", "$3", ICSettingEntry.FRAMEWORKS_MAC),
- new IncludeFileOptionParser("-include\\s*([\"'])(.*)\\1", "$2"),
- new IncludeFileOptionParser("-include\\s*([^\\s\"']*)", "$1"),
- new MacroOptionParser("-D\\s*([\"'])([^=]*)(=(.*))?\\1", "$2", "$4"),
+ static final AbstractOptionParser[] includeOptionParsers = {
+ new IncludePathOptionParser("-I\\s*(?<quote>[\"'])(.*)\\k<quote>", "$2"),
+ new IncludePathOptionParser("-I\\s*([^\\s\"']*)", "$1"), };
+
+ @SuppressWarnings("nls")
+ static final AbstractOptionParser[] systemIncludeOptionParsers = {
+ new IncludePathOptionParser("-isystem\\s*(?<quote>[\"'])(.*)\\k<quote>", "$2"),
+ new IncludePathOptionParser("-isystem\\s*([^\\s\"']*)", "$1"), };
+
+ @SuppressWarnings("nls")
+ static final AbstractOptionParser[] frameworkOptionParsers = {
+ new IncludePathOptionParser("-(F|(iframework))\\s*(?<quote>[\"'])(.*)\\k<quote>", "$4",
+ ICSettingEntry.FRAMEWORKS_MAC),
+ new IncludePathOptionParser("-(F|(iframework))\\s*([^\\s\"']*)", "$3", ICSettingEntry.FRAMEWORKS_MAC), };
+
+ @SuppressWarnings("nls")
+ static final AbstractOptionParser[] forceIncludeOptionParsers = {
+ new IncludeFileOptionParser("-include\\s*(?<quote>[\"'])(.*)\\k<quote>", "$2"),
+ new IncludeFileOptionParser("-include\\s*([^\\s\"']*)", "$1"), };
+
+ @SuppressWarnings("nls")
+ static final AbstractOptionParser[] defineOptionParsers = {
+ new MacroOptionParser("-D\\s*(?<quote>[\"'])([^=]*)(=(.*))?\\k<quote>", "$2", "$4"),
new MacroOptionParser("-D\\s*([^\\s=\"']*)=(\"\\\\(\")(.*?)\\\\\"\")", "$1", "$3$4$3"),
- new MacroOptionParser("-D\\s*([^\\s=\"']*)=(\\\\([\"']))(.*?)\\2", "$1", "$3$4$3"),
- new MacroOptionParser("-D\\s*([^\\s=\"']*)=([\"'])(.*?)\\2", "$1", "$3"),
+ new MacroOptionParser("-D\\s*([^\\s=\"']*)=(?<quote>\\\\([\"']))(.*?)\\k<quote>", "$1", "$3$4$3"),
+ new MacroOptionParser("-D\\s*([^\\s=\"']*)=(?<quote>[\"'])(.*?)\\k<quote>", "$1", "$3"),
new MacroOptionParser("-D\\s*([^\\s=\"']*)=([^\\s\"']*)?", "$1", "$2"),
- new MacroOptionParser("-D\\s*([^\\s=\"']*)", "$1", "1"),
- new MacroOptionParser("-U\\s*([^\\s=\"']*)", "$1", ICSettingEntry.UNDEFINED),
- new MacroFileOptionParser("-imacros\\s*([\"'])(.*)\\1", "$2"),
- new MacroFileOptionParser("-imacros\\s*([^\\s\"']*)", "$1"),
- new LibraryPathOptionParser("-L\\s*([\"'])(.*)\\1", "$2"),
+ new MacroOptionParser("-D\\s*([^\\s=\"']*)", "$1", "1"), };
+
+ @SuppressWarnings("nls")
+ static final AbstractOptionParser[] undefineOptionParsers = {
+ new MacroOptionParser("-U\\s*([^\\s=\"']*)", "$1", ICSettingEntry.UNDEFINED), };
+
+ @SuppressWarnings("nls")
+ static final AbstractOptionParser[] macrosOptionParsers = {
+ new MacroFileOptionParser("-imacros\\s*(?<quote>[\"'])(.*)\\k<quote>", "$2"),
+ new MacroFileOptionParser("-imacros\\s*([^\\s\"']*)", "$1"), };
+
+ @SuppressWarnings("nls")
+ static final AbstractOptionParser[] libraryOptionParsers = {
+ new LibraryPathOptionParser("-L\\s*(?<quote>[\"'])(.*)\\k<quote>", "$2"),
new LibraryPathOptionParser("-L\\s*([^\\s\"']*)", "$1"),
new LibraryFileOptionParser("-l\\s*([^\\s\"']*)", "lib$1.a"), };
+ static final AbstractOptionParser[] emptyParsers = new AbstractOptionParser[0];
+
+ static final AbstractOptionParser[] optionParsers;
+ static {
+ List<AbstractOptionParser> parsers = new ArrayList<>(Arrays.asList(includeOptionParsers));
+ Collections.addAll(parsers, systemIncludeOptionParsers);
+ Collections.addAll(parsers, frameworkOptionParsers);
+ Collections.addAll(parsers, forceIncludeOptionParsers);
+ Collections.addAll(parsers, defineOptionParsers);
+ Collections.addAll(parsers, undefineOptionParsers);
+ Collections.addAll(parsers, macrosOptionParsers);
+ Collections.addAll(parsers, libraryOptionParsers);
+
+ optionParsers = parsers.toArray(new AbstractOptionParser[0]);
+ }
+
@Override
protected AbstractOptionParser[] getOptionParsers() {
return optionParsers;
}
+ @SuppressWarnings("nls")
+ @Override
+ protected AbstractOptionParser[] getOptionParsers(String optionToParse) {
+ if (optionToParse.length() <= 1) {
+ return emptyParsers;
+ }
+
+ // Skip -, we know it's there with the OPTIONS_PATTERN
+ String optionName = optionToParse.substring(1);
+
+ if (optionName.startsWith("I")) {
+ return includeOptionParsers;
+ }
+
+ if (optionName.startsWith("D")) {
+ return defineOptionParsers;
+ }
+
+ if (optionName.startsWith("l") || optionName.startsWith("L")) {
+ return libraryOptionParsers;
+ }
+
+ if (optionName.startsWith("i")) {
+ if (optionName.startsWith("include")) {
+ return forceIncludeOptionParsers;
+ }
+
+ if (optionName.startsWith("isystem")) {
+ return systemIncludeOptionParsers;
+ }
+
+ if (optionName.startsWith("imacros")) {
+ return macrosOptionParsers;
+ }
+
+ if (optionName.startsWith("iframework")) {
+ return frameworkOptionParsers;
+ }
+
+ return emptyParsers;
+ }
+
+ if (optionName.startsWith("F")) {
+ return frameworkOptionParsers;
+ }
+
+ if (optionName.startsWith("U")) {
+ return undefineOptionParsers;
+ }
+
+ return emptyParsers;
+ }
+
@Override
public GCCBuildCommandParser cloneShallow() throws CloneNotSupportedException {
return (GCCBuildCommandParser) super.cloneShallow();
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/ToolchainBuiltinSpecsDetector.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/ToolchainBuiltinSpecsDetector.java
index c8a64eeb283..59312318f0a 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/ToolchainBuiltinSpecsDetector.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/ToolchainBuiltinSpecsDetector.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009, 2013 Andrew Gvozdev and others.
+ * Copyright (c) 2009, 2020 Andrew Gvozdev and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,13 +10,17 @@
*
* Contributors:
* Andrew Gvozdev - initial API and implementation
+ * Alexander Fedorov <alexander.fedorov@arsysop.ru> - Bug 559707
*******************************************************************************/
package org.eclipse.cdt.managedbuilder.language.settings.providers;
+import java.util.Arrays;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import org.eclipse.cdt.core.envvar.IEnvironmentVariable;
import org.eclipse.cdt.managedbuilder.core.BuildException;
@@ -28,6 +32,7 @@ import org.eclipse.cdt.managedbuilder.core.IToolChain;
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin;
import org.eclipse.cdt.managedbuilder.internal.envvar.EnvironmentVariableManagerToolChain;
+import org.eclipse.osgi.util.NLS;
/**
* Abstract parser capable to execute compiler command printing built-in compiler
@@ -58,17 +63,18 @@ public abstract class ToolchainBuiltinSpecsDetector extends AbstractBuiltinSpecs
/**
* Finds a tool handling given language in the tool-chain of the provider.
- * This returns the first tool found.
+ * This returns the first tool found or empty {@link Optional}.
+ * @since 8.8
*/
- private ITool getTool(String languageId) {
+ protected Optional<ITool> languageTool(String languageId) {
if (languageId == null) {
- return null;
+ return Optional.empty();
}
if (currentCfgDescription == null) {
ITool tool = toolMap.get(languageId);
if (tool != null) {
- return tool;
+ return Optional.of(tool);
}
}
@@ -99,7 +105,7 @@ public abstract class ToolchainBuiltinSpecsDetector extends AbstractBuiltinSpecs
ManagedBuilderCorePlugin
.error("Unable to find tool in toolchain=" + toolchainId + " for language=" + languageId); //$NON-NLS-1$ //$NON-NLS-2$
}
- return tool;
+ return Optional.ofNullable(tool);
}
/**
@@ -122,79 +128,83 @@ public abstract class ToolchainBuiltinSpecsDetector extends AbstractBuiltinSpecs
@Override
protected String getCompilerCommand(String languageId) {
- ITool tool = getTool(languageId);
- String compilerCommand = tool != null ? tool.getToolCommand() : ""; //$NON-NLS-1$
- if (compilerCommand.isEmpty()) {
- ManagedBuilderCorePlugin.error("Unable to find compiler command in toolchain=" + getToolchainId()); //$NON-NLS-1$
+ Optional<String> found = languageTool(languageId)//
+ .flatMap(t -> Optional.of(t.getToolCommand()));
+ if (!found.isPresent()) {
+ ManagedBuilderCorePlugin
+ .error(NLS.bind("Unable to find compiler command in toolchain={0}", getToolchainId())); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
}
- return compilerCommand;
+ return found.get();
}
@Override
protected String getSpecFileExtension(String languageId) {
- String ext = null;
- ITool tool = getTool(languageId);
- String[] srcFileExtensions = tool != null ? tool.getAllInputExtensions() : null;
- if (srcFileExtensions != null && srcFileExtensions.length > 0) {
- ext = srcFileExtensions[0];
- }
- if (ext == null || ext.isEmpty()) {
- ManagedBuilderCorePlugin.error("Unable to find file extension for language " + languageId); //$NON-NLS-1$
+ Optional<String[]> optionalExtensions = languageTool(languageId)
+ .flatMap(t -> Optional.of(t.getAllInputExtensions()));
+ List<String> extensions = optionalExtensions.map(Arrays::asList).orElseGet(() -> Collections.emptyList());
+ Optional<String> extension = selectBestSpecFileExtension(extensions);
+
+ if (!extension.isPresent()) {
+ //this looks like either invalid configuration settings or API issue
+ ManagedBuilderCorePlugin.error(NLS.bind("Unable to find file extension for language {0}", languageId)); //$NON-NLS-1$
+ return null;
}
- return ext;
+ return extension.get();
}
@Override
protected String getToolOptions(String languageId) {
- String flags = ""; //$NON-NLS-1$
- ITool tool = getTool(languageId);
- if (tool != null) {
- IOption[] options = tool.getOptions();
- for (IOption option : options) {
- if (option.isForScannerDiscovery()) {
- try {
- String optionValue = null;
- switch (option.getBasicValueType()) {
- case IOption.BOOLEAN:
- if (option.getBooleanValue()) {
- optionValue = option.getCommand();
- } else {
- optionValue = option.getCommandFalse();
- }
- break;
- case IOption.ENUMERATED:
- optionValue = option.getEnumCommand(option.getSelectedEnum());
- break;
- case IOption.STRING:
- optionValue = option.getCommand() + option.getStringValue();
- break;
- case IOption.STRING_LIST:
- String[] values = option.getBasicStringListValue();
- if (values != null) {
- optionValue = ""; //$NON-NLS-1$
- String cmd = option.getCommand();
- for (String value : values) {
- if (!value.isEmpty() && !value.equals(EMPTY_QUOTED_STRING)) {
- optionValue = optionValue + cmd + value + ' ';
- }
+ Optional<IOption[]> found = languageTool(languageId).flatMap(t -> Optional.of(t.getOptions()));
+ if (!found.isPresent()) {
+ return ""; //$NON-NLS-1$
+ }
+ StringBuilder flags = new StringBuilder();
+ IOption[] options = found.get();
+ for (IOption option : options) {
+ if (option.isForScannerDiscovery()) {
+ try {
+ String optionValue = null;
+ switch (option.getBasicValueType()) {
+ case IOption.BOOLEAN:
+ if (option.getBooleanValue()) {
+ optionValue = option.getCommand();
+ } else {
+ optionValue = option.getCommandFalse();
+ }
+ break;
+ case IOption.ENUMERATED:
+ optionValue = option.getEnumCommand(option.getSelectedEnum());
+ break;
+ case IOption.STRING:
+ optionValue = option.getCommand() + option.getStringValue();
+ break;
+ case IOption.STRING_LIST:
+ String[] values = option.getBasicStringListValue();
+ if (values != null) {
+ optionValue = ""; //$NON-NLS-1$
+ String cmd = option.getCommand();
+ for (String value : values) {
+ if (!value.isEmpty() && !value.equals(EMPTY_QUOTED_STRING)) {
+ optionValue = optionValue + cmd + value + ' ';
}
}
- break;
- case IOption.TREE:
- optionValue = option.getCommand(option.getStringValue());
- break;
- default:
}
- if (optionValue != null) {
- flags = flags + ' ' + optionValue.trim();
- }
- } catch (BuildException e) {
- ManagedBuilderCorePlugin.log(e);
+ break;
+ case IOption.TREE:
+ optionValue = option.getCommand(option.getStringValue());
+ break;
+ default:
+ }
+ if (optionValue != null) {
+ flags.append(' ').append(optionValue.trim());
}
+ } catch (BuildException e) {
+ ManagedBuilderCorePlugin.log(e);
}
}
}
- return flags.trim();
+ return flags.toString().trim();
}
@Override
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/IManagedDependencyCalculator.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/IManagedDependencyCalculator.java
index e010eb83a4a..e010eb83a4a 100755..100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/IManagedDependencyCalculator.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/IManagedDependencyCalculator.java
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/IManagedDependencyGeneratorType.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/IManagedDependencyGeneratorType.java
index 6a480e56fac..6a480e56fac 100755..100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/IManagedDependencyGeneratorType.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/IManagedDependencyGeneratorType.java
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/IManagedDependencyInfo.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/IManagedDependencyInfo.java
index 7dbd7464ff4..7dbd7464ff4 100755..100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/IManagedDependencyInfo.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/IManagedDependencyInfo.java
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/IManagedDependencyPreBuild.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/IManagedDependencyPreBuild.java
index a8d0c5eccec..a8d0c5eccec 100755..100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/IManagedDependencyPreBuild.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/IManagedDependencyPreBuild.java
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/DefaultGCCDependencyCalculator.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/DefaultGCCDependencyCalculator.java
index 0ce05fd7bb0..dd090453622 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/DefaultGCCDependencyCalculator.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/DefaultGCCDependencyCalculator.java
@@ -103,7 +103,7 @@ public class DefaultGCCDependencyCalculator implements IManagedDependencyGenerat
+ IManagedBuilderMakefileGenerator.WHITESPACE + "-n" //$NON-NLS-1$
+ IManagedBuilderMakefileGenerator.WHITESPACE).append(depRule)
.append(IManagedBuilderMakefileGenerator.WHITESPACE + "$(dir $@)" //$NON-NLS-1$
- + IManagedBuilderMakefileGenerator.WHITESPACE + ">"
+ + IManagedBuilderMakefileGenerator.WHITESPACE + ">" //$NON-NLS-1$
+ IManagedBuilderMakefileGenerator.WHITESPACE)
.append(depRule)
.append(IManagedBuilderMakefileGenerator.WHITESPACE + IManagedBuilderMakefileGenerator.LOGICAL_AND
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/DefaultGCCDependencyCalculator2Commands.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/DefaultGCCDependencyCalculator2Commands.java
index e42586238ef..feb6995eba9 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/DefaultGCCDependencyCalculator2Commands.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/DefaultGCCDependencyCalculator2Commands.java
@@ -16,7 +16,6 @@ package org.eclipse.cdt.managedbuilder.makegen.gnu;
import org.eclipse.cdt.managedbuilder.core.IBuildObject;
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
-import org.eclipse.cdt.managedbuilder.core.IResourceConfiguration;
import org.eclipse.cdt.managedbuilder.core.IResourceInfo;
import org.eclipse.cdt.managedbuilder.core.ITool;
import org.eclipse.cdt.managedbuilder.internal.macros.BuildMacroProvider;
@@ -175,15 +174,8 @@ public class DefaultGCCDependencyCalculator2Commands implements IManagedDependen
} else {
options[2] = "-MF\"$(@:%.o=%.d)\""; //$NON-NLS-1$
}
- if (buildContext instanceof IResourceConfiguration || needExplicitRuleForFile) {
- IPath outPath = getDependencyFiles()[0];
- // -MT"dependency-file-name"
- String optTxt = "-MT\"" + GnuMakefileGenerator.escapeWhitespaces(outPath.toString()) + "\""; //$NON-NLS-1$ //$NON-NLS-2$
- options[3] = optTxt;
- } else {
- // -MT"$(@:%.o=%.d) %.o"
- options[3] = "-MT\"$(@)\""; //$NON-NLS-1$
- }
+ // -MT"$@"
+ options[3] = "-MT\"$@\""; //$NON-NLS-1$
return options;
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/DefaultGCCDependencyCalculator3.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/DefaultGCCDependencyCalculator3.java
index dc3d5bb4419..d800377b861 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/DefaultGCCDependencyCalculator3.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/DefaultGCCDependencyCalculator3.java
@@ -97,12 +97,21 @@ public class DefaultGCCDependencyCalculator3 implements IManagedDependencyGenera
makefile = root.getFile(makefilePath);
IResourceInfo rcInfo = tool.getParentResourceInfo();
if (rcInfo != null)
- return GnuMakefileGenerator.populateDummyTargets(rcInfo, makefile, false);
- return GnuMakefileGenerator.populateDummyTargets(buildContext, makefile, false);
+ return createMakefileGenerator().generateDummyTargets(rcInfo, makefile, false);
+ return createMakefileGenerator().generateDummyTargets(buildContext, makefile, false);
} catch (CoreException e) {
} catch (IOException e) {
}
return false;
}
+ /**
+ * Return a GnuMakefileGenerator instance to use during post processing of dependency files
+ * @return an GnuMakefileGenerator instance
+ * @since 9.3
+ */
+ protected GnuMakefileGenerator createMakefileGenerator() {
+ return new GnuMakefileGenerator();
+ }
+
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/GnuDependencyGroupInfo.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/GnuDependencyGroupInfo.java
index 2284b7f3404..18445bbd704 100755..100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/GnuDependencyGroupInfo.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/GnuDependencyGroupInfo.java
@@ -23,8 +23,14 @@ package org.eclipse.cdt.managedbuilder.makegen.gnu;
public class GnuDependencyGroupInfo {
// Member Variables
- String groupBuildVar;
- boolean conditionallyInclude;
+ /**
+ * @noreference
+ */
+ public String groupBuildVar;
+ /**
+ * @noreference
+ */
+ public boolean conditionallyInclude;
// ArrayList groupFiles;
// Constructor
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/GnuMakefileGenerator.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/GnuMakefileGenerator.java
index b75bdcfea10..94dd491cc1c 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/GnuMakefileGenerator.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/GnuMakefileGenerator.java
@@ -38,6 +38,8 @@ import java.util.List;
import java.util.Map.Entry;
import java.util.Set;
import java.util.Vector;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.settings.model.CSourceEntry;
@@ -104,13 +106,21 @@ import org.eclipse.core.runtime.SubProgressMonitor;
/**
* This is a specialized makefile generator that takes advantage of the
* extensions present in Gnu Make.
+ * <p>
+ * If sub-classing and using {@link DefaultGCCDependencyCalculator3}, make sure to also override
+ * {@link DefaultGCCDependencyCalculator3#createMakefileGenerator()} to return the appropriate result.
*
* @since 1.2
* @noinstantiate This class is not intended to be instantiated by clients.
+ * @deprecated Replaced by {@link org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator}
*/
+@Deprecated
public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
private static final IPath DOT_SLASH_PATH = new Path("./"); //$NON-NLS-1$
+ private Pattern doubleQuotedOption = Pattern.compile("--?[a-zA-Z]+.*?\\\".*?\\\".*"); //$NON-NLS-1$
+ private Pattern singleQuotedOption = Pattern.compile("--?[a-zA-Z]+.*?'.*?'.*"); //$NON-NLS-1$
+
/**
* This class walks the delta supplied by the build system to determine
* what resources have been changed. The logic is very simple. If a
@@ -818,10 +828,19 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
bytes = buffer.toString().getBytes();
}
- ByteArrayInputStream stream = new ByteArrayInputStream(bytes);
- // use a platform operation to update the resource contents
- boolean force = true;
- file.setContents(stream, force, false, null); // Don't record history
+ byte[] oldBytes = null;
+ try (InputStream is = file.getContents(true)) {
+ oldBytes = is.readAllBytes();
+ } catch (IOException e) {
+ }
+
+ // Only write file if content differs
+ if (!Arrays.equals(oldBytes, bytes)) {
+ ByteArrayInputStream stream = new ByteArrayInputStream(bytes);
+ // use a platform operation to update the resource contents
+ boolean force = true;
+ file.setContents(stream, force, false, null); // Don't record history
+ }
}
/* (non-Javadoc)
@@ -1258,6 +1277,68 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
// Include makefile.defs supplemental makefile
buffer.append("-include ").append(reachProjectRoot()).append(SEPARATOR).append(MAKEFILE_DEFS).append(NEWLINE); //$NON-NLS-1$
+ final String wildcardFileFmt = "$(wildcard %s)" + WHITESPACE + LINEBREAK; //$NON-NLS-1$
+ buffer.append(NEWLINE).append("OPTIONAL_TOOL_DEPS :=").append(WHITESPACE).append(LINEBREAK); //$NON-NLS-1$
+ buffer.append(String.format(wildcardFileFmt, reachProjectRoot() + SEPARATOR + MAKEFILE_DEFS));
+ buffer.append(String.format(wildcardFileFmt, reachProjectRoot() + SEPARATOR + MAKEFILE_INIT));
+ buffer.append(String.format(wildcardFileFmt, reachProjectRoot() + SEPARATOR + MAKEFILE_TARGETS));
+ buffer.append(NEWLINE);
+
+ String ext = config.getArtifactExtension();
+ // try to resolve the build macros in the artifact extension
+ try {
+ ext = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(ext, EMPTY_STRING,
+ WHITESPACE, IBuildMacroProvider.CONTEXT_CONFIGURATION, config);
+ } catch (BuildMacroException e) {
+ }
+
+ String name = config.getArtifactName();
+ // try to resolve the build macros in the artifact name
+ try {
+ String resolved = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(name,
+ EMPTY_STRING, WHITESPACE, IBuildMacroProvider.CONTEXT_CONFIGURATION, config);
+ if ((resolved = resolved.trim()).length() > 0) {
+ name = resolved;
+ }
+ } catch (BuildMacroException e) {
+ }
+
+ String prefix = EMPTY_STRING;
+ ITool targetTool = config.calculateTargetTool();
+ if (targetTool != null) {
+ prefix = targetTool.getOutputPrefix();
+ if (prefix == null) {
+ prefix = EMPTY_STRING;
+ }
+ }
+ // try to resolve the build macros in the artifact prefix
+ try {
+ String resolved = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(prefix,
+ EMPTY_STRING, WHITESPACE, IBuildMacroProvider.CONTEXT_CONFIGURATION, config);
+ if ((resolved = resolved.trim()).length() > 0) {
+ prefix = resolved;
+ }
+ } catch (BuildMacroException e) {
+ }
+
+ @SuppressWarnings("nls")
+ String[][] buildArtifactVars = new String[][] { //
+ { "BUILD_ARTIFACT_NAME", name }, //
+ { "BUILD_ARTIFACT_EXTENSION", ext }, //
+ { "BUILD_ARTIFACT_PREFIX", prefix }, //
+ { "BUILD_ARTIFACT",
+ "$(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)" }, //
+ };
+
+ buffer.append(NEWLINE);
+ for (String[] var : buildArtifactVars) {
+ buffer.append(var[0]).append(" :="); //$NON-NLS-1$
+ if (!var[1].isEmpty()) {
+ buffer.append(WHITESPACE).append(var[1]);
+ }
+ buffer.append(NEWLINE);
+ }
+
return (buffer.append(NEWLINE));
}
@@ -1308,57 +1389,46 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
.equals(config.getBuildArtefactType().getId()))
refConfigs = ManagedBuildManager.getReferencedConfigurations(config);
- /* try {
- refdProjects = project.getReferencedProjects();
- } catch (CoreException e) {
- // There are 2 exceptions; the project does not exist or it is not open
- // and neither conditions apply if we are building for it ....
- }
- */
- // If a prebuild step exists, redefine the all target to be
- // all:
- // $(MAKE) pre-build
- // $(MAKE) main-build
- // and then reset the "traditional" all target to main-build
- // This will allow something meaningful to happen if the generated
- // makefile is
- // extracted and run standalone via "make all"
- //
- String defaultTarget = "all:"; //$NON-NLS-1$
- if (prebuildStep.length() > 0) {
+ // Add the comment for the "All" target
+ buffer.append(COMMENT_SYMBOL).append(WHITESPACE).append(ManagedMakeMessages.getResourceString(ALL_TARGET))
+ .append(NEWLINE);
- // Add the comment for the "All" target
- buffer.append(COMMENT_SYMBOL).append(WHITESPACE).append(ManagedMakeMessages.getResourceString(ALL_TARGET))
- .append(NEWLINE);
+ if (!prebuildStep.isEmpty() || !postbuildStep.isEmpty()) {
+ // all:
+ buffer.append("all").append(COLON).append(NEWLINE); //$NON-NLS-1$
+
+ String makeNoPrintDir = MAKE + WHITESPACE + NO_PRINT_DIR + WHITESPACE;
+ buffer.append(TAB).append("+@"); //$NON-NLS-1$
+ if (!prebuildStep.isEmpty()) {
+ buffer.append(makeNoPrintDir).append(PREBUILD).append(WHITESPACE).append(LOGICAL_AND)
+ .append(WHITESPACE);
+ }
+ buffer.append(makeNoPrintDir).append(MAINBUILD);
+ if (!postbuildStep.isEmpty()) {
+ buffer.append(WHITESPACE).append(LOGICAL_AND).append(WHITESPACE).append(makeNoPrintDir)
+ .append(POSTBUILD);
+ }
- // Invoke make multiple times to ensure pre-build is executed before main-build
- buffer.append(defaultTarget).append(NEWLINE);
- buffer.append(TAB).append(MAKE).append(WHITESPACE).append(NO_PRINT_DIR).append(WHITESPACE).append(PREBUILD)
- .append(NEWLINE);
- buffer.append(TAB).append(MAKE).append(WHITESPACE).append(NO_PRINT_DIR).append(WHITESPACE).append(MAINBUILD)
- .append(NEWLINE);
buffer.append(NEWLINE);
- // Update the defaultTarget, main-build, by adding a colon, which is
- // needed below
- defaultTarget = MAINBUILD.concat(COLON);
+ } else {
+ // all: main-build
+ buffer.append("all").append(COLON).append(WHITESPACE).append(MAINBUILD).append(NEWLINE); //$NON-NLS-1$
+ }
+ buffer.append(NEWLINE);
- // Add the comment for the "main-build" target
- buffer.append(COMMENT_SYMBOL).append(WHITESPACE)
- .append(ManagedMakeMessages.getResourceString(MAINBUILD_TARGET)).append(NEWLINE);
- } else
- // Add the comment for the "All" target
- buffer.append(COMMENT_SYMBOL).append(WHITESPACE).append(ManagedMakeMessages.getResourceString(ALL_TARGET))
- .append(NEWLINE);
+ // Add the comment for the "main-build" target
+ buffer.append(COMMENT_SYMBOL).append(WHITESPACE).append(ManagedMakeMessages.getResourceString(MAINBUILD_TARGET))
+ .append(NEWLINE);
- // Write out the all target first in case someone just runs make
- // all: <target_name> or mainbuild: <target_name>
+ // Write out the main-build target first in case someone just runs make
+ // main-build: <target_name>
String outputPrefix = EMPTY_STRING;
if (targetTool != null) {
outputPrefix = targetTool.getOutputPrefix();
}
- buffer.append(defaultTarget).append(WHITESPACE).append(outputPrefix)
+ buffer.append(MAINBUILD).append(COLON).append(WHITESPACE).append(outputPrefix)
.append(ensurePathIsGNUMakeTargetRuleCompatibleSyntax(buildTargetName));
if (buildTargetExt.length() > 0) {
buffer.append(DOT).append(buildTargetExt);
@@ -1443,8 +1513,7 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
}
// Add the targets tool rules
- buffer.append(addTargetsRules(targetTool, outputVarsAdditionsList, managedProjectOutputs,
- (postbuildStep.length() > 0)));
+ buffer.append(addTargetsRules(targetTool, outputVarsAdditionsList, managedProjectOutputs));
// Add the prebuild step target, if specified
if (prebuildStep.length() > 0) {
@@ -1477,9 +1546,9 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
}
// Add all the needed dummy and phony targets
- buffer.append(".PHONY: all clean dependents"); //$NON-NLS-1$
+ buffer.append(".PHONY: all clean dependents").append(WHITESPACE).append(MAINBUILD); //$NON-NLS-1$
if (prebuildStep.length() > 0) {
- buffer.append(WHITESPACE).append(MAINBUILD).append(WHITESPACE).append(PREBUILD);
+ buffer.append(WHITESPACE).append(PREBUILD);
}
if (postbuildStep.length() > 0) {
buffer.append(WHITESPACE).append(POSTBUILD);
@@ -1508,7 +1577,7 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
* @return StringBuffer
*/
private StringBuffer addTargetsRules(ITool targetTool, List<String> outputVarsAdditionsList,
- Vector<String> managedProjectOutputs, boolean postbuildStep) {
+ Vector<String> managedProjectOutputs) {
StringBuffer buffer = new StringBuffer();
// Add the comment
buffer.append(COMMENT_SYMBOL).append(WHITESPACE).append(ManagedMakeMessages.getResourceString(BUILD_TOP))
@@ -1523,7 +1592,7 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
// appear to be used there (and tool outputs are consulted directly), but
// we quote it anyway just in case it starts to use it in future.
if (addRuleForTool(targetTool, buffer, true, ensurePathIsGNUMakeTargetRuleCompatibleSyntax(buildTargetName),
- buildTargetExt, outputVarsAdditionsList, managedProjectOutputs, postbuildStep)) {
+ buildTargetExt, outputVarsAdditionsList, managedProjectOutputs, false)) {
// Mark the target tool as processed
for (int i = 0; i < buildTools.length; i++) {
if (targetTool == buildTools[i]) {
@@ -1583,6 +1652,17 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
}
/**
+ * @deprecated Use {@link #addRuleForTool(ITool, StringBuffer, boolean, String, String, List, Vector)}
+ */
+ @Deprecated
+ protected boolean addRuleForTool(ITool tool, StringBuffer buffer, boolean bTargetTool, String targetName,
+ String targetExt, List<String> outputVarsAdditionsList, Vector<String> managedProjectOutputs,
+ boolean bEmitPostBuildStepCall) {
+ return addRuleForTool(tool, buffer, bTargetTool, targetName, targetExt, outputVarsAdditionsList,
+ managedProjectOutputs);
+ }
+
+ /**
* Create the rule
*
* @param buffer Buffer to add makefile rules to
@@ -1591,11 +1671,10 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
* @param targetExt If this is the "targetTool", the target file extension, else <code>null</code>
* @param outputVarsAdditionsList list to add needed build output variables to
* @param managedProjectOutputs Other projects in the workspace that this project depends upon
- * @param bEmitPostBuildStepCall Emit post-build step invocation
+ * @since 9.3
*/
protected boolean addRuleForTool(ITool tool, StringBuffer buffer, boolean bTargetTool, String targetName,
- String targetExt, List<String> outputVarsAdditionsList, Vector<String> managedProjectOutputs,
- boolean bEmitPostBuildStepCall) {
+ String targetExt, List<String> outputVarsAdditionsList, Vector<String> managedProjectOutputs) {
// Get the tool's inputs and outputs
Vector<String> inputs = new Vector<>();
@@ -1651,6 +1730,9 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
calculatedDependencies += input;
}
buildRule += calculatedDependencies;
+ buildRule += WHITESPACE + MAKEFILE_NAME; // makefile itself
+ buildRule += WHITESPACE + OBJECTS_MAKFILE; // objects.mk
+ buildRule += WHITESPACE + "$(OPTIONAL_TOOL_DEPS)"; //$NON-NLS-1$ // Optional dep to generated makefile extension files
// We can't have duplicates in a makefile
if (getRuleList().contains(buildRule)) {
@@ -1726,16 +1808,8 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
escapedEcho((bTargetTool ? MESSAGE_FINISH_BUILD : MESSAGE_FINISH_FILE) + WHITESPACE + OUT_MACRO));
buffer.append(TAB).append(AT).append(ECHO_BLANK_LINE);
- // If there is a post build step, then add a recursive invocation of MAKE to invoke it after the main build
- // Note that $(MAKE) will instantiate in the recusive invocation to the make command that was used to invoke
- // the makefile originally
- if (bEmitPostBuildStepCall) {
- buffer.append(TAB).append(MAKE).append(WHITESPACE).append(NO_PRINT_DIR).append(WHITESPACE)
- .append(POSTBUILD).append(NEWLINE).append(NEWLINE);
- } else {
- // Just emit a blank line
- buffer.append(NEWLINE);
- }
+ // Just emit a blank line
+ buffer.append(NEWLINE);
}
// If we have secondary outputs, output dependency rules without commands
@@ -2533,7 +2607,8 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
patternBuildRuleDependencies += WHITESPACE + suitablePath;
}
- buildRule += COLON + WHITESPACE + (patternRule ? patternBuildRuleDependencies : buildRuleDependencies);
+ buildRule += COLON + WHITESPACE + (patternRule ? patternBuildRuleDependencies : buildRuleDependencies)
+ + WHITESPACE + escapeWhitespaces(relativePath + MODFILE_NAME);
// No duplicates in a makefile. If we already have this rule, don't add it or the commands to build the file
if (getRuleList().contains(buildRule)) {
@@ -2805,7 +2880,8 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
depLine += escapeWhitespaces((depFiles[i]).toString());
}
}
- depLine += COLON + WHITESPACE + (patternRule ? patternBuildRuleDependencies : buildRuleDependencies);
+ depLine += COLON + WHITESPACE + (patternRule ? patternBuildRuleDependencies : buildRuleDependencies)
+ + WHITESPACE + escapeWhitespaces(relativePath + MODFILE_NAME);
if (!getDepRuleList().contains(depLine)) {
getDepRuleList().add(depLine);
addedDepLines = true;
@@ -3412,6 +3488,15 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
}
/**
+ * @deprecated Use {@link GnuMakefileGenerator#generateDummyTargets(IConfiguration, IFile, boolean)}
+ */
+ @Deprecated
+ static public boolean populateDummyTargets(IConfiguration cfg, IFile makefile, boolean force)
+ throws CoreException, IOException {
+ return new GnuMakefileGenerator().generateDummyTargets(cfg, makefile, force);
+ }
+
+ /**
* This method postprocesses a .d file created by a build.
* It's main job is to add dummy targets for the header files dependencies.
* This prevents make from aborting the build if the header file does not exist.
@@ -3424,31 +3509,44 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
* checks for to determine if this dependency file has already been updated.
*
* @return a <code>true</code> if the dependency file is modified
+ * @since 9.3
*/
- static public boolean populateDummyTargets(IConfiguration cfg, IFile makefile, boolean force)
+ public boolean generateDummyTargets(IConfiguration cfg, IFile makefile, boolean force)
throws CoreException, IOException {
- return populateDummyTargets(cfg.getRootFolderInfo(), makefile, force);
+ return generateDummyTargets(cfg.getRootFolderInfo(), makefile, force);
}
+ /**
+ * @deprecated Use {@link GnuMakefileGenerator#generateDummyTargets(IResourceInfo, IFile, boolean)}
+ */
+ @Deprecated
static public boolean populateDummyTargets(IResourceInfo rcInfo, IFile makefile, boolean force)
throws CoreException, IOException {
+ return new GnuMakefileGenerator().generateDummyTargets(rcInfo, makefile, force);
+ }
+
+ /**
+ * @since 9.3
+ */
+ public boolean generateDummyTargets(IResourceInfo rcInfo, IFile makefile, boolean force)
+ throws CoreException, IOException {
if (makefile == null || !makefile.exists())
return false;
// Get the contents of the dependency file
+ StringBuffer inBuffer;
InputStream contentStream = makefile.getContents(false);
- Reader in = new InputStreamReader(contentStream);
- StringBuffer inBuffer = null;
- int chunkSize = contentStream.available();
- inBuffer = new StringBuffer(chunkSize);
- char[] readBuffer = new char[chunkSize];
- int n = in.read(readBuffer);
- while (n > 0) {
- inBuffer.append(readBuffer);
- n = in.read(readBuffer);
- }
- contentStream.close();
+ try (Reader in = new InputStreamReader(contentStream)) {
+ int chunkSize = contentStream.available();
+ inBuffer = new StringBuffer(chunkSize);
+ char[] readBuffer = new char[chunkSize];
+ int n = in.read(readBuffer);
+ while (n > 0) {
+ inBuffer.append(readBuffer);
+ n = in.read(readBuffer);
+ }
+ }
// The rest of this operation is equally expensive, so
// if we are doing an incremental build, only update the
@@ -3482,6 +3580,7 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
String nextToken = tokenIter.next();
token += WHITESPACE + nextToken;
if (!nextToken.endsWith("\\")) { //$NON-NLS-1$
+ //$NON-NLS-1$
break;
}
}
@@ -3607,6 +3706,7 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
save(outBuffer, makefile);
return true;
}
+
return false;
}
@@ -3623,22 +3723,38 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
static public String ECHO_BLANK_LINE = ECHO + WHITESPACE + SINGLE_QUOTE + WHITESPACE + SINGLE_QUOTE + NEWLINE;
/**
+ * @deprecated Use {@link GnuMakefileGenerator#addGenericHeader()}
+ */
+ @Deprecated
+ static protected StringBuffer addDefaultHeader() {
+ return new GnuMakefileGenerator().addGenericHeader();
+ }
+
+ /**
* Outputs a comment formatted as follows:
* ##### ....... #####
* # <Comment message>
* ##### ....... #####
+ * @since 9.3
*/
- static protected StringBuffer addDefaultHeader() {
+ protected StringBuffer addGenericHeader() {
StringBuffer buffer = new StringBuffer();
outputCommentLine(buffer);
buffer.append(COMMENT_SYMBOL).append(WHITESPACE).append(ManagedMakeMessages.getResourceString(HEADER))
.append(NEWLINE);
+ addCustomHeader(buffer);
outputCommentLine(buffer);
buffer.append(NEWLINE);
return buffer;
}
/**
+ * @since 9.3
+ */
+ protected void addCustomHeader(StringBuffer buffer) {
+ }
+
+ /**
* Put COLS_PER_LINE comment charaters in the argument.
*/
static protected void outputCommentLine(StringBuffer buffer) {
@@ -4478,7 +4594,23 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
*/
/* see https://bugs.eclipse.org/bugs/show_bug.cgi?id=129782 */
public String ensurePathIsGNUMakeTargetRuleCompatibleSyntax(String path) {
- return escapeWhitespaces(ensureUnquoted(path));
+ boolean isQuotedOption = false;
+ if (path.startsWith("-")) { //$NON-NLS-1$
+ isQuotedOption = checkIfQuotedOption(path);
+ }
+ if (!isQuotedOption)
+ return escapeWhitespaces(ensureUnquoted(path));
+ return path;
+ }
+
+ private boolean checkIfQuotedOption(String path) {
+ Matcher m1 = doubleQuotedOption.matcher(path);
+ if (m1.matches())
+ return true;
+ Matcher m2 = singleQuotedOption.matcher(path);
+ if (m2.matches())
+ return true;
+ return false;
}
/**
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/IManagedBuildGnuToolInfo.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/IManagedBuildGnuToolInfo.java
index af854c47c40..a954e777a59 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/IManagedBuildGnuToolInfo.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/IManagedBuildGnuToolInfo.java
@@ -21,7 +21,9 @@ import java.util.Vector;
*
* @noextend This class is not intended to be subclassed by clients.
* @noimplement This interface is not intended to be implemented by clients.
+ * @deprecated Replaced by {@link org.eclipse.cdt.managedbuilder.makegen.gnu2.IManagedBuildGnuToolInfo}
*/
+@Deprecated
public interface IManagedBuildGnuToolInfo {
public final String DOT = "."; //$NON-NLS-1$
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/ManagedBuildGnuToolInfo.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/ManagedBuildGnuToolInfo.java
index d7e08aaf0c5..3aead3fdd1e 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/ManagedBuildGnuToolInfo.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/ManagedBuildGnuToolInfo.java
@@ -54,7 +54,9 @@ import org.eclipse.core.runtime.Path;
* and outputs while a Gnu makefile is being generated.
*
* @noextend This class is not intended to be subclassed by clients.
+ * @deprecated Replaced by {@link org.eclipse.cdt.managedbuilder.makegen.gnu2.ManagedBuildGnuToolInfo}
*/
+@Deprecated
public class ManagedBuildGnuToolInfo implements IManagedBuildGnuToolInfo {
/*
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu2/GnuMakefileGenerator.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu2/GnuMakefileGenerator.java
new file mode 100644
index 00000000000..327551719ca
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu2/GnuMakefileGenerator.java
@@ -0,0 +1,4799 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2022 IBM Corporation and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * IBM Rational Software - Initial API and implementation
+ * ARM Ltd. - Minor changes to echo commands
+ * IBM Corporation
+ * Anna Dushistova (Mentor Graphics) - [307244] extend visibility of fields in GnuMakefileGenerator
+ * James Blackburn (Broadcom Corp.)
+ * Marc-Andre Laperle
+ * Liviu Ionescu - [322168]
+ * Dorothea Pilz-Roeder (Advantest Europe GmbH) - [180451]
+ * John Dallaway - [580441] fix processing on source folder deletion
+ *******************************************************************************/
+package org.eclipse.cdt.managedbuilder.makegen.gnu2;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.BitSet;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.TreeSet;
+import java.util.Vector;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import org.eclipse.cdt.core.CCorePlugin;
+import org.eclipse.cdt.core.settings.model.CSourceEntry;
+import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
+import org.eclipse.cdt.core.settings.model.ICSettingEntry;
+import org.eclipse.cdt.core.settings.model.ICSourceEntry;
+import org.eclipse.cdt.core.settings.model.util.CDataUtil;
+import org.eclipse.cdt.core.settings.model.util.IPathSettingsContainerVisitor;
+import org.eclipse.cdt.core.settings.model.util.PathSettingsContainer;
+import org.eclipse.cdt.managedbuilder.core.BuildException;
+import org.eclipse.cdt.managedbuilder.core.IBuildObject;
+import org.eclipse.cdt.managedbuilder.core.IBuilder;
+import org.eclipse.cdt.managedbuilder.core.IConfiguration;
+import org.eclipse.cdt.managedbuilder.core.IFileInfo;
+import org.eclipse.cdt.managedbuilder.core.IFolderInfo;
+import org.eclipse.cdt.managedbuilder.core.IInputType;
+import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
+import org.eclipse.cdt.managedbuilder.core.IManagedCommandLineGenerator;
+import org.eclipse.cdt.managedbuilder.core.IManagedCommandLineInfo;
+import org.eclipse.cdt.managedbuilder.core.IManagedOutputNameProvider;
+import org.eclipse.cdt.managedbuilder.core.IOption;
+import org.eclipse.cdt.managedbuilder.core.IOutputType;
+import org.eclipse.cdt.managedbuilder.core.IResourceInfo;
+import org.eclipse.cdt.managedbuilder.core.ITool;
+import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
+import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin;
+import org.eclipse.cdt.managedbuilder.internal.core.ManagedMakeMessages;
+import org.eclipse.cdt.managedbuilder.internal.core.Tool;
+import org.eclipse.cdt.managedbuilder.internal.macros.BuildMacroProvider;
+import org.eclipse.cdt.managedbuilder.internal.macros.FileContextData;
+import org.eclipse.cdt.managedbuilder.macros.BuildMacroException;
+import org.eclipse.cdt.managedbuilder.macros.IBuildMacroProvider;
+import org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator;
+import org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator2;
+import org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyCalculator;
+import org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyCommands;
+import org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyGenerator;
+import org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyGenerator2;
+import org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyGeneratorType;
+import org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyInfo;
+import org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyPreBuild;
+import org.eclipse.cdt.managedbuilder.makegen.gnu.DefaultGCCDependencyCalculator3;
+import org.eclipse.cdt.managedbuilder.makegen.gnu.GnuDependencyGroupInfo;
+import org.eclipse.cdt.utils.EFSExtensionManager;
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.IResourceProxy;
+import org.eclipse.core.resources.IResourceProxyVisitor;
+import org.eclipse.core.resources.IResourceStatus;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.MultiStatus;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.SubProgressMonitor;
+
+/**
+ * This is a specialized makefile generator that takes advantage of the
+ * extensions present in Gnu Make.
+ * <p>
+ * If sub-classing and using {@link DefaultGCCDependencyCalculator3}, make sure to also override
+ * {@link DefaultGCCDependencyCalculator3#createMakefileGenerator()} to return the appropriate result.
+ *
+ * @since 1.2
+ * @noinstantiate This class is not intended to be instantiated by clients.
+ */
+public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
+ private static final IPath DOT_SLASH_PATH = new Path("./"); //$NON-NLS-1$
+
+ private Pattern doubleQuotedOption = Pattern.compile("--?[a-zA-Z]+.*?\\\".*?\\\".*"); //$NON-NLS-1$
+ private Pattern singleQuotedOption = Pattern.compile("--?[a-zA-Z]+.*?'.*?'.*"); //$NON-NLS-1$
+
+ /**
+ * This class walks the delta supplied by the build system to determine
+ * what resources have been changed. The logic is very simple. If a
+ * buildable resource (non-header) has been added or removed, the directories
+ * in which they are located are "dirty" so the makefile fragments for them
+ * have to be regenerated.
+ * <p>
+ * The actual dependencies are recalculated as a result of the build step
+ * itself. We are relying on make to do the right things when confronted
+ * with a dependency on a moved header file. That said, make will treat
+ * the missing header file in a dependency rule as a target it has to build
+ * unless told otherwise. These dummy targets are added to the makefile
+ * to avoid a missing target error.
+ */
+ public class ResourceDeltaVisitor implements IResourceDeltaVisitor {
+ private final GnuMakefileGenerator generator;
+ // private IManagedBuildInfo info;
+ private final IConfiguration config;
+
+ /**
+ * The constructor
+ */
+ public ResourceDeltaVisitor(GnuMakefileGenerator generator, IManagedBuildInfo info) {
+ this.generator = generator;
+ this.config = info.getDefaultConfiguration();
+ }
+
+ public ResourceDeltaVisitor(GnuMakefileGenerator generator, IConfiguration cfg) {
+ this.generator = generator;
+ this.config = cfg;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.resources.IResourceDeltaVisitor#visit(org.eclipse.core.resources.IResourceDelta)
+ */
+ @Override
+ public boolean visit(IResourceDelta delta) throws CoreException {
+ // Should the visitor keep iterating in current directory
+ boolean keepLooking = false;
+ IResource resource = delta.getResource();
+ IResourceInfo rcInfo = config.getResourceInfo(resource.getProjectRelativePath(), false);
+ IFolderInfo fo = null;
+ boolean isSource = isSource(resource.getProjectRelativePath());
+ if (rcInfo instanceof IFolderInfo) {
+ fo = (IFolderInfo) rcInfo;
+ }
+ // What kind of resource change has occurred
+ if (/*!rcInfo.isExcluded() && */isSource) {
+ if (resource.getType() == IResource.FILE) {
+ String ext = resource.getFileExtension();
+ switch (delta.getKind()) {
+ case IResourceDelta.ADDED:
+ if (!generator.isGeneratedResource(resource)) {
+ // This is a source file so just add its container
+ if (fo == null || fo.buildsFileType(ext)) {
+ generator.appendModifiedSubdirectory(resource);
+ }
+ }
+ break;
+ case IResourceDelta.REMOVED:
+ // we get this notification if a resource is moved too
+ if (!generator.isGeneratedResource(resource)) {
+ // This is a source file so just add its container
+ if (fo == null || fo.buildsFileType(ext)) {
+ generator.appendDeletedFile(resource);
+ if (resource.getParent().exists()) {
+ generator.appendModifiedSubdirectory(resource);
+ }
+ }
+ }
+ break;
+ default:
+ keepLooking = true;
+ break;
+ }
+ }
+
+ if (resource.getType() == IResource.FOLDER) {
+ // I only care about delete event
+ switch (delta.getKind()) {
+ case IResourceDelta.REMOVED:
+ if (!generator.isGeneratedResource(resource)) {
+ generator.appendDeletedSubdirectory((IContainer) resource);
+ }
+ break;
+ }
+ }
+ }
+ if (resource.getType() == IResource.PROJECT) {
+ // If there is a zero-length delta, something the project depends on has changed so just call make
+ IResourceDelta[] children = delta.getAffectedChildren();
+ if (children != null && children.length > 0) {
+ keepLooking = true;
+ }
+ } else {
+ // If the resource is part of the generated directory structure don't recurse
+ if (resource.getType() == IResource.ROOT || (isSource && !generator.isGeneratedResource(resource))) {
+ keepLooking = true;
+ }
+ }
+
+ return keepLooking;
+ }
+ }
+
+ /**
+ * This class is used to recursively walk the project and determine which
+ * modules contribute buildable source files.
+ */
+ protected class ResourceProxyVisitor implements IResourceProxyVisitor {
+ private final GnuMakefileGenerator generator;
+ private final IConfiguration config;
+ // private IManagedBuildInfo info;
+
+ /**
+ * Constructs a new resource proxy visitor to quickly visit project
+ * resources.
+ */
+ public ResourceProxyVisitor(GnuMakefileGenerator generator, IManagedBuildInfo info) {
+ this.generator = generator;
+ this.config = info.getDefaultConfiguration();
+ }
+
+ public ResourceProxyVisitor(GnuMakefileGenerator generator, IConfiguration cfg) {
+ this.generator = generator;
+ this.config = cfg;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.resources.IResourceProxyVisitor#visit(org.eclipse.core.resources.IResourceProxy)
+ */
+ @Override
+ public boolean visit(IResourceProxy proxy) throws CoreException {
+ // No point in proceeding, is there
+ if (generator == null) {
+ return false;
+ }
+
+ IResource resource = proxy.requestResource();
+ boolean isSource = isSource(resource.getProjectRelativePath());
+
+ // Is this a resource we should even consider
+ if (proxy.getType() == IResource.FILE) {
+ // If this resource has a Resource Configuration and is not excluded or
+ // if it has a file extension that one of the tools builds, add the sudirectory to the list
+ // boolean willBuild = false;
+ IResourceInfo rcInfo = config.getResourceInfo(resource.getProjectRelativePath(), false);
+ if (isSource/* && !rcInfo.isExcluded()*/) {
+ boolean willBuild = false;
+ if (rcInfo instanceof IFolderInfo) {
+ String ext = resource.getFileExtension();
+ if (((IFolderInfo) rcInfo).buildsFileType(ext) &&
+ // If this file resource is a generated resource, then it is uninteresting
+ !generator.isGeneratedResource(resource)) {
+ willBuild = true;
+ }
+ } else {
+ willBuild = true;
+ }
+
+ if (willBuild)
+ generator.appendBuildSubdirectory(resource);
+ }
+ // if (willBuild) {
+ // if ((resConfig == null) || (!(resConfig.isExcluded()))) {
+ // generator.appendBuildSubdirectory(resource);
+ // }
+ // }
+ return false;
+ } else if (proxy.getType() == IResource.FOLDER) {
+
+ if (!isSource || generator.isGeneratedResource(resource))
+ return false;
+ return true;
+ }
+
+ // Recurse into subdirectories
+ return true;
+ }
+
+ }
+
+ // String constants for makefile contents and messages
+ private static final String COMMENT = "MakefileGenerator.comment"; //$NON-NLS-1$
+ //private static final String AUTO_DEP = COMMENT + ".autodeps"; //$NON-NLS-1$
+ //private static final String MESSAGE = "ManagedMakeBuilder.message"; //$NON-NLS-1$
+ //private static final String BUILD_ERROR = MESSAGE + ".error"; //$NON-NLS-1$
+
+ //private static final String DEP_INCL = COMMENT + ".module.dep.includes"; //$NON-NLS-1$
+ private static final String HEADER = COMMENT + ".header"; //$NON-NLS-1$
+
+ protected static final String MESSAGE_FINISH_BUILD = ManagedMakeMessages
+ .getResourceString("MakefileGenerator.message.finish.build"); //$NON-NLS-1$
+ protected static final String MESSAGE_FINISH_FILE = ManagedMakeMessages
+ .getResourceString("MakefileGenerator.message.finish.file"); //$NON-NLS-1$
+ protected static final String MESSAGE_START_BUILD = ManagedMakeMessages
+ .getResourceString("MakefileGenerator.message.start.build"); //$NON-NLS-1$
+ protected static final String MESSAGE_START_FILE = ManagedMakeMessages
+ .getResourceString("MakefileGenerator.message.start.file"); //$NON-NLS-1$
+ protected static final String MESSAGE_START_DEPENDENCY = ManagedMakeMessages
+ .getResourceString("MakefileGenerator.message.start.dependency"); //$NON-NLS-1$
+ protected static final String MESSAGE_NO_TARGET_TOOL = ManagedMakeMessages
+ .getResourceString("MakefileGenerator.message.no.target"); //$NON-NLS-1$
+ //private static final String MOD_INCL = COMMENT + ".module.make.includes"; //$NON-NLS-1$
+ private static final String MOD_LIST = COMMENT + ".module.list"; //$NON-NLS-1$
+ private static final String MOD_VARS = COMMENT + ".module.variables"; //$NON-NLS-1$
+ private static final String MOD_RULES = COMMENT + ".build.rule"; //$NON-NLS-1$
+ private static final String BUILD_TOP = COMMENT + ".build.toprules"; //$NON-NLS-1$
+ private static final String ALL_TARGET = COMMENT + ".build.alltarget"; //$NON-NLS-1$
+ private static final String MAINBUILD_TARGET = COMMENT + ".build.mainbuildtarget"; //$NON-NLS-1$
+ private static final String BUILD_TARGETS = COMMENT + ".build.toptargets"; //$NON-NLS-1$
+ private static final String SRC_LISTS = COMMENT + ".source.list"; //$NON-NLS-1$
+
+ private static final String EMPTY_STRING = ""; //$NON-NLS-1$
+ private static final String[] EMPTY_STRING_ARRAY = new String[0];
+
+ private static final String OBJS_MACRO = "OBJS"; //$NON-NLS-1$
+ private static final String MACRO_ADDITION_ADDPREFIX_HEADER = "${addprefix "; //$NON-NLS-1$
+ private static final String MACRO_ADDITION_ADDPREFIX_SUFFIX = "," + WHITESPACE + LINEBREAK; //$NON-NLS-1$
+ private static final String MACRO_ADDITION_PREFIX_SUFFIX = "+=" + WHITESPACE + LINEBREAK; //$NON-NLS-1$
+ private static final String PREBUILD = "pre-build"; //$NON-NLS-1$
+ private static final String MAINBUILD = "main-build"; //$NON-NLS-1$
+ private static final String POSTBUILD = "post-build"; //$NON-NLS-1$
+ private static final String SECONDARY_OUTPUTS = "secondary-outputs"; //$NON-NLS-1$
+
+ /**
+ * On Windows XP and above, the maximum command line length is 8191, on Linux it is at least 131072, but
+ * that includes the environment. We want to limit the invocation of a single command to this number of
+ * characters, and we want to ensure that the number isn't so low as to slow down operation.
+ *
+ * Doing each rm in its own command would be very slow, especially on Windows.
+ */
+ private static final int MAX_CLEAN_LENGTH = 6000;
+
+ // Enumerations
+ public static final int PROJECT_RELATIVE = 1, PROJECT_SUBDIR_RELATIVE = 2, ABSOLUTE = 3;
+
+ class ToolInfoHolder {
+ ITool[] buildTools;
+ boolean[] buildToolsUsed;
+ ManagedBuildGnuToolInfo[] gnuToolInfos;
+ Set<String> outputExtensionsSet;
+ List<IPath> dependencyMakefiles;
+ }
+
+ // Local variables needed by generator
+ private String buildTargetName;
+ private String buildTargetExt;
+ private IConfiguration config;
+ private IBuilder builder;
+ // private ITool[] buildTools;
+ // private boolean[] buildToolsUsed;
+ // private ManagedBuildGnuToolInfo[] gnuToolInfos;
+ private PathSettingsContainer toolInfos;
+ private Vector<IResource> deletedFileList;
+ private Vector<IResource> deletedDirList;
+ // private IManagedBuildInfo info;
+ // private IConfiguration cfg
+ private Vector<IResource> invalidDirList;
+ /** Collection of Folders in which sources files have been modified */
+ private Collection<IContainer> modifiedList;
+ private IProgressMonitor monitor;
+ private IProject project;
+ private IResource[] projectResources;
+ private Vector<String> ruleList;
+ private Vector<String> depLineList; // String's of additional dependency lines
+ private Vector<String> depRuleList; // String's of rules for generating dependency files
+ /** Collection of Containers which contribute source files to the build */
+ private Collection<IContainer> subdirList;
+ private IPath topBuildDir; // Build directory - relative to the workspace
+ // private Set outputExtensionsSet;
+ //=== Maps of macro names (String) to values (List)
+ // These are TreeMaps to avoid nondeterministic output because the
+ // makefile output depends on their iteration order (bug 575702).
+ // Map of source file build variable names to a List of source file Path's
+ private final Map<String, List<IPath>> buildSrcVars = new TreeMap<>();
+ // Map of output file build variable names to a List of output file Path's
+ private final Map<String, List<IPath>> buildOutVars = new TreeMap<>();
+ // Map of dependency file build variable names to a List of GnuDependencyGroupInfo objects
+ private final Map<String, GnuDependencyGroupInfo> buildDepVars = new TreeMap<>();
+ private final Map<String, Set<String>> topBuildOutVars = new TreeMap<>();
+ // Dependency file variables
+ // private Vector dependencyMakefiles; // IPath's - relative to the top build directory or absolute
+
+ private ICSourceEntry srcEntries[];
+
+ public GnuMakefileGenerator() {
+ super();
+ }
+
+ /*************************************************************************
+ * IManagedBuilderMakefileGenerator M E T H O D S
+ ************************************************************************/
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator#initialize(IProject, IManagedBuildInfo, IProgressMonitor)
+ */
+ @Override
+ public void initialize(IProject project, IManagedBuildInfo info, IProgressMonitor monitor) {
+ // Save the project so we can get path and member information
+ this.project = project;
+ try {
+ projectResources = project.members();
+ } catch (CoreException e) {
+ projectResources = null;
+ }
+ // Save the monitor reference for reporting back to the user
+ this.monitor = monitor;
+ // Get the build info for the project
+ // this.info = info;
+ // Get the name of the build target
+ buildTargetName = info.getBuildArtifactName();
+ // Get its extension
+ buildTargetExt = info.getBuildArtifactExtension();
+
+ try {
+ //try to resolve the build macros in the target extension
+ buildTargetExt = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(buildTargetExt,
+ "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_CONFIGURATION, info.getDefaultConfiguration());
+ } catch (BuildMacroException e) {
+ }
+
+ try {
+ //try to resolve the build macros in the target name
+ String resolved = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(buildTargetName,
+ "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_CONFIGURATION, info.getDefaultConfiguration());
+ if (resolved != null && (resolved = resolved.trim()).length() > 0)
+ buildTargetName = resolved;
+ } catch (BuildMacroException e) {
+ }
+
+ if (buildTargetExt == null) {
+ buildTargetExt = ""; //$NON-NLS-1$
+ }
+ // Cache the build tools
+ config = info.getDefaultConfiguration();
+ builder = config.getEditableBuilder();
+ initToolInfos();
+ //set the top build dir path
+ initializeTopBuildDir(info.getConfigurationName());
+ }
+
+ /**
+ * This method calls the dependency postprocessors defined for the tool chain
+ */
+ private void callDependencyPostProcessors(IResourceInfo rcInfo, ToolInfoHolder h, IFile depFile,
+ IManagedDependencyGenerator2[] postProcessors, // This array is the same size as the buildTools array and has
+ // an entry set when the corresponding tool has a dependency calculator
+ boolean callPopulateDummyTargets, boolean force) throws CoreException {
+ try {
+ // IPath path = depFile.getFullPath();
+ // path = inFullPathFromOutFullPath(path);
+ // IResourceInfo rcInfo = config.getResourceInfo(path, false);
+ // IFolderInfo fo;
+ // if(rcInfo instanceof IFileInfo){
+ // fo = (IFolderInfo)config.getResourceInfo(path.removeLastSegments(1), false);
+ // } else {
+ // fo = (IFolderInfo)rcInfo;
+ // }
+ // ToolInfoHolder h = getToolInfo(fo.getPath());
+ updateMonitor(ManagedMakeMessages.getFormattedString("GnuMakefileGenerator.message.postproc.dep.file", //$NON-NLS-1$
+ depFile.getName()));
+ if (postProcessors != null) {
+ IPath absolutePath = new Path(
+ EFSExtensionManager.getDefault().getPathFromURI(depFile.getLocationURI()));
+ // Convert to build directory relative
+ IPath depPath = ManagedBuildManager.calculateRelativePath(getTopBuildDir(), absolutePath);
+ for (int i = 0; i < postProcessors.length; i++) {
+ IManagedDependencyGenerator2 depGen = postProcessors[i];
+ if (depGen != null) {
+ depGen.postProcessDependencyFile(depPath, config, h.buildTools[i], getTopBuildDir());
+ }
+ }
+ }
+ if (callPopulateDummyTargets) {
+ generateDummyTargets(rcInfo, depFile, force);
+ }
+ } catch (CoreException e) {
+ throw e;
+ } catch (IOException e) {
+ }
+ }
+
+ /**
+ * This method collects the dependency postprocessors and file extensions defined for the tool chain
+ */
+ private boolean collectDependencyGeneratorInformation(ToolInfoHolder h, Vector<String> depExts, // Vector of dependency file extensions
+ IManagedDependencyGenerator2[] postProcessors) {
+
+ boolean callPopulateDummyTargets = false;
+ for (int i = 0; i < h.buildTools.length; i++) {
+ ITool tool = h.buildTools[i];
+ IManagedDependencyGeneratorType depType = tool
+ .getDependencyGeneratorForExtension(tool.getDefaultInputExtension());
+ if (depType != null) {
+ int calcType = depType.getCalculatorType();
+ if (calcType <= IManagedDependencyGeneratorType.TYPE_OLD_TYPE_LIMIT) {
+ if (calcType == IManagedDependencyGeneratorType.TYPE_COMMAND) {
+ callPopulateDummyTargets = true;
+ depExts.add(DEP_EXT);
+ }
+ } else {
+ if (calcType == IManagedDependencyGeneratorType.TYPE_BUILD_COMMANDS
+ || calcType == IManagedDependencyGeneratorType.TYPE_PREBUILD_COMMANDS) {
+ IManagedDependencyGenerator2 depGen = (IManagedDependencyGenerator2) depType;
+ String depExt = depGen.getDependencyFileExtension(config, tool);
+ if (depExt != null) {
+ postProcessors[i] = depGen;
+ depExts.add(depExt);
+ }
+ }
+ }
+ }
+ }
+ return callPopulateDummyTargets;
+ }
+
+ protected boolean isSource(IPath path) {
+ return !CDataUtil.isExcluded(path, srcEntries);
+ // path = path.makeRelative();
+ // for(int i = 0; i < srcPaths.length; i++){
+ // if(srcPaths[i].isPrefixOf(path))
+ // return true;
+ // }
+ // return false;
+ }
+
+ private class DepInfo {
+ Vector<String> depExts;
+ IManagedDependencyGenerator2[] postProcessors;
+ boolean callPopulateDummyTargets;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator#generateDependencies()
+ */
+ @Override
+ public void generateDependencies() throws CoreException {
+ final PathSettingsContainer postProcs = PathSettingsContainer.createRootContainer();
+ // Note: PopulateDummyTargets is a hack for the pre-3.x GCC compilers
+
+ // Collect the methods that will need to be called
+ toolInfos.accept(new IPathSettingsContainerVisitor() {
+ @Override
+ public boolean visit(PathSettingsContainer container) {
+ ToolInfoHolder h = (ToolInfoHolder) container.getValue();
+ Vector<String> depExts = new Vector<>(); // Vector of dependency file extensions
+ IManagedDependencyGenerator2[] postProcessors = new IManagedDependencyGenerator2[h.buildTools.length];
+ boolean callPopulateDummyTargets = collectDependencyGeneratorInformation(h, depExts, postProcessors);
+
+ // Is there anyone to call if we do find dependency files?
+ if (!callPopulateDummyTargets) {
+ int i;
+ for (i = 0; i < postProcessors.length; i++) {
+ if (postProcessors[i] != null)
+ break;
+ }
+ if (i == postProcessors.length)
+ return true;
+ }
+
+ PathSettingsContainer child = postProcs.getChildContainer(container.getPath(), true, true);
+ DepInfo di = new DepInfo();
+ di.depExts = depExts;
+ di.postProcessors = postProcessors;
+ di.callPopulateDummyTargets = callPopulateDummyTargets;
+ child.setValue(di);
+
+ return true;
+ }
+ });
+
+ IWorkspaceRoot root = CCorePlugin.getWorkspace().getRoot();
+ for (IResource res : getSubdirList()) {
+ // The builder creates a subdir with same name as source in the build location
+ IContainer subDir = (IContainer) res;
+ IPath projectRelativePath = subDir.getProjectRelativePath();
+ IResourceInfo rcInfo = config.getResourceInfo(projectRelativePath, false);
+ PathSettingsContainer cr = postProcs.getChildContainer(rcInfo.getPath(), false, true);
+ if (cr == null || cr.getValue() == null)
+ continue;
+
+ DepInfo di = (DepInfo) cr.getValue();
+
+ ToolInfoHolder h = getToolInfo(projectRelativePath);
+ IPath buildRelativePath = topBuildDir.append(projectRelativePath);
+ IFolder buildFolder = root.getFolder(buildRelativePath);
+ if (buildFolder == null)
+ continue;
+
+ // Find all of the dep files in the generated subdirectories
+ IResource[] files = buildFolder.members();
+ for (IResource file : files) {
+ String fileExt = file.getFileExtension();
+ for (String ext : di.depExts) {
+ if (ext.equals(fileExt)) {
+ IFile depFile = root.getFile(file.getFullPath());
+ if (depFile == null)
+ continue;
+ callDependencyPostProcessors(rcInfo, h, depFile, di.postProcessors, di.callPopulateDummyTargets,
+ false);
+ }
+ }
+ }
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator#generateMakefiles(org.eclipse.core.resources.IResourceDelta)
+ */
+ @Override
+ public MultiStatus generateMakefiles(IResourceDelta delta) throws CoreException {
+ /*
+ * Let's do a sanity check right now.
+ *
+ * 1. This is an incremental build, so if the top-level directory is not
+ * there, then a rebuild is needed.
+ */
+ IFolder folder = project.getFolder(computeTopBuildDir(config.getName()));
+ if (!folder.exists()) {
+ return regenerateMakefiles();
+ }
+
+ // Return value
+ MultiStatus status;
+
+ // Visit the resources in the delta and compile a list of subdirectories to regenerate
+ updateMonitor(
+ ManagedMakeMessages.getFormattedString("MakefileGenerator.message.calc.delta", project.getName())); //$NON-NLS-1$
+ ResourceDeltaVisitor visitor = new ResourceDeltaVisitor(this, config);
+ delta.accept(visitor);
+ checkCancel();
+
+ // Get all the subdirectories participating in the build
+ updateMonitor(
+ ManagedMakeMessages.getFormattedString("MakefileGenerator.message.finding.sources", project.getName())); //$NON-NLS-1$
+ ResourceProxyVisitor resourceVisitor = new ResourceProxyVisitor(this, config);
+ project.accept(resourceVisitor, IResource.NONE);
+ checkCancel();
+
+ // Bug 303953: Ensure that if all resources have been removed from a folder, than the folder still
+ // appears in the subdir list so it's subdir.mk is correctly regenerated
+ getSubdirList().addAll(getModifiedList());
+
+ // Make sure there is something to build
+ if (getSubdirList().isEmpty()) {
+ String info = ManagedMakeMessages.getFormattedString("MakefileGenerator.warning.no.source", //$NON-NLS-1$
+ project.getName());
+ updateMonitor(info);
+ status = new MultiStatus(ManagedBuilderCorePlugin.getUniqueIdentifier(), IStatus.INFO, "", //$NON-NLS-1$
+ null);
+ status.add(new Status(IStatus.INFO, ManagedBuilderCorePlugin.getUniqueIdentifier(), NO_SOURCE_FOLDERS, info,
+ null));
+ return status;
+ }
+
+ // Make sure the build directory is available
+ ensureTopBuildDir();
+ checkCancel();
+
+ // Make sure that there is a makefile containing all the folders participating
+ IPath srcsFilePath = topBuildDir.append(SRCSFILE_NAME);
+ IFile srcsFileHandle = createFile(srcsFilePath);
+ buildSrcVars.clear();
+ buildOutVars.clear();
+ buildDepVars.clear();
+ topBuildOutVars.clear();
+ populateSourcesMakefile(srcsFileHandle);
+ checkCancel();
+
+ // Regenerate any fragments that are missing for the exisiting directories NOT modified
+ for (IResource res : getSubdirList()) {
+ IContainer subdirectory = (IContainer) res;
+ if (!getModifiedList().contains(subdirectory)) {
+ // Make sure the directory exists (it may have been deleted)
+ if (!subdirectory.exists()) {
+ appendDeletedSubdirectory(subdirectory);
+ continue;
+ }
+ // Make sure a fragment makefile exists
+ IPath fragmentPath = getBuildWorkingDir().append(subdirectory.getProjectRelativePath())
+ .append(MODFILE_NAME);
+ IFile makeFragment = project.getFile(fragmentPath);
+ if (!makeFragment.exists()) {
+ // If one or both are missing, then add it to the list to be generated
+ getModifiedList().add(subdirectory);
+ }
+ }
+ }
+
+ // Delete the old dependency files for any deleted resources
+ for (IResource deletedFile : getDeletedFileList()) {
+ deleteDepFile(deletedFile);
+ deleteBuildTarget(deletedFile);
+ }
+
+ // Regenerate any fragments for modified directories
+ for (IResource res : getModifiedList()) {
+ IContainer subDir = (IContainer) res;
+ // Make sure the directory exists (it may have been deleted)
+ if (!subDir.exists()) {
+ appendDeletedSubdirectory(subDir);
+ continue;
+ }
+ //populateFragmentMakefile(subDir); // See below
+ checkCancel();
+ }
+
+ // Recreate all module makefiles
+ // NOTE WELL: For now, always recreate all of the fragment makefile. This is necessary
+ // in order to re-populate the buildVariable lists. In the future, the list could
+ // possibly segmented by subdir so that all fragments didn't need to be
+ // regenerated
+ for (IResource res : getSubdirList()) {
+ IContainer subDir = (IContainer) res;
+ try {
+ populateFragmentMakefile(subDir);
+ } catch (CoreException e) {
+ // Probably should ask user if they want to continue
+ checkCancel();
+ continue;
+ }
+ checkCancel();
+ }
+
+ // Calculate the inputs and outputs of the Tools to be generated in the main makefile
+ calculateToolInputsOutputs();
+ checkCancel();
+
+ // Re-create the top-level makefile
+ IPath makefilePath = topBuildDir.append(MAKEFILE_NAME);
+ IFile makefileHandle = createFile(makefilePath);
+ populateTopMakefile(makefileHandle, false);
+ checkCancel();
+
+ // Remove deleted folders from generated build directory
+ for (IResource res : getDeletedDirList()) {
+ IContainer subDir = (IContainer) res;
+ removeGeneratedDirectory(subDir);
+ checkCancel();
+ }
+
+ // How did we do
+ if (!getInvalidDirList().isEmpty()) {
+ status = new MultiStatus(ManagedBuilderCorePlugin.getUniqueIdentifier(), IStatus.WARNING, "", //$NON-NLS-1$
+ null);
+ // Add a new status for each of the bad folders
+ // TODO: fix error message
+ for (IResource res : getInvalidDirList()) {
+ IContainer subDir = (IContainer) res;
+ status.add(new Status(IStatus.WARNING, ManagedBuilderCorePlugin.getUniqueIdentifier(), SPACES_IN_PATH,
+ subDir.getFullPath().toString(), null));
+ }
+ } else {
+ status = new MultiStatus(ManagedBuilderCorePlugin.getUniqueIdentifier(), IStatus.OK, "", //$NON-NLS-1$
+ null);
+ }
+
+ return status;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator#getBuildWorkingDir()
+ */
+ @Override
+ public IPath getBuildWorkingDir() {
+ if (topBuildDir != null) {
+ return topBuildDir.removeFirstSegments(1);
+ }
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator#getMakefileName()
+ */
+ @Override
+ public String getMakefileName() {
+ return MAKEFILE_NAME;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator#isGeneratedResource(org.eclipse.core.resources.IResource)
+ */
+ @Override
+ public boolean isGeneratedResource(IResource resource) {
+ // Is this a generated directory ...
+ IPath path = resource.getProjectRelativePath();
+ //TODO: fix to use builder output dir instead
+ String[] configNames = ManagedBuildManager.getBuildInfo(project).getConfigurationNames();
+ for (String name : configNames) {
+ IPath pathOfConfig = computeTopBuildDir(name);
+ if (pathOfConfig.isPrefixOf(path)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private static void save(StringBuffer buffer, IFile file) throws CoreException {
+ String encoding = null;
+ try {
+ encoding = file.getCharset();
+ } catch (CoreException ce) {
+ // use no encoding
+ }
+
+ byte[] bytes = null;
+ if (encoding != null) {
+ try {
+ bytes = buffer.toString().getBytes(encoding);
+ } catch (Exception e) {
+ }
+ } else {
+ bytes = buffer.toString().getBytes();
+ }
+
+ byte[] oldBytes = null;
+ try (InputStream is = file.getContents(true)) {
+ oldBytes = is.readAllBytes();
+ } catch (IOException e) {
+ }
+
+ // Only write file if content differs
+ if (!Arrays.equals(oldBytes, bytes)) {
+ ByteArrayInputStream stream = new ByteArrayInputStream(bytes);
+ // use a platform operation to update the resource contents
+ boolean force = true;
+ file.setContents(stream, force, false, null); // Don't record history
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator#regenerateDependencies()
+ */
+ @Override
+ public void regenerateDependencies(boolean force) throws CoreException {
+ // A hack for the pre-3.x GCC compilers is to put dummy targets for deps
+ final IWorkspaceRoot root = CCorePlugin.getWorkspace().getRoot();
+ final CoreException[] es = new CoreException[1];
+
+ toolInfos.accept(new IPathSettingsContainerVisitor() {
+ @Override
+ public boolean visit(PathSettingsContainer container) {
+ ToolInfoHolder h = (ToolInfoHolder) container.getValue();
+ // Collect the methods that will need to be called
+ Vector<String> depExts = new Vector<>(); // Vector of dependency file extensions
+ IManagedDependencyGenerator2[] postProcessors = new IManagedDependencyGenerator2[h.buildTools.length];
+ boolean callPopulateDummyTargets = collectDependencyGeneratorInformation(h, depExts, postProcessors);
+
+ // Is there anyone to call if we do find dependency files?
+ if (!callPopulateDummyTargets) {
+ int i;
+ for (i = 0; i < postProcessors.length; i++) {
+ if (postProcessors[i] != null)
+ break;
+ }
+ if (i == postProcessors.length)
+ return true;
+ }
+
+ IResourceInfo rcInfo = config.getResourceInfo(container.getPath(), false);
+ for (IPath path : getDependencyMakefiles(h)) {
+ // The path to search for the dependency makefile
+ IPath relDepFilePath = topBuildDir.append(path);
+ IFile depFile = root.getFile(relDepFilePath);
+ if (depFile == null || !depFile.isAccessible())
+ continue;
+ try {
+ callDependencyPostProcessors(rcInfo, h, depFile, postProcessors, callPopulateDummyTargets,
+ true);
+ } catch (CoreException e) {
+ es[0] = e;
+ return false;
+ }
+ }
+ return true;
+ }
+ });
+
+ if (es[0] != null)
+ throw es[0];
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator#regenerateMakefiles()
+ */
+ @Override
+ public MultiStatus regenerateMakefiles() throws CoreException {
+ MultiStatus status;
+ // Visit the resources in the project
+ ResourceProxyVisitor visitor = new ResourceProxyVisitor(this, config);
+ project.accept(visitor, IResource.NONE);
+
+ // See if the user has cancelled the build
+ checkCancel();
+
+ // Populate the makefile if any buildable source files have been found in the project
+ if (getSubdirList().isEmpty()) {
+ String info = ManagedMakeMessages.getFormattedString("MakefileGenerator.warning.no.source", //$NON-NLS-1$
+ project.getName());
+ updateMonitor(info);
+ status = new MultiStatus(ManagedBuilderCorePlugin.getUniqueIdentifier(), IStatus.INFO, "", //$NON-NLS-1$
+ null);
+ status.add(new Status(IStatus.INFO, ManagedBuilderCorePlugin.getUniqueIdentifier(), NO_SOURCE_FOLDERS, info,
+ null));
+ return status;
+ }
+
+ // Create the top-level directory for the build output
+ ensureTopBuildDir();
+ checkCancel();
+
+ // Get the list of subdirectories
+ IPath srcsFilePath = topBuildDir.append(SRCSFILE_NAME);
+ IFile srcsFileHandle = createFile(srcsFilePath);
+ buildSrcVars.clear();
+ buildOutVars.clear();
+ buildDepVars.clear();
+ topBuildOutVars.clear();
+ populateSourcesMakefile(srcsFileHandle);
+ checkCancel();
+
+ // Now populate the module makefiles
+ for (IResource res : getSubdirList()) {
+ IContainer subDir = (IContainer) res;
+ try {
+ populateFragmentMakefile(subDir);
+ } catch (CoreException e) {
+ // Probably should ask user if they want to continue
+ checkCancel();
+ continue;
+ }
+ checkCancel();
+ }
+
+ // Calculate the inputs and outputs of the Tools to be generated in the main makefile
+ calculateToolInputsOutputs();
+ checkCancel();
+
+ // Create the top-level makefile
+ IPath makefilePath = topBuildDir.append(MAKEFILE_NAME);
+ IFile makefileHandle = createFile(makefilePath);
+ populateTopMakefile(makefileHandle, true);
+ checkCancel();
+
+ // How did we do
+ if (!getInvalidDirList().isEmpty()) {
+ status = new MultiStatus(ManagedBuilderCorePlugin.getUniqueIdentifier(), IStatus.WARNING, "", //$NON-NLS-1$
+ null);
+ // Add a new status for each of the bad folders
+ // TODO: fix error message
+ for (IResource dir : getInvalidDirList()) {
+ status.add(new Status(IStatus.WARNING, ManagedBuilderCorePlugin.getUniqueIdentifier(), SPACES_IN_PATH,
+ dir.getFullPath().toString(), null));
+ }
+ } else {
+ status = new MultiStatus(ManagedBuilderCorePlugin.getUniqueIdentifier(), IStatus.OK, "", //$NON-NLS-1$
+ null);
+ }
+ return status;
+ }
+
+ /*************************************************************************
+ * M A K E F I L E S P O P U L A T I O N M E T H O D S
+ ************************************************************************/
+
+ /**
+ * This method generates a "fragment" make file (subdir.mk).
+ * One of these is generated for each project directory/subdirectory
+ * that contains source files.
+ */
+ protected void populateFragmentMakefile(IContainer module) throws CoreException {
+ // Calculate the new directory relative to the build output
+ IPath moduleRelativePath = module.getProjectRelativePath();
+ IPath buildRoot = getBuildWorkingDir();
+ if (buildRoot == null) {
+ return;
+ }
+
+ IPath moduleOutputPath = buildRoot.append(moduleRelativePath);
+ updateMonitor(ManagedMakeMessages.getFormattedString("MakefileGenerator.message.gen.source.makefile", //$NON-NLS-1$
+ moduleOutputPath.toString()));
+
+ // Now create the directory
+ IPath moduleOutputDir = createDirectory(moduleOutputPath.toString());
+
+ // Create a module makefile
+ IFile modMakefile = createFile(moduleOutputDir.append(MODFILE_NAME));
+ StringBuffer makeBuf = new StringBuffer();
+ makeBuf.append(addFragmentMakefileHeader());
+ makeBuf.append(addSources(module, toCleanTarget(moduleRelativePath)));
+
+ // Save the files
+ save(makeBuf, modMakefile);
+ }
+
+ protected void populateSourcesMakefile(IFile fileHandle) throws CoreException {
+ // Add the comment
+ StringBuffer buffer = addGenericHeader();
+
+ // Determine the set of macros
+ toolInfos.accept(new IPathSettingsContainerVisitor() {
+
+ @Override
+ public boolean visit(PathSettingsContainer container) {
+ ToolInfoHolder h = (ToolInfoHolder) container.getValue();
+ ITool[] buildTools = h.buildTools;
+ HashSet<String> handledInputExtensions = new HashSet<>();
+ String buildMacro;
+ for (ITool buildTool : buildTools) {
+ if (buildTool.getCustomBuildStep())
+ continue;
+ // Add the known sources macros
+ String[] extensionsList = buildTool.getAllInputExtensions();
+ for (String ext : extensionsList) {
+ // create a macro of the form "EXTENSION_SRCS :="
+ String extensionName = ext;
+ if (//!getOutputExtensions().contains(extensionName) &&
+ !handledInputExtensions.contains(extensionName)) {
+ handledInputExtensions.add(extensionName);
+ buildMacro = getSourceMacroName(extensionName).toString();
+ if (!buildSrcVars.containsKey(buildMacro)) {
+ buildSrcVars.put(buildMacro, new ArrayList<IPath>());
+ }
+ // Add any generated dependency file macros
+ IManagedDependencyGeneratorType depType = buildTool
+ .getDependencyGeneratorForExtension(extensionName);
+ if (depType != null) {
+ int calcType = depType.getCalculatorType();
+ if (calcType == IManagedDependencyGeneratorType.TYPE_COMMAND
+ || calcType == IManagedDependencyGeneratorType.TYPE_BUILD_COMMANDS
+ || calcType == IManagedDependencyGeneratorType.TYPE_PREBUILD_COMMANDS) {
+ buildMacro = getDepMacroName(extensionName).toString();
+ if (!buildDepVars.containsKey(buildMacro)) {
+ buildDepVars.put(buildMacro, new GnuDependencyGroupInfo(buildMacro,
+ (calcType != IManagedDependencyGeneratorType.TYPE_PREBUILD_COMMANDS)));
+ }
+ if (!buildOutVars.containsKey(buildMacro)) {
+ buildOutVars.put(buildMacro, new ArrayList<IPath>());
+ }
+ }
+ }
+ }
+ }
+ // Add the specified output build variables
+ IOutputType[] outTypes = buildTool.getOutputTypes();
+ if (outTypes != null && outTypes.length > 0) {
+ for (IOutputType outputType : outTypes) {
+ buildMacro = outputType.getBuildVariable();
+ if (!buildOutVars.containsKey(buildMacro)) {
+ buildOutVars.put(buildMacro, new ArrayList<IPath>());
+ }
+ }
+ } else {
+ // For support of pre-CDT 3.0 integrations.
+ buildMacro = OBJS_MACRO;
+ if (!buildOutVars.containsKey(buildMacro)) {
+ buildOutVars.put(buildMacro, new ArrayList<IPath>());
+ }
+ }
+ }
+ return true;
+ }
+ });
+ // Add the macros to the makefile
+ for (Entry<String, List<IPath>> entry : buildSrcVars.entrySet()) {
+ String macroName = entry.getKey();
+ buffer.append(macroName).append(WHITESPACE).append(":=").append(WHITESPACE).append(NEWLINE); //$NON-NLS-1$
+ }
+ Set<Entry<String, List<IPath>>> set = buildOutVars.entrySet();
+ for (Entry<String, List<IPath>> entry : set) {
+ String macroName = entry.getKey();
+ buffer.append(macroName).append(WHITESPACE).append(":=").append(WHITESPACE).append(NEWLINE); //$NON-NLS-1$
+ }
+
+ // Add a list of subdirectories to the makefile
+ buffer.append(NEWLINE).append(addSubdirectories());
+
+ // Save the file
+ save(buffer, fileHandle);
+ }
+
+ /**
+ * Create the entire contents of the makefile.
+ *
+ * @param fileHandle The file to place the contents in.
+ * @param rebuild FLag signaling that the user is doing a full rebuild
+ */
+ protected void populateTopMakefile(IFile fileHandle, boolean rebuild) throws CoreException {
+ StringBuffer buffer = new StringBuffer();
+
+ // Add the header
+ buffer.append(addTopHeader());
+
+ // Add the macro definitions
+ buffer.append(addMacros());
+
+ // List to collect needed build output variables
+ List<String> outputVarsAdditionsList = new ArrayList<>();
+
+ // Determine target rules
+ StringBuffer targetRules = addTargets(outputVarsAdditionsList, rebuild);
+
+ // Add outputMacros that were added to by the target rules
+ buffer.append(writeTopAdditionMacros(outputVarsAdditionsList, getTopBuildOutputVars()));
+
+ // Add target rules
+ buffer.append(targetRules);
+
+ // Save the file
+ save(buffer, fileHandle);
+ }
+
+ /*************************************************************************
+ * M A I N (makefile) M A K E F I L E M E T H O D S
+ ************************************************************************/
+
+ /**
+ * Answers a <code>StringBuffer</code> containing the comment(s)
+ * for the top-level makefile.
+ */
+ protected StringBuffer addTopHeader() {
+ return addGenericHeader();
+ }
+
+ /**
+ */
+ private StringBuffer addMacros() {
+ StringBuffer buffer = new StringBuffer();
+
+ // Add the ROOT macro
+ //buffer.append("ROOT := ..").append(NEWLINE); //$NON-NLS-1$
+ //buffer.append(NEWLINE);
+
+ // include makefile.init supplementary makefile
+ buffer.append("-include " + reachProjectRoot() + SEPARATOR + MAKEFILE_INIT).append(NEWLINE); //$NON-NLS-1$
+ buffer.append(NEWLINE);
+
+ // Get the clean command from the build model
+ buffer.append("RM := "); //$NON-NLS-1$
+
+ // support macros in the clean command
+ String cleanCommand = config.getCleanCommand();
+
+ try {
+ cleanCommand = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(
+ config.getCleanCommand(), EMPTY_STRING, WHITESPACE, IBuildMacroProvider.CONTEXT_CONFIGURATION,
+ config);
+ } catch (BuildMacroException e) {
+ }
+
+ buffer.append(cleanCommand).append(NEWLINE);
+
+ buffer.append(NEWLINE);
+
+ // Now add the source providers
+ buffer.append(COMMENT_SYMBOL).append(WHITESPACE).append(ManagedMakeMessages.getResourceString(SRC_LISTS))
+ .append(NEWLINE);
+ buffer.append("-include sources.mk").append(NEWLINE); //$NON-NLS-1$
+
+ // Add includes for each subdir in child-subdir-first order (required for makefile rule matching to work).
+ List<String> subDirList = new ArrayList<>();
+ for (IContainer subDir : getSubdirList()) {
+ String projectRelativePath = subDir.getProjectRelativePath().toString();
+ subDirList.add(0, projectRelativePath);
+ }
+ Collections.sort(subDirList, Collections.reverseOrder());
+ for (String dir : subDirList) {
+ buffer.append("-include "); //$NON-NLS-1$
+ if (!dir.isEmpty())
+ buffer.append(escapeWhitespaces(dir)).append(SEPARATOR);
+ buffer.append(MODFILE_NAME).append(NEWLINE);
+ }
+
+ // Include generated dependency makefiles if non-empty AND a "clean" has not been requested
+ if (!buildDepVars.isEmpty()) {
+ buffer.append("ifneq ($(MAKECMDGOALS),clean)").append(NEWLINE); //$NON-NLS-1$
+
+ for (Entry<String, GnuDependencyGroupInfo> entry : buildDepVars.entrySet()) {
+ String depsMacro = entry.getKey();
+ GnuDependencyGroupInfo info = entry.getValue();
+ buffer.append("ifneq ($(strip $(").append(depsMacro).append(")),)").append(NEWLINE); //$NON-NLS-1$ //$NON-NLS-2$
+ if (info.conditionallyInclude) {
+ buffer.append("-include $(").append(depsMacro).append(')').append(NEWLINE); //$NON-NLS-1$
+ } else {
+ buffer.append("include $(").append(depsMacro).append(')').append(NEWLINE); //$NON-NLS-1$
+ }
+ buffer.append("endif").append(NEWLINE); //$NON-NLS-1$
+ }
+
+ buffer.append("endif").append(NEWLINE).append(NEWLINE); //$NON-NLS-1$
+ }
+
+ // Include makefile.defs supplemental makefile
+ buffer.append("-include ").append(reachProjectRoot()).append(SEPARATOR).append(MAKEFILE_DEFS).append(NEWLINE); //$NON-NLS-1$
+
+ final String wildcardFileFmt = "$(wildcard %s)" + WHITESPACE + LINEBREAK; //$NON-NLS-1$
+ buffer.append(NEWLINE).append("OPTIONAL_TOOL_DEPS :=").append(WHITESPACE).append(LINEBREAK); //$NON-NLS-1$
+ buffer.append(String.format(wildcardFileFmt, reachProjectRoot() + SEPARATOR + MAKEFILE_DEFS));
+ buffer.append(String.format(wildcardFileFmt, reachProjectRoot() + SEPARATOR + MAKEFILE_INIT));
+ buffer.append(String.format(wildcardFileFmt, reachProjectRoot() + SEPARATOR + MAKEFILE_TARGETS));
+ buffer.append(NEWLINE);
+
+ String ext = config.getArtifactExtension();
+ // try to resolve the build macros in the artifact extension
+ try {
+ ext = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(ext, EMPTY_STRING,
+ WHITESPACE, IBuildMacroProvider.CONTEXT_CONFIGURATION, config);
+ } catch (BuildMacroException e) {
+ }
+
+ String name = config.getArtifactName();
+ // try to resolve the build macros in the artifact name
+ try {
+ String resolved = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(name,
+ EMPTY_STRING, WHITESPACE, IBuildMacroProvider.CONTEXT_CONFIGURATION, config);
+ if ((resolved = resolved.trim()).length() > 0) {
+ name = resolved;
+ }
+ } catch (BuildMacroException e) {
+ }
+
+ String prefix = EMPTY_STRING;
+ ITool targetTool = config.calculateTargetTool();
+ if (targetTool != null) {
+ prefix = targetTool.getOutputPrefix();
+ if (prefix == null) {
+ prefix = EMPTY_STRING;
+ }
+ }
+ // try to resolve the build macros in the artifact prefix
+ try {
+ String resolved = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(prefix,
+ EMPTY_STRING, WHITESPACE, IBuildMacroProvider.CONTEXT_CONFIGURATION, config);
+ if ((resolved = resolved.trim()).length() > 0) {
+ prefix = resolved;
+ }
+ } catch (BuildMacroException e) {
+ }
+
+ @SuppressWarnings("nls")
+ String[][] buildArtifactVars = new String[][] { //
+ { "BUILD_ARTIFACT_NAME", name }, //
+ { "BUILD_ARTIFACT_EXTENSION", ext }, //
+ { "BUILD_ARTIFACT_PREFIX", prefix }, //
+ { "BUILD_ARTIFACT",
+ "$(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)" }, //
+ };
+
+ buffer.append(NEWLINE);
+ for (String[] var : buildArtifactVars) {
+ buffer.append(var[0]).append(" :="); //$NON-NLS-1$
+ if (!var[1].isEmpty()) {
+ buffer.append(WHITESPACE).append(var[1]);
+ }
+ buffer.append(NEWLINE);
+ }
+
+ return (buffer.append(NEWLINE));
+ }
+
+ /**
+ * Answers a <code>StringBuffer</code> containing all of the required targets to
+ * properly build the project.
+ *
+ * @param outputVarsAdditionsList list to add needed build output variables to
+ */
+ private StringBuffer addTargets(List<String> outputVarsAdditionsList, boolean rebuild) {
+ StringBuffer buffer = new StringBuffer();
+
+ // IConfiguration config = info.getDefaultConfiguration();
+
+ // Assemble the information needed to generate the targets
+ String prebuildStep = config.getPrebuildStep();
+ try {
+ //try to resolve the build macros in the prebuild step
+ prebuildStep = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(prebuildStep,
+ EMPTY_STRING, WHITESPACE, IBuildMacroProvider.CONTEXT_CONFIGURATION, config);
+ } catch (BuildMacroException e) {
+ }
+ prebuildStep = prebuildStep.trim(); // Remove leading and trailing whitespace (and control characters)
+
+ String postbuildStep = config.getPostbuildStep();
+ try {
+ //try to resolve the build macros in the postbuild step
+ postbuildStep = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(postbuildStep,
+ EMPTY_STRING, WHITESPACE, IBuildMacroProvider.CONTEXT_CONFIGURATION, config);
+
+ } catch (BuildMacroException e) {
+ }
+ postbuildStep = postbuildStep.trim(); // Remove leading and trailing whitespace (and control characters)
+ String preannouncebuildStep = config.getPreannouncebuildStep();
+ String postannouncebuildStep = config.getPostannouncebuildStep();
+ String targets = rebuild ? "clean all" : "all"; //$NON-NLS-1$ //$NON-NLS-2$
+
+ ITool targetTool = config.calculateTargetTool();
+ // if (targetTool == null) {
+ // targetTool = info.getToolFromOutputExtension(buildTargetExt);
+ // }
+
+ // Get all the projects the build target depends on
+ // If this configuration produces a static archive, building the archive doesn't depend on the output
+ // from any of the referenced configurations
+ IConfiguration[] refConfigs = new IConfiguration[0];
+ if (config.getBuildArtefactType() == null || !ManagedBuildManager.BUILD_ARTEFACT_TYPE_PROPERTY_STATICLIB
+ .equals(config.getBuildArtefactType().getId()))
+ refConfigs = ManagedBuildManager.getReferencedConfigurations(config);
+
+ // Add the comment for the "All" target
+ buffer.append(COMMENT_SYMBOL).append(WHITESPACE).append(ManagedMakeMessages.getResourceString(ALL_TARGET))
+ .append(NEWLINE);
+
+ if (!prebuildStep.isEmpty() || !postbuildStep.isEmpty()) {
+ // all:
+ buffer.append("all").append(COLON).append(NEWLINE); //$NON-NLS-1$
+
+ String makeNoPrintDir = MAKE + WHITESPACE + NO_PRINT_DIR + WHITESPACE;
+ buffer.append(TAB).append("+@"); //$NON-NLS-1$
+ if (!prebuildStep.isEmpty()) {
+ buffer.append(makeNoPrintDir).append(PREBUILD).append(WHITESPACE).append(LOGICAL_AND)
+ .append(WHITESPACE);
+ }
+ buffer.append(makeNoPrintDir).append(MAINBUILD);
+ if (!postbuildStep.isEmpty()) {
+ buffer.append(WHITESPACE).append(LOGICAL_AND).append(WHITESPACE).append(makeNoPrintDir)
+ .append(POSTBUILD);
+ }
+
+ buffer.append(NEWLINE);
+
+ } else {
+ // all: main-build
+ buffer.append("all").append(COLON).append(WHITESPACE).append(MAINBUILD).append(NEWLINE); //$NON-NLS-1$
+ }
+ buffer.append(NEWLINE);
+
+ // Add the comment for the "main-build" target
+ buffer.append(COMMENT_SYMBOL).append(WHITESPACE).append(ManagedMakeMessages.getResourceString(MAINBUILD_TARGET))
+ .append(NEWLINE);
+
+ // Write out the main-build target first in case someone just runs make
+ // main-build: <target_name>
+
+ String outputPrefix = EMPTY_STRING;
+ if (targetTool != null) {
+ outputPrefix = targetTool.getOutputPrefix();
+ }
+ buffer.append(MAINBUILD).append(COLON).append(WHITESPACE).append(outputPrefix)
+ .append(ensurePathIsGNUMakeTargetRuleCompatibleSyntax(buildTargetName));
+ if (buildTargetExt.length() > 0) {
+ buffer.append(DOT).append(buildTargetExt);
+ }
+
+ // Add the Secondary Outputs to the all target, if any
+ IOutputType[] secondaryOutputs = config.getToolChain().getSecondaryOutputs();
+ if (secondaryOutputs.length > 0) {
+ buffer.append(WHITESPACE).append(SECONDARY_OUTPUTS);
+ }
+
+ buffer.append(NEWLINE).append(NEWLINE);
+
+ /*
+ * The build target may depend on other projects in the workspace. These
+ * are captured in the deps target: deps: <cd <Proj_Dep_1/build_dir>;
+ * $(MAKE) [clean all | all]>
+ */
+ // Vector managedProjectOutputs = new Vector(refdProjects.length);
+ // if (refdProjects.length > 0) {
+ Vector<String> managedProjectOutputs = new Vector<>(refConfigs.length);
+ if (refConfigs.length > 0) {
+ boolean addDeps = true;
+ // if (refdProjects != null) {
+ for (IConfiguration depCfg : refConfigs) {
+ // IProject dep = refdProjects[i];
+ if (!depCfg.isManagedBuildOn())
+ continue;
+
+ // if (!dep.exists()) continue;
+ if (addDeps) {
+ buffer.append("dependents:").append(NEWLINE); //$NON-NLS-1$
+ addDeps = false;
+ }
+ String buildDir = depCfg.getOwner().getLocation().toString();
+ String depTargets = targets;
+ // if (ManagedBuildManager.manages(dep)) {
+ // Add the current configuration to the makefile path
+ // IManagedBuildInfo depInfo = ManagedBuildManager.getBuildInfo(dep);
+ buildDir += SEPARATOR + depCfg.getName();
+
+ // Extract the build artifact to add to the dependency list
+ String depTarget = depCfg.getArtifactName();
+ String depExt = depCfg.getArtifactExtension();
+
+ try {
+ //try to resolve the build macros in the artifact extension
+ depExt = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(depExt, "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_CONFIGURATION, depCfg);
+ } catch (BuildMacroException e) {
+ }
+
+ try {
+ //try to resolve the build macros in the artifact name
+ String resolved = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(
+ depTarget, "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_CONFIGURATION, depCfg);
+ if ((resolved = resolved.trim()).length() > 0)
+ depTarget = resolved;
+ } catch (BuildMacroException e) {
+ }
+
+ String depPrefix = depCfg.getOutputPrefix(depExt);
+ if (depCfg.needsRebuild()) {
+ depTargets = "clean all"; //$NON-NLS-1$
+ }
+ String dependency = buildDir + SEPARATOR + depPrefix + depTarget;
+ if (depExt.length() > 0) {
+ dependency += DOT + depExt;
+ }
+ dependency = escapeWhitespaces(dependency);
+ managedProjectOutputs.add(dependency);
+ //}
+ buffer.append(TAB).append("-cd").append(WHITESPACE).append(escapeWhitespaces(buildDir)) //$NON-NLS-1$
+ .append(WHITESPACE).append(LOGICAL_AND).append(WHITESPACE).append("$(MAKE) ").append(depTargets) //$NON-NLS-1$
+ .append(NEWLINE);
+ }
+ // }
+ buffer.append(NEWLINE);
+ }
+
+ // Add the targets tool rules
+ buffer.append(addTargetsRules(targetTool, outputVarsAdditionsList, managedProjectOutputs));
+
+ // Add the prebuild step target, if specified
+ if (prebuildStep.length() > 0) {
+ buffer.append(PREBUILD).append(COLON).append(NEWLINE);
+ if (preannouncebuildStep.length() > 0) {
+ buffer.append(TAB).append(DASH).append(AT).append(escapedEcho(preannouncebuildStep));
+ }
+ buffer.append(TAB).append(DASH).append(prebuildStep).append(NEWLINE);
+ buffer.append(TAB).append(DASH).append(AT).append(ECHO_BLANK_LINE).append(NEWLINE);
+ }
+
+ // Add the postbuild step, if specified
+ if (postbuildStep.length() > 0) {
+ buffer.append(POSTBUILD).append(COLON).append(NEWLINE);
+ if (postannouncebuildStep.length() > 0) {
+ buffer.append(TAB).append(DASH).append(AT).append(escapedEcho(postannouncebuildStep));
+ }
+ buffer.append(TAB).append(DASH).append(postbuildStep).append(NEWLINE);
+ buffer.append(TAB).append(DASH).append(AT).append(ECHO_BLANK_LINE).append(NEWLINE);
+ }
+
+ // Add the Secondary Outputs target, if needed
+ if (secondaryOutputs.length > 0) {
+ buffer.append(SECONDARY_OUTPUTS).append(COLON);
+ Vector<String> outs2 = calculateSecondaryOutputs(secondaryOutputs);
+ for (int i = 0; i < outs2.size(); i++) {
+ buffer.append(WHITESPACE).append("$(").append(outs2.get(i)).append(')'); //$NON-NLS-1$
+ }
+ buffer.append(NEWLINE).append(NEWLINE);
+ }
+
+ // Add all the needed dummy and phony targets
+ buffer.append(".PHONY: all clean dependents").append(WHITESPACE).append(MAINBUILD); //$NON-NLS-1$
+ if (prebuildStep.length() > 0) {
+ buffer.append(WHITESPACE).append(PREBUILD);
+ }
+ if (postbuildStep.length() > 0) {
+ buffer.append(WHITESPACE).append(POSTBUILD);
+ }
+ buffer.append(NEWLINE);
+ for (String output : managedProjectOutputs) {
+ buffer.append(output).append(COLON).append(NEWLINE);
+ }
+ buffer.append(NEWLINE);
+
+ // Include makefile.targets supplemental makefile
+ buffer.append("-include ").append(reachProjectRoot()).append(SEPARATOR).append(MAKEFILE_TARGETS) //$NON-NLS-1$
+ .append(NEWLINE);
+
+ return buffer;
+ }
+
+ /**
+ * Returns the targets rules. The targets make file (top makefile) contains:
+ * 1 the rule for the final target tool
+ * 2 the rules for all of the tools that use multipleOfType in their primary input type
+ * 3 the rules for all tools that use the output of #2 tools
+ *
+ * @param outputVarsAdditionsList list to add needed build output variables to
+ * @param managedProjectOutputs Other projects in the workspace that this project depends upon
+ * @return StringBuffer
+ */
+ private StringBuffer addTargetsRules(ITool targetTool, List<String> outputVarsAdditionsList,
+ Vector<String> managedProjectOutputs) {
+ StringBuffer buffer = new StringBuffer();
+ // Add the comment
+ buffer.append(COMMENT_SYMBOL).append(WHITESPACE).append(ManagedMakeMessages.getResourceString(BUILD_TOP))
+ .append(NEWLINE);
+
+ ToolInfoHolder h = (ToolInfoHolder) toolInfos.getValue();
+ ITool[] buildTools = h.buildTools;
+ boolean[] buildToolsUsed = h.buildToolsUsed;
+ // Get the target tool and generate the rule
+ if (targetTool != null) {
+ // Note that the name of the target we pass to addRuleForTool does not
+ // appear to be used there (and tool outputs are consulted directly), but
+ // we quote it anyway just in case it starts to use it in future.
+ if (addRuleForTool(targetTool, buffer, true, ensurePathIsGNUMakeTargetRuleCompatibleSyntax(buildTargetName),
+ buildTargetExt, outputVarsAdditionsList, managedProjectOutputs)) {
+ // Mark the target tool as processed
+ for (int i = 0; i < buildTools.length; i++) {
+ if (targetTool == buildTools[i]) {
+ buildToolsUsed[i] = true;
+ }
+ }
+ }
+ } else {
+ buffer.append(TAB).append(AT).append(escapedEcho(MESSAGE_NO_TARGET_TOOL + WHITESPACE + OUT_MACRO));
+ }
+
+ // Generate the rules for all Tools that specify InputType.multipleOfType, and any Tools that
+ // consume the output of those tools. This does not apply to pre-3.0 integrations, since
+ // the only "multipleOfType" tool is the "target" tool
+ for (int i = 0; i < buildTools.length; i++) {
+ ITool tool = buildTools[i];
+ IInputType type = tool.getPrimaryInputType();
+ if (type != null && type.getMultipleOfType()) {
+ if (!buildToolsUsed[i]) {
+ addRuleForTool(tool, buffer, false, null, null, outputVarsAdditionsList, null);
+ // Mark the target tool as processed
+ buildToolsUsed[i] = true;
+ // Look for tools that consume the output
+ generateRulesForConsumers(tool, outputVarsAdditionsList, buffer);
+ }
+ }
+ }
+
+ // Add the comment
+ buffer.append(COMMENT_SYMBOL).append(WHITESPACE).append(ManagedMakeMessages.getResourceString(BUILD_TARGETS))
+ .append(NEWLINE);
+
+ // Always add a clean target
+ buffer.append("clean:").append(NEWLINE); //$NON-NLS-1$
+
+ Set<String> filesToClean = new HashSet<>();
+ String outputPrefix = EMPTY_STRING;
+ if (targetTool != null) {
+ outputPrefix = targetTool.getOutputPrefix();
+ }
+ String completeBuildTargetName = outputPrefix + buildTargetName;
+ if (buildTargetExt.length() > 0) {
+ completeBuildTargetName = completeBuildTargetName + DOT + buildTargetExt;
+ }
+ completeBuildTargetName = ensurePathIsGNUMakeTargetRuleCompatibleSyntax(completeBuildTargetName);
+ filesToClean.add(completeBuildTargetName);
+
+ Map<String, Set<String>> map = getTopBuildOutputVars();
+ for (String macroName : outputVarsAdditionsList) {
+ Set<String> set = map.getOrDefault(macroName, Collections.emptySet());
+ filesToClean.addAll(set);
+ }
+
+ if (!filesToClean.isEmpty()) {
+ StringBuffer rmLineBuffer = new StringBuffer();
+ rmLineBuffer.append(TAB).append("-$(RM)"); //$NON-NLS-1$
+
+ // Convert the set to an ordered list. Without this "unneeded" sorting, the unit tests will fail
+ List<String> filesToCleanOrdered = new ArrayList<>(filesToClean);
+ filesToCleanOrdered.sort((p1, p2) -> p1.toString().compareTo(p2.toString()));
+
+ for (String path : filesToCleanOrdered) {
+ // Bug 417228, ilg@livius.net & freidin.alex@gmail.com
+ path = ensurePathIsGNUMakeTargetRuleCompatibleSyntax(path);
+
+ // There is a max length for a command line, wrap to multiple invocations if needed.
+ if (rmLineBuffer.length() + path.length() > MAX_CLEAN_LENGTH) {
+ // Terminate this RM line
+ buffer.append(rmLineBuffer).append(NEWLINE);
+
+ // Start a new RM line
+ rmLineBuffer = new StringBuffer();
+ rmLineBuffer.append(TAB).append("-$(RM)"); //$NON-NLS-1$
+ }
+ rmLineBuffer.append(WHITESPACE).append(path);
+ }
+
+ buffer.append(rmLineBuffer);
+ }
+
+ buffer.append(NEWLINE);
+ buffer.append(TAB).append(DASH).append(AT).append(ECHO_BLANK_LINE).append(NEWLINE);
+
+ return buffer;
+ }
+
+ /**
+ * Create the rule
+ *
+ * @param buffer Buffer to add makefile rules to
+ * @param bTargetTool True if this is the target tool
+ * @param targetName If this is the "targetTool", the target file name, else <code>null</code>
+ * @param targetExt If this is the "targetTool", the target file extension, else <code>null</code>
+ * @param outputVarsAdditionsList list to add needed build output variables to
+ * @param managedProjectOutputs Other projects in the workspace that this project depends upon
+ * @since 9.3
+ */
+ protected boolean addRuleForTool(ITool tool, StringBuffer buffer, boolean bTargetTool, String targetName,
+ String targetExt, List<String> outputVarsAdditionsList, Vector<String> managedProjectOutputs) {
+
+ // Get the tool's inputs and outputs
+ Vector<String> inputs = new Vector<>();
+ Vector<String> dependencies = new Vector<>();
+ Vector<String> outputs = new Vector<>();
+ Vector<String> enumeratedPrimaryOutputs = new Vector<>();
+ Vector<String> enumeratedSecondaryOutputs = new Vector<>();
+ Vector<String> outputVariables = new Vector<>();
+ Vector<String> additionalTargets = new Vector<>();
+ String outputPrefix = EMPTY_STRING;
+
+ if (!getToolInputsOutputs(tool, inputs, dependencies, outputs, enumeratedPrimaryOutputs,
+ enumeratedSecondaryOutputs, outputVariables, additionalTargets, bTargetTool, managedProjectOutputs)) {
+ return false;
+ }
+
+ // If we have no primary output, make all of the secondary outputs the primary output
+ if (enumeratedPrimaryOutputs.size() == 0) {
+ enumeratedPrimaryOutputs = enumeratedSecondaryOutputs;
+ enumeratedSecondaryOutputs.clear();
+ }
+
+ // Add the output variables for this tool to our list
+ outputVarsAdditionsList.addAll(outputVariables);
+
+ // Create the build rule
+ String buildRule = EMPTY_STRING;
+ String outflag = tool.getOutputFlag();
+
+ String primaryOutputs = EMPTY_STRING;
+ String primaryOutputsQuoted = EMPTY_STRING;
+ boolean first = true;
+ for (int i = 0; i < enumeratedPrimaryOutputs.size(); i++) {
+ String output = enumeratedPrimaryOutputs.get(i);
+ if (!first) {
+ primaryOutputs += WHITESPACE;
+ primaryOutputsQuoted += WHITESPACE;
+ }
+ first = false;
+ primaryOutputs += output;
+ primaryOutputsQuoted += ensurePathIsGNUMakeTargetRuleCompatibleSyntax(output);
+ }
+
+ buildRule += (primaryOutputsQuoted + COLON + WHITESPACE);
+
+ first = true;
+ String calculatedDependencies = EMPTY_STRING;
+ for (int i = 0; i < dependencies.size(); i++) {
+ String input = dependencies.get(i);
+ if (!first)
+ calculatedDependencies += WHITESPACE;
+ first = false;
+ calculatedDependencies += input;
+ }
+ buildRule += calculatedDependencies;
+ buildRule += WHITESPACE + MAKEFILE_NAME; // makefile itself
+ buildRule += WHITESPACE + "$(OPTIONAL_TOOL_DEPS)"; //$NON-NLS-1$ // Optional dep to generated makefile extension files
+
+ // Depend on additional object files for the tool, if any
+ String[] additionalObjects = tool.getExtraFlags(IOption.OBJECTS);
+ if (additionalObjects.length > 0) {
+ buildRule += WHITESPACE + Stream.of(additionalObjects) //
+ .map(this::ensurePathIsGNUMakeTargetRuleCompatibleSyntax) //
+ .collect(Collectors.joining(WHITESPACE));
+ }
+
+ // We can't have duplicates in a makefile
+ if (getRuleList().contains(buildRule)) {
+ } else {
+ getRuleList().add(buildRule);
+ buffer.append(buildRule).append(NEWLINE);
+ if (bTargetTool) {
+ buffer.append(TAB).append(AT).append(escapedEcho(MESSAGE_START_BUILD + WHITESPACE + OUT_MACRO));
+ }
+ buffer.append(TAB).append(AT).append(escapedEcho(tool.getAnnouncement()));
+
+ // Get the command line for this tool invocation
+ String[] flags;
+ try {
+ flags = tool.getToolCommandFlags(null, null);
+ } catch (BuildException ex) {
+ // TODO report error
+ flags = EMPTY_STRING_ARRAY;
+ }
+ String command = tool.getToolCommand();
+ try {
+ //try to resolve the build macros in the tool command
+ String resolvedCommand = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(
+ command, EMPTY_STRING, WHITESPACE, IBuildMacroProvider.CONTEXT_FILE,
+ new FileContextData(null, null, null, tool));
+ if ((resolvedCommand = resolvedCommand.trim()).length() > 0)
+ command = resolvedCommand;
+
+ } catch (BuildMacroException e) {
+ }
+ String[] cmdInputs = inputs.toArray(new String[inputs.size()]);
+ IManagedCommandLineGenerator gen = tool.getCommandLineGenerator();
+ String commandLinePattern = tool.getCommandLinePattern();
+ if (!commandLinePattern.contains("${EXTRA_FLAGS}")) { //$NON-NLS-1$
+ String[] objs = tool.getExtraFlags(IOption.OBJECTS);
+ String[] libs = tool.getExtraFlags(IOption.LIBRARIES);
+ if (objs.length > 0 || libs.length > 0) {
+ // Tool command line pattern would expect legacy "$(USER_OBJS)" or "$(LIBS)" make-symbols to be appended.
+ commandLinePattern = commandLinePattern + " ${EXTRA_FLAGS}"; //$NON-NLS-1$
+ }
+ }
+ IManagedCommandLineInfo cmdLInfo = gen.generateCommandLineInfo(tool, command, flags, outflag, outputPrefix,
+ primaryOutputs, cmdInputs, commandLinePattern);
+
+ // The command to build
+ String buildCmd = null;
+ if (cmdLInfo == null) {
+ String toolFlags;
+ try {
+ toolFlags = tool.getToolCommandFlagsString(null, null);
+ } catch (BuildException ex) {
+ // TODO report error
+ toolFlags = EMPTY_STRING;
+ }
+ buildCmd = command + WHITESPACE + toolFlags + WHITESPACE + outflag + WHITESPACE + outputPrefix
+ + primaryOutputs + WHITESPACE + IN_MACRO;
+ } else
+ buildCmd = cmdLInfo.getCommandLine();
+
+ // resolve any remaining macros in the command after it has been
+ // generated
+ try {
+ String resolvedCommand = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(
+ buildCmd, EMPTY_STRING, WHITESPACE, IBuildMacroProvider.CONTEXT_FILE,
+ new FileContextData(null, null, null, tool));
+ if ((resolvedCommand = resolvedCommand.trim()).length() > 0)
+ buildCmd = resolvedCommand;
+
+ } catch (BuildMacroException e) {
+ }
+
+ //buffer.append(TAB).append(AT).append(escapedEcho(buildCmd));
+ //buffer.append(TAB).append(AT).append(buildCmd);
+ buffer.append(TAB).append(buildCmd);
+
+ // TODO
+ // NOTE WELL: Dependency file generation is not handled for this type of Tool
+
+ // Echo finished message
+ buffer.append(NEWLINE);
+ buffer.append(TAB).append(AT).append(
+ escapedEcho((bTargetTool ? MESSAGE_FINISH_BUILD : MESSAGE_FINISH_FILE) + WHITESPACE + OUT_MACRO));
+ buffer.append(TAB).append(AT).append(ECHO_BLANK_LINE);
+
+ // Just emit a blank line
+ buffer.append(NEWLINE);
+ }
+
+ // If we have secondary outputs, output dependency rules without commands
+ if (enumeratedSecondaryOutputs.size() > 0 || additionalTargets.size() > 0) {
+ String primaryOutput = enumeratedPrimaryOutputs.get(0);
+ Vector<String> addlOutputs = new Vector<>();
+ addlOutputs.addAll(enumeratedSecondaryOutputs);
+ addlOutputs.addAll(additionalTargets);
+ for (int i = 0; i < addlOutputs.size(); i++) {
+ String output = addlOutputs.get(i);
+ String depLine = output + COLON + WHITESPACE + primaryOutput + WHITESPACE + calculatedDependencies
+ + NEWLINE;
+ if (!getDepLineList().contains(depLine)) {
+ getDepLineList().add(depLine);
+ buffer.append(depLine);
+ }
+ }
+ buffer.append(NEWLINE);
+ }
+ return true;
+ }
+
+ /**
+ * @param outputVarsAdditionsList list to add needed build output variables to
+ * @param buffer buffer to add rules to
+ */
+ private void generateRulesForConsumers(ITool generatingTool, List<String> outputVarsAdditionsList,
+ StringBuffer buffer) {
+ // Generate a build rule for any tool that consumes the output of this tool
+ ToolInfoHolder h = (ToolInfoHolder) toolInfos.getValue();
+ ITool[] buildTools = h.buildTools;
+ boolean[] buildToolsUsed = h.buildToolsUsed;
+ IOutputType[] outTypes = generatingTool.getOutputTypes();
+ for (IOutputType outType : outTypes) {
+ String[] outExts = outType.getOutputExtensions(generatingTool);
+ String outVariable = outType.getBuildVariable();
+ if (outExts != null) {
+ for (String outExt : outExts) {
+ for (int k = 0; k < buildTools.length; k++) {
+ ITool tool = buildTools[k];
+ if (!buildToolsUsed[k]) {
+ // Also has to match build variables if specified
+ IInputType inType = tool.getInputType(outExt);
+ if (inType != null) {
+ String inVariable = inType.getBuildVariable();
+ if ((outVariable == null && inVariable == null) || (outVariable != null
+ && inVariable != null && outVariable.equals(inVariable))) {
+ if (addRuleForTool(buildTools[k], buffer, false, null, null,
+ outputVarsAdditionsList, null)) {
+ buildToolsUsed[k] = true;
+ // Look for tools that consume the output
+ generateRulesForConsumers(buildTools[k], outputVarsAdditionsList, buffer);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ protected boolean getToolInputsOutputs(ITool tool, Vector<String> inputs, Vector<String> dependencies,
+ Vector<String> outputs, Vector<String> enumeratedPrimaryOutputs, Vector<String> enumeratedSecondaryOutputs,
+ Vector<String> outputVariables, Vector<String> additionalTargets, boolean bTargetTool,
+ Vector<String> managedProjectOutputs) {
+ ToolInfoHolder h = (ToolInfoHolder) toolInfos.getValue();
+ ITool[] buildTools = h.buildTools;
+ ManagedBuildGnuToolInfo[] gnuToolInfos = h.gnuToolInfos;
+ // Get the information regarding the tool's inputs and outputs from the objects
+ // created by calculateToolInputsOutputs
+ ManagedBuildGnuToolInfo toolInfo = null;
+ for (int i = 0; i < buildTools.length; i++) {
+ if (tool == buildTools[i]) {
+ toolInfo = gnuToolInfos[i];
+ break;
+ }
+ }
+ if (toolInfo == null)
+ return false;
+
+ // Populate the output Vectors
+ inputs.addAll(toolInfo.getCommandInputs());
+ outputs.addAll(toolInfo.getCommandOutputs());
+ enumeratedPrimaryOutputs.addAll(toolInfo.getEnumeratedPrimaryOutputs());
+ enumeratedSecondaryOutputs.addAll(toolInfo.getEnumeratedSecondaryOutputs());
+ outputVariables.addAll(toolInfo.getOutputVariables());
+
+ Vector<String> unprocessedDependencies = toolInfo.getCommandDependencies();
+ for (String path : unprocessedDependencies) {
+ dependencies.add(ensurePathIsGNUMakeTargetRuleCompatibleSyntax(path));
+ }
+ additionalTargets.addAll(toolInfo.getAdditionalTargets());
+
+ if (bTargetTool && managedProjectOutputs != null) {
+ for (String output : managedProjectOutputs) {
+ dependencies.add(output);
+ }
+ }
+ return true;
+ }
+
+ protected Vector<String> calculateSecondaryOutputs(IOutputType[] secondaryOutputs) {
+ ToolInfoHolder h = (ToolInfoHolder) toolInfos.getValue();
+ ITool[] buildTools = h.buildTools;
+ Vector<String> buildVars = new Vector<>();
+ for (int i = 0; i < buildTools.length; i++) {
+ // Add the specified output build variables
+ IOutputType[] outTypes = buildTools[i].getOutputTypes();
+ if (outTypes != null && outTypes.length > 0) {
+ for (int j = 0; j < outTypes.length; j++) {
+ IOutputType outType = outTypes[j];
+ // Is this one of the secondary outputs?
+ // Look for an outputType with this ID, or one with a superclass with this id
+ thisType: for (int k = 0; k < secondaryOutputs.length; k++) {
+ IOutputType matchType = outType;
+ do {
+ if (matchType.getId().equals(secondaryOutputs[k].getId())) {
+ buildVars.add(outType.getBuildVariable());
+ break thisType;
+ }
+ matchType = matchType.getSuperClass();
+ } while (matchType != null);
+ }
+ }
+ }
+ }
+ return buildVars;
+ }
+
+ protected boolean isSecondaryOutputVar(ToolInfoHolder h, IOutputType[] secondaryOutputs, String varName) {
+ ITool[] buildTools = h.buildTools;
+ for (ITool buildTool : buildTools) {
+ // Add the specified output build variables
+ IOutputType[] outTypes = buildTool.getOutputTypes();
+ if (outTypes != null && outTypes.length > 0) {
+ for (IOutputType outType : outTypes) {
+ // Is this one of the secondary outputs?
+ // Look for an outputType with this ID, or one with a superclass with this id
+ for (IOutputType secondaryOutput : secondaryOutputs) {
+ IOutputType matchType = outType;
+ do {
+ if (matchType.getId().equals(secondaryOutput.getId())) {
+ if (outType.getBuildVariable().equals(varName)) {
+ return true;
+ }
+ }
+ matchType = matchType.getSuperClass();
+ } while (matchType != null);
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ /*************************************************************************
+ * S O U R C E S (sources.mk) M A K E F I L E M E T H O D S
+ ************************************************************************/
+
+ private StringBuffer addSubdirectories() {
+ StringBuffer buffer = new StringBuffer();
+ // Add the comment
+ buffer.append(COMMENT_SYMBOL).append(WHITESPACE).append(ManagedMakeMessages.getResourceString(MOD_LIST))
+ .append(NEWLINE);
+
+ buffer.append("SUBDIRS := ").append(LINEBREAK); //$NON-NLS-1$
+
+ // Get all the module names
+ for (IResource container : getSubdirList()) {
+ updateMonitor(ManagedMakeMessages.getFormattedString("MakefileGenerator.message.adding.source.folder", //$NON-NLS-1$
+ container.getFullPath().toString()));
+ // Check the special case where the module is the project root
+ if (container.getFullPath() == project.getFullPath()) {
+ buffer.append(DOT).append(WHITESPACE).append(LINEBREAK);
+ } else {
+ IPath path = container.getProjectRelativePath();
+ buffer.append(escapeWhitespaces(path.toString())).append(WHITESPACE).append(LINEBREAK);
+ }
+ }
+
+ buffer.append(NEWLINE);
+ return buffer;
+ }
+
+ /*************************************************************************
+ * F R A G M E N T (subdir.mk) M A K E F I L E M E T H O D S
+ ************************************************************************/
+
+ /**
+ * Returns a <code>StringBuffer</code> containing the comment(s)
+ * for a fragment makefile (subdir.mk).
+ */
+ protected StringBuffer addFragmentMakefileHeader() {
+ return addGenericHeader();
+ }
+
+ /**
+ * Returns a <code>StringBuffer</code> containing makefile text for all of the sources
+ * contributed by a container (project directory/subdirectory) to the fragement makefile
+ *
+ * @param module project resource directory/subdirectory
+ * @return StringBuffer generated text for the fragement makefile
+ */
+ protected StringBuffer addSources(IContainer module, String cleanTarget) throws CoreException {
+ // Calculate the new directory relative to the build output
+ IPath moduleRelativePath = module.getProjectRelativePath();
+ String relativePath = moduleRelativePath.toString();
+ relativePath += relativePath.length() == 0 ? "" : SEPARATOR; //$NON-NLS-1$
+
+ // For build macros in the configuration, create a map which will map them
+ // to a string which holds its list of sources.
+ LinkedHashMap<String, String> buildVarToRuleStringMap = new LinkedHashMap<>();
+
+ // Add statements that add the source files in this folder,
+ // and generated source files, and generated dependency files
+ // to the build macros
+ for (Entry<String, List<IPath>> entry : buildSrcVars.entrySet()) {
+ String macroName = entry.getKey();
+ addMacroAdditionPrefix(buildVarToRuleStringMap, macroName, null, false);
+
+ }
+ for (Entry<String, List<IPath>> entry : buildOutVars.entrySet()) {
+ String macroName = entry.getKey();
+ addMacroAdditionPrefix(buildVarToRuleStringMap, macroName, "./" + relativePath, false); //$NON-NLS-1$
+ }
+
+ // String buffers
+ StringBuffer buffer = new StringBuffer(); // Return buffer
+ StringBuffer ruleBuffer = new StringBuffer(
+ COMMENT_SYMBOL + WHITESPACE + ManagedMakeMessages.getResourceString(MOD_RULES) + NEWLINE);
+
+ // Visit the resources in this folder and add each one to a sources macro, and generate a build rule, if appropriate
+ IResource[] resources = module.members();
+
+ IResourceInfo rcInfo;
+ IFolder folder = project.getFolder(computeTopBuildDir(config.getName()));
+ Set<IPath> filesToClean = new HashSet<>();
+
+ for (IResource resource : resources) {
+ if (resource.getType() == IResource.FILE) {
+ // Check whether this resource is excluded from build
+ IPath rcProjRelPath = resource.getProjectRelativePath();
+ if (!isSource(rcProjRelPath))
+ continue;
+ rcInfo = config.getResourceInfo(rcProjRelPath, false);
+ // if( (rcInfo.isExcluded()) )
+ // continue;
+ addFragmentMakefileEntriesForSource(buildVarToRuleStringMap, ruleBuffer, folder, relativePath, resource,
+ getPathForResource(resource), rcInfo, null, false, filesToClean);
+ }
+ }
+
+ // Write out the macro addition entries to the buffer
+ buffer.append(writeAdditionMacros(buildVarToRuleStringMap));
+ buffer.append(ruleBuffer).append(NEWLINE);
+
+ if (cleanTarget != null && !filesToClean.isEmpty()) {
+ buffer.append("clean: " + cleanTarget).append(NEWLINE).append(NEWLINE); //$NON-NLS-1$
+ buffer.append(cleanTarget + COLON).append(NEWLINE);
+
+ StringBuffer rmLineBuffer = new StringBuffer();
+ rmLineBuffer.append(TAB).append("-$(RM)"); //$NON-NLS-1$
+
+ // Convert the set to an ordered list. Without this "unneeded" sorting, the unit tests will fail
+ List<IPath> filesToCleanOrdered = new ArrayList<>(filesToClean);
+ filesToCleanOrdered.sort((p1, p2) -> p1.toString().compareTo(p2.toString()));
+
+ for (IPath fileToClean : filesToCleanOrdered) {
+ String path = escapeWhitespaces(
+ (fileToClean.isAbsolute() || fileToClean.segment(0).equals(".") ? EMPTY_STRING : "./") //$NON-NLS-1$ //$NON-NLS-2$
+ + fileToClean.toString());
+
+ // There is a max length for a command line, wrap to multiple invocations if needed.
+ if (rmLineBuffer.length() + path.length() > MAX_CLEAN_LENGTH) {
+ // Terminate this RM line
+ buffer.append(rmLineBuffer).append(NEWLINE);
+
+ // Start a new RM line
+ rmLineBuffer = new StringBuffer();
+ rmLineBuffer.append(TAB).append("-$(RM)"); //$NON-NLS-1$
+ }
+ rmLineBuffer.append(WHITESPACE).append(path);
+ }
+
+ buffer.append(rmLineBuffer).append(NEWLINE).append(NEWLINE);
+ buffer.append(".PHONY: ").append(cleanTarget).append(NEWLINE).append(NEWLINE); //$NON-NLS-1$
+ }
+
+ return buffer;
+ }
+
+ /**
+ * Adds the entries for a particular source file to the fragment makefile
+ *
+ * @param buildVarToRuleStringMap map of build variable names to the list of files assigned to the variable
+ * @param ruleBuffer buffer to add generated nmakefile text to
+ * @param folder the top level build output directory
+ * @param relativePath build output directory relative path of the current output directory
+ * @param resource the source file for this invocation of the tool - this may be null for a generated output
+ * @param sourceLocation the full path of the source
+ * @param resConfig the IResourceConfiguration associated with this file or null
+ * @param varName the build variable to add this invocation's outputs to
+ * if <code>null</code>, use the file extension to find the name
+ * @param generatedSource if <code>true</code>, this file was generated by another tool in the tool-chain
+ */
+ protected void addFragmentMakefileEntriesForSource(LinkedHashMap<String, String> buildVarToRuleStringMap,
+ StringBuffer ruleBuffer, IFolder folder, String relativePath, IResource resource, IPath sourceLocation,
+ IResourceInfo rcInfo, String varName, boolean generatedSource, Set<IPath> filesToClean) {
+
+ // Determine which tool, if any, builds files with this extension
+ String ext = sourceLocation.getFileExtension();
+ ITool tool = null;
+
+ //TODO: remove
+ // IResourceConfiguration resConfig = null;
+ // if(rcInfo instanceof IFileInfo){
+ // resConfig = (IFileInfo)rcInfo;
+ // }
+ //end remove
+
+ // Use the tool from the resource configuration if there is one
+ if (rcInfo instanceof IFileInfo) {
+ IFileInfo fi = (IFileInfo) rcInfo;
+ ITool[] tools = fi.getToolsToInvoke();
+ if (tools != null && tools.length > 0) {
+ tool = tools[0];
+ // if(!tool.getCustomBuildStep())
+ addToBuildVar(buildVarToRuleStringMap, ext, varName, relativePath, sourceLocation, generatedSource);
+ }
+ }
+
+ ToolInfoHolder h = getToolInfo(rcInfo.getPath());
+ ITool buildTools[] = h.buildTools;
+
+ // if(tool == null){
+ // for (int j=0; j<buildTools.length; j++) {
+ // if (buildTools[j].buildsFileType(ext)) {
+ // if (tool == null) {
+ // tool = buildTools[j];
+ // }
+ // addToBuildVar(buildVarToRuleStringMap, ext, varName, relativePath, sourceLocation, generatedSource);
+ // break;
+ // }
+ // }
+ // }
+ //
+ // if(tool == null && rcInfo.getPath().segmentCount() != 0){
+ if (tool == null) {
+ h = getToolInfo(Path.EMPTY);
+ buildTools = h.buildTools;
+
+ for (ITool buildTool : buildTools) {
+ if (buildTool.buildsFileType(ext)) {
+ tool = buildTool;
+ addToBuildVar(buildVarToRuleStringMap, ext, varName, relativePath, sourceLocation, generatedSource);
+ break;
+ }
+ }
+ }
+
+ if (tool != null) {
+ // Generate the rule to build this source file
+ IInputType primaryInputType = tool.getPrimaryInputType();
+ IInputType inputType = tool.getInputType(ext);
+ if ((primaryInputType != null && !primaryInputType.getMultipleOfType())
+ || (inputType == null && tool != config.calculateTargetTool())) {
+
+ // Try to add the rule for the file
+ Vector<IPath> generatedOutputs = new Vector<>(); // IPath's - build directory relative
+ Vector<IPath> generatedDepFiles = new Vector<>(); // IPath's - build directory relative or absolute
+ addRuleForSource(relativePath, ruleBuffer, resource, sourceLocation, rcInfo, generatedSource,
+ generatedDepFiles, generatedOutputs);
+
+ // If the rule generates a dependency file(s), add the file(s) to the variable
+ if (generatedDepFiles.size() > 0) {
+ for (int k = 0; k < generatedDepFiles.size(); k++) {
+ IPath generatedDepFile = generatedDepFiles.get(k);
+ addMacroAdditionFile(buildVarToRuleStringMap, getDepMacroName(ext).toString(),
+ (generatedDepFile.isAbsolute() ? "" : "./") + //$NON-NLS-1$ //$NON-NLS-2$
+ generatedDepFile.toString());
+ }
+ }
+
+ // If the generated outputs of this tool are input to another tool,
+ // 1. add the output to the appropriate macro
+ // 2. If the tool does not have multipleOfType input, generate the rule.
+
+ IOutputType outType = tool.getPrimaryOutputType();
+ String buildVariable = null;
+ if (outType != null) {
+ if (tool.getCustomBuildStep()) {
+ // TODO: This is somewhat of a hack since a custom build step
+ // tool does not currently define a build variable
+ if (generatedOutputs.size() > 0) {
+ IPath firstOutput = generatedOutputs.get(0);
+ String firstExt = firstOutput.getFileExtension();
+ ToolInfoHolder tmpH = getFolderToolInfo(rcInfo.getPath());
+ ITool[] tmpBuildTools = tmpH.buildTools;
+ for (ITool tmpBuildTool : tmpBuildTools) {
+ if (tmpBuildTool.buildsFileType(firstExt)) {
+ String bV = tmpBuildTool.getPrimaryInputType().getBuildVariable();
+ if (bV.length() > 0) {
+ buildVariable = bV;
+ break;
+ }
+ }
+ }
+ }
+ } else {
+ buildVariable = outType.getBuildVariable();
+ }
+ } else {
+ // For support of pre-CDT 3.0 integrations.
+ buildVariable = OBJS_MACRO;
+ }
+
+ for (int k = 0; k < generatedOutputs.size(); k++) {
+ IPath generatedOutput;
+ IResource generateOutputResource;
+ if (generatedOutputs.get(k).isAbsolute()) {
+ // TODO: Should we use relative paths when possible (e.g., see MbsMacroSupplier.calculateRelPath)
+ generatedOutput = generatedOutputs.get(k);
+ // If this file has an absolute path, then the generateOutputResource will not be correct
+ // because the file is not under the project. We use this resource in the calls to the dependency generator
+ generateOutputResource = project.getFile(generatedOutput);
+ } else {
+ generatedOutput = getPathForResource(project).append(getBuildWorkingDir())
+ .append(generatedOutputs.get(k));
+ generateOutputResource = project.getFile(getBuildWorkingDir().append(generatedOutputs.get(k)));
+ }
+ IResourceInfo nextRcInfo;
+ if (rcInfo instanceof IFileInfo) {
+ nextRcInfo = config.getResourceInfo(rcInfo.getPath().removeLastSegments(1), false);
+ } else {
+ nextRcInfo = rcInfo;
+ }
+ addFragmentMakefileEntriesForSource(buildVarToRuleStringMap, ruleBuffer, folder, relativePath,
+ generateOutputResource, generatedOutput, nextRcInfo, buildVariable, true, filesToClean);
+ }
+
+ filesToClean.addAll(generatedDepFiles);
+ filesToClean.addAll(generatedOutputs);
+ }
+ } else {
+ // If this is a secondary input, add it to build vars
+ if (varName == null) {
+ for (ITool buildTool : buildTools) {
+ if (buildTool.isInputFileType(ext)) {
+ addToBuildVar(buildVarToRuleStringMap, ext, varName, relativePath, sourceLocation,
+ generatedSource);
+ break;
+ }
+ }
+ }
+ // If this generated output is identified as a secondary output, add the file to the build variable
+ else {
+ IOutputType[] secondaryOutputs = config.getToolChain().getSecondaryOutputs();
+ if (secondaryOutputs.length > 0) {
+ if (isSecondaryOutputVar(h, secondaryOutputs, varName)) {
+ addMacroAdditionFile(buildVarToRuleStringMap, varName, relativePath, sourceLocation,
+ generatedSource);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Gets a path for a resource by extracting the Path field from its
+ * location URI.
+ * @return IPath
+ * @since 6.0
+ */
+ protected IPath getPathForResource(IResource resource) {
+ return new Path(resource.getLocationURI().getPath());
+ }
+
+ /**
+ * Adds the source file to the appropriate build variable
+ *
+ * @param buildVarToRuleStringMap map of build variable names to the list of files assigned to the variable
+ * @param ext the file extension of the file
+ * @param varName the build variable to add this invocation's outputs to
+ * if <code>null</code>, use the file extension to find the name
+ * @param relativePath build output directory relative path of the current output directory
+ * @param sourceLocation the full path of the source
+ * @param generatedSource if <code>true</code>, this file was generated by another tool in the tool-chain
+ */
+ protected void addToBuildVar(LinkedHashMap<String, String> buildVarToRuleStringMap, String ext, String varName,
+ String relativePath, IPath sourceLocation, boolean generatedSource) {
+ List<IPath> varList = null;
+ if (varName == null) {
+ // Get the proper source build variable based upon the extension
+ varName = getSourceMacroName(ext).toString();
+ varList = buildSrcVars.get(varName);
+ } else {
+ varList = buildOutVars.get(varName);
+ }
+ // Add the resource to the list of all resources associated with a variable.
+ // Do not allow duplicates - there is no reason to and it can be 'bad' -
+ // e.g., having the same object in the OBJS list can cause duplicate symbol errors from the linker
+ if ((varList != null) && !(varList.contains(sourceLocation))) {
+ // Since we don't know how these files will be used, we store them using a "location"
+ // path rather than a relative path
+ varList.add(sourceLocation);
+ if (!buildVarToRuleStringMap.containsKey(varName)) {
+ // TODO - is this an error?
+ } else {
+ // Add the resource name to the makefile line that adds resources to the build variable
+ addMacroAdditionFile(buildVarToRuleStringMap, varName, relativePath, sourceLocation, generatedSource);
+ }
+ }
+ }
+
+ private IManagedCommandLineInfo generateToolCommandLineInfo(ITool tool, String sourceExtension, String[] flags,
+ String outputFlag, String outputPrefix, String outputName, String[] inputResources, IPath inputLocation,
+ IPath outputLocation) {
+
+ String cmd = tool.getToolCommand();
+ //try to resolve the build macros in the tool command
+ try {
+ String resolvedCommand = null;
+
+ if ((inputLocation != null && inputLocation.toString().indexOf(" ") != -1) || //$NON-NLS-1$
+ (outputLocation != null && outputLocation.toString().indexOf(" ") != -1)) //$NON-NLS-1$
+ {
+ resolvedCommand = ManagedBuildManager.getBuildMacroProvider().resolveValue(cmd, "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_FILE,
+ new FileContextData(inputLocation, outputLocation, null, tool));
+ }
+
+ else {
+ resolvedCommand = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(cmd, "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_FILE,
+ new FileContextData(inputLocation, outputLocation, null, tool));
+ }
+ if ((resolvedCommand = resolvedCommand.trim()).length() > 0)
+ cmd = resolvedCommand;
+
+ } catch (BuildMacroException e) {
+ }
+
+ IManagedCommandLineGenerator gen = tool.getCommandLineGenerator();
+ return gen.generateCommandLineInfo(tool, cmd, flags, outputFlag, outputPrefix, outputName, inputResources,
+ tool.getCommandLinePattern());
+
+ }
+
+ /**
+ * Create a rule for this source file. We create a pattern rule if possible.
+ *
+ * This is an example of a pattern rule:
+ *
+ * <relative_path>/%.<outputExtension>: ../<relative_path>/%.<inputExtension>
+ * @echo Building file: $<
+ * @echo Invoking tool xxx
+ * @echo <tool> <flags> <output_flag><output_prefix>$@ $<
+ * @<tool> <flags> <output_flag><output_prefix>$@ $< && \
+ * echo -n $(@:%.o=%.d) ' <relative_path>/' >> $(@:%.o=%.d) && \
+ * <tool> -P -MM -MG <flags> $< >> $(@:%.o=%.d)
+ * @echo Finished building: $<
+ * @echo ' '
+ *
+ * Note that the macros all come from the build model and are
+ * resolved to a real command before writing to the module
+ * makefile, so a real command might look something like:
+ * source1/%.o: ../source1/%.cpp
+ * @echo Building file: $<
+ * @echo Invoking tool xxx
+ * @echo g++ -g -O2 -c -I/cygdrive/c/eclipse/workspace/Project/headers -o$@ $<
+ * @g++ -g -O2 -c -I/cygdrive/c/eclipse/workspace/Project/headers -o$@ $< && \
+ * echo -n $(@:%.o=%.d) ' source1/' >> $(@:%.o=%.d) && \
+ * g++ -P -MM -MG -g -O2 -c -I/cygdrive/c/eclipse/workspace/Project/headers $< >> $(@:%.o=%.d)
+ * @echo Finished building: $<
+ * @echo ' '
+ *
+ * @param relativePath top build output directory relative path of the current output directory
+ * @param buffer buffer to populate with the build rule
+ * @param resource the source file for this invocation of the tool
+ * @param sourceLocation the full path of the source
+ * @param rcInfo the IResourceInfo associated with this file or null
+ * @param generatedSource <code>true</code> if the resource is a generated output
+ * @param enumeratedOutputs vector of the filenames that are the output of this rule
+ */
+ protected void addRuleForSource(String relativePath, StringBuffer buffer, IResource resource, IPath sourceLocation,
+ IResourceInfo rcInfo, boolean generatedSource, Vector<IPath> generatedDepFiles,
+ Vector<IPath> enumeratedOutputs) {
+
+ String fileName = sourceLocation.removeFileExtension().lastSegment();
+ String inputExtension = sourceLocation.getFileExtension();
+ String outputExtension = null;
+
+ ITool tool = null;
+ if (rcInfo instanceof IFileInfo) {
+ IFileInfo fi = (IFileInfo) rcInfo;
+ ITool[] tools = fi.getToolsToInvoke();
+ if (tools != null && tools.length > 0) {
+ tool = tools[0];
+ }
+ } else {
+ IFolderInfo foInfo = (IFolderInfo) rcInfo;
+ tool = foInfo.getToolFromInputExtension(inputExtension);
+ }
+
+ ToolInfoHolder h = getToolInfo(rcInfo.getPath());
+
+ if (tool != null)
+ outputExtension = tool.getOutputExtension(inputExtension);
+ if (outputExtension == null)
+ outputExtension = EMPTY_STRING;
+
+ // Get the dependency generator information for this tool and file extension
+ IManagedDependencyGenerator oldDepGen = null; // This interface is deprecated but still supported
+ IManagedDependencyGenerator2 depGen = null; // This is the recommended interface
+ IManagedDependencyInfo depInfo = null;
+ IManagedDependencyCommands depCommands = null;
+ IManagedDependencyPreBuild depPreBuild = null;
+ IPath[] depFiles = null;
+ boolean doDepGen = false;
+ {
+ IManagedDependencyGeneratorType t = null;
+ if (tool != null)
+ t = tool.getDependencyGeneratorForExtension(inputExtension);
+ if (t != null) {
+ int calcType = t.getCalculatorType();
+ if (calcType <= IManagedDependencyGeneratorType.TYPE_OLD_TYPE_LIMIT) {
+ oldDepGen = (IManagedDependencyGenerator) t;
+ doDepGen = (calcType == IManagedDependencyGeneratorType.TYPE_COMMAND);
+ if (doDepGen) {
+ IPath depFile = Path.fromOSString(relativePath + fileName + DOT + DEP_EXT);
+ getDependencyMakefiles(h).add(depFile);
+ generatedDepFiles.add(depFile);
+ }
+ } else {
+ depGen = (IManagedDependencyGenerator2) t;
+ doDepGen = (calcType == IManagedDependencyGeneratorType.TYPE_BUILD_COMMANDS);
+ IBuildObject buildContext = rcInfo;//(resConfig != null) ? (IBuildObject)resConfig : (IBuildObject)config;
+
+ depInfo = depGen.getDependencySourceInfo(resource.getProjectRelativePath(), resource, buildContext,
+ tool, getBuildWorkingDir());
+
+ if (calcType == IManagedDependencyGeneratorType.TYPE_BUILD_COMMANDS) {
+ depCommands = (IManagedDependencyCommands) depInfo;
+ depFiles = depCommands.getDependencyFiles();
+ } else if (calcType == IManagedDependencyGeneratorType.TYPE_PREBUILD_COMMANDS) {
+ depPreBuild = (IManagedDependencyPreBuild) depInfo;
+ depFiles = depPreBuild.getDependencyFiles();
+ }
+ if (depFiles != null) {
+ for (IPath depFile : depFiles) {
+ getDependencyMakefiles(h).add(depFile);
+ generatedDepFiles.add(depFile);
+ }
+ }
+ }
+ }
+ }
+
+ // Figure out the output paths
+ String optDotExt = EMPTY_STRING;
+ if (outputExtension.length() > 0)
+ optDotExt = DOT + outputExtension;
+
+ Vector<IPath> ruleOutputs = new Vector<>();
+ Vector<IPath> enumeratedPrimaryOutputs = new Vector<>(); // IPaths relative to the top build directory
+ Vector<IPath> enumeratedSecondaryOutputs = new Vector<>(); // IPaths relative to the top build directory
+ calculateOutputsForSource(tool, relativePath, resource, sourceLocation, ruleOutputs, enumeratedPrimaryOutputs,
+ enumeratedSecondaryOutputs);
+ enumeratedOutputs.addAll(enumeratedPrimaryOutputs);
+ enumeratedOutputs.addAll(enumeratedSecondaryOutputs);
+ String primaryOutputName = null;
+ if (enumeratedPrimaryOutputs.size() > 0) {
+ primaryOutputName = escapeWhitespaces(enumeratedPrimaryOutputs.get(0).toString());
+ } else {
+ primaryOutputName = escapeWhitespaces(relativePath + fileName + optDotExt);
+ }
+ String otherPrimaryOutputs = EMPTY_STRING;
+ for (int i = 1; i < enumeratedPrimaryOutputs.size(); i++) { // Starting with 1 is intentional
+ otherPrimaryOutputs += WHITESPACE + escapeWhitespaces(enumeratedPrimaryOutputs.get(i).toString());
+ }
+
+ // Output file location needed for the file-specific build macros
+ IPath outputLocation = Path.fromOSString(primaryOutputName);
+ if (!outputLocation.isAbsolute()) {
+ outputLocation = getPathForResource(project).append(getBuildWorkingDir()).append(primaryOutputName);
+ }
+
+ // A separate rule is needed for the resource in the case where explicit file-specific macros
+ // are referenced, or if the resource contains special characters in its path (e.g., whitespace)
+
+ /* fix for 137674
+ *
+ * We only need an explicit rule if one of the following is true:
+ * - The resource is linked, and its full path to its real location contains special characters
+ * - The resource is not linked, but its project relative path contains special characters
+ */
+
+ boolean resourceNameRequiresExplicitRule = (resource.isLinked()
+ && containsSpecialCharacters(sourceLocation.toString()))
+ || (!resource.isLinked() && containsSpecialCharacters(resource.getProjectRelativePath().toString()));
+
+ boolean needExplicitRuleForFile = resourceNameRequiresExplicitRule
+ || BuildMacroProvider.getReferencedExplitFileMacros(tool).length > 0
+ || BuildMacroProvider.getReferencedExplitFileMacros(tool.getToolCommand(),
+ IBuildMacroProvider.CONTEXT_FILE,
+ new FileContextData(sourceLocation, outputLocation, null, tool)).length > 0;
+
+ // Get and resolve the command
+ String cmd = tool.getToolCommand();
+
+ try {
+ String resolvedCommand = null;
+ if (!needExplicitRuleForFile) {
+ resolvedCommand = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(cmd,
+ EMPTY_STRING, WHITESPACE, IBuildMacroProvider.CONTEXT_FILE,
+ new FileContextData(sourceLocation, outputLocation, null, tool));
+ } else {
+ // if we need an explicit rule then don't use any builder
+ // variables, resolve everything
+ // to explicit strings
+ resolvedCommand = ManagedBuildManager.getBuildMacroProvider().resolveValue(cmd, EMPTY_STRING,
+ WHITESPACE, IBuildMacroProvider.CONTEXT_FILE,
+ new FileContextData(sourceLocation, outputLocation, null, tool));
+ }
+
+ if ((resolvedCommand = resolvedCommand.trim()).length() > 0)
+ cmd = resolvedCommand;
+
+ } catch (BuildMacroException e) {
+ }
+
+ String defaultOutputName = EMPTY_STRING;
+ String primaryDependencyName = EMPTY_STRING;
+ String patternPrimaryDependencyName = EMPTY_STRING;
+ String home = (generatedSource) ? DOT : reachProjectRoot();
+ String resourcePath = null;
+ boolean patternRule = true;
+ boolean isItLinked = false;
+ if (resource.isLinked(IResource.CHECK_ANCESTORS)) {
+ // it IS linked, so use the actual location
+ isItLinked = true;
+ resourcePath = sourceLocation.toString();
+ // Need a hardcoded rule, not a pattern rule, as a linked file
+ // can reside in any path
+ defaultOutputName = escapeWhitespaces(relativePath + fileName + optDotExt);
+ primaryDependencyName = escapeWhitespaces(resourcePath);
+ patternRule = false;
+ } else {
+ // Use the relative path (not really needed to store per se but in the future someone may want this)
+ resourcePath = relativePath;
+ // The rule and command to add to the makefile
+ if (rcInfo instanceof IFileInfo || needExplicitRuleForFile) {
+ // Need a hardcoded rule, not a pattern rule
+ defaultOutputName = escapeWhitespaces(resourcePath + fileName + optDotExt);
+ patternRule = false;
+ } else {
+ defaultOutputName = relativePath + WILDCARD + optDotExt;
+ }
+ primaryDependencyName = escapeWhitespaces(
+ home + SEPARATOR + resourcePath + fileName + DOT + inputExtension);
+ patternPrimaryDependencyName = home + SEPARATOR + resourcePath + WILDCARD + DOT + inputExtension;
+ } // end fix for PR 70491
+
+ // If the tool specifies a dependency calculator of TYPE_BUILD_COMMANDS, ask whether
+ // the dependency commands are "generic" (i.e., we can use a pattern rule)
+ boolean needExplicitDependencyCommands = false;
+ if (depCommands != null) {
+ needExplicitDependencyCommands = !depCommands.areCommandsGeneric();
+ }
+
+ // If we still think that we are using a pattern rule, check a few more things
+ if (patternRule) {
+ patternRule = false;
+ // Make sure that at least one of the rule outputs contains a %.
+ for (int i = 0; i < ruleOutputs.size(); i++) {
+ String ruleOutput = ruleOutputs.get(i).toString();
+ if (ruleOutput.indexOf('%') >= 0) {
+ patternRule = true;
+ break;
+ }
+ }
+ if (patternRule) {
+ patternRule = !needExplicitDependencyCommands;
+ }
+ }
+
+ // Begin building the rule for this source file
+ String buildRule = EMPTY_STRING;
+
+ if (patternRule) {
+ if (ruleOutputs.size() == 0) {
+ buildRule += defaultOutputName;
+ } else {
+ boolean first = true;
+ for (int i = 0; i < ruleOutputs.size(); i++) {
+ String ruleOutput = ruleOutputs.get(i).toString();
+ if (ruleOutput.indexOf('%') >= 0) {
+ if (first) {
+ first = false;
+ } else {
+ buildRule += WHITESPACE;
+ }
+ buildRule += ruleOutput;
+ }
+ }
+ }
+ } else {
+ buildRule += primaryOutputName;
+ }
+
+ String buildRuleDependencies = primaryDependencyName;
+ String patternBuildRuleDependencies = patternPrimaryDependencyName;
+
+ // Other additional inputs
+ // Get any additional dependencies specified for the tool in other InputType elements and AdditionalInput elements
+ IPath[] addlDepPaths = tool.getAdditionalDependencies();
+ for (IPath addlDepPath : addlDepPaths) {
+ // Translate the path from project relative to build directory relative
+ IPath addlPath = addlDepPath;
+ if (!(addlPath.toString().startsWith("$("))) { //$NON-NLS-1$
+ if (!addlPath.isAbsolute()) {
+ IPath tempPath = project.getLocation().append(new Path(ensureUnquoted(addlPath.toString())));
+ if (tempPath != null) {
+ addlPath = ManagedBuildManager.calculateRelativePath(getTopBuildDir(), tempPath);
+ }
+ }
+ }
+ String suitablePath = ensurePathIsGNUMakeTargetRuleCompatibleSyntax(addlPath.toString());
+ buildRuleDependencies += WHITESPACE + suitablePath;
+ patternBuildRuleDependencies += WHITESPACE + suitablePath;
+ }
+
+ buildRule += COLON + WHITESPACE + (patternRule ? patternBuildRuleDependencies : buildRuleDependencies)
+ + WHITESPACE + escapeWhitespaces(relativePath + MODFILE_NAME);
+
+ // No duplicates in a makefile. If we already have this rule, don't add it or the commands to build the file
+ if (getRuleList().contains(buildRule)) {
+ // TODO: Should we assert that this is a pattern rule?
+ } else {
+ getRuleList().add(buildRule);
+
+ // Echo starting message
+ buffer.append(buildRule).append(NEWLINE);
+ buffer.append(TAB).append(AT).append(escapedEcho(MESSAGE_START_FILE + WHITESPACE + IN_MACRO));
+ buffer.append(TAB).append(AT).append(escapedEcho(tool.getAnnouncement()));
+
+ // If the tool specifies a dependency calculator of TYPE_BUILD_COMMANDS, ask whether
+ // there are any pre-tool commands.
+ if (depCommands != null) {
+ String[] preToolCommands = depCommands.getPreToolDependencyCommands();
+ if (preToolCommands != null && preToolCommands.length > 0) {
+ for (String preCmd : preToolCommands) {
+ try {
+ String resolvedCommand;
+ IBuildMacroProvider provider = ManagedBuildManager.getBuildMacroProvider();
+ if (!needExplicitRuleForFile) {
+ resolvedCommand = provider.resolveValueToMakefileFormat(preCmd, EMPTY_STRING,
+ WHITESPACE, IBuildMacroProvider.CONTEXT_FILE,
+ new FileContextData(sourceLocation, outputLocation, null, tool));
+ } else {
+ // if we need an explicit rule then don't use any builder
+ // variables, resolve everything to explicit strings
+ resolvedCommand = provider.resolveValue(preCmd, EMPTY_STRING, WHITESPACE,
+ IBuildMacroProvider.CONTEXT_FILE,
+ new FileContextData(sourceLocation, outputLocation, null, tool));
+ }
+ if (resolvedCommand != null)
+ buffer.append(resolvedCommand).append(NEWLINE);
+ } catch (BuildMacroException e) {
+ }
+ }
+ }
+ }
+
+ // Generate the command line
+
+ Vector<String> inputs = new Vector<>();
+ inputs.add(IN_MACRO);
+
+ // Other additional inputs
+ // Get any additional dependencies specified for the tool in other InputType elements and AdditionalInput elements
+ IPath[] addlInputPaths = getAdditionalResourcesForSource(tool);
+ for (IPath addlInputPath : addlInputPaths) {
+ // Translate the path from project relative to build directory relative
+ IPath addlPath = addlInputPath;
+ if (!(addlPath.toString().startsWith("$("))) { //$NON-NLS-1$
+ if (!addlPath.isAbsolute()) {
+ IPath tempPath = getPathForResource(project).append(addlPath);
+ if (tempPath != null) {
+ addlPath = ManagedBuildManager.calculateRelativePath(getTopBuildDir(), tempPath);
+ }
+ }
+ }
+ inputs.add(addlPath.toString());
+ }
+ String[] inputStrings = inputs.toArray(new String[inputs.size()]);
+
+ String[] flags = null;
+ // Get the tool command line options
+ try {
+ flags = tool.getToolCommandFlags(sourceLocation, outputLocation);
+ } catch (BuildException ex) {
+ // TODO add some routines to catch this
+ flags = EMPTY_STRING_ARRAY;
+ }
+
+ // If we have a TYPE_BUILD_COMMANDS dependency generator, determine if there are any options that
+ // it wants added to the command line
+ if (depCommands != null) {
+ flags = addDependencyOptions(depCommands, flags);
+ }
+
+ IManagedCommandLineInfo cmdLInfo = null;
+ String outflag = null;
+ String outputPrefix = null;
+
+ if (rcInfo instanceof IFileInfo || needExplicitRuleForFile || needExplicitDependencyCommands) {
+ outflag = tool.getOutputFlag();
+ outputPrefix = tool.getOutputPrefix();
+
+ // Call the command line generator
+ IManagedCommandLineGenerator cmdLGen = tool.getCommandLineGenerator();
+ cmdLInfo = cmdLGen.generateCommandLineInfo(tool, cmd, flags, outflag, outputPrefix,
+ OUT_MACRO + otherPrimaryOutputs, inputStrings, tool.getCommandLinePattern());
+
+ } else {
+ outflag = tool.getOutputFlag();//config.getOutputFlag(outputExtension);
+ outputPrefix = tool.getOutputPrefix();//config.getOutputPrefix(outputExtension);
+
+ // Call the command line generator
+ cmdLInfo = generateToolCommandLineInfo(tool, inputExtension, flags, outflag, outputPrefix,
+ OUT_MACRO + otherPrimaryOutputs, inputStrings, sourceLocation, outputLocation);
+ }
+
+ // The command to build
+ String buildCmd;
+ if (cmdLInfo != null) {
+ buildCmd = cmdLInfo.getCommandLine();
+ } else {
+ StringBuffer buildFlags = new StringBuffer();
+ for (String flag : flags) {
+ if (flag != null) {
+ buildFlags.append(flag).append(WHITESPACE);
+ }
+ }
+ buildCmd = cmd + WHITESPACE + buildFlags.toString().trim() + WHITESPACE + outflag + WHITESPACE
+ + outputPrefix + OUT_MACRO + otherPrimaryOutputs + WHITESPACE + IN_MACRO;
+ }
+
+ // resolve any remaining macros in the command after it has been
+ // generated
+ try {
+ String resolvedCommand;
+ IBuildMacroProvider provider = ManagedBuildManager.getBuildMacroProvider();
+ if (!needExplicitRuleForFile) {
+ resolvedCommand = provider.resolveValueToMakefileFormat(buildCmd, EMPTY_STRING, WHITESPACE,
+ IBuildMacroProvider.CONTEXT_FILE,
+ new FileContextData(sourceLocation, outputLocation, null, tool));
+ } else {
+ // if we need an explicit rule then don't use any builder
+ // variables, resolve everything to explicit strings
+ resolvedCommand = provider.resolveValue(buildCmd, EMPTY_STRING, WHITESPACE,
+ IBuildMacroProvider.CONTEXT_FILE,
+ new FileContextData(sourceLocation, outputLocation, null, tool));
+ }
+
+ if ((resolvedCommand = resolvedCommand.trim()).length() > 0)
+ buildCmd = resolvedCommand;
+
+ } catch (BuildMacroException e) {
+ }
+
+ //buffer.append(TAB).append(AT).append(escapedEcho(buildCmd));
+ //buffer.append(TAB).append(AT).append(buildCmd);
+ buffer.append(TAB).append(buildCmd);
+
+ // Determine if there are any dependencies to calculate
+ if (doDepGen) {
+ // Get the dependency rule out of the generator
+ String[] depCmds = null;
+ if (oldDepGen != null) {
+ depCmds = new String[1];
+ depCmds[0] = oldDepGen.getDependencyCommand(resource, ManagedBuildManager.getBuildInfo(project));
+ } else {
+ if (depCommands != null) {
+ depCmds = depCommands.getPostToolDependencyCommands();
+ }
+ }
+
+ if (depCmds != null) {
+ for (String depCmd : depCmds) {
+ // Resolve any macros in the dep command after it has been generated.
+ // Note: do not trim the result because it will strip out necessary tab characters.
+ buffer.append(WHITESPACE).append(LOGICAL_AND).append(WHITESPACE).append(LINEBREAK);
+ try {
+ if (!needExplicitRuleForFile) {
+ depCmd = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(
+ depCmd, EMPTY_STRING, WHITESPACE, IBuildMacroProvider.CONTEXT_FILE,
+ new FileContextData(sourceLocation, outputLocation, null, tool));
+ }
+
+ else {
+ depCmd = ManagedBuildManager.getBuildMacroProvider().resolveValue(depCmd, EMPTY_STRING,
+ WHITESPACE, IBuildMacroProvider.CONTEXT_FILE,
+ new FileContextData(sourceLocation, outputLocation, null, tool));
+ }
+
+ } catch (BuildMacroException e) {
+ }
+
+ buffer.append(depCmd);
+ }
+ }
+ }
+
+ // Echo finished message
+ buffer.append(NEWLINE);
+ buffer.append(TAB).append(AT).append(escapedEcho(MESSAGE_FINISH_FILE + WHITESPACE + IN_MACRO));
+ buffer.append(TAB).append(AT).append(ECHO_BLANK_LINE).append(NEWLINE);
+ }
+
+ // Determine if there are calculated dependencies
+ IPath[] addlDeps = null; // IPath's that are relative to the build directory
+ IPath[] addlTargets = null; // IPath's that are relative to the build directory
+ String calculatedDependencies = null;
+ boolean addedDepLines = false;
+ String depLine;
+ if (oldDepGen != null && oldDepGen.getCalculatorType() != IManagedDependencyGeneratorType.TYPE_COMMAND) {
+ addlDeps = oldCalculateDependenciesForSource(oldDepGen, tool, relativePath, resource);
+ } else {
+ if (depGen != null && depGen.getCalculatorType() == IManagedDependencyGeneratorType.TYPE_CUSTOM) {
+ if (depInfo instanceof IManagedDependencyCalculator) {
+ IManagedDependencyCalculator depCalculator = (IManagedDependencyCalculator) depInfo;
+ addlDeps = calculateDependenciesForSource(depCalculator);
+ addlTargets = depCalculator.getAdditionalTargets();
+ }
+ }
+ }
+
+ if (addlDeps != null && addlDeps.length > 0) {
+ calculatedDependencies = ""; //$NON-NLS-1$
+ for (IPath addlDep : addlDeps) {
+ calculatedDependencies += WHITESPACE + escapeWhitespaces(addlDep.toString());
+ }
+ }
+
+ if (calculatedDependencies != null) {
+ depLine = primaryOutputName + COLON + calculatedDependencies + NEWLINE;
+ if (!getDepLineList().contains(depLine)) {
+ getDepLineList().add(depLine);
+ addedDepLines = true;
+ buffer.append(depLine);
+ }
+ }
+
+ // Add any additional outputs here using dependency lines
+ Vector<IPath> addlOutputs = new Vector<>();
+ if (enumeratedPrimaryOutputs.size() > 1) {
+ // Starting with 1 is intentional in order to skip the primary output
+ for (int i = 1; i < enumeratedPrimaryOutputs.size(); i++)
+ addlOutputs.add(enumeratedPrimaryOutputs.get(i));
+ }
+ addlOutputs.addAll(enumeratedSecondaryOutputs);
+ if (addlTargets != null) {
+ for (IPath addlTarget : addlTargets)
+ addlOutputs.add(addlTarget);
+ }
+ for (int i = 0; i < addlOutputs.size(); i++) {
+ depLine = escapeWhitespaces(addlOutputs.get(i).toString()) + COLON + WHITESPACE + primaryOutputName;
+ if (calculatedDependencies != null)
+ depLine += calculatedDependencies;
+ depLine += NEWLINE;
+ if (!getDepLineList().contains(depLine)) {
+ getDepLineList().add(depLine);
+ addedDepLines = true;
+ buffer.append(depLine);
+ }
+ }
+ if (addedDepLines) {
+ buffer.append(NEWLINE);
+ }
+
+ // If we are using a dependency calculator of type TYPE_PREBUILD_COMMANDS,
+ // get the rule to build the dependency file
+ if (depPreBuild != null && depFiles != null) {
+ addedDepLines = false;
+ String[] preBuildCommands = depPreBuild.getDependencyCommands();
+ if (preBuildCommands != null) {
+ depLine = ""; //$NON-NLS-1$
+ // Can we use a pattern rule?
+ patternRule = !isItLinked && !needExplicitRuleForFile && depPreBuild.areCommandsGeneric();
+ // Begin building the rule
+ for (int i = 0; i < depFiles.length; i++) {
+ if (i > 0)
+ depLine += WHITESPACE;
+ if (patternRule) {
+ optDotExt = EMPTY_STRING;
+ String depExt = depFiles[i].getFileExtension();
+ if (depExt != null && depExt.length() > 0)
+ optDotExt = DOT + depExt;
+ depLine += escapeWhitespaces(relativePath + WILDCARD + optDotExt);
+ } else {
+ depLine += escapeWhitespaces((depFiles[i]).toString());
+ }
+ }
+ depLine += COLON + WHITESPACE + (patternRule ? patternBuildRuleDependencies : buildRuleDependencies)
+ + WHITESPACE + escapeWhitespaces(relativePath + MODFILE_NAME);
+ if (!getDepRuleList().contains(depLine)) {
+ getDepRuleList().add(depLine);
+ addedDepLines = true;
+ buffer.append(depLine).append(NEWLINE);
+ buffer.append(TAB).append(AT)
+ .append(escapedEcho(MESSAGE_START_DEPENDENCY + WHITESPACE + OUT_MACRO));
+ for (String preBuildCommand : preBuildCommands) {
+ depLine = preBuildCommand;
+ // Resolve macros
+ try {
+ if (!needExplicitRuleForFile) {
+ depLine = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(
+ depLine, EMPTY_STRING, WHITESPACE, IBuildMacroProvider.CONTEXT_FILE,
+ new FileContextData(sourceLocation, outputLocation, null, tool));
+ }
+
+ else {
+ depLine = ManagedBuildManager.getBuildMacroProvider().resolveValue(depLine,
+ EMPTY_STRING, WHITESPACE, IBuildMacroProvider.CONTEXT_FILE,
+ new FileContextData(sourceLocation, outputLocation, null, tool));
+ }
+
+ } catch (BuildMacroException e) {
+ }
+ //buffer.append(TAB).append(AT).append(escapedEcho(depLine));
+ //buffer.append(TAB).append(AT).append(depLine).append(NEWLINE);
+ buffer.append(TAB).append(depLine).append(NEWLINE);
+ }
+ }
+ if (addedDepLines) {
+ buffer.append(TAB).append(AT).append(ECHO_BLANK_LINE).append(NEWLINE);
+ }
+ }
+ }
+ }
+
+ /*
+ * Add any dependency calculator options to the tool options
+ */
+ private String[] addDependencyOptions(IManagedDependencyCommands depCommands, String[] flags) {
+ String[] depOptions = depCommands.getDependencyCommandOptions();
+ if (depOptions != null && depOptions.length > 0) {
+ int flagsLen = flags.length;
+ String[] flagsCopy = new String[flags.length + depOptions.length];
+ for (int i = 0; i < flags.length; i++) {
+ flagsCopy[i] = flags[i];
+ }
+ for (int i = 0; i < depOptions.length; i++) {
+ flagsCopy[i + flagsLen] = depOptions[i];
+ }
+ flags = flagsCopy;
+ }
+ return flags;
+ }
+
+ /**
+ * Returns any additional resources specified for the tool in other InputType elements and AdditionalInput elements
+ */
+ protected IPath[] getAdditionalResourcesForSource(ITool tool) {
+ List<IPath> allRes = new ArrayList<>();
+ IInputType[] types = tool.getInputTypes();
+ for (IInputType type : types) {
+ // Additional resources come from 2 places.
+ // 1. From AdditionalInput childen
+ IPath[] res = type.getAdditionalResources();
+ for (IPath re : res) {
+ allRes.add(re);
+ }
+ // 2. From InputTypes that other than the primary input type
+ if (!type.getPrimaryInput() && type != tool.getPrimaryInputType()) {
+ String var = type.getBuildVariable();
+ if (var != null && var.length() > 0) {
+ allRes.add(Path.fromOSString("$(" + type.getBuildVariable() + ")")); //$NON-NLS-1$ //$NON-NLS-2$
+ } else {
+ // Use file extensions
+ String[] typeExts = type.getSourceExtensions(tool);
+ for (IResource projectResource : projectResources) {
+ if (projectResource.getType() == IResource.FILE) {
+ String fileExt = projectResource.getFileExtension();
+ if (fileExt == null) {
+ fileExt = ""; //$NON-NLS-1$
+ }
+ for (String typeExt : typeExts) {
+ if (fileExt.equals(typeExt)) {
+ allRes.add(projectResource.getProjectRelativePath());
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ // If an assignToOption has been specified, set the value of the option to the inputs
+ IOption assignToOption = tool.getOptionBySuperClassId(type.getAssignToOptionId());
+ IOption option = tool.getOptionBySuperClassId(type.getOptionId());
+ if (assignToOption != null && option == null) {
+ try {
+ int optType = assignToOption.getValueType();
+ IResourceInfo rcInfo = tool.getParentResourceInfo();
+ if (rcInfo != null) {
+ if (optType == IOption.STRING) {
+ String optVal = ""; //$NON-NLS-1$
+ for (int j = 0; j < allRes.size(); j++) {
+ if (j != 0) {
+ optVal += " "; //$NON-NLS-1$
+ }
+ String resPath = allRes.get(j).toString();
+ if (!resPath.startsWith("$(")) { //$NON-NLS-1$
+ IResource addlResource = project.getFile(resPath);
+ if (addlResource != null) {
+ IPath addlPath = addlResource.getLocation();
+ if (addlPath != null) {
+ resPath = ManagedBuildManager
+ .calculateRelativePath(getTopBuildDir(), addlPath).toString();
+ }
+ }
+ }
+ optVal += ManagedBuildManager
+ .calculateRelativePath(getTopBuildDir(), Path.fromOSString(resPath))
+ .toString();
+ }
+ ManagedBuildManager.setOption(rcInfo, tool, assignToOption, optVal);
+ } else if (optType == IOption.STRING_LIST || optType == IOption.LIBRARIES
+ || optType == IOption.OBJECTS || optType == IOption.INCLUDE_FILES
+ || optType == IOption.LIBRARY_PATHS || optType == IOption.LIBRARY_FILES
+ || optType == IOption.MACRO_FILES) {
+ //TODO: do we need to do anything with undefs here?
+ // Note that the path(s) must be translated from project relative
+ // to top build directory relative
+ String[] paths = new String[allRes.size()];
+ for (int j = 0; j < allRes.size(); j++) {
+ paths[j] = allRes.get(j).toString();
+ if (!paths[j].startsWith("$(")) { //$NON-NLS-1$
+ IResource addlResource = project.getFile(paths[j]);
+ if (addlResource != null) {
+ IPath addlPath = addlResource.getLocation();
+ if (addlPath != null) {
+ paths[j] = ManagedBuildManager
+ .calculateRelativePath(getTopBuildDir(), addlPath).toString();
+ }
+ }
+ }
+ }
+ ManagedBuildManager.setOption(rcInfo, tool, assignToOption, paths);
+ } else if (optType == IOption.BOOLEAN) {
+ boolean b = false;
+ if (allRes.size() > 0)
+ b = true;
+ ManagedBuildManager.setOption(rcInfo, tool, assignToOption, b);
+ } else if (optType == IOption.ENUMERATED || optType == IOption.TREE) {
+ if (allRes.size() > 0) {
+ String s = allRes.get(0).toString();
+ ManagedBuildManager.setOption(rcInfo, tool, assignToOption, s);
+ }
+ }
+ allRes.clear();
+ }
+ } catch (BuildException ex) {
+ }
+ }
+ }
+ }
+ return allRes.toArray(new IPath[allRes.size()]);
+ }
+
+ /**
+ * Returns the output <code>IPath</code>s for this invocation of the tool with the specified source file
+ *
+ * The priorities for determining the names of the outputs of a tool are:
+ * 1. If the tool is the build target and primary output, use artifact name & extension -
+ * This case does not apply here...
+ * 2. If an option is specified, use the value of the option
+ * 3. If a nameProvider is specified, call it
+ * 4. If outputNames is specified, use it
+ * 5. Use the name pattern to generate a transformation macro
+ * so that the source names can be transformed into the target names
+ * using the built-in string substitution functions of <code>make</code>.
+ *
+ * @param relativePath build output directory relative path of the current output directory
+ * @param ruleOutputs Vector of rule IPaths that are relative to the build directory
+ * @param enumeratedPrimaryOutputs Vector of IPaths of primary outputs
+ * that are relative to the build directory
+ * @param enumeratedSecondaryOutputs Vector of IPaths of secondary outputs
+ * that are relative to the build directory
+ */
+ protected void calculateOutputsForSource(ITool tool, String relativePath, IResource resource, IPath sourceLocation,
+ Vector<IPath> ruleOutputs, Vector<IPath> enumeratedPrimaryOutputs,
+ Vector<IPath> enumeratedSecondaryOutputs) {
+ String inExt = sourceLocation.getFileExtension();
+ String outExt = tool.getOutputExtension(inExt);
+ IResourceInfo rcInfo = tool.getParentResourceInfo();
+
+ IOutputType[] outTypes = tool.getOutputTypes();
+ if (outTypes != null && outTypes.length > 0) {
+ for (IOutputType type : outTypes) {
+ boolean primaryOutput = (type == tool.getPrimaryOutputType());
+ //if (primaryOutput && ignorePrimary) continue;
+ String outputPrefix = type.getOutputPrefix();
+
+ // Resolve any macros in the outputPrefix
+ // Note that we cannot use file macros because if we do a clean
+ // we need to know the actual name of the file to clean, and
+ // cannot use any builder variables such as $@. Hence we use the
+ // next best thing, i.e. configuration context.
+
+ // figure out the configuration we're using
+ // IBuildObject toolParent = tool.getParent();
+ // IConfiguration config = null;
+ // if the parent is a config then we're done
+ // if (toolParent instanceof IConfiguration)
+ // config = (IConfiguration) toolParent;
+ // else if (toolParent instanceof IToolChain) {
+ // // must be a toolchain
+ // config = (IConfiguration) ((IToolChain) toolParent)
+ // .getParent();
+ // }
+ //
+ // else if (toolParent instanceof IResourceConfiguration) {
+ // config = (IConfiguration) ((IResourceConfiguration) toolParent)
+ // .getParent();
+ // }
+
+ // else {
+ // // bad
+ // throw new AssertionError(
+ // "tool parent must be one of configuration, toolchain, or resource configuration");
+ // }
+
+ // if (config != null) {
+
+ try {
+
+ if (containsSpecialCharacters(sourceLocation.toString())) {
+ outputPrefix = ManagedBuildManager.getBuildMacroProvider().resolveValue(outputPrefix, "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_CONFIGURATION, config);
+ } else {
+ outputPrefix = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(
+ outputPrefix, "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_CONFIGURATION, config);
+ }
+ }
+
+ catch (BuildMacroException e) {
+ }
+
+ // }
+
+ boolean multOfType = type.getMultipleOfType();
+ IOption option = tool.getOptionBySuperClassId(type.getOptionId());
+ IManagedOutputNameProvider nameProvider = type.getNameProvider();
+ String[] outputNames = type.getOutputNames();
+
+ // 1. If the tool is the build target and this is the primary output,
+ // use artifact name & extension
+ // Not appropriate here...
+ // 2. If an option is specified, use the value of the option
+ if (option != null) {
+ try {
+ List<String> outputList = new ArrayList<>();
+ int optType = option.getValueType();
+ if (optType == IOption.STRING) {
+ outputList.add(outputPrefix + option.getStringValue());
+ } else if (optType == IOption.STRING_LIST || optType == IOption.LIBRARIES
+ || optType == IOption.OBJECTS || optType == IOption.INCLUDE_FILES
+ || optType == IOption.LIBRARY_PATHS || optType == IOption.LIBRARY_FILES
+ || optType == IOption.MACRO_FILES) {
+ @SuppressWarnings("unchecked")
+ List<String> value = (List<String>) option.getValue();
+ outputList = value;
+ ((Tool) tool).filterValues(optType, outputList);
+ // Add outputPrefix to each if necessary
+ if (outputPrefix.length() > 0) {
+ for (int j = 0; j < outputList.size(); j++) {
+ outputList.set(j, outputPrefix + outputList.get(j));
+ }
+ }
+ }
+ for (int j = 0; j < outputList.size(); j++) {
+ String outputName = outputList.get(j);
+
+ // try to resolve the build macros in the output
+ // names
+ try {
+
+ String resolved = null;
+
+ if (containsSpecialCharacters(sourceLocation.toString())) {
+ resolved = ManagedBuildManager.getBuildMacroProvider().resolveValue(outputName, "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_FILE,
+ new FileContextData(sourceLocation, null, option, tool));
+ }
+
+ else {
+ resolved = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(
+ outputName, "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_FILE,
+ new FileContextData(sourceLocation, null, option, tool));
+ }
+
+ if ((resolved = resolved.trim()).length() > 0)
+ outputName = resolved;
+ } catch (BuildMacroException e) {
+ }
+
+ IPath outPath = Path.fromOSString(outputName);
+ // If only a file name is specified, add the relative path of this output directory
+ if (outPath.segmentCount() == 1) {
+ outPath = Path.fromOSString(relativePath + outputList.get(j));
+ }
+ if (primaryOutput) {
+ ruleOutputs.add(j, outPath);
+ enumeratedPrimaryOutputs.add(j, resolvePercent(outPath, sourceLocation));
+ } else {
+ ruleOutputs.add(outPath);
+ enumeratedSecondaryOutputs.add(resolvePercent(outPath, sourceLocation));
+ }
+ }
+ } catch (BuildException ex) {
+ }
+ } else
+ // 3. If a nameProvider is specified, call it
+ if (nameProvider != null) {
+ IPath[] inPaths = new IPath[1];
+ inPaths[0] = sourceLocation;
+ IPath[] outPaths = nameProvider.getOutputNames(tool, inPaths);
+ if (outPaths != null) {
+ for (int j = 0; j < outPaths.length; j++) {
+ IPath outPath = outPaths[j];
+ String outputName = outPaths[j].toString();
+
+ // try to resolve the build macros in the output names
+ try {
+
+ String resolved = null;
+
+ if (containsSpecialCharacters(sourceLocation.toString())) {
+ resolved = ManagedBuildManager.getBuildMacroProvider().resolveValue(outputName, "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_FILE,
+ new FileContextData(sourceLocation, null, option, tool));
+ }
+
+ else {
+ resolved = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(
+ outputName, "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_FILE,
+ new FileContextData(sourceLocation, null, option, tool));
+ }
+
+ if ((resolved = resolved.trim()).length() > 0)
+ outputName = resolved;
+ } catch (BuildMacroException e) {
+ }
+
+ // If only a file name is specified, add the relative path of this output directory
+ if (outPath.segmentCount() == 1) {
+ outPath = Path.fromOSString(relativePath + outPath.toString());
+ }
+ if (primaryOutput) {
+ ruleOutputs.add(j, outPath);
+ enumeratedPrimaryOutputs.add(j, resolvePercent(outPath, sourceLocation));
+ } else {
+ ruleOutputs.add(outPath);
+ enumeratedSecondaryOutputs.add(resolvePercent(outPath, sourceLocation));
+ }
+ }
+ }
+ } else
+ // 4. If outputNames is specified, use it
+ if (outputNames != null) {
+ for (int j = 0; j < outputNames.length; j++) {
+ String outputName = outputNames[j];
+ try {
+ //try to resolve the build macros in the output names
+ String resolved = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(
+ outputName, "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_FILE,
+ new FileContextData(sourceLocation, null, option, tool));
+ if ((resolved = resolved.trim()).length() > 0)
+ outputName = resolved;
+ } catch (BuildMacroException e) {
+ }
+
+ IPath outPath = Path.fromOSString(outputName);
+ // If only a file name is specified, add the relative path of this output directory
+ if (outPath.segmentCount() == 1) {
+ outPath = Path.fromOSString(relativePath + outPath.toString());
+ }
+ if (primaryOutput) {
+ ruleOutputs.add(j, outPath);
+ enumeratedPrimaryOutputs.add(j, resolvePercent(outPath, sourceLocation));
+ } else {
+ ruleOutputs.add(outPath);
+ enumeratedSecondaryOutputs.add(resolvePercent(outPath, sourceLocation));
+ }
+ }
+ } else {
+ // 5. Use the name pattern to generate a transformation macro
+ // so that the source names can be transformed into the target names
+ // using the built-in string substitution functions of <code>make</code>.
+ if (multOfType) {
+ // This case is not handled - a nameProvider or outputNames must be specified
+ // TODO - report error
+ } else {
+ String namePattern = type.getNamePattern();
+ IPath namePatternPath = null;
+ if (namePattern == null || namePattern.length() == 0) {
+ namePattern = relativePath + outputPrefix + IManagedBuilderMakefileGenerator.WILDCARD;
+ if (outExt != null && outExt.length() > 0) {
+ namePattern += DOT + outExt;
+ }
+ namePatternPath = Path.fromOSString(namePattern);
+ } else {
+ if (outputPrefix.length() > 0) {
+ namePattern = outputPrefix + namePattern;
+ }
+ namePatternPath = Path.fromOSString(namePattern);
+ // If only a file name is specified, add the relative path of this output directory
+ if (namePatternPath.segmentCount() == 1) {
+ namePatternPath = Path.fromOSString(relativePath + namePatternPath.toString());
+ }
+ }
+
+ if (primaryOutput) {
+ ruleOutputs.add(0, namePatternPath);
+ enumeratedPrimaryOutputs.add(0, resolvePercent(namePatternPath, sourceLocation));
+ } else {
+ ruleOutputs.add(namePatternPath);
+ enumeratedSecondaryOutputs.add(resolvePercent(namePatternPath, sourceLocation));
+ }
+ }
+ }
+ }
+ } else {
+ // For support of pre-CDT 3.0 integrations.
+ // NOTE WELL: This only supports the case of a single "target tool"
+ // that consumes exactly all of the object files, $OBJS, produced
+ // by other tools in the build and produces a single output.
+ // In this case, the output file name is the input file name with
+ // the output extension.
+
+ //if (!ignorePrimary) {
+ String outPrefix = tool.getOutputPrefix();
+ IPath outPath = Path.fromOSString(relativePath + outPrefix + WILDCARD);
+ outPath = outPath.addFileExtension(outExt);
+ ruleOutputs.add(0, outPath);
+ enumeratedPrimaryOutputs.add(0, resolvePercent(outPath, sourceLocation));
+ //}
+ }
+ }
+
+ /**
+ * If the path contains a %, returns the path resolved using the resource name
+ *
+ */
+ protected IPath resolvePercent(IPath outPath, IPath sourceLocation) {
+ // Get the input file name
+ String fileName = sourceLocation.removeFileExtension().lastSegment();
+ // Replace the % with the file name
+ String outName = outPath.toOSString().replaceAll("%", fileName); //$NON-NLS-1$
+ IPath result = Path.fromOSString(outName);
+ return DOT_SLASH_PATH.isPrefixOf(outPath) ? DOT_SLASH_PATH.append(result) : result;
+ }
+
+ /**
+ * Returns the dependency <code>IPath</code>s for this invocation of the tool with the specified source file
+ *
+ * @param depGen the dependency calculator
+ * @param tool tool used to build the source file
+ * @param relativePath build output directory relative path of the current output directory
+ * @param resource source file to scan for dependencies
+ * @return Vector of IPaths that are relative to the build directory
+ */
+ protected IPath[] oldCalculateDependenciesForSource(IManagedDependencyGenerator depGen, ITool tool,
+ String relativePath, IResource resource) {
+ Vector<IPath> deps = new Vector<>();
+ int type = depGen.getCalculatorType();
+
+ switch (type) {
+
+ case IManagedDependencyGeneratorType.TYPE_INDEXER:
+ case IManagedDependencyGeneratorType.TYPE_EXTERNAL:
+ IResource[] res = depGen.findDependencies(resource, project);
+ if (res != null) {
+ for (IResource re : res) {
+ IPath dep = null;
+ if (re != null) {
+ IPath addlPath = re.getLocation();
+ if (addlPath != null) {
+ dep = ManagedBuildManager.calculateRelativePath(getTopBuildDir(), addlPath);
+ }
+ }
+ if (dep != null) {
+ deps.add(dep);
+ }
+ }
+ }
+ break;
+
+ case IManagedDependencyGeneratorType.TYPE_NODEPS:
+ default:
+ break;
+ }
+ return deps.toArray(new IPath[deps.size()]);
+ }
+
+ /**
+ * Returns the dependency <code>IPath</code>s relative to the build directory
+ *
+ * @param depCalculator the dependency calculator
+ * @return IPath[] that are relative to the build directory
+ */
+ protected IPath[] calculateDependenciesForSource(IManagedDependencyCalculator depCalculator) {
+ IPath[] addlDeps = depCalculator.getDependencies();
+ if (addlDeps != null) {
+ for (int i = 0; i < addlDeps.length; i++) {
+ if (!addlDeps[i].isAbsolute()) {
+ // Convert from project relative to build directory relative
+ IPath absolutePath = project.getLocation().append(addlDeps[i]);
+ addlDeps[i] = ManagedBuildManager.calculateRelativePath(getTopBuildDir(), absolutePath);
+ }
+ }
+ }
+ return addlDeps;
+ }
+
+ /*************************************************************************
+ * M A K E F I L E G E N E R A T I O N C O M M O N M E T H O D S
+ ************************************************************************/
+
+ /**
+ * Generates a source macro name from a file extension
+ */
+ public StringBuffer getSourceMacroName(String extensionName) {
+ StringBuffer macroName = new StringBuffer();
+
+ // We need to handle case sensitivity in file extensions (e.g. .c vs .C), so if the
+ // extension was already upper case, tack on an "UPPER_" to the macro name.
+ // In theory this means there could be a conflict if you had for example,
+ // extensions .c_upper, and .C, but realistically speaking the chances of this are
+ // practically nil so it doesn't seem worth the hassle of generating a truly
+ // unique name.
+ if (extensionName.equals(extensionName.toUpperCase())) {
+ macroName.append(extensionName.toUpperCase()).append("_UPPER"); //$NON-NLS-1$
+ } else {
+ // lower case... no need for "UPPER_"
+ macroName.append(extensionName.toUpperCase());
+ }
+ macroName.append("_SRCS"); //$NON-NLS-1$
+ return macroName;
+ }
+
+ /**
+ * Generates a generated dependency file macro name from a file extension
+ */
+ public StringBuffer getDepMacroName(String extensionName) {
+ StringBuffer macroName = new StringBuffer();
+
+ // We need to handle case sensitivity in file extensions (e.g. .c vs .C), so if the
+ // extension was already upper case, tack on an "UPPER_" to the macro name.
+ // In theory this means there could be a conflict if you had for example,
+ // extensions .c_upper, and .C, but realistically speaking the chances of this are
+ // practically nil so it doesn't seem worth the hassle of generating a truly
+ // unique name.
+ if (extensionName.equals(extensionName.toUpperCase())) {
+ macroName.append(extensionName.toUpperCase()).append("_UPPER"); //$NON-NLS-1$
+ } else {
+ // lower case... no need for "UPPER_"
+ macroName.append(extensionName.toUpperCase());
+ }
+ macroName.append("_DEPS"); //$NON-NLS-1$
+ return macroName;
+ }
+
+ /**
+ * Answers all of the output extensions that the target
+ * of the build has tools defined to work on.
+ *
+ * @return a <code>Set</code> containing all of the output extensions
+ */
+ public Set<String> getOutputExtensions(ToolInfoHolder h) {
+ if (h.outputExtensionsSet == null) {
+ // The set of output extensions which will be produced by this tool.
+ // It is presumed that this set is not very large (likely < 10) so
+ // a HashSet should provide good performance.
+ h.outputExtensionsSet = new HashSet<>();
+
+ // For each tool for the target, lookup the kinds of sources it outputs
+ // and add that to our list of output extensions.
+ for (ITool tool : h.buildTools) {
+ String[] outputs = tool.getAllOutputExtensions();
+ if (outputs != null) {
+ h.outputExtensionsSet.addAll(Arrays.asList(outputs));
+ }
+ }
+ }
+ return h.outputExtensionsSet;
+ }
+
+ /**
+ * This method postprocesses a .d file created by a build.
+ * It's main job is to add dummy targets for the header files dependencies.
+ * This prevents make from aborting the build if the header file does not exist.
+ *
+ * A secondary job is to work in tandem with the "echo" command that is used
+ * by some tool-chains in order to get the "targets" part of the dependency rule
+ * correct.
+ *
+ * This method adds a comment to the beginning of the dependency file which it
+ * checks for to determine if this dependency file has already been updated.
+ *
+ * @return a <code>true</code> if the dependency file is modified
+ * @since 9.3
+ */
+ public boolean generateDummyTargets(IConfiguration cfg, IFile makefile, boolean force)
+ throws CoreException, IOException {
+ return generateDummyTargets(cfg.getRootFolderInfo(), makefile, force);
+ }
+
+ /**
+ * @since 9.3
+ */
+ public boolean generateDummyTargets(IResourceInfo rcInfo, IFile makefile, boolean force)
+ throws CoreException, IOException {
+
+ if (makefile == null || !makefile.exists())
+ return false;
+
+ // Get the contents of the dependency file
+ StringBuffer inBuffer;
+ InputStream contentStream = makefile.getContents(false);
+ try (Reader in = new InputStreamReader(contentStream)) {
+ int chunkSize = contentStream.available();
+ inBuffer = new StringBuffer(chunkSize);
+ char[] readBuffer = new char[chunkSize];
+ int n = in.read(readBuffer);
+ while (n > 0) {
+ inBuffer.append(readBuffer);
+ n = in.read(readBuffer);
+ }
+ }
+
+ // The rest of this operation is equally expensive, so
+ // if we are doing an incremental build, only update the
+ // files that do not have a comment
+ String inBufferString = inBuffer.toString();
+ if (!force && inBufferString.startsWith(COMMENT_SYMBOL)) {
+ return false;
+ }
+
+ // Try to determine if this file already has dummy targets defined.
+ // If so, we will only add the comment.
+ String[] bufferLines = inBufferString.split("[\\r\\n]"); //$NON-NLS-1$
+ for (String bufferLine : bufferLines) {
+ if (bufferLine.endsWith(":")) { //$NON-NLS-1$
+ StringBuffer outBuffer = addGenericHeader();
+ outBuffer.append(inBuffer);
+ save(outBuffer, makefile);
+ return true;
+ }
+ }
+
+ // Reconstruct the buffer tokens into useful chunks of dependency information
+ Vector<String> bufferTokens = new Vector<>(Arrays.asList(inBufferString.split("\\s"))); //$NON-NLS-1$
+ Vector<String> deps = new Vector<>(bufferTokens.size());
+ Iterator<String> tokenIter = bufferTokens.iterator();
+ while (tokenIter.hasNext()) {
+ String token = tokenIter.next();
+ if (token.lastIndexOf("\\") == token.length() - 1 && token.length() > 1) { //$NON-NLS-1$
+ // This is escaped so keep adding to the token until we find the end
+ while (tokenIter.hasNext()) {
+ String nextToken = tokenIter.next();
+ token += WHITESPACE + nextToken;
+ if (!nextToken.endsWith("\\")) { //$NON-NLS-1$
+ //$NON-NLS-1$
+ break;
+ }
+ }
+ }
+ deps.add(token);
+ }
+ deps.trimToSize();
+
+ // Now find the header file dependencies and make dummy targets for them
+ boolean save = false;
+ StringBuffer outBuffer = null;
+
+ // If we are doing an incremental build, only update the files that do not have a comment
+ String firstToken;
+ try {
+ firstToken = deps.get(0);
+ } catch (ArrayIndexOutOfBoundsException e) {
+ // This makes no sense so bail
+ return false;
+ }
+
+ // Put the generated comments in the output buffer
+ if (!firstToken.startsWith(COMMENT_SYMBOL)) {
+ outBuffer = addGenericHeader();
+ } else {
+ outBuffer = new StringBuffer();
+ }
+
+ // Some echo implementations misbehave and put the -n and newline in the output
+ if (firstToken.startsWith("-n")) { //$NON-NLS-1$
+
+ // Now let's parse:
+ // Win32 outputs -n '<path>/<file>.d <path>/'
+ // POSIX outputs -n <path>/<file>.d <path>/
+ // Get the dep file name
+ String secondToken;
+ try {
+ secondToken = deps.get(1);
+ } catch (ArrayIndexOutOfBoundsException e) {
+ secondToken = ""; //$NON-NLS-1$
+ }
+ if (secondToken.startsWith("'")) { //$NON-NLS-1$
+ // This is the Win32 implementation of echo (MinGW without MSYS)
+ outBuffer.append(secondToken.substring(1)).append(WHITESPACE);
+ } else {
+ outBuffer.append(secondToken).append(WHITESPACE);
+ }
+
+ // The relative path to the build goal comes next
+ String thirdToken;
+ try {
+ thirdToken = deps.get(2);
+ } catch (ArrayIndexOutOfBoundsException e) {
+ thirdToken = ""; //$NON-NLS-1$
+ }
+ int lastIndex = thirdToken.lastIndexOf("'"); //$NON-NLS-1$
+ if (lastIndex != -1) {
+ if (lastIndex == 0) {
+ outBuffer.append(WHITESPACE);
+ } else {
+ outBuffer.append(thirdToken.substring(0, lastIndex - 1));
+ }
+ } else {
+ outBuffer.append(thirdToken);
+ }
+
+ // Followed by the target output by the compiler plus ':'
+ // If we see any empty tokens here, assume they are the result of
+ // a line feed output by "echo" and skip them
+ String fourthToken;
+ int nToken = 3;
+ try {
+ do {
+ fourthToken = deps.get(nToken++);
+ } while (fourthToken.length() == 0);
+
+ } catch (ArrayIndexOutOfBoundsException e) {
+ fourthToken = ""; //$NON-NLS-1$
+ }
+ outBuffer.append(fourthToken).append(WHITESPACE);
+
+ // Followed by the actual dependencies
+ try {
+ for (String nextElement : deps) {
+ if (nextElement.endsWith("\\")) { //$NON-NLS-1$
+ outBuffer.append(nextElement).append(NEWLINE).append(WHITESPACE);
+ } else {
+ outBuffer.append(nextElement).append(WHITESPACE);
+ }
+ }
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ } else {
+ outBuffer.append(inBuffer);
+ }
+
+ outBuffer.append(NEWLINE);
+ save = true;
+
+ IFolderInfo fo = null;
+ if (rcInfo instanceof IFolderInfo) {
+ fo = (IFolderInfo) rcInfo;
+ } else {
+ IConfiguration c = rcInfo.getParent();
+ fo = (IFolderInfo) c.getResourceInfo(rcInfo.getPath().removeLastSegments(1), false);
+ }
+ // Dummy targets to add to the makefile
+ for (String dummy : deps) {
+ IPath dep = new Path(dummy);
+ String extension = dep.getFileExtension();
+ if (fo.isHeaderFile(extension)) {
+ /*
+ * The formatting here is
+ * <dummy_target>:
+ */
+ outBuffer.append(dummy).append(COLON).append(NEWLINE).append(NEWLINE);
+ }
+ }
+
+ // Write them out to the makefile
+ if (save) {
+ save(outBuffer, makefile);
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * prepend all instanced of '\' or '"' with a backslash
+ *
+ * @return resulting string
+ */
+ static public String escapedEcho(String string) {
+ String escapedString = string.replaceAll("'", "'\"'\"'"); //$NON-NLS-1$ //$NON-NLS-2$
+ return ECHO + WHITESPACE + SINGLE_QUOTE + escapedString + SINGLE_QUOTE + NEWLINE;
+ }
+
+ static public String ECHO_BLANK_LINE = ECHO + WHITESPACE + SINGLE_QUOTE + WHITESPACE + SINGLE_QUOTE + NEWLINE;
+
+ /**
+ * Outputs a comment formatted as follows:
+ * ##### ....... #####
+ * # <Comment message>
+ * ##### ....... #####
+ * @since 9.3
+ */
+ protected StringBuffer addGenericHeader() {
+ StringBuffer buffer = new StringBuffer();
+ outputCommentLine(buffer);
+ buffer.append(COMMENT_SYMBOL).append(WHITESPACE).append(ManagedMakeMessages.getResourceString(HEADER))
+ .append(NEWLINE);
+ addCustomHeader(buffer);
+ outputCommentLine(buffer);
+ buffer.append(NEWLINE);
+ return buffer;
+ }
+
+ /**
+ * @since 9.3
+ */
+ protected void addCustomHeader(StringBuffer buffer) {
+ }
+
+ /**
+ * Put COLS_PER_LINE comment charaters in the argument.
+ */
+ static protected void outputCommentLine(StringBuffer buffer) {
+ for (int i = 0; i < COLS_PER_LINE; i++) {
+ buffer.append(COMMENT_SYMBOL);
+ }
+ buffer.append(NEWLINE);
+ }
+
+ static public boolean containsSpecialCharacters(String path) {
+ return path.matches(".*(\\s|[\\{\\}\\(\\)\\$\\@%=;]).*"); //$NON-NLS-1$
+ }
+
+ /**
+ * Answers the argument with all whitespaces replaced with an escape sequence.
+ */
+ static public String escapeWhitespaces(String path) {
+ // Escape the spaces in the path/filename if it has any
+ String[] segments = path.split("\\s"); //$NON-NLS-1$
+ if (segments.length > 1) {
+ StringBuffer escapedPath = new StringBuffer();
+ for (int index = 0; index < segments.length; ++index) {
+ escapedPath.append(segments[index]);
+ if (index + 1 < segments.length) {
+ escapedPath.append("\\ "); //$NON-NLS-1$
+ }
+ }
+ return escapedPath.toString().trim();
+ } else {
+ return path;
+ }
+ }
+
+ /**
+ * Adds a macro addition prefix to a map of macro names to entries.
+ * Entry prefixes look like:
+ * C_SRCS += \
+ * ${addprefix $(ROOT)/, \
+ */
+ // TODO fix comment
+ protected void addMacroAdditionPrefix(LinkedHashMap<String, String> map, String macroName, String relativePath,
+ boolean addPrefix) {
+ // there is no entry in the map, so create a buffer for this macro
+ StringBuffer tempBuffer = new StringBuffer();
+ tempBuffer.append(macroName).append(WHITESPACE).append(MACRO_ADDITION_PREFIX_SUFFIX);
+ if (addPrefix) {
+ tempBuffer.append(MACRO_ADDITION_ADDPREFIX_HEADER).append(relativePath)
+ .append(MACRO_ADDITION_ADDPREFIX_SUFFIX);
+ }
+
+ // have to store the buffer in String form as StringBuffer is not a sublcass of Object
+ map.put(macroName, tempBuffer.toString());
+ }
+
+ /**
+ * Adds a file to an entry in a map of macro names to entries.
+ * File additions look like:
+ * example.c, \
+ */
+ protected void addMacroAdditionFile(HashMap<String, String> map, String macroName, String filename) {
+ StringBuffer buffer = new StringBuffer();
+ buffer.append(map.get(macroName));
+
+ // escape whitespace in the filename
+ filename = escapeWhitespaces(filename);
+
+ buffer.append(filename).append(WHITESPACE).append(LINEBREAK);
+ // re-insert string in the map
+ map.put(macroName, buffer.toString());
+ }
+
+ /**
+ * Adds a file to an entry in a map of macro names to entries.
+ * File additions look like:
+ * example.c, \
+ */
+ protected void addMacroAdditionFile(HashMap<String, String> map, String macroName, String relativePath,
+ IPath sourceLocation, boolean generatedSource) {
+ // Add the source file path to the makefile line that adds source files to the build variable
+ String srcName;
+ IPath projectLocation = getPathForResource(project);
+ IPath dirLocation = projectLocation;
+ if (generatedSource) {
+ dirLocation = dirLocation.append(getBuildWorkingDir());
+ }
+ if (dirLocation.isPrefixOf(sourceLocation)) {
+ IPath srcPath = sourceLocation.removeFirstSegments(dirLocation.segmentCount()).setDevice(null);
+ if (generatedSource) {
+ srcName = "./" + srcPath.toString(); //$NON-NLS-1$
+ } else {
+ srcName = reachProjectRoot() + SEPARATOR + srcPath.toString();
+ }
+ } else {
+ if (generatedSource && !sourceLocation.isAbsolute()) {
+ srcName = "./" + relativePath + sourceLocation.lastSegment().toString(); //$NON-NLS-1$
+ } else {
+ // TODO: Should we use relative paths when possible (e.g., see MbsMacroSupplier.calculateRelPath)
+ srcName = sourceLocation.toString();
+ }
+ }
+ addMacroAdditionFile(map, macroName, srcName);
+ }
+
+ /**
+ * Adds file(s) to an entry in a map of macro names to entries.
+ */
+ public void addMacroAdditionFiles(Map<String, Set<String>> map, String macroName, Vector<String> filenames) {
+ Set<String> set = map.get(macroName);
+
+ for (String filename : filenames) {
+ if (!filename.isEmpty()) {
+ set.add(filename);
+ }
+ }
+ }
+
+ /**
+ * Write all macro addition entries in a map to the buffer
+ */
+ protected StringBuffer writeAdditionMacros(LinkedHashMap<String, String> map) {
+ StringBuffer buffer = new StringBuffer();
+ // Add the comment
+ buffer.append(COMMENT_SYMBOL).append(WHITESPACE).append(ManagedMakeMessages.getResourceString(MOD_VARS))
+ .append(NEWLINE);
+
+ for (String macroString : map.values()) {
+ // Check if we added any files to the rule
+ // Currently, we do this by comparing the end of the rule buffer to MACRO_ADDITION_PREFIX_SUFFIX
+ if (!(macroString.endsWith(MACRO_ADDITION_PREFIX_SUFFIX))) {
+ StringBuffer currentBuffer = new StringBuffer();
+
+ // Remove the final "/"
+ if (macroString.endsWith(LINEBREAK)) {
+ macroString = macroString.substring(0, (macroString.length() - 2)) + NEWLINE;
+ }
+ currentBuffer.append(macroString);
+
+ currentBuffer.append(NEWLINE);
+
+ // append the contents of the buffer to the master buffer for
+ // the whole file
+ buffer.append(currentBuffer);
+ }
+ }
+ return buffer.append(NEWLINE);
+ }
+
+ /**
+ * Write all macro addition entries in a map to the buffer
+ */
+ protected StringBuffer writeTopAdditionMacros(List<String> varList, Map<String, Set<String>> varMap) {
+ StringBuffer buffer = new StringBuffer();
+ // Add the comment
+ buffer.append(COMMENT_SYMBOL).append(WHITESPACE).append(ManagedMakeMessages.getResourceString(MOD_VARS))
+ .append(NEWLINE);
+
+ for (String macroName : varList) {
+ Set<String> files = varMap.get(macroName);
+
+ buffer.append(macroName).append(WHITESPACE).append(MACRO_ADDITION_PREFIX_SUFFIX);
+
+ for (String filename : files) {
+ // Bug 417228, ilg@livius.net & freidin.alex@gmail.com
+ filename = ensurePathIsGNUMakeTargetRuleCompatibleSyntax(filename);
+
+ buffer.append(filename).append(WHITESPACE).append(LINEBREAK);
+ }
+
+ buffer.append(NEWLINE);
+ }
+ return buffer.append(NEWLINE);
+ }
+
+ /**
+ * Calculates the inputs and outputs for tools that will be generated in the top makefile.
+ * This information is used by the top level makefile generation methods.
+ */
+ protected void calculateToolInputsOutputs() {
+
+ toolInfos.accept(new IPathSettingsContainerVisitor() {
+ @Override
+ public boolean visit(PathSettingsContainer container) {
+ ToolInfoHolder h = (ToolInfoHolder) container.getValue();
+ ITool[] buildTools = h.buildTools;
+ ManagedBuildGnuToolInfo[] gnuToolInfos = h.gnuToolInfos;
+ // We are "done" when the information for all tools has been calculated,
+ // or we are not making any progress
+ boolean done = false;
+ boolean lastChance = false;
+ int[] doneState = new int[buildTools.length];
+
+ // Identify the target tool
+ ITool targetTool = config.calculateTargetTool();
+ // if (targetTool == null) {
+ // targetTool = info.getToolFromOutputExtension(buildTargetExt);
+ // }
+
+ // Initialize the tool info array and the done state
+
+ if (buildTools.length != 0 && buildTools[0].getCustomBuildStep())
+ return true;
+
+ for (int i = 0; i < buildTools.length; i++) {
+ if ((buildTools[i] == targetTool)) {
+ String ext = config.getArtifactExtension();
+ //try to resolve the build macros in the artifact extension
+ try {
+ ext = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(ext, "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_CONFIGURATION, config);
+ } catch (BuildMacroException e) {
+ }
+
+ String name = config.getArtifactName();
+ //try to resolve the build macros in the artifact name
+ try {
+ String resolved = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(
+ name, "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_CONFIGURATION, config);
+ if ((resolved = resolved.trim()).length() > 0)
+ name = resolved;
+ } catch (BuildMacroException e) {
+ }
+
+ gnuToolInfos[i] = new ManagedBuildGnuToolInfo(project, buildTools[i], true, name, ext);
+ } else {
+ gnuToolInfos[i] = new ManagedBuildGnuToolInfo(project, buildTools[i], false, null, null);
+ }
+ doneState[i] = 0;
+ }
+
+ // Initialize the build output variable to file additions map
+ Map<String, Set<String>> map = getTopBuildOutputVars();
+ Set<Entry<String, List<IPath>>> set = buildOutVars.entrySet();
+ for (Entry<String, List<IPath>> entry : set) {
+ String macroName = entry.getKey();
+
+ // for projects with specific setting on folders/files do
+ // not clear the macro value on subsequent passes
+ // use TreeSet for deterministically sorted output
+ map.putIfAbsent(macroName, new TreeSet<>());
+ }
+
+ // Set of input extensions for which macros have been created so far
+ HashSet<String> handledDepsInputExtensions = new HashSet<>();
+ HashSet<String> handledOutsInputExtensions = new HashSet<>();
+
+ while (!done) {
+ int[] testState = new int[doneState.length];
+ for (int i = 0; i < testState.length; i++)
+ testState[i] = 0;
+
+ // Calculate inputs
+ for (int i = 0; i < gnuToolInfos.length; i++) {
+ if (gnuToolInfos[i].areInputsCalculated()) {
+ testState[i]++;
+ } else {
+ if (gnuToolInfos[i].calculateInputs(GnuMakefileGenerator.this, config, projectResources, h,
+ lastChance)) {
+ testState[i]++;
+ }
+ }
+ }
+ // Calculate dependencies
+ for (int i = 0; i < gnuToolInfos.length; i++) {
+ if (gnuToolInfos[i].areDependenciesCalculated()) {
+ testState[i]++;
+ } else {
+ if (gnuToolInfos[i].calculateDependencies(GnuMakefileGenerator.this, config,
+ handledDepsInputExtensions, h, lastChance)) {
+ testState[i]++;
+ }
+ }
+ }
+ // Calculate outputs
+ for (int i = 0; i < gnuToolInfos.length; i++) {
+ if (gnuToolInfos[i].areOutputsCalculated()) {
+ testState[i]++;
+ } else {
+ if (gnuToolInfos[i].calculateOutputs(GnuMakefileGenerator.this, config,
+ handledOutsInputExtensions, lastChance)) {
+ testState[i]++;
+ }
+ }
+ }
+ // Are all calculated? If so, done.
+ done = true;
+ for (int element : testState) {
+ if (element != 3) {
+ done = false;
+ break;
+ }
+ }
+
+ // Test our "done" state vs. the previous "done" state.
+ // If we have made no progress, give it a "last chance" and then quit
+ if (!done) {
+ done = true;
+ for (int i = 0; i < testState.length; i++) {
+ if (testState[i] != doneState[i]) {
+ done = false;
+ break;
+ }
+ }
+ }
+ if (done) {
+ if (!lastChance) {
+ lastChance = true;
+ done = false;
+ }
+ }
+ if (!done) {
+ doneState = testState;
+ }
+ }
+ return true;
+ }
+ });
+ }
+
+ /**
+ * Returns the (String) list of files associated with the build variable
+ *
+ * @param variable the variable name
+ * @param locationType the format in which we want the filenames returned
+ * @param directory project relative directory path used with locationType == DIRECTORY_RELATIVE
+ * @param getAll only return the list if all tools that are going to contrubute to this
+ * variable have done so.
+ * @return List
+ */
+ public List<String> getBuildVariableList(ToolInfoHolder h, String variable, int locationType, IPath directory,
+ boolean getAll) {
+ ManagedBuildGnuToolInfo[] gnuToolInfos = h.gnuToolInfos;
+ boolean done = true;
+ for (int i = 0; i < gnuToolInfos.length; i++) {
+ if (!gnuToolInfos[i].areOutputVariablesCalculated()) {
+ done = false;
+ }
+ }
+ if (!done && getAll)
+ return null;
+ List<IPath> list = buildSrcVars.get(variable);
+ if (list == null) {
+ list = buildOutVars.get(variable);
+ }
+
+ List<String> fileList = null;
+ if (list != null) {
+ // Convert the items in the list to the location-type wanted by the caller,
+ // and to a string list
+ IPath dirLocation = null;
+ if (locationType != ABSOLUTE) {
+ dirLocation = project.getLocation();
+ if (locationType == PROJECT_SUBDIR_RELATIVE) {
+ dirLocation = dirLocation.append(directory);
+ }
+ }
+ for (int i = 0; i < list.size(); i++) {
+ IPath path = list.get(i);
+ if (locationType != ABSOLUTE) {
+ if (dirLocation != null && dirLocation.isPrefixOf(path)) {
+ path = path.removeFirstSegments(dirLocation.segmentCount()).setDevice(null);
+ }
+ }
+ if (fileList == null) {
+ fileList = new Vector<>();
+ }
+ fileList.add(path.toString());
+ }
+ }
+
+ return fileList;
+ }
+
+ /**
+ * Returns the map of build variables to list of files
+ *
+ * @return HashMap
+ */
+ public Map<String, List<IPath>> getBuildOutputVars() {
+ return buildOutVars;
+ }
+
+ /**
+ * Returns the map of build variables used in the top makefile to list of files
+ */
+ public Map<String, Set<String>> getTopBuildOutputVars() {
+ return topBuildOutVars;
+ }
+
+ /**
+ * Returns the list of known build rules. This keeps me from generating duplicate
+ * rules for known file extensions.
+ *
+ * @return List
+ */
+ protected Vector<String> getRuleList() {
+ if (ruleList == null) {
+ ruleList = new Vector<>();
+ }
+ return ruleList;
+ }
+
+ /**
+ * Returns the list of known dependency lines. This keeps me from generating duplicate
+ * lines.
+ *
+ * @return List
+ */
+ protected Vector<String> getDepLineList() {
+ if (depLineList == null) {
+ depLineList = new Vector<>();
+ }
+ return depLineList;
+ }
+
+ /**
+ * Returns the list of known dependency file generation lines. This keeps me from
+ * generating duplicate lines.
+ *
+ * @return List
+ */
+ protected Vector<String> getDepRuleList() {
+ if (depRuleList == null) {
+ depRuleList = new Vector<>();
+ }
+ return depRuleList;
+ }
+
+ /*************************************************************************
+ * R E S O U R C E V I S I T O R M E T H O D S
+ ************************************************************************/
+
+ /**
+ * Adds the container of the argument to the list of folders in the project that
+ * contribute source files to the build. The resource visitor has already established
+ * that the build model knows how to build the files. It has also checked that
+ * the resource is not generated as part of the build.
+ */
+ protected void appendBuildSubdirectory(IResource resource) {
+ IContainer container = resource.getParent();
+ // Only add the container once
+ if (!getSubdirList().contains(container))
+ getSubdirList().add(container);
+ }
+
+ /**
+ * Adds the container of the argument to a list of subdirectories that are to be
+ * deleted. As a result, the directories that are generated for the output
+ * should be removed as well.
+ */
+ protected void appendDeletedSubdirectory(IContainer container) {
+ // No point in adding a folder if the parent is already there
+ IContainer parent = container.getParent();
+ if (!getDeletedDirList().contains(container) && !getDeletedDirList().contains(parent)) {
+ getDeletedDirList().add(container);
+ }
+ }
+
+ /**
+ * If a file is removed from a source folder (either because of a delete
+ * or move action on the part of the user), the makefilegenerator has to
+ * remove the dependency makefile along with the old build goal
+ */
+ protected void appendDeletedFile(IResource resource) {
+ // Cache this for now
+ getDeletedFileList().add(resource);
+ }
+
+ /**
+ * Adds the container of the argument to a list of subdirectories that are part
+ * of an incremental rebuild of the project. The makefile fragments for these
+ * directories will be regenerated as a result of the build.
+ */
+ protected void appendModifiedSubdirectory(IResource resource) {
+ IContainer container = resource.getParent();
+
+ if (!getModifiedList().contains(container)) {
+ getModifiedList().add(container);
+ }
+ }
+
+ /*************************************************************************
+ * O T H E R M E T H O D S
+ ************************************************************************/
+
+ protected void cancel(String message) {
+ if (monitor != null && !monitor.isCanceled()) {
+ throw new OperationCanceledException(message);
+ }
+ }
+
+ /**
+ * Check whether the build has been cancelled. Cancellation requests
+ * propagated to the caller by throwing <code>OperationCanceledException</code>.
+ *
+ * @see org.eclipse.core.runtime.OperationCanceledException#OperationCanceledException()
+ */
+ protected void checkCancel() {
+ if (monitor != null && monitor.isCanceled()) {
+ throw new OperationCanceledException();
+ }
+ }
+
+ /**
+ * Return or create the folder needed for the build output. If we are
+ * creating the folder, set the derived bit to true so the CM system
+ * ignores the contents. If the resource exists, respect the existing
+ * derived setting.
+ */
+ private IPath createDirectory(String dirName) throws CoreException {
+ // Create or get the handle for the build directory
+ IFolder folder = project.getFolder(dirName);
+ if (!folder.exists()) {
+ // Make sure that parent folders exist
+ IPath parentPath = (new Path(dirName)).removeLastSegments(1);
+ // Assume that the parent exists if the path is empty
+ if (!parentPath.isEmpty()) {
+ IFolder parent = project.getFolder(parentPath);
+ if (!parent.exists()) {
+ createDirectory(parentPath.toString());
+ }
+ }
+
+ // Now make the requested folder
+ try {
+ folder.create(true, true, null);
+ } catch (CoreException e) {
+ if (e.getStatus().getCode() == IResourceStatus.PATH_OCCUPIED)
+ folder.refreshLocal(IResource.DEPTH_ZERO, null);
+ else
+ throw e;
+ }
+
+ // Make sure the folder is marked as derived so it is not added to CM
+ if (!folder.isDerived()) {
+ folder.setDerived(true, null);
+ }
+ }
+
+ return folder.getFullPath();
+ }
+
+ /**
+ * Return or create the makefile needed for the build. If we are creating
+ * the resource, set the derived bit to true so the CM system ignores
+ * the contents. If the resource exists, respect the existing derived
+ * setting.
+ */
+ private IFile createFile(IPath makefilePath) throws CoreException {
+ // Create or get the handle for the makefile
+ IWorkspaceRoot root = CCorePlugin.getWorkspace().getRoot();
+ IFile newFile = root.getFileForLocation(makefilePath);
+ if (newFile == null) {
+ newFile = root.getFile(makefilePath);
+ }
+ // Create the file if it does not exist
+ ByteArrayInputStream contents = new ByteArrayInputStream(new byte[0]);
+ try {
+ newFile.create(contents, false, new SubProgressMonitor(monitor, 1));
+ // Make sure the new file is marked as derived
+ if (!newFile.isDerived()) {
+ newFile.setDerived(true, null);
+ }
+
+ } catch (CoreException e) {
+ // If the file already existed locally, just refresh to get contents
+ if (e.getStatus().getCode() == IResourceStatus.PATH_OCCUPIED)
+ newFile.refreshLocal(IResource.DEPTH_ZERO, null);
+ else
+ throw e;
+ }
+
+ return newFile;
+ }
+
+ private void deleteBuildTarget(IResource deletedFile) {
+ // Get the project relative path of the file
+ String fileName = getFileName(deletedFile);
+ String srcExtension = deletedFile.getFileExtension();
+ IPath folderPath = inFullPathFromOutFullPath(deletedFile.getFullPath().removeLastSegments(1));
+ if (folderPath != null) {
+ folderPath = folderPath.removeFirstSegments(1);
+ } else {
+ folderPath = new Path(""); //$NON-NLS-1$
+ }
+ IResourceInfo rcInfo = config.getResourceInfo(folderPath, false);
+ if (rcInfo instanceof IFileInfo) {
+ rcInfo = config.getResourceInfo(folderPath.removeLastSegments(1), false);
+ }
+ String targetExtension = ((IFolderInfo) rcInfo).getOutputExtension(srcExtension);
+ if (!targetExtension.isEmpty())
+ fileName += DOT + targetExtension;
+ IPath projectRelativePath = deletedFile.getProjectRelativePath().removeLastSegments(1);
+ IPath targetFilePath = getBuildWorkingDir().append(projectRelativePath).append(fileName);
+ IResource depFile = project.findMember(targetFilePath);
+ if (depFile != null && depFile.exists()) {
+ try {
+ depFile.delete(true, new SubProgressMonitor(monitor, 1));
+ } catch (CoreException e) {
+ // This had better be allowed during a build
+
+ }
+ }
+ }
+
+ private IPath inFullPathFromOutFullPath(IPath path) {
+ IPath inPath = null;
+ if (topBuildDir.isPrefixOf(path)) {
+ inPath = path.removeFirstSegments(topBuildDir.segmentCount());
+ inPath = project.getFullPath().append(path);
+ }
+ return inPath;
+ }
+
+ private void deleteDepFile(IResource deletedFile) {
+ // Calculate the top build directory relative paths of the dependency files
+ IPath[] depFilePaths = null;
+ ITool tool = null;
+ IManagedDependencyGeneratorType depType = null;
+ String sourceExtension = deletedFile.getFileExtension();
+ IPath folderPath = inFullPathFromOutFullPath(deletedFile.getFullPath().removeLastSegments(1));
+ if (folderPath != null) {
+ folderPath = folderPath.removeFirstSegments(1);
+ } else {
+ folderPath = new Path(""); //$NON-NLS-1$
+ }
+ ToolInfoHolder h = getToolInfo(folderPath);
+ ITool[] tools = h.buildTools;
+ for (int index = 0; index < tools.length; ++index) {
+ if (tools[index].buildsFileType(sourceExtension)) {
+ tool = tools[index];
+ depType = tool.getDependencyGeneratorForExtension(sourceExtension);
+ break;
+ }
+ }
+ if (depType != null) {
+ int calcType = depType.getCalculatorType();
+ if (calcType == IManagedDependencyGeneratorType.TYPE_COMMAND) {
+ depFilePaths = new IPath[1];
+ IPath absolutePath = deletedFile.getLocation();
+ depFilePaths[0] = ManagedBuildManager.calculateRelativePath(getTopBuildDir(), absolutePath);
+ depFilePaths[0] = depFilePaths[0].removeFileExtension().addFileExtension(DEP_EXT);
+ } else if (calcType == IManagedDependencyGeneratorType.TYPE_BUILD_COMMANDS
+ || calcType == IManagedDependencyGeneratorType.TYPE_PREBUILD_COMMANDS) {
+ IManagedDependencyGenerator2 depGen = (IManagedDependencyGenerator2) depType;
+ IManagedDependencyInfo depInfo = depGen.getDependencySourceInfo(deletedFile.getProjectRelativePath(),
+ deletedFile, config, tool, getBuildWorkingDir());
+ if (depInfo != null) {
+ if (calcType == IManagedDependencyGeneratorType.TYPE_BUILD_COMMANDS) {
+ IManagedDependencyCommands depCommands = (IManagedDependencyCommands) depInfo;
+ depFilePaths = depCommands.getDependencyFiles();
+ } else if (calcType == IManagedDependencyGeneratorType.TYPE_PREBUILD_COMMANDS) {
+ IManagedDependencyPreBuild depPreBuild = (IManagedDependencyPreBuild) depInfo;
+ depFilePaths = depPreBuild.getDependencyFiles();
+ }
+ }
+ }
+ }
+
+ // Delete the files if they exist
+ if (depFilePaths != null) {
+ for (IPath dfp : depFilePaths) {
+ IPath depFilePath = getBuildWorkingDir().append(dfp);
+ IResource depFile = project.findMember(depFilePath);
+ if (depFile != null && depFile.exists()) {
+ try {
+ depFile.delete(true, new SubProgressMonitor(monitor, 1));
+ } catch (CoreException e) {
+ // This had better be allowed during a build
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Returns the current build configuration.
+ *
+ * @return String
+ * @since 8.0
+ */
+ protected IConfiguration getConfig() {
+ return config;
+ }
+
+ /**
+ * Returns the build target extension.
+ *
+ * @return String
+ * @since 8.0
+ */
+ protected String getBuildTargetExt() {
+ return buildTargetExt;
+ }
+
+ /**
+ * Returns the build target name.
+ *
+ * @return String
+ * @since 8.0
+ */
+ protected String getBuildTargetName() {
+ return buildTargetName;
+ }
+
+ /**
+ * @return Returns the deletedDirList.
+ */
+ private Vector<IResource> getDeletedDirList() {
+ if (deletedDirList == null) {
+ deletedDirList = new Vector<>();
+ }
+ return deletedDirList;
+ }
+
+ private Vector<IResource> getDeletedFileList() {
+ if (deletedFileList == null) {
+ deletedFileList = new Vector<>();
+ }
+ return deletedFileList;
+ }
+
+ private List<IPath> getDependencyMakefiles(ToolInfoHolder h) {
+ if (h.dependencyMakefiles == null) {
+ h.dependencyMakefiles = new ArrayList<>();
+ }
+ return h.dependencyMakefiles;
+ }
+
+ /**
+ * Strips off the file extension from the argument and returns
+ * the name component in a <code>String</code>
+ */
+ private String getFileName(IResource file) {
+ String answer = ""; //$NON-NLS-1$
+ String lastSegment = file.getName();
+ int extensionSeparator = lastSegment.lastIndexOf(DOT);
+ if (extensionSeparator != -1) {
+ answer = lastSegment.substring(0, extensionSeparator);
+ }
+ return answer;
+ }
+
+ /**
+ * Answers a Vector containing a list of directories that are invalid for the
+ * build for some reason. At the moment, the only reason a directory would
+ * not be considered for the build is if it contains a space in the relative
+ * path from the project root.
+ *
+ * @return a a list of directories that are invalid for the build
+ */
+ private Vector<IResource> getInvalidDirList() {
+ if (invalidDirList == null) {
+ invalidDirList = new Vector<>();
+ }
+ return invalidDirList;
+ }
+
+ /**
+ * @return Collection of Containers which contain modified source files
+ */
+ private Collection<IContainer> getModifiedList() {
+ if (modifiedList == null)
+ modifiedList = new LinkedHashSet<>();
+ return modifiedList;
+ }
+
+ /**
+ * @return Collection of subdirectories (IContainers) contributing source code to the build
+ */
+ private Collection<IContainer> getSubdirList() {
+ if (subdirList == null)
+ subdirList = new LinkedHashSet<>();
+ return subdirList;
+ }
+
+ private void removeGeneratedDirectory(IContainer subDir) {
+ try {
+ // The source directory isn't empty
+ if (subDir.exists() && subDir.members().length > 0)
+ return;
+ } catch (CoreException e) {
+ // The resource doesn't exist so we should delete the output folder
+ }
+
+ // Figure out what the generated directory name is and delete it
+ IPath moduleRelativePath = subDir.getProjectRelativePath();
+ IPath buildRoot = getBuildWorkingDir();
+ if (buildRoot == null) {
+ return;
+ }
+ IPath moduleOutputPath = buildRoot.append(moduleRelativePath);
+ IFolder folder = project.getFolder(moduleOutputPath);
+ if (folder.exists()) {
+ try {
+ folder.delete(true, new SubProgressMonitor(monitor, 1));
+ } catch (CoreException e) {
+ // TODO Log this
+ }
+ }
+ }
+
+ protected void updateMonitor(String msg) {
+ if (monitor != null && !monitor.isCanceled()) {
+ monitor.subTask(msg);
+ monitor.worked(1);
+ }
+ }
+
+ /**
+ * Return the configuration's top build directory as an absolute path
+ */
+ public IPath getTopBuildDir() {
+ return getPathForResource(project).append(getBuildWorkingDir());
+ }
+
+ /**
+ * Process a String denoting a filepath in a way compatible for GNU Make rules, handling
+ * windows drive letters and whitespace appropriately.
+ * <p><p>
+ * The context these paths appear in is on the right hand side of a rule header. i.e.
+ * <p><p>
+ * target : dep1 dep2 dep3
+ * <p>
+ * @param path the String denoting the path to process
+ * @throws NullPointerException is path is null
+ * @return a suitable Make rule compatible path
+ */
+ /* see https://bugs.eclipse.org/bugs/show_bug.cgi?id=129782 */
+ public String ensurePathIsGNUMakeTargetRuleCompatibleSyntax(String path) {
+ boolean isQuotedOption = false;
+ if (path.startsWith("-")) { //$NON-NLS-1$
+ isQuotedOption = checkIfQuotedOption(path);
+ }
+ if (!isQuotedOption)
+ return escapeWhitespaces(ensureUnquoted(path));
+ return path;
+ }
+
+ private boolean checkIfQuotedOption(String path) {
+ Matcher m1 = doubleQuotedOption.matcher(path);
+ if (m1.matches())
+ return true;
+ Matcher m2 = singleQuotedOption.matcher(path);
+ if (m2.matches())
+ return true;
+ return false;
+ }
+
+ /**
+ * Strips outermost quotes of Strings of the form "a" and 'a' or returns the original
+ * string if the input is not of this form.
+ *
+ * @throws NullPointerException if path is null
+ * @return a String without the outermost quotes (if the input has them)
+ */
+ public static String ensureUnquoted(String path) {
+ boolean doubleQuoted = path.startsWith("\"") && path.endsWith("\""); //$NON-NLS-1$ //$NON-NLS-2$
+ boolean singleQuoted = path.startsWith("'") && path.endsWith("'"); //$NON-NLS-1$ //$NON-NLS-2$
+ return doubleQuoted || singleQuoted ? path.substring(1, path.length() - 1) : path;
+ }
+
+ @Override
+ public void initialize(int buildKind, IConfiguration cfg, IBuilder builder, IProgressMonitor monitor) {
+ // Save the project so we can get path and member information
+ this.project = cfg.getOwner().getProject();
+ if (builder == null) {
+ builder = cfg.getEditableBuilder();
+ }
+ try {
+ projectResources = project.members();
+ } catch (CoreException e) {
+ projectResources = null;
+ }
+ // Save the monitor reference for reporting back to the user
+ this.monitor = monitor;
+ // Get the build info for the project
+ // this.info = info;
+ // Get the name of the build target
+ buildTargetName = cfg.getArtifactName();
+ // Get its extension
+ buildTargetExt = cfg.getArtifactExtension();
+
+ try {
+ //try to resolve the build macros in the target extension
+ buildTargetExt = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(buildTargetExt,
+ "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_CONFIGURATION, builder);
+ } catch (BuildMacroException e) {
+ }
+
+ try {
+ //try to resolve the build macros in the target name
+ String resolved = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(buildTargetName,
+ "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_CONFIGURATION, builder);
+ if (resolved != null) {
+ resolved = resolved.trim();
+ if (resolved.length() > 0)
+ buildTargetName = resolved;
+ }
+ } catch (BuildMacroException e) {
+ }
+
+ if (buildTargetExt == null) {
+ buildTargetExt = ""; //$NON-NLS-1$
+ }
+ // Cache the build tools
+ config = cfg;
+ this.builder = builder;
+
+ initToolInfos();
+ //set the top build dir path
+ initializeTopBuildDir(cfg.getName());
+
+ srcEntries = config.getSourceEntries();
+ if (srcEntries.length == 0) {
+ srcEntries = new ICSourceEntry[] {
+ new CSourceEntry(Path.EMPTY, null, ICSettingEntry.RESOLVED | ICSettingEntry.VALUE_WORKSPACE_PATH) };
+ } else {
+ ICConfigurationDescription cfgDes = ManagedBuildManager.getDescriptionForConfiguration(config);
+ srcEntries = CDataUtil.resolveEntries(srcEntries, cfgDes);
+ }
+ }
+
+ private void initToolInfos() {
+ toolInfos = PathSettingsContainer.createRootContainer();
+
+ IResourceInfo rcInfos[] = config.getResourceInfos();
+ for (IResourceInfo rcInfo : rcInfos) {
+ if (rcInfo.isExcluded() /*&& !((ResourceInfo)rcInfo).isRoot()*/)
+ continue;
+
+ ToolInfoHolder h = getToolInfo(rcInfo.getPath(), true);
+ if (rcInfo instanceof IFolderInfo) {
+ IFolderInfo fo = (IFolderInfo) rcInfo;
+ h.buildTools = fo.getFilteredTools();
+ h.buildToolsUsed = new boolean[h.buildTools.length];
+ h.gnuToolInfos = new ManagedBuildGnuToolInfo[h.buildTools.length];
+ } else {
+ IFileInfo fi = (IFileInfo) rcInfo;
+ h.buildTools = fi.getToolsToInvoke();
+ h.buildToolsUsed = new boolean[h.buildTools.length];
+ h.gnuToolInfos = new ManagedBuildGnuToolInfo[h.buildTools.length];
+ }
+ }
+ }
+
+ private ToolInfoHolder getToolInfo(IPath path) {
+ return getToolInfo(path, false);
+ }
+
+ private ToolInfoHolder getFolderToolInfo(IPath path) {
+ IResourceInfo rcInfo = config.getResourceInfo(path, false);
+ while (rcInfo instanceof IFileInfo) {
+ path = path.removeLastSegments(1);
+ rcInfo = config.getResourceInfo(path, false);
+ }
+ return getToolInfo(path, false);
+ }
+
+ private ToolInfoHolder getToolInfo(IPath path, boolean create) {
+ PathSettingsContainer child = toolInfos.getChildContainer(path, create, create);
+ ToolInfoHolder h = null;
+ if (child != null) {
+ h = (ToolInfoHolder) child.getValue();
+ if (h == null && create) {
+ h = new ToolInfoHolder();
+ child.setValue(h);
+ }
+ }
+ return h;
+ }
+
+ private void ensureTopBuildDir() throws CoreException {
+ IPath buildWorkingDir = getBuildWorkingDir();
+ if (buildWorkingDir != null) {
+ createDirectory(buildWorkingDir.toString());
+ }
+ }
+
+ private void initializeTopBuildDir(String configName) {
+ topBuildDir = project.getFolder(computeTopBuildDir(configName)).getFullPath();
+ }
+
+ /**
+ * Can be overwritten by a subclass to specify the top build directory to be
+ * used. Default implementation simply returns configuration name.
+ * <p>
+ * <strong>Note</strong>: be careful by overriding this method - all places in the custom code and related
+ * scripts using or referencing top build directory must also be changed to use same logic.
+ *
+ * @param configName name of the configuration
+ * @return project relative path for top build directory
+ * @since 8.7
+ */
+ protected IPath computeTopBuildDir(String configName) {
+ return new Path(configName);
+ }
+
+ /**
+ * @return As many ".." as required to get from getBuildWorkingDir() to the project root.
+ *
+ * E.g. If getBuildWorkingDir() is "Debug", then the function returns "..". If
+ * getBuildWorkingDir() returns "x86/Debug" then "../.." is returned.
+ *
+ * @since 8.7
+ */
+ public String reachProjectRoot() {
+ IPath buildWorkingDir = getBuildWorkingDir();
+ if (buildWorkingDir == null) {
+ return ROOT;
+ }
+ String root = ROOT;
+ int segCnt = buildWorkingDir.segmentCount();
+ for (int i = 1; i < segCnt; i++) {
+ root += SEPARATOR + ROOT;
+ }
+ return root;
+ }
+
+ private String toCleanTarget(IPath path) {
+ final BitSet allowedCodePoints = new BitSet(128);
+ allowedCodePoints.set("A".codePointAt(0), "Z".codePointAt(0) + 1); //$NON-NLS-1$ //$NON-NLS-2$
+ allowedCodePoints.set("a".codePointAt(0), "z".codePointAt(0) + 1); //$NON-NLS-1$ //$NON-NLS-2$
+ allowedCodePoints.set("0".codePointAt(0), "9".codePointAt(0) + 1); //$NON-NLS-1$ //$NON-NLS-2$
+ allowedCodePoints.set("_".codePointAt(0)); //$NON-NLS-1$
+
+ StringBuilder sb = new StringBuilder("clean-"); //$NON-NLS-1$
+ (path.isEmpty() ? DOT : path.toString()).codePoints().forEach(c -> {
+ if (allowedCodePoints.get(c)) {
+ sb.append(Character.toChars(c));
+ } else {
+ sb.append("-"); //$NON-NLS-1$
+ sb.append(Long.toHexString(c));
+ sb.append("-"); //$NON-NLS-1$
+ }
+ });
+
+ return sb.toString();
+ }
+}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu2/ManagedBuildGnuToolInfo.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu2/ManagedBuildGnuToolInfo.java
new file mode 100644
index 00000000000..8e65a0b908e
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu2/ManagedBuildGnuToolInfo.java
@@ -0,0 +1,991 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2016 Intel Corporation and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Intel Corporation - Initial API and implementation
+ * IBM Corporation
+ *******************************************************************************/
+package org.eclipse.cdt.managedbuilder.makegen.gnu2;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.Vector;
+
+import org.eclipse.cdt.managedbuilder.core.BuildException;
+import org.eclipse.cdt.managedbuilder.core.IAdditionalInput;
+import org.eclipse.cdt.managedbuilder.core.IConfiguration;
+import org.eclipse.cdt.managedbuilder.core.IInputType;
+import org.eclipse.cdt.managedbuilder.core.IManagedOutputNameProvider;
+import org.eclipse.cdt.managedbuilder.core.IOption;
+import org.eclipse.cdt.managedbuilder.core.IOutputType;
+import org.eclipse.cdt.managedbuilder.core.ITool;
+import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
+import org.eclipse.cdt.managedbuilder.internal.core.ManagedMakeMessages;
+import org.eclipse.cdt.managedbuilder.internal.core.Tool;
+import org.eclipse.cdt.managedbuilder.internal.macros.OptionContextData;
+import org.eclipse.cdt.managedbuilder.macros.BuildMacroException;
+import org.eclipse.cdt.managedbuilder.macros.IBuildMacroProvider;
+import org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator;
+import org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyCalculator;
+import org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyGenerator;
+import org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyGenerator2;
+import org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyGeneratorType;
+import org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyInfo;
+import org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator.ToolInfoHolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+
+/**
+ * This class represents information about a Tool's inputs
+ * and outputs while a Gnu makefile is being generated.
+ *
+ * @noextend This class is not intended to be subclassed by clients.
+ */
+public class ManagedBuildGnuToolInfo {
+ public final String DOT = "."; //$NON-NLS-1$
+
+ /*
+ * Members
+ */
+ private IProject project;
+ private Tool tool;
+ private boolean bIsTargetTool;
+ private String targetName;
+ private String targetExt;
+ private boolean inputsCalculated = false;
+ private boolean outputsCalculated = false;
+ private boolean outputVariablesCalculated = false;
+ private boolean dependenciesCalculated = false;
+ private Vector<String> commandInputs = new Vector<>();
+ private Vector<String> enumeratedInputs = new Vector<>();
+ private Vector<String> commandOutputs = new Vector<>();
+ private Vector<String> enumeratedPrimaryOutputs = new Vector<>();
+ private Vector<String> enumeratedSecondaryOutputs = new Vector<>();
+ private Vector<String> outputVariables = new Vector<>();
+ private Vector<String> commandDependencies = new Vector<>();
+ private Vector<String> additionalTargets = new Vector<>();
+ //private Vector enumeratedDependencies = new Vector();
+ // Map of macro names (String) to values (List)
+
+ /*
+ * Constructor
+ */
+ public ManagedBuildGnuToolInfo(IProject project, ITool tool, boolean targetTool, String name, String ext) {
+ this.project = project;
+ this.tool = (Tool) tool;
+ bIsTargetTool = targetTool;
+ if (bIsTargetTool) {
+ targetName = name;
+ targetExt = ext;
+ }
+ }
+
+ public boolean areInputsCalculated() {
+ return inputsCalculated;
+ }
+
+ // Command inputs are top build directory relative
+ public Vector<String> getCommandInputs() {
+ return commandInputs;
+ }
+
+ // Enumerated inputs are project relative
+ public Vector<String> getEnumeratedInputs() {
+ return enumeratedInputs;
+ }
+
+ public boolean areOutputsCalculated() {
+ return outputsCalculated;
+ }
+
+ // Command outputs are top build directory relative
+ public Vector<String> getCommandOutputs() {
+ return commandOutputs;
+ }
+
+ public Vector<String> getEnumeratedPrimaryOutputs() {
+ return enumeratedPrimaryOutputs;
+ }
+
+ public Vector<String> getEnumeratedSecondaryOutputs() {
+ return enumeratedSecondaryOutputs;
+ }
+
+ public Vector<String> getOutputVariables() {
+ return outputVariables;
+ }
+
+ public boolean areOutputVariablesCalculated() {
+ return outputVariablesCalculated;
+ }
+
+ public boolean areDependenciesCalculated() {
+ return dependenciesCalculated;
+ }
+
+ // Command dependencies are top build directory relative
+ public Vector<String> getCommandDependencies() {
+ return commandDependencies;
+ }
+
+ // Additional targets are top build directory relative
+ public Vector<String> getAdditionalTargets() {
+ return additionalTargets;
+ }
+
+ //public Vector getEnumeratedDependencies() {
+ // return enumeratedDependencies;
+ //}
+
+ public boolean isTargetTool() {
+ return bIsTargetTool;
+ }
+
+ /*
+ * Other Methods
+ */
+
+ public boolean calculateInputs(GnuMakefileGenerator makeGen, IConfiguration config, IResource[] projResources,
+ ToolInfoHolder h, boolean lastChance) {
+ // Get the inputs for this tool invocation
+ // Note that command inputs that are also dependencies are also added to the command dependencies list
+
+ /* The priorities for determining the names of the inputs of a tool are:
+ * 1. If an option is specified, use the value of the option.
+ * 2. If a build variable is specified, use the files that have been added to the build variable as
+ * the output(s) of other build steps.
+ * 3. Use the file extensions and the resources in the project
+ */
+ boolean done = true;
+ Vector<String> myCommandInputs = new Vector<>(); // Inputs for the tool command line
+ Vector<String> myCommandDependencies = new Vector<>(); // Dependencies for the make rule
+ Vector<String> myEnumeratedInputs = new Vector<>(); // Complete list of individual inputs
+
+ IInputType[] inTypes = tool.getInputTypes();
+ if (inTypes != null && inTypes.length > 0) {
+ for (IInputType type : inTypes) {
+ Vector<String> itCommandInputs = new Vector<>(); // Inputs for the tool command line for this input-type
+ Vector<String> itCommandDependencies = new Vector<>(); // Dependencies for the make rule for this input-type
+ Vector<String> itEnumeratedInputs = new Vector<>(); // Complete list of individual inputs for this input-type
+ String variable = type.getBuildVariable();
+ boolean primaryInput = type.getPrimaryInput();
+ boolean useFileExts = false;
+ IOption option = tool.getOptionBySuperClassId(type.getOptionId());
+ IOption assignToOption = tool.getOptionBySuperClassId(type.getAssignToOptionId());
+
+ // Option?
+ if (option != null) {
+ try {
+ List<String> inputs = new ArrayList<>();
+ int optType = option.getValueType();
+ if (optType == IOption.STRING) {
+ inputs.add(option.getStringValue());
+ } else if (optType == IOption.STRING_LIST || optType == IOption.LIBRARIES
+ || optType == IOption.OBJECTS || optType == IOption.INCLUDE_FILES
+ || optType == IOption.LIBRARY_PATHS || optType == IOption.LIBRARY_FILES
+ || optType == IOption.MACRO_FILES) {
+ @SuppressWarnings("unchecked")
+ List<String> valueList = (List<String>) option.getValue();
+ inputs = valueList;
+ tool.filterValues(optType, inputs);
+ tool.filterValues(optType, inputs);
+ }
+ for (int j = 0; j < inputs.size(); j++) {
+ String inputName = inputs.get(j);
+
+ try {
+ // try to resolve the build macros in the output
+ // names
+
+ String resolved = null;
+
+ // does the input name contain spaces?
+ // TODO: support other special characters
+ if (inputName.indexOf(" ") != -1) //$NON-NLS-1$
+ {
+ // resolve to string
+ resolved = ManagedBuildManager.getBuildMacroProvider().resolveValue(inputName, "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_OPTION, new OptionContextData(option, tool));
+ } else {
+
+ // resolve to makefile variable format
+ resolved = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(
+ inputName, "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_OPTION, new OptionContextData(option, tool));
+ }
+
+ if ((resolved = resolved.trim()).length() > 0)
+ inputName = resolved;
+ } catch (BuildMacroException e) {
+ }
+
+ if (primaryInput) {
+ itCommandDependencies.add(j, inputName);
+ } else {
+ itCommandDependencies.add(inputName);
+ }
+ // NO - itCommandInputs.add(inputName);
+ // NO - itEnumeratedInputs.add(inputName);
+ }
+ } catch (BuildException ex) {
+ }
+
+ } else {
+
+ // Build Variable?
+ if (variable.length() > 0) {
+ String cmdVariable = variable = "$(" + variable + ")"; //$NON-NLS-1$ //$NON-NLS-2$
+ itCommandInputs.add(cmdVariable);
+ if (primaryInput) {
+ itCommandDependencies.add(0, cmdVariable);
+ } else {
+ itCommandDependencies.add(cmdVariable);
+ }
+ // If there is an output variable with the same name, get
+ // the files associated with it.
+ List<String> outMacroList = makeGen.getBuildVariableList(h, variable,
+ GnuMakefileGenerator.PROJECT_RELATIVE, null, true);
+ if (outMacroList != null) {
+ itEnumeratedInputs.addAll(outMacroList);
+ } else {
+ // If "last chance", then calculate using file extensions below
+ if (lastChance) {
+ useFileExts = true;
+ } else {
+ done = false;
+ break;
+ }
+ }
+ }
+
+ // Use file extensions
+ if (variable.length() == 0 || useFileExts) {
+ //if (type.getMultipleOfType()) {
+ // Calculate EnumeratedInputs using the file extensions and the resources in the project
+ // Note: This is only correct for tools with multipleOfType == true, but for other tools
+ // it gives us an input resource for generating default names
+ // Determine the set of source input macros to use
+ HashSet<String> handledInputExtensions = new HashSet<>();
+ String[] exts = type.getSourceExtensions(tool);
+ if (projResources != null) {
+ for (IResource rc : projResources) {
+ if (rc.getType() == IResource.FILE) {
+ String fileExt = rc.getFileExtension();
+
+ // fix for NPE, bugzilla 99483
+ if (fileExt == null) {
+ fileExt = ""; //$NON-NLS-1$
+ }
+
+ for (int k = 0; k < exts.length; k++) {
+ if (fileExt.equals(exts[k])) {
+ if (!useFileExts) {
+ if (!handledInputExtensions.contains(fileExt)) {
+ handledInputExtensions.add(fileExt);
+ String buildMacro = "$(" //$NON-NLS-1$
+ + makeGen.getSourceMacroName(fileExt).toString() + ")"; //$NON-NLS-1$
+ itCommandInputs.add(buildMacro);
+ if (primaryInput) {
+ itCommandDependencies.add(0, buildMacro);
+ } else {
+ itCommandDependencies.add(buildMacro);
+ }
+ }
+ }
+ if (type.getMultipleOfType() || itEnumeratedInputs.size() == 0) {
+ // Add a path that is relative to the project directory
+ itEnumeratedInputs.add(rc.getProjectRelativePath().toString());
+ }
+ break;
+ }
+ }
+ }
+ }
+ }
+ //}
+ }
+ }
+
+ // Get any additional inputs specified in the manifest file or the project file
+ IAdditionalInput[] addlInputs = type.getAdditionalInputs();
+ if (addlInputs != null) {
+ for (int j = 0; j < addlInputs.length; j++) {
+ IAdditionalInput addlInput = addlInputs[j];
+ int kind = addlInput.getKind();
+ if (kind == IAdditionalInput.KIND_ADDITIONAL_INPUT
+ || kind == IAdditionalInput.KIND_ADDITIONAL_INPUT_DEPENDENCY) {
+ String[] paths = addlInput.getPaths();
+ if (paths != null) {
+ for (int k = 0; k < paths.length; k++) {
+ String path = paths[k];
+ itEnumeratedInputs.add(path);
+ // Translate the path from project relative to build directory relative
+ if (!(path.startsWith("$("))) { //$NON-NLS-1$
+ IResource addlResource = project.getFile(path);
+ if (addlResource != null) {
+ IPath addlPath = addlResource.getLocation();
+ if (addlPath != null) {
+ path = ManagedBuildManager
+ .calculateRelativePath(makeGen.getTopBuildDir(), addlPath)
+ .toString();
+ }
+ }
+ }
+ itCommandInputs.add(path);
+ }
+ }
+ }
+ }
+ }
+
+ // If the assignToOption attribute is specified, set the input(s) as the value of that option
+ if (assignToOption != null && option == null) {
+ try {
+ int optType = assignToOption.getValueType();
+ if (optType == IOption.STRING) {
+ String optVal = ""; //$NON-NLS-1$
+ for (int j = 0; j < itCommandInputs.size(); j++) {
+ if (j != 0) {
+ optVal += " "; //$NON-NLS-1$
+ }
+ optVal += itCommandInputs.get(j);
+ }
+ ManagedBuildManager.setOption(config, tool, assignToOption, optVal);
+ } else if (optType == IOption.STRING_LIST || optType == IOption.LIBRARIES
+ || optType == IOption.OBJECTS || optType == IOption.INCLUDE_FILES
+ || optType == IOption.LIBRARY_PATHS || optType == IOption.LIBRARY_FILES
+ || optType == IOption.MACRO_FILES) {
+ //TODO: do we need to do anything with undefs here?
+ // Mote that when using the enumerated inputs, the path(s) must be translated from project relative
+ // to top build directory relative
+ String[] paths = new String[itEnumeratedInputs.size()];
+ for (int j = 0; j < itEnumeratedInputs.size(); j++) {
+ paths[j] = itEnumeratedInputs.get(j);
+ IResource enumResource = project.getFile(paths[j]);
+ if (enumResource != null) {
+ IPath enumPath = enumResource.getLocation();
+ if (enumPath != null) {
+ paths[j] = ManagedBuildManager
+ .calculateRelativePath(makeGen.getTopBuildDir(), enumPath).toString();
+ }
+ }
+ }
+ ManagedBuildManager.setOption(config, tool, assignToOption, paths);
+ } else if (optType == IOption.BOOLEAN) {
+ if (itEnumeratedInputs.size() > 0) {
+ ManagedBuildManager.setOption(config, tool, assignToOption, true);
+ } else {
+ ManagedBuildManager.setOption(config, tool, assignToOption, false);
+ }
+ } else if (optType == IOption.ENUMERATED || optType == IOption.TREE) {
+ if (itCommandInputs.size() > 0) {
+ ManagedBuildManager.setOption(config, tool, assignToOption,
+ itCommandInputs.firstElement());
+ }
+ }
+ itCommandInputs.removeAllElements();
+ //itEnumeratedInputs.removeAllElements();
+ } catch (BuildException ex) {
+ }
+ }
+
+ myCommandInputs.addAll(itCommandInputs);
+ myCommandDependencies.addAll(itCommandDependencies);
+ myEnumeratedInputs.addAll(itEnumeratedInputs);
+ }
+ } else {
+ // For support of pre-CDT 3.0 integrations.
+ if (bIsTargetTool) {
+ // NOTE WELL: This only supports the case of a single "target tool"
+ // with the following characteristics:
+ // 1. The tool consumes exactly all of the object files produced
+ // by other tools in the build and produces a single output
+ // 2. The target name comes from the configuration artifact name
+ // The rule looks like:
+ // <targ_prefix><target>.<extension>: $(OBJS) <refd_project_1 ... refd_project_n>
+ myCommandInputs.add("$(OBJS)"); //$NON-NLS-1$
+ myCommandInputs.add("$(USER_OBJS)"); //$NON-NLS-1$
+ myCommandInputs.add("$(LIBS)"); //$NON-NLS-1$
+ } else {
+ // Rule will be generated by addRuleForSource
+ }
+ }
+
+ if (done) {
+ commandInputs.addAll(myCommandInputs);
+ commandDependencies.addAll(0, myCommandDependencies);
+ enumeratedInputs.addAll(myEnumeratedInputs);
+ inputsCalculated = true;
+ return true;
+ }
+
+ return false;
+ }
+
+ /*
+ * The priorities for determining the names of the outputs of a tool are:
+ * 1. If the tool is the build target and primary output, use artifact name & extension
+ * 2. If an option is specified, use the value of the option
+ * 3. If a nameProvider is specified, call it
+ * 4. If outputNames is specified, use it
+ * 5. Use the name pattern to generate a transformation macro
+ * so that the source names can be transformed into the target names
+ * using the built-in string substitution functions of <code>make</code>.
+ *
+ * NOTE: If an option is not specified and this is not the primary output type, the outputs
+ * from the type are not added to the command line
+ */
+ public boolean calculateOutputs(GnuMakefileGenerator makeGen, IConfiguration config,
+ HashSet<String> handledInputExtensions, boolean lastChance) {
+
+ boolean done = true;
+ Vector<String> myCommandOutputs = new Vector<>();
+ Vector<String> myEnumeratedPrimaryOutputs = new Vector<>();
+ Vector<String> myEnumeratedSecondaryOutputs = new Vector<>();
+ HashMap<String, List<IPath>> myOutputMacros = new HashMap<>();
+ // The next two fields are used together
+ Vector<String> myBuildVars = new Vector<>();
+ Vector<Vector<String>> myBuildVarsValues = new Vector<>();
+
+ // Get the outputs for this tool invocation
+ IOutputType[] outTypes = tool.getOutputTypes();
+ if (outTypes != null && outTypes.length > 0) {
+ for (int i = 0; i < outTypes.length; i++) {
+ Vector<String> typeEnumeratedOutputs = new Vector<>();
+ IOutputType type = outTypes[i];
+ String outputPrefix = type.getOutputPrefix();
+
+ // Resolve any macros in the outputPrefix
+ // Note that we cannot use file macros because if we do a clean
+ // we need to know the actual name of the file to clean, and
+ // cannot use any builder variables such as $@. Hence we use the
+ // next best thing, i.e. configuration context.
+
+ if (config != null) {
+
+ try {
+ outputPrefix = ManagedBuildManager.getBuildMacroProvider().resolveValueToMakefileFormat(
+ outputPrefix, "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_CONFIGURATION, config);
+ }
+
+ catch (BuildMacroException e) {
+ }
+ }
+
+ String variable = type.getBuildVariable();
+ boolean multOfType = type.getMultipleOfType();
+ boolean primaryOutput = (type == tool.getPrimaryOutputType());
+ IOption option = tool.getOptionBySuperClassId(type.getOptionId());
+ IManagedOutputNameProvider nameProvider = type.getNameProvider();
+ String[] outputNames = type.getOutputNames();
+
+ // 1. If the tool is the build target and this is the primary output,
+ // use artifact name & extension
+ if (bIsTargetTool && primaryOutput) {
+ String outputName = outputPrefix + targetName;
+ if (targetExt.length() > 0) {
+ outputName += (DOT + targetExt);
+ }
+ myCommandOutputs.add(outputName);
+ typeEnumeratedOutputs.add(outputName);
+ // But this doesn't use any output macro...
+ } else
+ // 2. If an option is specified, use the value of the option
+ if (option != null) {
+ try {
+ List<String> outputs = new ArrayList<>();
+ int optType = option.getValueType();
+ if (optType == IOption.STRING) {
+ outputs.add(outputPrefix + option.getStringValue());
+ } else if (optType == IOption.STRING_LIST || optType == IOption.LIBRARIES
+ || optType == IOption.OBJECTS || optType == IOption.INCLUDE_FILES
+ || optType == IOption.LIBRARY_PATHS || optType == IOption.LIBRARY_FILES
+ || optType == IOption.MACRO_FILES) {
+ @SuppressWarnings("unchecked")
+ List<String> value = (List<String>) option.getValue();
+ outputs = value;
+ tool.filterValues(optType, outputs);
+ // Add outputPrefix to each if necessary
+ if (outputPrefix.length() > 0) {
+ for (int j = 0; j < outputs.size(); j++) {
+ outputs.set(j, outputPrefix + outputs.get(j));
+ }
+ }
+ }
+ for (int j = 0; j < outputs.size(); j++) {
+ String outputName = outputs.get(j);
+ try {
+ //try to resolve the build macros in the output names
+ String resolved = ManagedBuildManager.getBuildMacroProvider()
+ .resolveValueToMakefileFormat(outputName, "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_OPTION,
+ new OptionContextData(option, tool));
+ if ((resolved = resolved.trim()).length() > 0)
+ outputs.set(j, resolved);
+ } catch (BuildMacroException e) {
+ }
+ }
+
+ // NO - myCommandOutputs.addAll(outputs);
+ typeEnumeratedOutputs.addAll(outputs);
+ if (variable.length() > 0) {
+ List<IPath> outputPaths = new ArrayList<>();
+ for (int j = 0; j < outputs.size(); j++) {
+ outputPaths.add(Path.fromOSString(outputs.get(j)));
+ }
+ if (myOutputMacros.containsKey(variable)) {
+ List<IPath> currList = myOutputMacros.get(variable);
+ currList.addAll(outputPaths);
+ myOutputMacros.put(variable, currList);
+ } else {
+ myOutputMacros.put(variable, outputPaths);
+ }
+ }
+ } catch (BuildException ex) {
+ }
+ } else
+ // 3. If a nameProvider is specified, call it
+ if (nameProvider != null) {
+ // The inputs must have been calculated before we can do this
+ IPath[] outNames = null;
+ if (!inputsCalculated) {
+ done = false;
+ } else {
+ Vector<String> inputs = getEnumeratedInputs();
+ IPath[] inputPaths = new IPath[inputs.size()];
+ for (int j = 0; j < inputPaths.length; j++) {
+ inputPaths[j] = Path.fromOSString(inputs.get(j));
+ }
+ outNames = nameProvider.getOutputNames(tool, inputPaths);
+ if (outNames != null) {
+ for (int j = 0; j < outNames.length; j++) {
+ String outputName = outNames[j].toString();
+ try {
+ //try to resolve the build macros in the output names
+ String resolved = ManagedBuildManager.getBuildMacroProvider()
+ .resolveValueToMakefileFormat(outputName, "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_CONFIGURATION, config);
+ if ((resolved = resolved.trim()).length() > 0) {
+ outputName = resolved;
+ outNames[j] = Path.fromOSString(resolved);
+ }
+ } catch (BuildMacroException e) {
+ }
+
+ if (primaryOutput) {
+ myCommandOutputs.add(outputName);
+ }
+ typeEnumeratedOutputs.add(outputName);
+ }
+ }
+ }
+ if (variable.length() > 0 && outNames != null) {
+ if (myOutputMacros.containsKey(variable)) {
+ List<IPath> currList = myOutputMacros.get(variable);
+ currList.addAll(Arrays.asList(outNames));
+ myOutputMacros.put(variable, currList);
+ } else {
+ myOutputMacros.put(variable, new ArrayList<>(Arrays.asList(outNames)));
+ }
+ }
+ } else
+ // 4. If outputNames is specified, use it
+ if (outputNames != null) {
+ if (outputNames.length > 0) {
+ for (int j = 0; j < outputNames.length; j++) {
+ String outputName = outputNames[j];
+ try {
+ //try to resolve the build macros in the output names
+ String resolved = ManagedBuildManager.getBuildMacroProvider()
+ .resolveValueToMakefileFormat(outputName, "", //$NON-NLS-1$
+ " ", //$NON-NLS-1$
+ IBuildMacroProvider.CONTEXT_OPTION,
+ new OptionContextData(option, tool));
+ if ((resolved = resolved.trim()).length() > 0)
+ outputNames[j] = resolved;
+ } catch (BuildMacroException e) {
+ }
+ }
+ List<String> namesList = Arrays.asList(outputNames);
+ if (primaryOutput) {
+ myCommandOutputs.addAll(namesList);
+ }
+ typeEnumeratedOutputs.addAll(namesList);
+ if (variable.length() > 0) {
+ List<IPath> outputPaths = new ArrayList<>();
+ for (int j = 0; j < namesList.size(); j++) {
+ outputPaths.add(Path.fromOSString(namesList.get(j)));
+ }
+ if (myOutputMacros.containsKey(variable)) {
+ List<IPath> currList = myOutputMacros.get(variable);
+ currList.addAll(outputPaths);
+ myOutputMacros.put(variable, currList);
+ } else {
+ myOutputMacros.put(variable, outputPaths);
+ }
+ }
+ }
+ } else {
+ // 5. Use the name pattern to generate a transformation macro
+ // so that the source names can be transformed into the target names
+ // using the built-in string substitution functions of <code>make</code>.
+ if (multOfType) {
+ // This case is not handled - a nameProvider or outputNames must be specified
+ List<String> errList = new ArrayList<>();
+ errList.add(ManagedMakeMessages.getResourceString("MakefileGenerator.error.no.nameprovider")); //$NON-NLS-1$
+ myCommandOutputs.addAll(errList);
+ } else {
+ String namePattern = type.getNamePattern();
+ if (namePattern == null || namePattern.length() == 0) {
+ namePattern = outputPrefix + IManagedBuilderMakefileGenerator.WILDCARD;
+ String outExt = (type.getOutputExtensions(tool))[0];
+ if (outExt != null && outExt.length() > 0) {
+ namePattern += DOT + outExt;
+ }
+ } else if (outputPrefix.length() > 0) {
+ namePattern = outputPrefix + namePattern;
+ }
+
+ // Calculate the output name
+ // The inputs must have been calculated before we can do this
+ if (!inputsCalculated) {
+ done = false;
+ } else {
+ Vector<String> inputs = getEnumeratedInputs();
+ String fileName;
+ if (inputs.size() > 0) {
+ // Get the input file name
+ fileName = (Path.fromOSString(inputs.get(0))).removeFileExtension().lastSegment();
+ // Check if this is a build macro. If so, use the raw macro name.
+ if (fileName.startsWith("$(") && fileName.endsWith(")")) { //$NON-NLS-1$ //$NON-NLS-2$
+ fileName = fileName.substring(2, fileName.length() - 1);
+ }
+ } else {
+ fileName = "default"; //$NON-NLS-1$
+ }
+ // Replace the % with the file name
+ if (primaryOutput) {
+ myCommandOutputs.add(namePattern.replaceAll("%", fileName)); //$NON-NLS-1$
+ }
+ typeEnumeratedOutputs.add(namePattern.replaceAll("%", fileName)); //$NON-NLS-1$
+ if (variable.length() > 0) {
+ List<IPath> outputs = new ArrayList<>();
+ outputs.add(Path.fromOSString(fileName));
+ if (myOutputMacros.containsKey(variable)) {
+ List<IPath> currList = myOutputMacros.get(variable);
+ currList.addAll(outputs);
+ myOutputMacros.put(variable, currList);
+ } else {
+ myOutputMacros.put(variable, outputs);
+ }
+ }
+ }
+ }
+ }
+ if (variable.length() > 0) {
+ myBuildVars.add(variable);
+ myBuildVarsValues.add(typeEnumeratedOutputs);
+ }
+ if (primaryOutput) {
+ myEnumeratedPrimaryOutputs.addAll(typeEnumeratedOutputs);
+ } else {
+ myEnumeratedSecondaryOutputs.addAll(typeEnumeratedOutputs);
+ }
+ }
+ } else {
+ if (bIsTargetTool) {
+ String outputPrefix = tool.getOutputPrefix();
+ String outputName = outputPrefix + targetName;
+ if (targetExt.length() > 0) {
+ outputName += (DOT + targetExt);
+ }
+ myCommandOutputs.add(outputName);
+ myEnumeratedPrimaryOutputs.add(outputName);
+ } else {
+ // For support of pre-CDT 3.0 integrations.
+ // NOTE WELL: This only supports the case of a single "target tool"
+ // that consumes exactly all of the object files, $OBJS, produced
+ // by other tools in the build and produces a single output
+ }
+ }
+
+ // Add the output macros of this tool to the buildOutVars map
+ Set<Entry<String, List<IPath>>> entrySet = myOutputMacros.entrySet();
+ for (Entry<String, List<IPath>> entry : entrySet) {
+ String macroName = entry.getKey();
+ List<IPath> newMacroValue = entry.getValue();
+ Map<String, List<IPath>> map = makeGen.getBuildOutputVars();
+ if (map.containsKey(macroName)) {
+ List<IPath> macroValue = map.get(macroName);
+ macroValue.addAll(newMacroValue);
+ map.put(macroName, macroValue);
+ } else {
+ map.put(macroName, newMacroValue);
+ }
+ }
+ outputVariablesCalculated = true;
+
+ if (done) {
+ commandOutputs.addAll(myCommandOutputs);
+ enumeratedPrimaryOutputs.addAll(myEnumeratedPrimaryOutputs);
+ enumeratedSecondaryOutputs.addAll(myEnumeratedSecondaryOutputs);
+ outputVariables.addAll(myOutputMacros.keySet());
+ outputsCalculated = true;
+ Map<String, Set<String>> map = makeGen.getTopBuildOutputVars();
+ for (int i = 0; i < myBuildVars.size(); i++) {
+ makeGen.addMacroAdditionFiles(map, myBuildVars.get(i), myBuildVarsValues.get(i));
+ }
+ return true;
+ }
+
+ return false;
+ }
+
+ private boolean callDependencyCalculator(GnuMakefileGenerator makeGen, IConfiguration config,
+ HashSet<String> handledInputExtensions, IManagedDependencyGeneratorType depGen, String[] extensionsList,
+ Vector<String> myCommandDependencies, HashMap<String, List<IPath>> myOutputMacros,
+ Vector<String> myAdditionalTargets, ToolInfoHolder h, boolean done) {
+
+ int calcType = depGen.getCalculatorType();
+ switch (calcType) {
+ case IManagedDependencyGeneratorType.TYPE_COMMAND:
+ case IManagedDependencyGeneratorType.TYPE_BUILD_COMMANDS:
+ // iterate over all extensions that the tool knows how to handle
+ for (int i = 0; i < extensionsList.length; i++) {
+ String extensionName = extensionsList[i];
+
+ // Generated files should not appear in the list.
+ if (!makeGen.getOutputExtensions(h).contains(extensionName)
+ && !handledInputExtensions.contains(extensionName)) {
+ handledInputExtensions.add(extensionName);
+ String depExt = IManagedBuilderMakefileGenerator.DEP_EXT;
+ if (calcType == IManagedDependencyGeneratorType.TYPE_BUILD_COMMANDS) {
+ IManagedDependencyGenerator2 depGen2 = (IManagedDependencyGenerator2) depGen;
+ String xt = depGen2.getDependencyFileExtension(config, tool);
+ if (xt != null && xt.length() > 0)
+ depExt = xt;
+ }
+ String depsMacroEntry = calculateSourceMacro(makeGen, extensionName, depExt,
+ IManagedBuilderMakefileGenerator.WILDCARD);
+
+ List<IPath> depsList = new ArrayList<>();
+ depsList.add(Path.fromOSString(depsMacroEntry));
+ String depsMacro = makeGen.getDepMacroName(extensionName).toString();
+ if (myOutputMacros.containsKey(depsMacro)) {
+ List<IPath> currList = myOutputMacros.get(depsMacro);
+ currList.addAll(depsList);
+ myOutputMacros.put(depsMacro, currList);
+ } else {
+ myOutputMacros.put(depsMacro, depsList);
+ }
+ }
+ }
+ break;
+
+ case IManagedDependencyGeneratorType.TYPE_INDEXER:
+ case IManagedDependencyGeneratorType.TYPE_EXTERNAL:
+ case IManagedDependencyGeneratorType.TYPE_CUSTOM:
+ // The inputs must have been calculated before we can do this
+ if (!inputsCalculated) {
+ done = false;
+ } else {
+ Vector<String> inputs = getEnumeratedInputs();
+
+ if (calcType == IManagedDependencyGeneratorType.TYPE_CUSTOM) {
+ IManagedDependencyGenerator2 depGen2 = (IManagedDependencyGenerator2) depGen;
+ IManagedDependencyInfo depInfo = null;
+ for (int i = 0; i < inputs.size(); i++) {
+
+ depInfo = depGen2.getDependencySourceInfo(Path.fromOSString(inputs.get(i)), config, tool,
+ makeGen.getBuildWorkingDir());
+
+ if (depInfo instanceof IManagedDependencyCalculator) {
+ IManagedDependencyCalculator depCalc = (IManagedDependencyCalculator) depInfo;
+ IPath[] depPaths = depCalc.getDependencies();
+ if (depPaths != null) {
+ for (int j = 0; j < depPaths.length; j++) {
+ if (!depPaths[j].isAbsolute()) {
+ // Convert from project relative to build directory relative
+ IPath absolutePath = project.getLocation().append(depPaths[j]);
+ depPaths[j] = ManagedBuildManager
+ .calculateRelativePath(makeGen.getTopBuildDir(), absolutePath);
+ }
+ myCommandDependencies.add(depPaths[j].toString());
+ }
+ }
+ IPath[] targetPaths = depCalc.getAdditionalTargets();
+ if (targetPaths != null) {
+ for (int j = 0; j < targetPaths.length; j++) {
+ myAdditionalTargets.add(targetPaths[j].toString());
+ }
+ }
+ }
+ }
+ } else {
+ IManagedDependencyGenerator oldDepGen = (IManagedDependencyGenerator) depGen;
+ for (String input : inputs) {
+ IResource[] outNames = oldDepGen.findDependencies(project.getFile(input), project);
+ if (outNames != null) {
+ for (IResource outName : outNames) {
+ myCommandDependencies.add(outName.toString());
+ }
+ }
+ }
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ return done;
+ }
+
+ public boolean calculateDependencies(GnuMakefileGenerator makeGen, IConfiguration config,
+ HashSet<String> handledInputExtensions, ToolInfoHolder h, boolean lastChance) {
+ // Get the dependencies for this tool invocation
+ boolean done = true;
+ Vector<String> myCommandDependencies = new Vector<>();
+ Vector<String> myAdditionalTargets = new Vector<>();
+ //Vector myEnumeratedDependencies = new Vector();
+ HashMap<String, List<IPath>> myOutputMacros = new HashMap<>();
+
+ IInputType[] inTypes = tool.getInputTypes();
+ if (inTypes != null && inTypes.length > 0) {
+ for (int i = 0; i < inTypes.length; i++) {
+ IInputType type = inTypes[i];
+
+ // Handle dependencies from the dependencyCalculator
+ IManagedDependencyGeneratorType depGen = type.getDependencyGenerator();
+ String[] extensionsList = type.getSourceExtensions(tool);
+ if (depGen != null) {
+ done = callDependencyCalculator(makeGen, config, handledInputExtensions, depGen, extensionsList,
+ myCommandDependencies, myOutputMacros, myAdditionalTargets, h, done);
+ }
+
+ // Add additional dependencies specified in AdditionalInput elements
+ IAdditionalInput[] addlInputs = type.getAdditionalInputs();
+ if (addlInputs != null && addlInputs.length > 0) {
+ for (int j = 0; j < addlInputs.length; j++) {
+ IAdditionalInput addlInput = addlInputs[j];
+ int kind = addlInput.getKind();
+ if (kind == IAdditionalInput.KIND_ADDITIONAL_DEPENDENCY
+ || kind == IAdditionalInput.KIND_ADDITIONAL_INPUT_DEPENDENCY) {
+ String[] paths = addlInput.getPaths();
+ if (paths != null) {
+ for (int k = 0; k < paths.length; k++) {
+ // Translate the path from project relative to
+ // build directory relative
+ String path = paths[k];
+ if (!(path.startsWith("$("))) { //$NON-NLS-1$
+ IResource addlResource = project.getFile(path);
+ if (addlResource != null) {
+ IPath addlPath = addlResource.getLocation();
+ if (addlPath != null) {
+ path = ManagedBuildManager
+ .calculateRelativePath(makeGen.getTopBuildDir(), addlPath)
+ .toString();
+ }
+ }
+ }
+ myCommandDependencies.add(path);
+ //myEnumeratedInputs.add(path);
+ }
+ }
+ }
+ }
+ }
+ }
+ } else {
+ if (bIsTargetTool) {
+ // For support of pre-CDT 3.0 integrations.
+ // NOTE WELL: This only supports the case of a single "target tool"
+ // with the following characteristics:
+ // 1. The tool consumes exactly all of the object files produced
+ // by other tools in the build and produces a single output
+ // 2. The target name comes from the configuration artifact name
+ // The rule looks like:
+ // <targ_prefix><target>.<extension>: $(OBJS) <refd_project_1 ... refd_project_n>
+ myCommandDependencies.add("$(OBJS)"); //$NON-NLS-1$
+ myCommandDependencies.add("$(USER_OBJS)"); //$NON-NLS-1$
+ } else {
+ // Handle dependencies from the dependencyCalculator
+ IManagedDependencyGeneratorType depGen = tool.getDependencyGenerator();
+ String[] extensionsList = tool.getAllInputExtensions();
+ if (depGen != null) {
+ done = callDependencyCalculator(makeGen, config, handledInputExtensions, depGen, extensionsList,
+ myCommandDependencies, myOutputMacros, myAdditionalTargets, h, done);
+ }
+
+ }
+ }
+
+ // Add the output macros of this tool to the buildOutVars map
+ Set<Entry<String, List<IPath>>> entrySet = myOutputMacros.entrySet();
+ for (Entry<String, List<IPath>> entry : entrySet) {
+ String macroName = entry.getKey();
+ List<IPath> newMacroValue = entry.getValue();
+ Map<String, List<IPath>> map = makeGen.getBuildOutputVars();
+ if (map.containsKey(macroName)) {
+ List<IPath> macroValue = map.get(macroName);
+ macroValue.addAll(newMacroValue);
+ map.put(macroName, macroValue);
+ } else {
+ map.put(macroName, newMacroValue);
+ }
+ }
+
+ if (done) {
+ commandDependencies.addAll(myCommandDependencies);
+ additionalTargets.addAll(myAdditionalTargets);
+ //enumeratedDependencies.addAll(myEnumeratedDependencies);
+ dependenciesCalculated = true;
+ return true;
+ }
+
+ return false;
+ }
+
+ /*
+ * Calculate the source macro for the given extension
+ */
+ protected String calculateSourceMacro(GnuMakefileGenerator makeGen, String srcExtensionName,
+ String outExtensionName, String wildcard) {
+ StringBuffer macroName = makeGen.getSourceMacroName(srcExtensionName);
+ String OptDotExt = ""; //$NON-NLS-1$
+ if (outExtensionName != null) {
+ OptDotExt = DOT + outExtensionName;
+ } else if (!tool.getOutputExtension(srcExtensionName).isEmpty())
+ OptDotExt = DOT + tool.getOutputExtension(srcExtensionName);
+
+ // create rule of the form
+ // OBJS = $(macroName1: ../%.input1=%.output1) ... $(macroNameN: ../%.inputN=%.outputN)
+ return IManagedBuilderMakefileGenerator.WHITESPACE + "$(" + macroName + //$NON-NLS-1$
+ IManagedBuilderMakefileGenerator.COLON + makeGen.reachProjectRoot()
+ + IManagedBuilderMakefileGenerator.SEPARATOR + IManagedBuilderMakefileGenerator.WILDCARD + DOT
+ + srcExtensionName + "=" + wildcard + OptDotExt + ")"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/projectconverter/ConverterMessages.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/projectconverter/ConverterMessages.java
index 6f446c40b0a..bbf7a3bff10 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/projectconverter/ConverterMessages.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/projectconverter/ConverterMessages.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2011 Intel Corporation and others.
+ * Copyright (c) 2004, 2020 Intel Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,14 +10,14 @@
*
* Contributors:
* Intel Corporation - Initial API and implementation
+ * Sergei Kovalchuk (NXP)
*******************************************************************************/
package org.eclipse.cdt.managedbuilder.projectconverter;
+import java.text.MessageFormat;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
-import com.ibm.icu.text.MessageFormat;
-
/**
* @noextend This class is not intended to be subclassed by clients.
* @noinstantiate This class is not intended to be instantiated by clients.
@@ -30,16 +30,6 @@ public class ConverterMessages {
private ConverterMessages() {
}
- /*
- public static String getString(String key) {
- // TODO Auto-generated method stub
- try {
- return RESOURCE_BUNDLE.getString(key);
- } catch (MissingResourceException e) {
- return '!' + key + '!';
- }
- }
- */
public static String getResourceString(String key) {
try {
return RESOURCE_BUNDLE.getString(key);
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/newmake/core/IMakeCommonBuildInfo.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/newmake/core/IMakeCommonBuildInfo.java
index 5637fa7618e..9587d907cdd 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/newmake/core/IMakeCommonBuildInfo.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/newmake/core/IMakeCommonBuildInfo.java
@@ -83,13 +83,42 @@ public interface IMakeCommonBuildInfo {
*/
void setParallelBuildOn(boolean on) throws CoreException;
+ /**
+ * @deprecated Use the {@link #isDefaultBuildCmdOnly()} and {@link #isDefaultBuildArgsOnly()}
+ * @return
+ */
+ @Deprecated
boolean isDefaultBuildCmd();
+ /**
+ * @since 9.3
+ */
+ boolean isDefaultBuildCmdOnly();
+
+ /**
+ * @since 9.3
+ */
+ boolean isDefaultBuildArgsOnly();
+
+ /**
+ * @deprecated Use the {@link #setUseDefaultBuildCmdOnly(boolean)} and {@link #setUseDefaultBuildArgsOnly(boolean)}
+ */
+ @Deprecated
void setUseDefaultBuildCmd(boolean on) throws CoreException;
IPath getBuildCommand();
/**
+ * @since 9.3
+ */
+ void setUseDefaultBuildCmdOnly(boolean on) throws CoreException;
+
+ /**
+ * @since 9.3
+ */
+ void setUseDefaultBuildArgsOnly(boolean on) throws CoreException;
+
+ /**
* @deprecated - use setBuildString(BUILD_COMMAND...)
*/
@Deprecated
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/newmake/internal/core/MakeMessages.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/newmake/internal/core/MakeMessages.java
index ebf7b2ba9c1..95b7b1f79bd 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/newmake/internal/core/MakeMessages.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/newmake/internal/core/MakeMessages.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2002, 2009 QNX Software Systems and others.
+ * Copyright (c) 2002, 2020 QNX Software Systems and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,14 +10,14 @@
*
* Contributors:
* QNX Software Systems - initial API and implementation
+ * Sergei Kovalchuk (NXP)
*******************************************************************************/
package org.eclipse.cdt.newmake.internal.core;
+import java.text.MessageFormat;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
-import com.ibm.icu.text.MessageFormat;
-
public class MakeMessages {
private static final String RESOURCE_BUNDLE = MakeMessages.class.getName();
diff --git a/build/org.eclipse.cdt.managedbuilder.gnu.ui/.classpath b/build/org.eclipse.cdt.managedbuilder.gnu.ui/.classpath
index 01836c4842f..e801ebfb468 100644
--- a/build/org.eclipse.cdt.managedbuilder.gnu.ui/.classpath
+++ b/build/org.eclipse.cdt.managedbuilder.gnu.ui/.classpath
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/build/org.eclipse.cdt.managedbuilder.gnu.ui/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.managedbuilder.gnu.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.gnu.ui/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.managedbuilder.gnu.ui/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.managedbuilder.gnu.ui/.settings/org.eclipse.jdt.core.prefs
index 2b6ecff8a01..e3a8104f9ca 100644
--- a/build/org.eclipse.cdt.managedbuilder.gnu.ui/.settings/org.eclipse.jdt.core.prefs
+++ b/build/org.eclipse.cdt.managedbuilder.gnu.ui/.settings/org.eclipse.jdt.core.prefs
@@ -30,9 +30,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -49,6 +49,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
@@ -107,6 +108,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
@@ -144,13 +146,14 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -158,21 +161,24 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@@ -264,11 +270,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@@ -299,6 +306,8 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@@ -323,13 +332,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@@ -377,6 +390,8 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do no
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@@ -413,9 +428,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@@ -454,10 +472,14 @@ org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/build/org.eclipse.cdt.managedbuilder.gnu.ui/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.managedbuilder.gnu.ui/.settings/org.eclipse.jdt.ui.prefs
index e44576346c4..d35ba9b5231 100644
--- a/build/org.eclipse.cdt.managedbuilder.gnu.ui/.settings/org.eclipse.jdt.ui.prefs
+++ b/build/org.eclipse.cdt.managedbuilder.gnu.ui/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,4 @@
+cleanup.add_all=false
cleanup.add_default_serial_version_id=true
cleanup.add_generated_serial_version_id=false
cleanup.add_missing_annotations=true
@@ -11,25 +12,72 @@ cleanup.always_use_blocks=true
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=false
cleanup.always_use_this_for_non_static_method_access=false
+cleanup.array_with_curly=false
+cleanup.arrays_fill=false
+cleanup.bitwise_conditional_expression=false
+cleanup.boolean_literal=false
+cleanup.boolean_value_rather_than_comparison=false
+cleanup.break_loop=false
+cleanup.collection_cloning=false
+cleanup.comparing_on_criteria=false
+cleanup.comparison_statement=false
+cleanup.controlflow_merge=false
cleanup.convert_functional_interfaces=false
cleanup.convert_to_enhanced_for_loop=false
+cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
+cleanup.convert_to_switch_expressions=false
cleanup.correct_indentation=false
+cleanup.do_while_rather_than_while=true
+cleanup.double_negation=false
+cleanup.else_if=false
+cleanup.embedded_if=false
+cleanup.evaluate_nullable=false
+cleanup.extract_increment=false
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
+cleanup.hash=false
+cleanup.if_condition=false
cleanup.insert_inferred_type_arguments=false
+cleanup.instanceof=false
+cleanup.instanceof_keyword=false
+cleanup.invert_equals=false
+cleanup.join=false
+cleanup.lazy_logical_operator=false
cleanup.make_local_variable_final=true
cleanup.make_parameters_final=false
cleanup.make_private_fields_final=true
cleanup.make_type_abstract_if_missing_method=false
cleanup.make_variable_declarations_final=false
+cleanup.map_cloning=false
+cleanup.merge_conditional_blocks=false
+cleanup.multi_catch=false
cleanup.never_use_blocks=false
cleanup.never_use_parentheses_in_expressions=true
+cleanup.no_string_creation=false
+cleanup.no_super=false
+cleanup.number_suffix=false
+cleanup.objects_equals=false
+cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
+cleanup.operand_factorization=false
cleanup.organize_imports=true
+cleanup.overridden_assignment=false
+cleanup.plain_replacement=false
+cleanup.precompile_regex=false
+cleanup.primitive_comparison=false
+cleanup.primitive_parsing=false
+cleanup.primitive_rather_than_wrapper=false
+cleanup.primitive_serialization=false
+cleanup.pull_out_if_from_if_else=false
+cleanup.pull_up_assignment=false
+cleanup.push_down_negation=false
cleanup.qualify_static_field_accesses_with_declaring_class=false
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
cleanup.qualify_static_member_accesses_with_declaring_class=false
cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.reduce_indentation=false
+cleanup.redundant_comparator=false
+cleanup.redundant_falling_through_block_end=false
cleanup.remove_private_constructors=true
cleanup.remove_redundant_modifiers=false
cleanup.remove_redundant_semicolons=true
@@ -37,25 +85,57 @@ cleanup.remove_redundant_type_arguments=true
cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true
cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_array_creation=false
cleanup.remove_unnecessary_casts=true
cleanup.remove_unnecessary_nls_tags=false
cleanup.remove_unused_imports=true
cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_method_parameters=false
cleanup.remove_unused_private_fields=true
cleanup.remove_unused_private_members=false
cleanup.remove_unused_private_methods=true
cleanup.remove_unused_private_types=true
+cleanup.return_expression=false
+cleanup.simplify_lambda_expression_and_method_ref=false
+cleanup.single_used_field=false
cleanup.sort_members=false
cleanup.sort_members_all=false
+cleanup.standard_comparison=false
+cleanup.static_inner_class=false
+cleanup.strictly_equal_or_different=false
+cleanup.stringbuffer_to_stringbuilder=false
+cleanup.stringbuilder=false
+cleanup.stringbuilder_for_local_vars=true
+cleanup.stringconcat_to_textblock=false
+cleanup.substring=false
+cleanup.switch=false
+cleanup.system_property=false
+cleanup.system_property_boolean=false
+cleanup.system_property_file_encoding=false
+cleanup.system_property_file_separator=false
+cleanup.system_property_line_separator=false
+cleanup.system_property_path_separator=false
+cleanup.ternary_operator=false
+cleanup.try_with_resource=false
+cleanup.unlooped_while=false
+cleanup.unreachable_block=false
cleanup.use_anonymous_class_creation=false
+cleanup.use_autoboxing=false
cleanup.use_blocks=false
cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_directly_map_method=false
cleanup.use_lambda=true
cleanup.use_parentheses_in_expressions=false
+cleanup.use_string_is_blank=false
cleanup.use_this_for_non_static_field_access=false
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
cleanup.use_this_for_non_static_method_access=false
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_unboxing=false
+cleanup.use_var=false
+cleanup.useless_continue=false
+cleanup.useless_return=false
+cleanup.valueof_rather_than_instantiation=false
cleanup_profile=_CDT
cleanup_settings_version=2
eclipse.preferences.version=1
diff --git a/build/org.eclipse.cdt.managedbuilder.gnu.ui/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.managedbuilder.gnu.ui/META-INF/MANIFEST.MF
index 5a0ab9cc0e6..01b7bacbbf5 100644
--- a/build/org.eclipse.cdt.managedbuilder.gnu.ui/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.managedbuilder.gnu.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.gnu.ui; singleton:=true
-Bundle-Version: 8.3.1.qualifier
+Bundle-Version: 8.4.300.qualifier
Bundle-Activator: org.eclipse.cdt.managedbuilder.gnu.ui.GnuUIPlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin
@@ -11,9 +11,9 @@ Export-Package: org.eclipse.cdt.managedbuilder.gnu.cygwin,
org.eclipse.cdt.managedbuilder.gnu.templates;x-internal:=true,
org.eclipse.cdt.managedbuilder.gnu.ui
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.cdt.managedbuilder.core;bundle-version="[8.1.0,9.0.0)",
- org.eclipse.cdt.core;bundle-version="[5.0.0,7.0.0)",
+ org.eclipse.cdt.managedbuilder.core;bundle-version="[9.0.0,10.0.0]",
+ org.eclipse.cdt.core;bundle-version="[7.0.0,8.0.0)",
org.eclipse.core.resources
Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
Automatic-Module-Name: org.eclipse.cdt.managedbuilder.gnu.ui
diff --git a/build/org.eclipse.cdt.managedbuilder.gnu.ui/about.html b/build/org.eclipse.cdt.managedbuilder.gnu.ui/about.html
index 164f781a8fd..b3134865230 100644
--- a/build/org.eclipse.cdt.managedbuilder.gnu.ui/about.html
+++ b/build/org.eclipse.cdt.managedbuilder.gnu.ui/about.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
</head>
+
<body lang="EN-US">
<h2>About This Content</h2>
@@ -16,7 +17,7 @@
(&quot;Content&quot;). Unless otherwise indicated below, the Content
is provided to you under the terms and conditions of the Eclipse
Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ available at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
@@ -29,8 +30,9 @@
license exists, contact the Redistributor. Unless otherwise indicated
below, the terms and conditions of the EPL still apply to any source
code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ href="https://www.eclipse.org/">https://www.eclipse.org</a>.
</p>
</body>
+
</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.properties b/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.properties
index cf5d25fae5e..95a5857e601 100644
--- a/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.properties
+++ b/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.properties
@@ -120,8 +120,10 @@ Option.Posix.Dialect.c90=ISO C90 / ANSI C89 (-std=c90)
Option.Posix.Dialect.c99=ISO C99 (-std=c99)
Option.Posix.Dialect.c11=ISO C11 (-std=c11)
Option.Posix.Dialect.c++98=ISO C++98 (-std=c++98)
-Option.Posix.Dialect.c++11=ISO C++11 (-std=c++0x)
-Option.Posix.Dialect.c++1y=ISO C++1y (-std=c++1y)
+Option.Posix.Dialect.c++11=ISO C++11 (-std=c++11)
+Option.Posix.Dialect.c++14=ISO C++14 (-std=c++14)
+Option.Posix.Dialect.c++17=ISO C++17 (-std=c++17)
+Option.Posix.Dialect.c++2a=ISO C++20 (-std=c++2a)
Option.Posix.Dialect.Flags=Other dialect flags
Option.Posix.PreprocOnly=Preprocess only (-E)
@@ -149,6 +151,11 @@ Option.Posix.Debug.Max=Maximum (-g3)
Option.Posix.Debug.Other=Other debugging flags
Option.Posix.Debug.gprof=Generate gprof information (-pg)
Option.Posix.Debug.prof=Generate prof information (-p)
+Option.Posix.Debug.sanitaddress=Sanitize address (-fsanitize=address)
+Option.Posix.Debug.sanitpointers=Sanitize pointer operations (-fsanitize=pointer-compare -fsanitize=pointer-subtract)
+Option.Posix.Debug.sanitthread=Sanitize data race in multi-thread (-fsanitize=thread)
+Option.Posix.Debug.sanitleak=Sanitize memory leak (-fsanitize=leak)
+Option.Posix.Debug.sanitundefined=Sanitize undefined behavior (-fsanitize=undefined)
Option.Posix.Warn.Syntax=Check syntax only (-fsyntax-only)
Option.Posix.Warn.Pedandic=Pedantic (-pedantic)
@@ -158,6 +165,26 @@ Option.Posix.Warn.allwarn=All warnings (-Wall)
Option.Posix.Warn.extrawarn=Extra warnings (-Wextra)
Option.Posix.Warn.toerrs=Warnings as errors (-Werror)
Option.Posix.Warn.wconversion=Implicit conversion warnings (-Wconversion)
+Option.Posix.Warn.wfloatequal=Direct float equal check (-Wfloat-equal)
+Option.Posix.Warn.wcastalign=Pointer cast with different alignment (-Wcast-align)
+Option.Posix.Warn.wcastqual=Removing type qualifier from cast target type (-Wcast-qual)
+Option.Posix.Warn.wctordtorprivacy=All ctor and dtor private (-Wctor-dtor-privacy)
+Option.Posix.Warn.wdisabledopt=Requested optimization pass is disabled (-Wdisabled-optimization)
+Option.Posix.Warn.wlogicalop=Suspicious uses of logical operators (-Wlogical-op)
+Option.Posix.Warn.wmissingdecl=Global function without previous declaration (-Wmissing-declarations)
+Option.Posix.Warn.wmissingincdir=User-supplied include directory does not exist (-Wmissing-include-dirs)
+Option.Posix.Warn.wnoexccept=Noexcept false but never throw exception (-Wnoexcept)
+Option.Posix.Warn.woldstylecast=C-style cast used (-Wold-style-cast)
+Option.Posix.Warn.woverloadedvirtual=Function hides virtual functions from base class (-Woverloaded-virtual)
+Option.Posix.Warn.wredundantdecl=More than one declaration in the same scope (-Wredundant-decls)
+Option.Posix.Warn.wshadow=Local symbol shadows upper scope symbol (-Wshadow)
+Option.Posix.Warn.wsignconv=Implicit conversions that may change the sign (-Wsign-conversion)
+Option.Posix.Warn.wsignpromo=Overload resolution promotes unsigned to signed type (-Wsign-promo)
+Option.Posix.Warn.wstrictnullsent=Use of an uncasted NULL as sentinel (-Wstrict-null-sentinel)
+Option.Posix.Warn.wswitchdef=A switch statement does not have a default case (-Wswitch-default)
+Option.Posix.Warn.wundef=An undefined identifier is evaluated in an #if directive (-Wundef)
+Option.Posix.Warn.weffcpp=Effective C++ guidelines (-Weffc++)
+Option.Posix.Warn.wwritestring=Treat strings always as const (-Wwrite-strings)
Option.Posix.Verbose=Verbose (-v)
Option.OtherFlags=Other flags
@@ -168,6 +195,8 @@ Option.codecovTip="Check this flag if you want to enable Profile Code Coverage i
Option.Pthread=Support for pthread (-pthread)
Option.PthreadCompilerTip="If you select this option, you probably want to select -pthread in the linker settings."
Option.PthreadLinkerTip="If you select this option, you probably want to select -pthread in the compiler settings."
+Option.Security=Hardening options (-fstack-protector-all -Wformat=2 -Wformat-security -Wstrict-overflow)
+Option.Randomization=Address randomization (-fPIE)
Option.Posix.Linker.NoStartFiles=Do not use standard start files (-nostartfiles)
Option.Posix.Linker.NoDefLibs=Do not use default libraries (-nodefaultlibs)
diff --git a/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml b/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml
index 36eab81bf75..e35e6ee04c0 100644
--- a/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml
+++ b/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml
@@ -604,7 +604,6 @@
name="%ToolName.linker.macosx.c"
outputFlag="-o"
command="gcc"
- commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}"
id="cdt.managedbuild.tool.macosx.c.linker"
errorParsers="org.eclipse.cdt.core.GLDErrorParser">
<supportedProperties>
@@ -796,7 +795,6 @@
name="%ToolName.linker.macosx.cpp"
outputFlag="-o"
command="g++"
- commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}"
id="cdt.managedbuild.tool.macosx.cpp.linker"
errorParsers="org.eclipse.cdt.core.GLDErrorParser">
<supportedProperties>
@@ -1217,6 +1215,46 @@
tip="%Option.codecovTip"
valueType="boolean">
</option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Debug.sanitaddress"
+ category="gnu.c.compiler.category.debug"
+ command="-fsanitize=address"
+ id="gnu.c.compiler.option.debugging.sanitaddress"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Debug.sanitpointers"
+ category="gnu.c.compiler.category.debug"
+ command="-fsanitize=pointer-compare -fsanitize=pointer-subtract"
+ id="gnu.c.compiler.option.debugging.sanitpointers"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Debug.sanitthread"
+ category="gnu.c.compiler.category.debug"
+ command="-fsanitize=thread"
+ id="gnu.c.compiler.option.debugging.sanitthread"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Debug.sanitleak"
+ category="gnu.c.compiler.category.debug"
+ command="-fsanitize=leak"
+ id="gnu.c.compiler.option.debugging.sanitleak"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Debug.sanitundefined"
+ category="gnu.c.compiler.category.debug"
+ command="-fsanitize=undefined"
+ id="gnu.c.compiler.option.debugging.sanitundef"
+ valueType="boolean">
+ </option>
<optionCategory
owner="cdt.managedbuild.tool.gnu.c.compiler"
name="%OptionCategory.Warn"
@@ -1286,6 +1324,110 @@
id="gnu.c.compiler.option.warnings.wconversion"
valueType="boolean">
</option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wcastalign"
+ category="gnu.c.compiler.category.warnings"
+ command="-Wcast-align"
+ id="gnu.c.compiler.option.warnings.wcastalign"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wcastqual"
+ category="gnu.c.compiler.category.warnings"
+ command="-Wcast-qual"
+ id="gnu.c.compiler.option.warnings.wcastqual"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wdisabledopt"
+ category="gnu.c.compiler.category.warnings"
+ command="-Wdisabled-optimization"
+ id="gnu.c.compiler.option.warnings.wdisabledopt"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wlogicalop"
+ category="gnu.c.compiler.category.warnings"
+ command="-Wlogical-op"
+ id="gnu.c.compiler.option.warnings.wlogicalop"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wmissingdecl"
+ category="gnu.c.compiler.category.warnings"
+ command="-Wmissing-declarations"
+ id="gnu.c.compiler.option.warnings.wmissingdecl"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wmissingincdir"
+ category="gnu.c.compiler.category.warnings"
+ command="-Wmissing-include-dirs"
+ id="gnu.c.compiler.option.warnings.wmissingincdir"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wredundantdecl"
+ category="gnu.c.compiler.category.warnings"
+ command="-Wredundant-decls"
+ id="gnu.c.compiler.option.warnings.wredundantdecl"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wshadow"
+ category="gnu.c.compiler.category.warnings"
+ command="-Wshadow"
+ id="gnu.c.compiler.option.warnings.wshadow"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wsignconv"
+ category="gnu.c.compiler.category.warnings"
+ command="-Wsign-conversion"
+ id="gnu.c.compiler.option.warnings.wsignconv"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wswitchdef"
+ category="gnu.c.compiler.category.warnings"
+ command="-Wswitch-default"
+ id="gnu.c.compiler.option.warnings.wswitchdef"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wundef"
+ category="gnu.c.compiler.category.warnings"
+ command="-Wundef"
+ id="gnu.c.compiler.option.warnings.wundef"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wwritestring"
+ category="gnu.c.compiler.category.warnings"
+ command="-Wwrite-strings"
+ id="gnu.c.compiler.option.warnings.wwritestrings"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wfloatequal"
+ category="gnu.c.compiler.category.warnings"
+ command="-Wfloat-equal"
+ id="gnu.c.compiler.option.warnings.wfloatequal"
+ valueType="boolean">
+ </option>
<optionCategory
owner="cdt.managedbuild.tool.gnu.c.compiler"
name="%OptionCategory.Misc"
@@ -1322,6 +1464,22 @@
name="%Option.PIC"
valueType="boolean">
</option>
+ <option
+ category="gnu.c.compiler.category.other"
+ command="-fstack-protector-all -Wformat=2 -Wformat-security -Wstrict-overflow"
+ defaultValue="false"
+ id="gnu.c.compiler.option.misc.hardening"
+ name="%Option.Security"
+ valueType="boolean">
+ </option>
+ <option
+ category="gnu.c.compiler.category.other"
+ command="-fPIE"
+ defaultValue="false"
+ id="gnu.c.compiler.option.misc.randomization"
+ name="%Option.Randomization"
+ valueType="boolean">
+ </option>
<inputType
sourceContentType="org.eclipse.cdt.core.cSource"
sources="c"
@@ -1383,10 +1541,20 @@
id="gnu.cpp.compiler.dialect.c++11">
</enumeratedOptionValue>
<enumeratedOptionValue
- name="%Option.Posix.Dialect.c++1y"
+ name="%Option.Posix.Dialect.c++14"
command="-std=c++1y"
id="gnu.cpp.compiler.dialect.c++1y">
</enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="%Option.Posix.Dialect.c++17"
+ command="-std=c++17"
+ id="gnu.cpp.compiler.dialect.c++17">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="%Option.Posix.Dialect.c++2a"
+ command="-std=c++2a"
+ id="gnu.cpp.compiler.dialect.c++2a">
+ </enumeratedOptionValue>
</option>
<option
name="%Option.Posix.Dialect.Flags"
@@ -1595,6 +1763,46 @@
tip="%Option.codecovTip"
valueType="boolean">
</option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Debug.sanitaddress"
+ category="gnu.cpp.compiler.category.debug"
+ command="-fsanitize=address"
+ id="gnu.cpp.compiler.option.debugging.sanitaddress"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Debug.sanitpointers"
+ category="gnu.cpp.compiler.category.debug"
+ command="-fsanitize=pointer-compare -fsanitize=pointer-subtract"
+ id="gnu.cpp.compiler.option.debugging.sanitpointers"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Debug.sanitthread"
+ category="gnu.cpp.compiler.category.debug"
+ command="-fsanitize=thread"
+ id="gnu.cpp.compiler.option.debugging.sanitthread"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Debug.sanitleak"
+ category="gnu.cpp.compiler.category.debug"
+ command="-fsanitize=leak"
+ id="gnu.cpp.compiler.option.debugging.sanitleak"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Debug.sanitundefined"
+ category="gnu.cpp.compiler.category.debug"
+ command="-fsanitize=undefined"
+ id="gnu.cpp.compiler.option.debugging.sanitundef"
+ valueType="boolean">
+ </option>
<optionCategory
owner="cdt.managedbuild.tool.gnu.cpp.compiler"
name="%OptionCategory.Warn"
@@ -1664,6 +1872,158 @@
id="gnu.cpp.compiler.option.warnings.wconversion"
valueType="boolean">
</option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wcastalign"
+ category="gnu.cpp.compiler.category.warnings"
+ command="-Wcast-align"
+ id="gnu.cpp.compiler.option.warnings.wcastalign"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wcastqual"
+ category="gnu.cpp.compiler.category.warnings"
+ command="-Wcast-qual"
+ id="gnu.cpp.compiler.option.warnings.wcastqual"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wctordtorprivacy"
+ category="gnu.cpp.compiler.category.warnings"
+ command="-Wctor-dtor-privacy"
+ id="gnu.cpp.compiler.option.warnings.wctordtorprivacy"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wdisabledopt"
+ category="gnu.cpp.compiler.category.warnings"
+ command="-Wdisabled-optimization"
+ id="gnu.cpp.compiler.option.warnings.wdisabledopt"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wlogicalop"
+ category="gnu.cpp.compiler.category.warnings"
+ command="-Wlogical-op"
+ id="gnu.cpp.compiler.option.warnings.wlogicalop"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wmissingdecl"
+ category="gnu.cpp.compiler.category.warnings"
+ command="-Wmissing-declarations"
+ id="gnu.cpp.compiler.option.warnings.wmissingdecl"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wmissingincdir"
+ category="gnu.cpp.compiler.category.warnings"
+ command="-Wmissing-include-dirs"
+ id="gnu.cpp.compiler.option.warnings.wmissingincdir"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wnoexccept"
+ category="gnu.cpp.compiler.category.warnings"
+ command="-Wnoexcept"
+ id="gnu.cpp.compiler.option.warnings.wnoexccept"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.woldstylecast"
+ category="gnu.cpp.compiler.category.warnings"
+ command="-Wold-style-cast"
+ id="gnu.cpp.compiler.option.warnings.woldstylecast"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.woverloadedvirtual"
+ category="gnu.cpp.compiler.category.warnings"
+ command="-Woverloaded-virtual"
+ id="gnu.cpp.compiler.option.warnings.woverloadedvirtual"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wredundantdecl"
+ category="gnu.cpp.compiler.category.warnings"
+ command="-Wredundant-decls"
+ id="gnu.cpp.compiler.option.warnings.wredundantdecl"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wshadow"
+ category="gnu.cpp.compiler.category.warnings"
+ command="-Wshadow"
+ id="gnu.cpp.compiler.option.warnings.wshadow"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wsignconv"
+ category="gnu.cpp.compiler.category.warnings"
+ command="-Wsign-conversion"
+ id="gnu.cpp.compiler.option.warnings.wsignconv"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wsignpromo"
+ category="gnu.cpp.compiler.category.warnings"
+ command="-Wsign-promo"
+ id="gnu.cpp.compiler.option.warnings.wsignpromo"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wstrictnullsent"
+ category="gnu.cpp.compiler.category.warnings"
+ command="-Wstrict-null-sentinel"
+ id="gnu.cpp.compiler.option.warnings.wstrictnullsent"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wswitchdef"
+ category="gnu.cpp.compiler.category.warnings"
+ command="-Wswitch-default"
+ id="gnu.cpp.compiler.option.warnings.wswitchdef"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wundef"
+ category="gnu.cpp.compiler.category.warnings"
+ command="-Wundef"
+ id="gnu.cpp.compiler.option.warnings.wundef"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.weffcpp"
+ category="gnu.cpp.compiler.category.warnings"
+ command="-Weffc++"
+ id="gnu.cpp.compiler.option.warnings.weffcpp"
+ valueType="boolean">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Warn.wfloatequal"
+ category="gnu.cpp.compiler.category.warnings"
+ command="-Wfloat-equal"
+ id="gnu.cpp.compiler.option.warnings.wfloatequal"
+ valueType="boolean">
+ </option>
<optionCategory
owner="cdt.managedbuild.tool.gnu.cpp.compiler"
name="%OptionCategory.Misc"
@@ -1692,6 +2052,22 @@
name="%Option.PIC"
valueType="boolean">
</option>
+ <option
+ category="gnu.cpp.compiler.category.other"
+ command="-fstack-protector-all -Wformat=2 -Wformat-security -Wstrict-overflow"
+ defaultValue="false"
+ id="gnu.cpp.compiler.option.misc.hardening"
+ name="%Option.Security"
+ valueType="boolean">
+ </option>
+ <option
+ category="gnu.cpp.compiler.category.other"
+ command="-fPIE"
+ defaultValue="false"
+ id="gnu.cpp.compiler.option.misc.randomization"
+ name="%Option.Randomization"
+ valueType="boolean">
+ </option>
<inputType
sourceContentType="org.eclipse.cdt.core.cxxSource"
sources="c,C,cc,cxx,cpp,cp,CPP"
@@ -1790,7 +2166,7 @@
variableFormat="${=}"
isVariableCaseSensitive="true"
reservedMacroNames="ROOT,DEPS,OBJS,.*_SRCS,EXECUTABLES,SUBDIRS,LIBS,USER_OBJS,.*_INPUTS,.*_OUTPUTS"
- buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator"
+ buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu2.GnuMakefileGenerator"
macroInputFileNameValue="$(notdir $&lt;)"
macroInputFileExtValue="$(suffix $(notdir $&lt;))"
macroInputFileBaseNameValue="$(basename $(notdir $&lt;))"
@@ -1924,7 +2300,7 @@
<targetPlatform
id="cdt.managedbuild.target.gnu.platform.cygwin.base"
name="%PlatformName.Dbg"
- binaryParser="org.eclipse.cdt.core.Cygwin_PE"
+ binaryParser="org.eclipse.cdt.core.Cygwin_PE64"
osList="win32"
archList="all">
</targetPlatform>
@@ -1994,7 +2370,7 @@
<targetPlatform
id="cdt.managedbuild.target.gnu.platform.mingw.base"
name="%PlatformName.Dbg"
- binaryParser="org.eclipse.cdt.core.PE"
+ binaryParser="org.eclipse.cdt.core.PE64"
osList="win32"
archList="all">
</targetPlatform>
@@ -2148,13 +2524,11 @@
</targetPlatform>
<tool
id="cdt.managedbuild.tool.gnu.solaris.cpp.compiler.base"
- superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base"
- commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}">
+ superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base">
</tool>
<tool
id="cdt.managedbuild.tool.gnu.solaris.c.compiler.base"
- superClass="cdt.managedbuild.tool.gnu.c.compiler.base"
- commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}">
+ superClass="cdt.managedbuild.tool.gnu.c.compiler.base">
</tool>
<tool
id="cdt.managedbuild.tool.gnu.solaris.archiver.base"
@@ -2219,14 +2593,12 @@
<tool
id="cdt.managedbuild.tool.gnu.solaris.cpp.compiler.base"
name="%ToolName.compiler.solaris.cpp"
- superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base"
- commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}">
+ superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base">
</tool>
<tool
id="cdt.managedbuild.tool.gnu.solaris.c.compiler.base"
name="%ToolName.compiler.solaris.c"
- superClass="cdt.managedbuild.tool.gnu.c.compiler.base"
- commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}">
+ superClass="cdt.managedbuild.tool.gnu.c.compiler.base">
</tool>
</toolChain>
diff --git a/build/org.eclipse.cdt.managedbuilder.gnu.ui/src/org/eclipse/cdt/managedbuilder/gnu/cygwin/CygwinPathResolver.java b/build/org.eclipse.cdt.managedbuilder.gnu.ui/src/org/eclipse/cdt/managedbuilder/gnu/cygwin/CygwinPathResolver.java
index 297cd23644e..a408bc85ea1 100644
--- a/build/org.eclipse.cdt.managedbuilder.gnu.ui/src/org/eclipse/cdt/managedbuilder/gnu/cygwin/CygwinPathResolver.java
+++ b/build/org.eclipse.cdt.managedbuilder.gnu.ui/src/org/eclipse/cdt/managedbuilder/gnu/cygwin/CygwinPathResolver.java
@@ -250,7 +250,7 @@ public class CygwinPathResolver implements IBuildPathResolver {
}
} catch (IOException e) {
GnuUIPlugin.getDefault()
- .log(new Status(IStatus.ERROR, GnuUIPlugin.PLUGIN_ID, "Error executing program [" + cmd + "]", e));
+ .log(new Status(IStatus.ERROR, GnuUIPlugin.PLUGIN_ID, "Error executing program [" + cmd + "]", e)); //$NON-NLS-1$ //$NON-NLS-2$
}
return result;
}
diff --git a/build/org.eclipse.cdt.cmake.core/.classpath b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.classpath
index eca7bdba8f0..e801ebfb468 100644
--- a/build/org.eclipse.cdt.cmake.core/.classpath
+++ b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
diff --git a/build/org.eclipse.cdt.cmake.ui.tests/.project b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.project
index 737f5d08009..03163523d77 100644
--- a/build/org.eclipse.cdt.cmake.ui.tests/.project
+++ b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.project
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
- <name>org.eclipse.cdt.cmake.ui.tests</name>
+ <name>org.eclipse.cdt.managedbuilder.headlessbuilderapp</name>
<comment></comment>
<projects>
</projects>
@@ -20,9 +20,15 @@
<arguments>
</arguments>
</buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
</natures>
</projectDescription>
diff --git a/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.autotools.docs/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.settings/org.eclipse.jdt.core.prefs
index 2b6ecff8a01..e3a8104f9ca 100644
--- a/build/org.eclipse.cdt.autotools.docs/.settings/org.eclipse.jdt.core.prefs
+++ b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.settings/org.eclipse.jdt.core.prefs
@@ -30,9 +30,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -49,6 +49,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
@@ -107,6 +108,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
@@ -144,13 +146,14 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -158,21 +161,24 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@@ -264,11 +270,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@@ -299,6 +306,8 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@@ -323,13 +332,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@@ -377,6 +390,8 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do no
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@@ -413,9 +428,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@@ -454,10 +472,14 @@ org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/build/org.eclipse.cdt.autotools.docs/.settings/org.eclipse.jdt.launching.prefs b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.settings/org.eclipse.jdt.launching.prefs
index f8a131b56e0..f8a131b56e0 100644
--- a/build/org.eclipse.cdt.autotools.docs/.settings/org.eclipse.jdt.launching.prefs
+++ b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.settings/org.eclipse.jdt.launching.prefs
diff --git a/build/org.eclipse.cdt.cmake.core/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.settings/org.eclipse.jdt.ui.prefs
index e44576346c4..d35ba9b5231 100644
--- a/build/org.eclipse.cdt.cmake.core/.settings/org.eclipse.jdt.ui.prefs
+++ b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,4 @@
+cleanup.add_all=false
cleanup.add_default_serial_version_id=true
cleanup.add_generated_serial_version_id=false
cleanup.add_missing_annotations=true
@@ -11,25 +12,72 @@ cleanup.always_use_blocks=true
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=false
cleanup.always_use_this_for_non_static_method_access=false
+cleanup.array_with_curly=false
+cleanup.arrays_fill=false
+cleanup.bitwise_conditional_expression=false
+cleanup.boolean_literal=false
+cleanup.boolean_value_rather_than_comparison=false
+cleanup.break_loop=false
+cleanup.collection_cloning=false
+cleanup.comparing_on_criteria=false
+cleanup.comparison_statement=false
+cleanup.controlflow_merge=false
cleanup.convert_functional_interfaces=false
cleanup.convert_to_enhanced_for_loop=false
+cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
+cleanup.convert_to_switch_expressions=false
cleanup.correct_indentation=false
+cleanup.do_while_rather_than_while=true
+cleanup.double_negation=false
+cleanup.else_if=false
+cleanup.embedded_if=false
+cleanup.evaluate_nullable=false
+cleanup.extract_increment=false
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
+cleanup.hash=false
+cleanup.if_condition=false
cleanup.insert_inferred_type_arguments=false
+cleanup.instanceof=false
+cleanup.instanceof_keyword=false
+cleanup.invert_equals=false
+cleanup.join=false
+cleanup.lazy_logical_operator=false
cleanup.make_local_variable_final=true
cleanup.make_parameters_final=false
cleanup.make_private_fields_final=true
cleanup.make_type_abstract_if_missing_method=false
cleanup.make_variable_declarations_final=false
+cleanup.map_cloning=false
+cleanup.merge_conditional_blocks=false
+cleanup.multi_catch=false
cleanup.never_use_blocks=false
cleanup.never_use_parentheses_in_expressions=true
+cleanup.no_string_creation=false
+cleanup.no_super=false
+cleanup.number_suffix=false
+cleanup.objects_equals=false
+cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
+cleanup.operand_factorization=false
cleanup.organize_imports=true
+cleanup.overridden_assignment=false
+cleanup.plain_replacement=false
+cleanup.precompile_regex=false
+cleanup.primitive_comparison=false
+cleanup.primitive_parsing=false
+cleanup.primitive_rather_than_wrapper=false
+cleanup.primitive_serialization=false
+cleanup.pull_out_if_from_if_else=false
+cleanup.pull_up_assignment=false
+cleanup.push_down_negation=false
cleanup.qualify_static_field_accesses_with_declaring_class=false
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
cleanup.qualify_static_member_accesses_with_declaring_class=false
cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.reduce_indentation=false
+cleanup.redundant_comparator=false
+cleanup.redundant_falling_through_block_end=false
cleanup.remove_private_constructors=true
cleanup.remove_redundant_modifiers=false
cleanup.remove_redundant_semicolons=true
@@ -37,25 +85,57 @@ cleanup.remove_redundant_type_arguments=true
cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true
cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_array_creation=false
cleanup.remove_unnecessary_casts=true
cleanup.remove_unnecessary_nls_tags=false
cleanup.remove_unused_imports=true
cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_method_parameters=false
cleanup.remove_unused_private_fields=true
cleanup.remove_unused_private_members=false
cleanup.remove_unused_private_methods=true
cleanup.remove_unused_private_types=true
+cleanup.return_expression=false
+cleanup.simplify_lambda_expression_and_method_ref=false
+cleanup.single_used_field=false
cleanup.sort_members=false
cleanup.sort_members_all=false
+cleanup.standard_comparison=false
+cleanup.static_inner_class=false
+cleanup.strictly_equal_or_different=false
+cleanup.stringbuffer_to_stringbuilder=false
+cleanup.stringbuilder=false
+cleanup.stringbuilder_for_local_vars=true
+cleanup.stringconcat_to_textblock=false
+cleanup.substring=false
+cleanup.switch=false
+cleanup.system_property=false
+cleanup.system_property_boolean=false
+cleanup.system_property_file_encoding=false
+cleanup.system_property_file_separator=false
+cleanup.system_property_line_separator=false
+cleanup.system_property_path_separator=false
+cleanup.ternary_operator=false
+cleanup.try_with_resource=false
+cleanup.unlooped_while=false
+cleanup.unreachable_block=false
cleanup.use_anonymous_class_creation=false
+cleanup.use_autoboxing=false
cleanup.use_blocks=false
cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_directly_map_method=false
cleanup.use_lambda=true
cleanup.use_parentheses_in_expressions=false
+cleanup.use_string_is_blank=false
cleanup.use_this_for_non_static_field_access=false
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
cleanup.use_this_for_non_static_method_access=false
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_unboxing=false
+cleanup.use_var=false
+cleanup.useless_continue=false
+cleanup.useless_return=false
+cleanup.valueof_rather_than_instantiation=false
cleanup_profile=_CDT
cleanup_settings_version=2
eclipse.preferences.version=1
diff --git a/build/org.eclipse.cdt.cmake.core/.settings/org.eclipse.pde.api.tools.prefs b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.settings/org.eclipse.pde.api.tools.prefs
index ec9fbf321d0..ec9fbf321d0 100644
--- a/build/org.eclipse.cdt.cmake.core/.settings/org.eclipse.pde.api.tools.prefs
+++ b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/build/org.eclipse.cdt.cmake.core/.settings/org.eclipse.pde.prefs b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.settings/org.eclipse.pde.prefs
index d2dc703ba9e..d2dc703ba9e 100644
--- a/build/org.eclipse.cdt.cmake.core/.settings/org.eclipse.pde.prefs
+++ b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/.settings/org.eclipse.pde.prefs
diff --git a/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..2b1e33067e4
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/META-INF/MANIFEST.MF
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.headlessbuilderapp;singleton:=true
+Bundle-Version: 1.0.200.qualifier
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-11
+Require-Bundle: org.eclipse.cdt.managedbuilder.core;bundle-version="[9.2.0,10.0.0)",
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources;bundle-version="[3.13.700,4.0.0)"
+Bundle-ActivationPolicy: lazy
+Automatic-Module-Name: org.eclipse.cdt.managedbuilder.core.headlessbuilderapp
diff --git a/build/org.eclipse.cdt.cmake.core/about.html b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/about.html
index 164f781a8fd..b3134865230 100644
--- a/build/org.eclipse.cdt.cmake.core/about.html
+++ b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/about.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
</head>
+
<body lang="EN-US">
<h2>About This Content</h2>
@@ -16,7 +17,7 @@
(&quot;Content&quot;). Unless otherwise indicated below, the Content
is provided to you under the terms and conditions of the Eclipse
Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ available at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
@@ -29,8 +30,9 @@
license exists, contact the Redistributor. Unless otherwise indicated
below, the terms and conditions of the EPL still apply to any source
code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ href="https://www.eclipse.org/">https://www.eclipse.org</a>.
</p>
</body>
+
</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/build.properties b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/build.properties
new file mode 100644
index 00000000000..c6981b2f39f
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/build.properties
@@ -0,0 +1,18 @@
+###############################################################################
+# Copyright (c) 2021 STMicroelectronics and others.
+#
+# This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ plugin.properties,\
+ about.html
+src.includes = about.html
diff --git a/build/org.eclipse.cdt.cmake.ui/plugin.properties b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/plugin.properties
index a6b63ff6661..aa73fb1fa3f 100644
--- a/build/org.eclipse.cdt.cmake.ui/plugin.properties
+++ b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/plugin.properties
@@ -1,5 +1,5 @@
###############################################################################
-# Copyright (c) 2016 QNX Software Systems and others
+# Copyright (c) 2021 STMicroelectronics and others.
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
@@ -7,6 +7,11 @@
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+# STMicroelectronics - initial API and implementation
###############################################################################
+pluginName=CDT Headless Builder Application
+providerName=Eclipse CDT
-cmake.preferences.name = CMake
+extension.name.0 = CDT Headless Build \ No newline at end of file
diff --git a/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/plugin.xml b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/plugin.xml
new file mode 100644
index 00000000000..b13b394761f
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/plugin.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ id="org.eclipse.cdt.managedbuilder.core.headlessbuild"
+ name="%extension.name.0"
+ point="org.eclipse.core.runtime.applications">
+ <application
+ cardinality="singleton-global"
+ thread="main"
+ visible="true">
+ <run
+ class="org.eclipse.cdt.managedbuilder.internal.headlessbuilderapp.HeadlessBuilderWrapper">
+ </run>
+ </application>
+ </extension>
+</plugin>
diff --git a/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/src/org/eclipse/cdt/managedbuilder/internal/headlessbuilderapp/HeadlessBuilderWrapper.java b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/src/org/eclipse/cdt/managedbuilder/internal/headlessbuilderapp/HeadlessBuilderWrapper.java
new file mode 100644
index 00000000000..fc5e4e1ea66
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/src/org/eclipse/cdt/managedbuilder/internal/headlessbuilderapp/HeadlessBuilderWrapper.java
@@ -0,0 +1,148 @@
+/*******************************************************************************
+ * Copyright (c) 2019, 2020 Kichwa Coders Canada Inc. and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Kichwa Coders Canada, Inc - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.managedbuilder.internal.headlessbuilderapp;
+
+import java.text.MessageFormat;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.cdt.managedbuilder.internal.core.HeadlessBuilder;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.equinox.app.IApplication;
+import org.eclipse.equinox.app.IApplicationContext;
+import org.eclipse.osgi.util.NLS;
+import org.osgi.framework.BundleException;
+
+/**
+ * Wraps original {@code CodeFormatterApplication} for better error diagnostic message if user does not specify workspace location.
+ *
+ * @author Jonah Graham <jonah@kichwacoders.com>
+ * @since 1.0
+ * @noinstantiate This class is not intended to be instantiated by clients.
+ * @noextend This class is not intended to be subclassed by clients.
+ */
+public class HeadlessBuilderWrapper implements IApplication {
+ /**
+ * Deals with the messages in the properties file (cut n' pasted from a generated class).
+ */
+ private final static class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.cdt.managedbuilder.internal.headlessbuilderapp.messages";//$NON-NLS-1$
+ public static String CommandLineUsage;
+ public static String WorkspaceRequired;
+ static {
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ /**
+ * Bind the given message's substitution locations with the given string values.
+ *
+ * @param message
+ * the message to be manipulated
+ * @return the manipulated String
+ */
+ public static String bind(String message) {
+ return bind(message, null);
+ }
+
+ /**
+ * Bind the given message's substitution locations with the given string values.
+ *
+ * @param message
+ * the message to be manipulated
+ * @param binding
+ * the object to be inserted into the message
+ * @return the manipulated String
+ */
+ public static String bind(String message, Object binding) {
+ return bind(message, new Object[] { binding });
+ }
+
+ /**
+ * Bind the given message's substitution locations with the given string values.
+ *
+ * @param message
+ * the message to be manipulated
+ * @param binding1
+ * An object to be inserted into the message
+ * @param binding2
+ * A second object to be inserted into the message
+ * @return the manipulated String
+ */
+ public static String bind(String message, Object binding1, Object binding2) {
+ return bind(message, new Object[] { binding1, binding2 });
+ }
+
+ /**
+ * Bind the given message's substitution locations with the given string values.
+ *
+ * @param message
+ * the message to be manipulated
+ * @param bindings
+ * An array of objects to be inserted into the message
+ * @return the manipulated String
+ */
+ public static String bind(String message, Object[] bindings) {
+ return MessageFormat.format(message, bindings);
+ }
+ }
+
+ @Override
+ public Object start(IApplicationContext context) throws Exception {
+ String[] arguments = (String[]) context.getArguments().get(IApplicationContext.APPLICATION_ARGS);
+ List<String> args = Arrays.asList(arguments);
+ if (args.isEmpty() || args.contains("-help") || args.contains("--help")) { //$NON-NLS-1$ //$NON-NLS-2$
+ showUsage(context);
+ return IApplication.EXIT_OK;
+ }
+ try {
+ // Try to see if the workspace is available. If it is not available we'll
+ // get a NoClassDefFoundError wrapping a ClassNotFoundException which
+ // has a BundleException in it, whose cause was the original
+ // IllegalStateException raised by
+ // org.eclipse.core.internal.runtime.DataArea.assertLocationInitialized()
+ ResourcesPlugin.getWorkspace();
+ } catch (NoClassDefFoundError noClassError) {
+ if (noClassError.getCause() instanceof ClassNotFoundException) {
+ ClassNotFoundException classNotFoundException = (ClassNotFoundException) noClassError.getCause();
+ if (classNotFoundException.getException() instanceof BundleException) {
+ BundleException bundleException = (BundleException) classNotFoundException.getException();
+ if (bundleException.getCause() instanceof IllegalStateException) {
+ System.err.println(Messages.bind(Messages.WorkspaceRequired));
+ showUsage(context);
+ return 1;
+ }
+ }
+ }
+ throw noClassError;
+ }
+
+ // Workspace is available, so launch the original Headless Builder
+ Object res = new HeadlessBuilder().start(context);
+ if (res == HeadlessBuilder.SHOW_USAGE) {
+ showUsage(context);
+ return HeadlessBuilder.ERROR;
+ }
+ return res;
+ }
+
+ private void showUsage(IApplicationContext context) {
+ String binaryName = System.getProperty("eclipse.launcher", "PROGRAM"); //$NON-NLS-1$ //$NON-NLS-2$
+ System.out.println(NLS.bind(Messages.CommandLineUsage, binaryName));
+ }
+
+ @Override
+ public void stop() {
+ // do nothing
+ }
+} \ No newline at end of file
diff --git a/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/src/org/eclipse/cdt/managedbuilder/internal/headlessbuilderapp/messages.properties b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/src/org/eclipse/cdt/managedbuilder/internal/headlessbuilderapp/messages.properties
new file mode 100644
index 00000000000..3a7aedd8679
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.headlessbuilderapp/src/org/eclipse/cdt/managedbuilder/internal/headlessbuilderapp/messages.properties
@@ -0,0 +1,39 @@
+###############################################################################
+# Copyright (c) 2021 STMicroelectronics and others.
+#
+# This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+###############################################################################
+
+CommandLineUsage=Usage: {0} -data <workspace> -application org.eclipse.cdt.managedbuilder.core.headlessbuild [ OPTIONS ]\n\
+'\n\
+\ -data {/path/to/workspace}\n\
+\ -remove {[uri:/]/path/to/project}\n\
+\ -removeAll {[uri:/]/path/to/projectTreeURI} Remove all projects under URI\n\
+\ -import {[uri:/]/path/to/project}\n\
+\ -importAll {[uri:/]/path/to/projectTreeURI} Import all projects under URI\n\
+\ -build {project_name_reg_ex{/config_reg_ex} | all}\n\
+\ -cleanBuild {project_name_reg_ex{/config_reg_ex} | all}\n\
+\ -markerType Marker types to fail build on {all | cdt | marker_id}\n\
+\ -no-indexer Disable indexer\n\
+\ -verbose Verbose progress monitor updates\n\
+\ -printErrorMarkers Print all error markers\n\
+\ -I {include_path} additional include_path to add to tools\n\
+\ -include {include_file} additional include_file to pass to tools\n\
+\ -D {prepoc_define} addition preprocessor defines to pass to the tools\n\
+\ -E {var=value} replace/add value to environment variable when running all tools\n\
+\ -Ea {var=value} append value to environment variable when running all tools\n\
+\ -Ep {var=value} prepend value to environment variable when running all tools\n\
+\ -Er {var} remove/unset the given environment variable\n\
+\ -T {toolid} {optionid=value} replace a tool option value in each configuration built\n\
+\ -Ta {toolid} {optionid=value} append to a tool option value in each configuration built\n\
+\ -Tp {toolid} {optionid=value} prepend to a tool option value in each configuration built\n\
+\ -Tr {toolid} {optionid=value} remove a tool option value in each configuration built\n\
+\ Tool option values are parsed as a string, comma separated list of strings or a boolean based on the option''s type\n\
+'
+
+WorkspaceRequired=A workspace is required to use of the headless builder application.\n
diff --git a/build/org.eclipse.cdt.managedbuilder.ui.tests/.classpath b/build/org.eclipse.cdt.managedbuilder.ui.tests/.classpath
index eca7bdba8f0..a42a828e04a 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui.tests/.classpath
+++ b/build/org.eclipse.cdt.managedbuilder.ui.tests/.classpath
@@ -1,7 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="src">
+ <attributes>
+ <attribute name="test" value="true"/>
+ </attributes>
+ </classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/build/org.eclipse.cdt.managedbuilder.ui.tests/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.managedbuilder.ui.tests/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.ui.tests/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.managedbuilder.ui.tests/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.managedbuilder.ui.tests/.settings/org.eclipse.jdt.core.prefs
index ad05599159f..5b1c443114d 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui.tests/.settings/org.eclipse.jdt.core.prefs
+++ b/build/org.eclipse.cdt.managedbuilder.ui.tests/.settings/org.eclipse.jdt.core.prefs
@@ -30,9 +30,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -49,6 +49,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
@@ -107,6 +108,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
@@ -144,13 +146,14 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -158,21 +161,24 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@@ -264,11 +270,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@@ -299,6 +306,8 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@@ -323,13 +332,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@@ -377,6 +390,8 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do no
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@@ -413,9 +428,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@@ -454,10 +472,14 @@ org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/build/org.eclipse.cdt.managedbuilder.ui.tests/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.managedbuilder.ui.tests/.settings/org.eclipse.jdt.ui.prefs
index e44576346c4..d35ba9b5231 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui.tests/.settings/org.eclipse.jdt.ui.prefs
+++ b/build/org.eclipse.cdt.managedbuilder.ui.tests/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,4 @@
+cleanup.add_all=false
cleanup.add_default_serial_version_id=true
cleanup.add_generated_serial_version_id=false
cleanup.add_missing_annotations=true
@@ -11,25 +12,72 @@ cleanup.always_use_blocks=true
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=false
cleanup.always_use_this_for_non_static_method_access=false
+cleanup.array_with_curly=false
+cleanup.arrays_fill=false
+cleanup.bitwise_conditional_expression=false
+cleanup.boolean_literal=false
+cleanup.boolean_value_rather_than_comparison=false
+cleanup.break_loop=false
+cleanup.collection_cloning=false
+cleanup.comparing_on_criteria=false
+cleanup.comparison_statement=false
+cleanup.controlflow_merge=false
cleanup.convert_functional_interfaces=false
cleanup.convert_to_enhanced_for_loop=false
+cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
+cleanup.convert_to_switch_expressions=false
cleanup.correct_indentation=false
+cleanup.do_while_rather_than_while=true
+cleanup.double_negation=false
+cleanup.else_if=false
+cleanup.embedded_if=false
+cleanup.evaluate_nullable=false
+cleanup.extract_increment=false
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
+cleanup.hash=false
+cleanup.if_condition=false
cleanup.insert_inferred_type_arguments=false
+cleanup.instanceof=false
+cleanup.instanceof_keyword=false
+cleanup.invert_equals=false
+cleanup.join=false
+cleanup.lazy_logical_operator=false
cleanup.make_local_variable_final=true
cleanup.make_parameters_final=false
cleanup.make_private_fields_final=true
cleanup.make_type_abstract_if_missing_method=false
cleanup.make_variable_declarations_final=false
+cleanup.map_cloning=false
+cleanup.merge_conditional_blocks=false
+cleanup.multi_catch=false
cleanup.never_use_blocks=false
cleanup.never_use_parentheses_in_expressions=true
+cleanup.no_string_creation=false
+cleanup.no_super=false
+cleanup.number_suffix=false
+cleanup.objects_equals=false
+cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
+cleanup.operand_factorization=false
cleanup.organize_imports=true
+cleanup.overridden_assignment=false
+cleanup.plain_replacement=false
+cleanup.precompile_regex=false
+cleanup.primitive_comparison=false
+cleanup.primitive_parsing=false
+cleanup.primitive_rather_than_wrapper=false
+cleanup.primitive_serialization=false
+cleanup.pull_out_if_from_if_else=false
+cleanup.pull_up_assignment=false
+cleanup.push_down_negation=false
cleanup.qualify_static_field_accesses_with_declaring_class=false
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
cleanup.qualify_static_member_accesses_with_declaring_class=false
cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.reduce_indentation=false
+cleanup.redundant_comparator=false
+cleanup.redundant_falling_through_block_end=false
cleanup.remove_private_constructors=true
cleanup.remove_redundant_modifiers=false
cleanup.remove_redundant_semicolons=true
@@ -37,25 +85,57 @@ cleanup.remove_redundant_type_arguments=true
cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true
cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_array_creation=false
cleanup.remove_unnecessary_casts=true
cleanup.remove_unnecessary_nls_tags=false
cleanup.remove_unused_imports=true
cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_method_parameters=false
cleanup.remove_unused_private_fields=true
cleanup.remove_unused_private_members=false
cleanup.remove_unused_private_methods=true
cleanup.remove_unused_private_types=true
+cleanup.return_expression=false
+cleanup.simplify_lambda_expression_and_method_ref=false
+cleanup.single_used_field=false
cleanup.sort_members=false
cleanup.sort_members_all=false
+cleanup.standard_comparison=false
+cleanup.static_inner_class=false
+cleanup.strictly_equal_or_different=false
+cleanup.stringbuffer_to_stringbuilder=false
+cleanup.stringbuilder=false
+cleanup.stringbuilder_for_local_vars=true
+cleanup.stringconcat_to_textblock=false
+cleanup.substring=false
+cleanup.switch=false
+cleanup.system_property=false
+cleanup.system_property_boolean=false
+cleanup.system_property_file_encoding=false
+cleanup.system_property_file_separator=false
+cleanup.system_property_line_separator=false
+cleanup.system_property_path_separator=false
+cleanup.ternary_operator=false
+cleanup.try_with_resource=false
+cleanup.unlooped_while=false
+cleanup.unreachable_block=false
cleanup.use_anonymous_class_creation=false
+cleanup.use_autoboxing=false
cleanup.use_blocks=false
cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_directly_map_method=false
cleanup.use_lambda=true
cleanup.use_parentheses_in_expressions=false
+cleanup.use_string_is_blank=false
cleanup.use_this_for_non_static_field_access=false
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
cleanup.use_this_for_non_static_method_access=false
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_unboxing=false
+cleanup.use_var=false
+cleanup.useless_continue=false
+cleanup.useless_return=false
+cleanup.valueof_rather_than_instantiation=false
cleanup_profile=_CDT
cleanup_settings_version=2
eclipse.preferences.version=1
diff --git a/build/org.eclipse.cdt.managedbuilder.ui.tests/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.managedbuilder.ui.tests/META-INF/MANIFEST.MF
index f254ecc7d39..5e6fbc608dc 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui.tests/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.managedbuilder.ui.tests/META-INF/MANIFEST.MF
@@ -1,10 +1,10 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
-Bundle-Name: Managed Build UI Tests Plug-in
+Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.ui.tests; singleton:=true
Bundle-Version: 8.2.1.qualifier
Bundle-Activator: org.eclipse.cdt.managedbuilder.ui.tests.testplugin.TestsPlugin
-Bundle-Vendor: Eclipse CDT
+Bundle-Vendor: %providerName
Bundle-Localization: plugin
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
@@ -16,7 +16,7 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.core.resources,
org.eclipse.cdt.managedbuilder.core.tests
Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
Export-Package: org.eclipse.cdt.managedbuilder.ui.tests,
org.eclipse.cdt.managedbuilder.ui.tests.suite,
org.eclipse.cdt.managedbuilder.ui.tests.testplugin,
diff --git a/build/org.eclipse.cdt.managedbuilder.ui.tests/about.html b/build/org.eclipse.cdt.managedbuilder.ui.tests/about.html
index 164f781a8fd..b3134865230 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui.tests/about.html
+++ b/build/org.eclipse.cdt.managedbuilder.ui.tests/about.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
</head>
+
<body lang="EN-US">
<h2>About This Content</h2>
@@ -16,7 +17,7 @@
(&quot;Content&quot;). Unless otherwise indicated below, the Content
is provided to you under the terms and conditions of the Eclipse
Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ available at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
@@ -29,8 +30,9 @@
license exists, contact the Redistributor. Unless otherwise indicated
below, the terms and conditions of the EPL still apply to any source
code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ href="https://www.eclipse.org/">https://www.eclipse.org</a>.
</p>
</body>
+
</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.managedbuilder.ui.tests/build.properties b/build/org.eclipse.cdt.managedbuilder.ui.tests/build.properties
index ab8f20d2598..c4dee840643 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui.tests/build.properties
+++ b/build/org.eclipse.cdt.managedbuilder.ui.tests/build.properties
@@ -15,6 +15,7 @@ source.. = src/
output.. = bin/
bin.includes = plugin.xml,\
.,\
+ plugin.properties,\
about.html,\
META-INF/
src.includes = about.html
diff --git a/build/org.eclipse.cdt.managedbuilder.ui.tests/plugin.properties b/build/org.eclipse.cdt.managedbuilder.ui.tests/plugin.properties
new file mode 100644
index 00000000000..d5ace30a63f
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.ui.tests/plugin.properties
@@ -0,0 +1,14 @@
+##################################################################################
+# Copyright (c) 2020 Torbjörn Svensson and others. All rights reserved.
+# This program and the accompanying materials are made available under the terms
+# of the Eclipse Public License 2.0 which accompanies this distribution, and is
+# available at https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+# Torbjörn Svensson - initial API and implementation
+##################################################################################
+
+pluginName = Managed Build UI Tests Plug-in
+providerName = Eclipse CDT
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/.classpath b/build/org.eclipse.cdt.managedbuilder.ui/.classpath
index 01836c4842f..e801ebfb468 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/.classpath
+++ b/build/org.eclipse.cdt.managedbuilder.ui/.classpath
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/.settings/.api_filters b/build/org.eclipse.cdt.managedbuilder.ui/.settings/.api_filters
new file mode 100644
index 00000000000..bf30b59e2c2
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.ui/.settings/.api_filters
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.cdt.managedbuilder.ui" version="2">
+ <resource path="src/org/eclipse/cdt/managedbuilder/ui/properties/DiscoveryTab.java" type="org.eclipse.cdt.managedbuilder.ui.properties.DiscoveryTab">
+ <filter comment="Squash over zealous warning from PDE. See Bug 558477" id="576725006">
+ <message_arguments>
+ <message_argument value="IBuildInfoContainer"/>
+ <message_argument value="DiscoveryTab"/>
+ </message_arguments>
+ </filter>
+ </resource>
+</component>
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.managedbuilder.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.ui/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.managedbuilder.ui/.settings/org.eclipse.jdt.core.prefs
index 2b6ecff8a01..e3a8104f9ca 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/.settings/org.eclipse.jdt.core.prefs
+++ b/build/org.eclipse.cdt.managedbuilder.ui/.settings/org.eclipse.jdt.core.prefs
@@ -30,9 +30,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -49,6 +49,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
@@ -107,6 +108,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
@@ -144,13 +146,14 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -158,21 +161,24 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@@ -264,11 +270,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@@ -299,6 +306,8 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@@ -323,13 +332,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@@ -377,6 +390,8 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do no
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@@ -413,9 +428,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@@ -454,10 +472,14 @@ org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.managedbuilder.ui/.settings/org.eclipse.jdt.ui.prefs
index e44576346c4..d35ba9b5231 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/.settings/org.eclipse.jdt.ui.prefs
+++ b/build/org.eclipse.cdt.managedbuilder.ui/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,4 @@
+cleanup.add_all=false
cleanup.add_default_serial_version_id=true
cleanup.add_generated_serial_version_id=false
cleanup.add_missing_annotations=true
@@ -11,25 +12,72 @@ cleanup.always_use_blocks=true
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=false
cleanup.always_use_this_for_non_static_method_access=false
+cleanup.array_with_curly=false
+cleanup.arrays_fill=false
+cleanup.bitwise_conditional_expression=false
+cleanup.boolean_literal=false
+cleanup.boolean_value_rather_than_comparison=false
+cleanup.break_loop=false
+cleanup.collection_cloning=false
+cleanup.comparing_on_criteria=false
+cleanup.comparison_statement=false
+cleanup.controlflow_merge=false
cleanup.convert_functional_interfaces=false
cleanup.convert_to_enhanced_for_loop=false
+cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
+cleanup.convert_to_switch_expressions=false
cleanup.correct_indentation=false
+cleanup.do_while_rather_than_while=true
+cleanup.double_negation=false
+cleanup.else_if=false
+cleanup.embedded_if=false
+cleanup.evaluate_nullable=false
+cleanup.extract_increment=false
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
+cleanup.hash=false
+cleanup.if_condition=false
cleanup.insert_inferred_type_arguments=false
+cleanup.instanceof=false
+cleanup.instanceof_keyword=false
+cleanup.invert_equals=false
+cleanup.join=false
+cleanup.lazy_logical_operator=false
cleanup.make_local_variable_final=true
cleanup.make_parameters_final=false
cleanup.make_private_fields_final=true
cleanup.make_type_abstract_if_missing_method=false
cleanup.make_variable_declarations_final=false
+cleanup.map_cloning=false
+cleanup.merge_conditional_blocks=false
+cleanup.multi_catch=false
cleanup.never_use_blocks=false
cleanup.never_use_parentheses_in_expressions=true
+cleanup.no_string_creation=false
+cleanup.no_super=false
+cleanup.number_suffix=false
+cleanup.objects_equals=false
+cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
+cleanup.operand_factorization=false
cleanup.organize_imports=true
+cleanup.overridden_assignment=false
+cleanup.plain_replacement=false
+cleanup.precompile_regex=false
+cleanup.primitive_comparison=false
+cleanup.primitive_parsing=false
+cleanup.primitive_rather_than_wrapper=false
+cleanup.primitive_serialization=false
+cleanup.pull_out_if_from_if_else=false
+cleanup.pull_up_assignment=false
+cleanup.push_down_negation=false
cleanup.qualify_static_field_accesses_with_declaring_class=false
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
cleanup.qualify_static_member_accesses_with_declaring_class=false
cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.reduce_indentation=false
+cleanup.redundant_comparator=false
+cleanup.redundant_falling_through_block_end=false
cleanup.remove_private_constructors=true
cleanup.remove_redundant_modifiers=false
cleanup.remove_redundant_semicolons=true
@@ -37,25 +85,57 @@ cleanup.remove_redundant_type_arguments=true
cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true
cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_array_creation=false
cleanup.remove_unnecessary_casts=true
cleanup.remove_unnecessary_nls_tags=false
cleanup.remove_unused_imports=true
cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_method_parameters=false
cleanup.remove_unused_private_fields=true
cleanup.remove_unused_private_members=false
cleanup.remove_unused_private_methods=true
cleanup.remove_unused_private_types=true
+cleanup.return_expression=false
+cleanup.simplify_lambda_expression_and_method_ref=false
+cleanup.single_used_field=false
cleanup.sort_members=false
cleanup.sort_members_all=false
+cleanup.standard_comparison=false
+cleanup.static_inner_class=false
+cleanup.strictly_equal_or_different=false
+cleanup.stringbuffer_to_stringbuilder=false
+cleanup.stringbuilder=false
+cleanup.stringbuilder_for_local_vars=true
+cleanup.stringconcat_to_textblock=false
+cleanup.substring=false
+cleanup.switch=false
+cleanup.system_property=false
+cleanup.system_property_boolean=false
+cleanup.system_property_file_encoding=false
+cleanup.system_property_file_separator=false
+cleanup.system_property_line_separator=false
+cleanup.system_property_path_separator=false
+cleanup.ternary_operator=false
+cleanup.try_with_resource=false
+cleanup.unlooped_while=false
+cleanup.unreachable_block=false
cleanup.use_anonymous_class_creation=false
+cleanup.use_autoboxing=false
cleanup.use_blocks=false
cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_directly_map_method=false
cleanup.use_lambda=true
cleanup.use_parentheses_in_expressions=false
+cleanup.use_string_is_blank=false
cleanup.use_this_for_non_static_field_access=false
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
cleanup.use_this_for_non_static_method_access=false
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_unboxing=false
+cleanup.use_var=false
+cleanup.useless_continue=false
+cleanup.useless_return=false
+cleanup.valueof_rather_than_instantiation=false
cleanup_profile=_CDT
cleanup_settings_version=2
eclipse.preferences.version=1
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.managedbuilder.ui/META-INF/MANIFEST.MF
index ccd25f10192..522af639b69 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.managedbuilder.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.ui; singleton:=true
-Bundle-Version: 9.1.300.qualifier
+Bundle-Version: 9.3.200.qualifier
Bundle-Activator: org.eclipse.cdt.managedbuilder.ui.properties.ManagedBuilderUIPlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin
@@ -14,17 +14,16 @@ Export-Package: org.eclipse.cdt.managedbuilder.internal.ui.commands;x-internal:=
Require-Bundle: org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
org.eclipse.core.variables;bundle-version="[3.1.100,4.0.0)",
- org.eclipse.cdt.core;bundle-version="[5.0.0,7.0.0)",
+ org.eclipse.cdt.core;bundle-version="[7.0.0,8.0.0)",
org.eclipse.cdt.make.core,
org.eclipse.cdt.make.ui,
- org.eclipse.cdt.managedbuilder.core;bundle-version="[8.7.0,9.0.0)",
- org.eclipse.cdt.ui;bundle-version="[6.0.0,7.0.0)",
+ org.eclipse.cdt.managedbuilder.core;bundle-version="[9.0.0,10.0.0]",
+ org.eclipse.cdt.ui;bundle-version="[7.0.0,8.0.0)",
org.eclipse.ui;bundle-version="[3.2.0,4.0.0)",
org.eclipse.ui.console;bundle-version="[3.5.100,4.0.0)",
org.eclipse.ui.ide;bundle-version="[3.2.0,4.0.0)",
org.eclipse.ui.navigator;bundle-version="[3.2.0,4.0.0)";resolution:=optional,
org.eclipse.core.expressions
Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: com.ibm.icu.text
+Bundle-RequiredExecutionEnvironment: JavaSE-11
Automatic-Module-Name: org.eclipse.cdt.managedbuilder.ui
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/about.html b/build/org.eclipse.cdt.managedbuilder.ui/about.html
index 164f781a8fd..b3134865230 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/about.html
+++ b/build/org.eclipse.cdt.managedbuilder.ui/about.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
</head>
+
<body lang="EN-US">
<h2>About This Content</h2>
@@ -16,7 +17,7 @@
(&quot;Content&quot;). Unless otherwise indicated below, the Content
is provided to you under the terms and conditions of the Eclipse
Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ available at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
@@ -29,8 +30,9 @@
license exists, contact the Redistributor. Unless otherwise indicated
below, the terms and conditions of the EPL still apply to any source
code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ href="https://www.eclipse.org/">https://www.eclipse.org</a>.
</p>
</body>
+
</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/plugin.properties b/build/org.eclipse.cdt.managedbuilder.ui/plugin.properties
index 14a4812b3e0..14a4812b3e0 100755..100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/plugin.properties
+++ b/build/org.eclipse.cdt.managedbuilder.ui/plugin.properties
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/plugin.xml b/build/org.eclipse.cdt.managedbuilder.ui/plugin.xml
index e9df66e8a4f..198bcea8041 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/plugin.xml
+++ b/build/org.eclipse.cdt.managedbuilder.ui/plugin.xml
@@ -884,6 +884,13 @@
ui-clear-entries="true"
ui-edit-entries="false">
</class-association>
+ <class-association
+ class="org.eclipse.cdt.managedbuilder.internal.language.settings.providers.CompilationDatabaseParser"
+ icon="icons/obj16/log_obj.gif"
+ page="org.eclipse.cdt.managedbuilder.internal.ui.language.settings.providers.CompilationDatabaseParserOptionPage"
+ ui-clear-entries="true"
+ ui-edit-entries="false">
+ </class-association>
</extension>
<extension
point="org.eclipse.cdt.core.CBuildConsole">
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/schema/buildDefinitionsUI.exsd b/build/org.eclipse.cdt.managedbuilder.ui/schema/buildDefinitionsUI.exsd
index d0515d1a9ac..e7a6e9941a3 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/schema/buildDefinitionsUI.exsd
+++ b/build/org.eclipse.cdt.managedbuilder.ui/schema/buildDefinitionsUI.exsd
@@ -64,7 +64,7 @@
<attribute name="class" type="string" use="required">
<annotation>
<documentation>
- Specifies the Java class which implements the custom field-editor. This class must extend JFace&apos;s &lt;code&gt;FieldEditor&lt;/code&gt; abstract class, and implement the &lt;code&gt;ICustomBuildOptionEditor&lt;/code&gt; interface.
+ Specifies the Java class which implements the custom field-editor. This class must extend JFace&apos;s &lt;code&gt;FieldEditor&lt;/code&gt; abstract class, and implement the &lt;code&gt;ICustomBuildOptionEditor2&lt;/code&gt; interface.
</documentation>
<appInfo>
<meta.attribute kind="java" basedOn="org.eclipse.jface.preference.FieldEditor:org.eclipse.cdt.managedbuilder.ui.properties.ICustomBuildOptionEditor"/>
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.java
index 3a388ebe293..1832851d0f3 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.java
@@ -23,6 +23,9 @@ public class Messages extends NLS {
public static String ArtifactTab_1;
public static String ArtifactTab_2;
public static String ArtifactTab_3;
+ public static String BuildBehaviourTab_Build_arguments;
+ public static String BuildBehaviourTab_Use_custom_build_arguments;
+ public static String BuildBehaviourTab_Use_standard_build_arguments;
public static String BuilderSettingsTab_0;
public static String BuilderSettingsTab_1;
public static String BuilderSettingsTab_10;
@@ -47,6 +50,7 @@ public class Messages extends NLS {
public static String BuilderSettingsTab_7;
public static String BuilderSettingsTab_8;
public static String BuilderSettingsTab_9;
+ public static String BuilderSettingsTab_Configure_Build_Arguments_In_the_Behavior_tab;
public static String BuildOptionSettingsUI_0;
public static String BuildPropertyPage_error_Unknown_tree_element;
public static String BuildStepsTab_0;
@@ -282,6 +286,10 @@ public class Messages extends NLS {
public static String WizardDefaultsTab_0;
public static String WizardDefaultsTab_1;
public static String RefreshPolicyTab_resourcesTreeLabel;
+ public static String BuilderSettingsTab_23;
+ public static String BuilderSettingsTab_24;
+ public static String BuilderSettingsTab_25;
+ public static String BuilderSettingsTab_26;
static {
// Initialize resource bundle.
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.properties b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.properties
index 2ef411bac4d..65a03e53d28 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.properties
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/Messages.properties
@@ -14,6 +14,9 @@
# Roberto Oliveira - Removed an unused message
###############################################################################
+BuildBehaviourTab_Use_custom_build_arguments=Use custom build arguments
+BuildBehaviourTab_Use_standard_build_arguments=Use standard build arguments
+BuildBehaviourTab_Build_arguments=Build arguments:\u0020
BuilderSettingsTab_0=Builder
BuilderSettingsTab_1=Builder &type:
BuilderSettingsTab_2=External builder
@@ -38,6 +41,11 @@ BuilderSettingsTab_19=Build (Incremental build)
BuilderSettingsTab_20=Clean
BuilderSettingsTab_21=Build location
BuilderSettingsTab_22=Build &directory:
+BuilderSettingsTab_23=Confirm toolchain change
+BuilderSettingsTab_24=Changing toolchain will reset all tool settings to default values. Existing settings will be unrecoverable.
+BuilderSettingsTab_25=Continue
+BuilderSettingsTab_26=Cancel
+BuilderSettingsTab_Configure_Build_Arguments_In_the_Behavior_tab=Configure build arguments in the Behavior tab.
BuildStepsTab_0=Command:
BuildStepsTab_1=Description:
BuildStepsTab_2=Pre-build steps
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/commands/BuildConfigurationsJob.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/commands/BuildConfigurationsJob.java
index 82683d692be..b0a9dcc5ca0 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/commands/BuildConfigurationsJob.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/commands/BuildConfigurationsJob.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2010, 2014 Andrew Gvozdev and others.
+ * Copyright (c) 2010, 2020 Andrew Gvozdev and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,9 +10,12 @@
*
* Contributors:
* Andrew Gvozdev (Quoin Inc) - initial API and implementation
+ * Sergei Kovalchuk (NXP USA Inc)
*******************************************************************************/
package org.eclipse.cdt.managedbuilder.internal.ui.commands;
+import java.text.MessageFormat;
+
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
@@ -25,8 +28,6 @@ import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
-import com.ibm.icu.text.MessageFormat;
-
/**
* A job to build CDT build configurations.
*/
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/commands/Messages.properties b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/commands/Messages.properties
index 7dc301b4501..7dc301b4501 100755..100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/commands/Messages.properties
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/commands/Messages.properties
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/CompilationDatabaseParserOptionPage.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/CompilationDatabaseParserOptionPage.java
new file mode 100644
index 00000000000..4063eaaca25
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/CompilationDatabaseParserOptionPage.java
@@ -0,0 +1,309 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Marc-Andre Laperle.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************/
+package org.eclipse.cdt.managedbuilder.internal.ui.language.settings.providers;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvider;
+import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvidersKeeper;
+import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
+import org.eclipse.cdt.internal.ui.newui.StatusMessageLine;
+import org.eclipse.cdt.managedbuilder.internal.language.settings.providers.CompilationDatabaseParser;
+import org.eclipse.cdt.managedbuilder.language.settings.providers.AbstractBuildCommandParser;
+import org.eclipse.cdt.managedbuilder.ui.properties.ManagedBuilderUIPlugin;
+import org.eclipse.cdt.ui.language.settings.providers.AbstractLanguageSettingProviderOptionPage;
+import org.eclipse.cdt.ui.newui.AbstractCPropertyTab;
+import org.eclipse.cdt.utils.ui.controls.ControlFactory;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * Options page for {@link CompilationDatabaseParser}.
+ *
+ * @noinstantiate This class is not intended to be instantiated by clients.
+ */
+public final class CompilationDatabaseParserOptionPage extends AbstractLanguageSettingProviderOptionPage {
+ private boolean fEditable;
+ private Text fCompileCommandsPath;
+
+ @SuppressWarnings("restriction")
+ private StatusMessageLine fStatusLine;
+ private Combo fBuildOutputParserCombo;
+
+ @Override
+ public void createControl(Composite parent) {
+ fEditable = parent.isEnabled();
+ CompilationDatabaseParser provider = (CompilationDatabaseParser) getProvider();
+
+ Composite composite = createCompositeForPageArea(parent);
+ createCompileCommandsPathInputControl(composite, provider);
+ createBrowseButton(composite);
+ createOutputParserCombo(composite);
+ createExclusionOptions(composite);
+ createStatusLine(composite, provider);
+
+ setControl(composite);
+ }
+
+ private Composite createCompositeForPageArea(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NONE);
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 3;
+ layout.marginWidth = 1;
+ layout.marginHeight = 1;
+ layout.marginRight = 1;
+ composite.setLayout(layout);
+ composite.setLayoutData(new GridData(GridData.FILL_BOTH));
+ Dialog.applyDialogFont(composite);
+
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 3;
+ composite.setLayoutData(gd);
+ return composite;
+ }
+
+ private void createCompileCommandsPathInputControl(Composite composite, CompilationDatabaseParser provider) {
+ Label label = ControlFactory.createLabel(composite,
+ Messages.CompilationDatabaseParserOptionPage_CompileCommandsPath);
+ GridData gd = new GridData();
+ gd.horizontalSpan = 3;
+ label.setLayoutData(gd);
+ label.setEnabled(fEditable);
+
+ fCompileCommandsPath = ControlFactory.createTextField(composite, SWT.SINGLE | SWT.BORDER);
+ String command = provider.getCompilationDataBasePathProperty();
+ fCompileCommandsPath.setText(command != null ? command : ""); //$NON-NLS-1$
+ fCompileCommandsPath.setEnabled(fEditable);
+ fCompileCommandsPath.addModifyListener(new ModifyListener() {
+ @Override
+ public void modifyText(ModifyEvent e) {
+ String text = fCompileCommandsPath.getText();
+ CompilationDatabaseParser provider = (CompilationDatabaseParser) getProvider();
+ if (provider.getCompilationDataBasePathProperty() == null
+ || !text.equals(provider.getCompilationDataBasePathProperty())) {
+ CompilationDatabaseParser selectedProvider = (CompilationDatabaseParser) getProviderWorkingCopy();
+ selectedProvider.setCompilationDataBasePathProperty(text);
+ refreshItem(selectedProvider);
+ validate();
+ }
+ }
+ });
+ }
+
+ private void createBrowseButton(Composite composite) {
+ Button fileSystemButton = ControlFactory.createPushButton(composite,
+ Messages.CompilationDatabaseParserOptionPage_FileSystem);
+ fileSystemButton.setEnabled(fEditable);
+ fileSystemButton.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent evt) {
+ FileDialog dialog = new FileDialog(getShell(), SWT.OPEN | SWT.SHEET);
+ dialog.setText(Messages.CompilationDatabaseParserOptionPage_ChooseFile);
+ String fileName = fCompileCommandsPath.getText();
+ IPath folder = new Path(fileName).removeLastSegments(1);
+ dialog.setFilterPath(folder.toOSString());
+ String chosenFile = dialog.open();
+ if (chosenFile != null) {
+ fCompileCommandsPath.setText(chosenFile);
+ }
+ }
+ });
+
+ Button variablesButton = ControlFactory.createPushButton(composite,
+ Messages.CompilationDatabaseParserOptionPage_Variables);
+ variablesButton.setEnabled(fEditable);
+ variablesButton.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ String result = AbstractCPropertyTab.getVariableDialog(getShell(), getConfigurationDescription());
+ if (result != null) {
+ fCompileCommandsPath.setText(result);
+ }
+ }
+ });
+ }
+
+ private void createOutputParserCombo(Composite composite) {
+ ICConfigurationDescription configurationDescription = getConfigurationDescription();
+ List<AbstractBuildCommandParser> buildParsers = new ArrayList<>();
+ if (configurationDescription instanceof ILanguageSettingsProvidersKeeper) {
+ List<ILanguageSettingsProvider> settingProviders = ((ILanguageSettingsProvidersKeeper) configurationDescription)
+ .getLanguageSettingProviders();
+ for (ILanguageSettingsProvider languageSettingsProvider : settingProviders) {
+ if (languageSettingsProvider instanceof AbstractBuildCommandParser) {
+ AbstractBuildCommandParser buildParser = (AbstractBuildCommandParser) languageSettingsProvider;
+ buildParsers.add(buildParser);
+ }
+ }
+ }
+
+ Label parserLabel = ControlFactory.createLabel(composite,
+ Messages.CompilationDatabaseParserOptionPage_BuildParser);
+ GridData gd = new GridData(SWT.BEGINNING);
+ gd.horizontalSpan = 3;
+ parserLabel.setLayoutData(gd);
+
+ fBuildOutputParserCombo = new Combo(composite, SWT.READ_ONLY);
+ fBuildOutputParserCombo.setEnabled(fEditable);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 3;
+ fBuildOutputParserCombo.setLayoutData(gd);
+ if (buildParsers.isEmpty()) {
+ fBuildOutputParserCombo.add(Messages.CompilationDatabaseParserOptionPage_NoBuildOutputParserError);
+ fBuildOutputParserCombo.select(0);
+ fBuildOutputParserCombo.setEnabled(false);
+ // Can't call getProviderWorkingCopy().setBuildParserId() while creating the page since
+ // it will try to replace the selected provider in the table which
+ // doesn't have a proper selection index until one of them is clicked.
+ // Use combo.setData to encode invalid/valid data then set it on the working copy on setVisible(true)/validate.
+ fBuildOutputParserCombo.setData(null);
+ return;
+ }
+
+ for (int i = 0; i < buildParsers.size(); i++) {
+ AbstractBuildCommandParser buildParser = buildParsers.get(i);
+ fBuildOutputParserCombo.add(buildParser.getName());
+ fBuildOutputParserCombo.setData(buildParser.getName(), buildParser);
+ if (buildParser.getId().equals(((CompilationDatabaseParser) getProvider()).getBuildParserId())) {
+ fBuildOutputParserCombo.select(i);
+ fBuildOutputParserCombo.setData(buildParser.getId());
+ }
+ }
+
+ fBuildOutputParserCombo.addModifyListener(new ModifyListener() {
+ @Override
+ public void modifyText(ModifyEvent e) {
+ AbstractBuildCommandParser parser = (AbstractBuildCommandParser) fBuildOutputParserCombo
+ .getData(fBuildOutputParserCombo.getText());
+ CompilationDatabaseParser selectedProvider = (CompilationDatabaseParser) getProviderWorkingCopy();
+ String parserId = ""; //$NON-NLS-1$
+ if (parser != null) {
+ parserId = parser.getId();
+ }
+ selectedProvider.setBuildParserId(parserId);
+ fBuildOutputParserCombo.setData(parserId);
+ validate();
+ }
+ });
+
+ }
+
+ private void createExclusionOptions(Composite parent) {
+ Button keepExclusion = new Button(parent, SWT.CHECK);
+ keepExclusion.setText(Messages.CompilationDatabaseParserOptionPage_ExcludeFiles);
+ GridData gd = new GridData(SWT.BEGINNING);
+ gd.horizontalSpan = 3;
+ keepExclusion.setLayoutData(gd);
+
+ keepExclusion.setSelection(((CompilationDatabaseParser) getProvider()).getExcludeFiles());
+ keepExclusion.setEnabled(fEditable);
+ keepExclusion.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ CompilationDatabaseParser selectedProvider = (CompilationDatabaseParser) getProviderWorkingCopy();
+ selectedProvider.setExcludeFiles(keepExclusion.getSelection());
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+ }
+
+ @SuppressWarnings("restriction")
+ private void createStatusLine(Composite composite, CompilationDatabaseParser provider) {
+ fStatusLine = new StatusMessageLine(composite, SWT.LEFT, 2);
+ }
+
+ @SuppressWarnings("restriction")
+ @Override
+ public void performApply(IProgressMonitor monitor) throws CoreException {
+ ILanguageSettingsProvider provider = providerTab.getProvider(providerId);
+ if ((provider instanceof CompilationDatabaseParser)) { // basically check for working copy
+ CompilationDatabaseParser compilationDatabaseParser = (CompilationDatabaseParser) provider;
+ ILanguageSettingsProvider initialProvider = providerTab.getInitialProvider(providerId);
+ if (!(initialProvider instanceof CompilationDatabaseParser)
+ || !((CompilationDatabaseParser) initialProvider).getCompilationDataBasePathProperty()
+ .equals(compilationDatabaseParser.getCompilationDataBasePathProperty())
+ || !((CompilationDatabaseParser) initialProvider).getBuildParserId()
+ .equals(compilationDatabaseParser.getBuildParserId())
+ || ((CompilationDatabaseParser) initialProvider).getExcludeFiles() != compilationDatabaseParser
+ .getExcludeFiles()) {
+ compilationDatabaseParser.clear();
+ }
+ if (compilationDatabaseParser.isEmpty()) {
+ compilationDatabaseParser.processCompileCommandsFile(monitor, getConfigurationDescription());
+ }
+ }
+
+ super.performApply(monitor);
+ }
+
+ @SuppressWarnings("restriction")
+ private void validate() {
+ if (fBuildOutputParserCombo.getData() == null) {
+ ((CompilationDatabaseParser) getProviderWorkingCopy()).setBuildParserId(null);
+ }
+
+ CompilationDatabaseParser provider = (CompilationDatabaseParser) getProvider();
+ try {
+ provider.resolveCompilationDataBasePath(getConfigurationDescription());
+ } catch (CoreException e) {
+ fStatusLine.setErrorStatus(e.getStatus());
+ return;
+ }
+
+ if (provider.getBuildParserId() == null || provider.getBuildParserId().isEmpty()) {
+ fStatusLine.setErrorStatus(new Status(IStatus.ERROR, ManagedBuilderUIPlugin.getUniqueIdentifier(),
+ Messages.CompilationDatabaseParserOptionPage_BuildOutputParserError));
+ return;
+ }
+
+ fStatusLine.setErrorStatus(Status.OK_STATUS);
+ }
+
+ private ICConfigurationDescription getConfigurationDescription() {
+ if (providerTab.page.isForPrefs()) {
+ return null;
+ }
+
+ return providerTab.getResDesc().getConfiguration().getConfiguration();
+ }
+
+ @Override
+ public void setVisible(boolean visible) {
+ super.setVisible(visible);
+ if (visible && fEditable) {
+ validate();
+ }
+ }
+}
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/Messages.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/Messages.java
new file mode 100644
index 00000000000..7bd2de6cb2f
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/Messages.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Marc-Andre Laperle.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************/
+package org.eclipse.cdt.managedbuilder.internal.ui.language.settings.providers;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.cdt.managedbuilder.internal.ui.language.settings.providers.messages"; //$NON-NLS-1$
+ public static String CompilationDatabaseParserOptionPage_FileSystem;
+ public static String CompilationDatabaseParserOptionPage_BuildOutputParserError;
+ public static String CompilationDatabaseParserOptionPage_BuildParser;
+ public static String CompilationDatabaseParserOptionPage_ChooseFile;
+ public static String CompilationDatabaseParserOptionPage_CompileCommandsPath;
+ public static String CompilationDatabaseParserOptionPage_CompileCommandsPathError;
+ public static String CompilationDatabaseParserOptionPage_ExcludeFiles;
+ public static String CompilationDatabaseParserOptionPage_NoBuildOutputParserError;
+ public static String CompilationDatabaseParserOptionPage_Variables;
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/messages.properties b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/messages.properties
new file mode 100644
index 00000000000..a4598825ec2
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/language/settings/providers/messages.properties
@@ -0,0 +1,20 @@
+################################################################################
+# Copyright (c) 2019 Marc-Andre Laperle.
+#
+# This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+################################################################################
+
+CompilationDatabaseParserOptionPage_FileSystem=File &System...
+CompilationDatabaseParserOptionPage_BuildOutputParserError=Invalid build parser
+CompilationDatabaseParserOptionPage_BuildParser=Build parser:
+CompilationDatabaseParserOptionPage_ChooseFile=Choose File
+CompilationDatabaseParserOptionPage_CompileCommandsPath=Compilation Database path (compile_commands.json):
+CompilationDatabaseParserOptionPage_CompileCommandsPathError=Compilation Database path does not exist
+CompilationDatabaseParserOptionPage_ExcludeFiles=Exclude files not in the Compilation Database
+CompilationDatabaseParserOptionPage_NoBuildOutputParserError=No build output parser enabled in "Providers"
+CompilationDatabaseParserOptionPage_Variables=Variables...
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/wizards/Messages.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/wizards/Messages.java
new file mode 100644
index 00000000000..b9c0506d206
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/wizards/Messages.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2020 Marc-Andre Laperle.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************/
+
+package org.eclipse.cdt.managedbuilder.internal.ui.wizards;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.cdt.managedbuilder.internal.ui.wizards.messages"; //$NON-NLS-1$
+ public static String WizardMakeProjectConversion_title;
+ public static String WizardMakeProjectConversion_description;
+ public static String WizardMakeProjectConversion_monitor_convertingToMakeProject;
+ public static String WizardMakeProjectConversion_projectOptions_title;
+ public static String WizardMakeProjectConversion_projectOptions_projectType;
+ public static String WizardMakeProjectConversion_projectOptions_projectTypeTable;
+ public static String WizardMakeProjectConversion_projectOptions_showSuppressed;
+
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/wizards/messages.properties b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/wizards/messages.properties
new file mode 100644
index 00000000000..9310ffef0fe
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/wizards/messages.properties
@@ -0,0 +1,18 @@
+###############################################################################
+# Copyright (c) 2020 Marc-Andre Laperle and others.
+#
+# This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+###############################################################################
+
+WizardMakeProjectConversion_title=Convert to a C/C++ project
+WizardMakeProjectConversion_description=The wizard adds C/C++ Nature to the selected projects to enable C/C++ Tools Support for them.
+WizardMakeProjectConversion_monitor_convertingToMakeProject=Converting to C/C++ Project...
+WizardMakeProjectConversion_projectOptions_title=Project options
+WizardMakeProjectConversion_projectOptions_projectType=Specify project type
+WizardMakeProjectConversion_projectOptions_projectTypeTable=Project type:
+WizardMakeProjectConversion_projectOptions_showSuppressed=Show project types and toolchains only if they are supported on the platform
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildBehaviourTab.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildBehaviourTab.java
index af690ef55ef..2151ada3d06 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildBehaviourTab.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildBehaviourTab.java
@@ -58,8 +58,12 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
private static final int SPINNER_MAX_VALUE = 10000;
private static final int SPINNER_MIN_VALUE = 2;
- private static final int TRI_STATES_SIZE = 4;
+ private static final int TRI_STATES_SIZE = 7;
// Widgets
+ private Button r_useStandardBuildArguments;
+ private Button r_useCustomBuildArguments;
+ private Text t_buildArguments;
+
//3
private Button b_stopOnError; // 3
private Button b_parallel; // 3
@@ -69,6 +73,8 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
private Button b_parallelUnlimited;
private Spinner s_parallelNumber;
+ private Group grp_buildSettings;
+
private Label title2;
private Button b_autoBuild; //3
private Text t_autoBuild;
@@ -89,37 +95,35 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
usercomp.setLayout(new GridLayout(1, false));
// Build setting group
- Group g3 = setupGroup(usercomp, Messages.BuilderSettingsTab_9, 2, GridData.FILL_HORIZONTAL);
+ grp_buildSettings = setupGroup(usercomp, Messages.BuilderSettingsTab_9, 2, GridData.FILL_HORIZONTAL);
GridLayout gl = new GridLayout(2, true);
gl.verticalSpacing = 0;
gl.marginWidth = 0;
- g3.setLayout(gl);
+ grp_buildSettings.setLayout(gl);
- Composite c1 = new Composite(g3, SWT.NONE);
+ r_useStandardBuildArguments = setupRadio(grp_buildSettings,
+ Messages.BuildBehaviourTab_Use_standard_build_arguments, 3, GridData.BEGINNING);
+
+ Composite c1 = new Composite(grp_buildSettings, SWT.NONE);
setupControl(c1, 1, GridData.FILL_BOTH);
GridData gd = (GridData) c1.getLayoutData();
gd.verticalSpan = 2;
gd.verticalIndent = 0;
c1.setLayoutData(gd);
gl = new GridLayout(1, false);
- gl.verticalSpacing = 0;
- gl.marginWidth = 0;
- gl.marginHeight = 0;
c1.setLayout(gl);
b_stopOnError = setupCheck(c1, Messages.BuilderSettingsTab_10, 1, GridData.BEGINNING);
+ ((GridData) (b_stopOnError.getLayoutData())).horizontalIndent = 15;
- Composite c2 = new Composite(g3, SWT.NONE);
+ Composite c2 = new Composite(grp_buildSettings, SWT.NONE);
setupControl(c2, 1, GridData.FILL_BOTH);
gl = new GridLayout(1, false);
- gl.verticalSpacing = 0;
- gl.marginWidth = 0;
- gl.marginHeight = 0;
c2.setLayout(gl);
b_parallel = setupCheck(c2, Messages.BuilderSettingsTab_EnableParallelBuild, 1, GridData.BEGINNING);
- Composite c3 = new Composite(g3, SWT.NONE);
+ Composite c3 = new Composite(grp_buildSettings, SWT.NONE);
setupControl(c3, 1, GridData.FILL_BOTH);
gl = new GridLayout(2, false);
gl.verticalSpacing = 0;
@@ -191,6 +195,24 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
}
});
+ r_useCustomBuildArguments = setupRadio(grp_buildSettings, Messages.BuildBehaviourTab_Use_custom_build_arguments,
+ 3, GridData.BEGINNING);
+ Composite c0 = setupComposite(grp_buildSettings, 3, GridData.FILL_BOTH);
+ setupControl(c0, 2, GridData.FILL_BOTH);
+ setupLabel(c0, Messages.BuildBehaviourTab_Build_arguments, 1, GridData.BEGINNING);
+ t_buildArguments = setupBlock(c0, r_useCustomBuildArguments);
+ t_buildArguments.addModifyListener(new ModifyListener() {
+ @Override
+ public void modifyText(ModifyEvent e) {
+ if (!canModify)
+ return;
+ String buildArgs = t_buildArguments.getText().trim();
+ if (!buildArgs.equals(bldr.getArguments())) {
+ setArguments(buildArgs);
+ }
+ }
+ });
+
// Workbench behaviour group
AccessibleListener makeTargetLabelAccessibleListener = new AccessibleAdapter() {
@Override
@@ -240,19 +262,28 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
* @return:
* Mode 0:
* 0: bld.isManagedBuildOn()
- * 1: bld.isDefaultBuildCmd()
+ * 1: N/A
* 2: bld.canKeepEnvironmentVariablesInBuildfile()
* 3: bld.keepEnvironmentVariablesInBuildfile()
+ * 4: bld.isDefaultBuildCmdOnly()
+ * 5: bld.isDefaultBuildArgsOnly()
+ * 6: !bld.isDefaultBuildArgsOnly()
* Mode 1:
* 0: isStopOnError
* 1: supportsStopOnError(true)
* 2: bld.supportsStopOnError(false)
* 3: N/A
+ * 4: N/A
+ * 5: bld.isDefaultBuildArgsOnly()
+ * 6: !bld.isDefaultBuildArgsOnly()
* Mode 2:
* 0: b.isAutoBuildEnable()
* 1: b.isIncrementalBuildEnabled()
* 2: b.isCleanBuildEnabled()
* 3: N/A
+ * 4: N/A
+ * 5: N/A
+ * 6: N/A
*/
static int[] calc3states(ICPropertyProvider p, IConfiguration mcfg, int mode) {
if (p.isMultiCfg() && mcfg instanceof ICMultiItemsHolder) {
@@ -264,17 +295,18 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
int[] res = new int[TRI_STATES_SIZE];
boolean[] b = new boolean[TRI_STATES_SIZE];
b[0] = m0 ? bldr0.isManagedBuildOn() : (m1 ? bldr0.isStopOnError() : bldr0.isAutoBuildEnable());
- b[1] = m0 ? bldr0.isDefaultBuildCmd()
- : (m1 ? bldr0.supportsStopOnError(true) : bldr0.isIncrementalBuildEnabled());
+ b[1] = m0 ? true : (m1 ? bldr0.supportsStopOnError(true) : bldr0.isIncrementalBuildEnabled());
b[2] = m0 ? bldr0.canKeepEnvironmentVariablesInBuildfile()
: (m1 ? bldr0.supportsStopOnError(false) : bldr0.isCleanBuildEnabled());
b[3] = m0 ? bldr0.keepEnvironmentVariablesInBuildfile() : false;
+ b[4] = m0 ? bldr0.isDefaultBuildCmdOnly() : false;
+ b[5] = (m0 || m1) ? bldr0.isDefaultBuildArgsOnly() : false;
+ b[6] = (m0 || m1) ? !bldr0.isDefaultBuildArgsOnly() : false;
for (int i = 1; i < cfgs.length; i++) {
IBuilder bldr = cfgs[i].getBuilder();
if (b[0] != (m0 ? bldr.isManagedBuildOn() : (m1 ? bldr.isStopOnError() : bldr.isAutoBuildEnable())))
res[0] = TRI_UNKNOWN;
- if (b[1] != (m0 ? bldr.isDefaultBuildCmd()
- : (m1 ? bldr.supportsStopOnError(true) : bldr.isIncrementalBuildEnabled())))
+ if (b[1] != (m0 ? true : (m1 ? bldr.supportsStopOnError(true) : bldr.isIncrementalBuildEnabled())))
res[1] = TRI_UNKNOWN;
if (b[2] != (m0 ? bldr.canKeepEnvironmentVariablesInBuildfile()
: (m1 ? bldr.supportsStopOnError(false) : bldr.isCleanBuildEnabled())))
@@ -282,6 +314,15 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
if (b[3] != (m0 ? bldr.keepEnvironmentVariablesInBuildfile() : false)) {
res[3] = TRI_UNKNOWN;
}
+ if (b[4] != (m0 ? bldr.isDefaultBuildCmdOnly() : false)) {
+ res[4] = TRI_UNKNOWN;
+ }
+ if (b[5] != ((m0 || m1) ? bldr.isDefaultBuildArgsOnly() : false)) {
+ res[5] = TRI_UNKNOWN;
+ }
+ if (b[6] != ((m0 || m1) ? !bldr.isDefaultBuildArgsOnly() : false)) {
+ res[6] = TRI_UNKNOWN;
+ }
}
for (int i = 0; i < TRI_STATES_SIZE; i++) {
if (res[i] != TRI_UNKNOWN)
@@ -301,17 +342,45 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
bldr = (Builder) icfg.getEditableBuilder();
canModify = false;
int[] extStates = calc3states(page, icfg, 1);
+ boolean external = !isInternalBuilderEnabled();
+
+ // use standard build args
+ if (extStates == null) { // no extended states available
+ setTriSelection(r_useStandardBuildArguments, bldr.isDefaultBuildArgsOnly());
+ setTriSelection(r_useCustomBuildArguments, !bldr.isDefaultBuildArgsOnly());
+ } else {
+ int standardTri = extStates[5];
+ int customTri = extStates[6];
+ if (standardTri == TRI_UNKNOWN || customTri == TRI_UNKNOWN) {
+ setTriSelection(r_useStandardBuildArguments, TRI_UNKNOWN);
+ setTriSelection(r_useCustomBuildArguments, TRI_UNKNOWN);
+ } else {
+ setTriSelection(r_useStandardBuildArguments, standardTri);
+ setTriSelection(r_useCustomBuildArguments, customTri);
+ }
+ }
+ t_buildArguments.setText(nonNull(icfg.getBuildArguments()));
+ r_useStandardBuildArguments.setEnabled(external);
+ r_useCustomBuildArguments.setEnabled(external);
+ if (external) {
+ checkPressed(r_useCustomBuildArguments, false); // do not update
+ }
// Stop on error
- if (extStates != null) {
- setTriSelection(b_stopOnError, extStates[0]);
- b_stopOnError.setEnabled(extStates[1] == TRI_YES && extStates[2] == TRI_YES);
+ boolean defaultBuildArguments = bldr.isDefaultBuildArgsOnly();
+ if (defaultBuildArguments) {
+ if (extStates != null) {
+ setTriSelection(b_stopOnError, extStates[0]);
+ b_stopOnError.setEnabled(extStates[1] == TRI_YES && extStates[2] == TRI_YES);
+ } else {
+ setTriSelection(b_stopOnError, bldr.isStopOnError());
+ b_stopOnError.setEnabled(bldr.supportsStopOnError(true) && bldr.supportsStopOnError(false));
+ }
} else {
- setTriSelection(b_stopOnError, bldr.isStopOnError());
- b_stopOnError.setEnabled(bldr.supportsStopOnError(true) && bldr.supportsStopOnError(false));
+ b_stopOnError.setEnabled(defaultBuildArguments);
}
- updateParallelBlock();
+ updateParallelBlock(defaultBuildArguments);
// Build commands
extStates = calc3states(page, icfg, 2);
@@ -337,7 +406,6 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
t_cmdClean.setText(bldr.getBuildAttribute(IBuilder.BUILD_TARGET_CLEAN, EMPTY_STR));
}
- boolean external = !isInternalBuilderEnabled();
title2.setVisible(external);
t_autoBuild.setVisible(external);
((Control) t_autoBuild.getData()).setVisible(external);
@@ -354,7 +422,7 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
canModify = true;
}
- private void updateParallelBlock() {
+ private void updateParallelBlock(boolean defaultBuildArguments) {
// note: for multi-config selection bldr is from Active cfg
boolean isParallelSupported = bldr.supportsParallelBuild();
@@ -399,30 +467,42 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
s_parallelNumber.setVisible(isParallelSupported);
if (isParallelSupported) {
- setTriSelection(b_parallel, triSelection);
- boolean isParallelSelected = b_parallel.getSelection();
-
- b_parallelOptimal
- .setText(MessageFormat.format(Messages.BuilderSettingsTab_UseOptimalJobs, optimalParallelNumber));
- b_parallelOptimal.setEnabled(isParallelSelected);
- b_parallelSpecific.setEnabled(isParallelSelected);
- b_parallelUnlimited.setEnabled(isParallelSelected);
-
- if (isParallelSelected) {
- boolean isOptimal = parallelizationNumInternal <= 0;
- boolean isUnlimited = parallelizationNumInternal == Builder.UNLIMITED_JOBS;
-
- b_parallelOptimal.setSelection(isOptimal);
- b_parallelSpecific.setSelection(!isOptimal && !isUnlimited);
- b_parallelUnlimited.setSelection(isUnlimited);
- s_parallelNumber.setEnabled(b_parallelSpecific.getEnabled() && b_parallelSpecific.getSelection());
- s_parallelNumber.setSelection(s_parallelNumber.isEnabled() ? parallelNumber : optimalParallelNumber);
+ if (defaultBuildArguments) {
+ b_parallel.setEnabled(true);
+ s_parallelNumber.setEnabled(true);
+
+ setTriSelection(b_parallel, triSelection);
+ boolean isParallelSelected = b_parallel.getSelection();
+
+ b_parallelOptimal.setText(
+ MessageFormat.format(Messages.BuilderSettingsTab_UseOptimalJobs, optimalParallelNumber));
+ b_parallelOptimal.setEnabled(isParallelSelected);
+ b_parallelSpecific.setEnabled(isParallelSelected);
+ b_parallelUnlimited.setEnabled(isParallelSelected);
+
+ if (isParallelSelected) {
+ boolean isOptimal = parallelizationNumInternal <= 0;
+ boolean isUnlimited = parallelizationNumInternal == Builder.UNLIMITED_JOBS;
+
+ b_parallelOptimal.setSelection(isOptimal);
+ b_parallelSpecific.setSelection(!isOptimal && !isUnlimited);
+ b_parallelUnlimited.setSelection(isUnlimited);
+ s_parallelNumber.setEnabled(b_parallelSpecific.getEnabled() && b_parallelSpecific.getSelection());
+ s_parallelNumber
+ .setSelection(s_parallelNumber.isEnabled() ? parallelNumber : optimalParallelNumber);
+ } else {
+ b_parallelOptimal.setSelection(true);
+ b_parallelSpecific.setSelection(false);
+ b_parallelUnlimited.setSelection(false);
+ s_parallelNumber.setEnabled(false);
+ s_parallelNumber.setSelection(optimalParallelNumber);
+ }
} else {
- b_parallelOptimal.setSelection(true);
- b_parallelSpecific.setSelection(false);
- b_parallelUnlimited.setSelection(false);
+ b_parallel.setEnabled(false);
+ b_parallelOptimal.setEnabled(false);
+ b_parallelSpecific.setEnabled(false);
+ b_parallelUnlimited.setEnabled(false);
s_parallelNumber.setEnabled(false);
- s_parallelNumber.setSelection(optimalParallelNumber);
}
}
}
@@ -527,12 +607,16 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
static void copyBuilders(IBuilder b1, IBuilder b2) {
try {
- b2.setUseDefaultBuildCmd(b1.isDefaultBuildCmd());
- if (!b1.isDefaultBuildCmd()) {
+ b2.setUseDefaultBuildCmdOnly(b1.isDefaultBuildCmdOnly());
+ b2.setUseDefaultBuildArgsOnly(b1.isDefaultBuildArgsOnly());
+ if (!b1.isDefaultBuildCmdOnly()) {
b2.setCommand(b1.getCommand());
- b2.setArguments(b1.getArguments());
} else {
b2.setCommand(null);
+ }
+ if (!b1.isDefaultBuildArgsOnly()) {
+ b2.setArguments(b1.getArguments());
+ } else {
b2.setArguments(null);
}
b2.setStopOnError(b1.isStopOnError());
@@ -582,6 +666,18 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
updateData(getResDesc());
}
+ private void setArguments(String makeArgs) {
+ if (icfg instanceof IMultiConfiguration) {
+ IConfiguration[] cfs = (IConfiguration[]) ((IMultiConfiguration) icfg).getItems();
+ for (int i = 0; i < cfs.length; i++) {
+ IBuilder b = cfs[i].getEditableBuilder();
+ b.setArguments(makeArgs);
+ }
+ } else {
+ icfg.getEditableBuilder().setArguments(makeArgs);
+ }
+ }
+
private void setParallelDef(boolean def) {
if (icfg instanceof Configuration)
((Configuration) icfg).setParallelDef(def);
@@ -626,7 +722,11 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
IConfiguration[] cfs = (IConfiguration[]) ((IMultiConfiguration) icfg).getItems();
for (int i = 0; i < cfs.length; i++) {
IBuilder bld = cfs[i].getEditableBuilder();
- if (b == b_autoBuild) {
+ if (b == r_useStandardBuildArguments) {
+ bld.setUseDefaultBuildArgsOnly(val);
+ } else if (b == r_useCustomBuildArguments) {
+ bld.setUseDefaultBuildArgsOnly(!val);
+ } else if (b == b_autoBuild) {
bld.setAutoBuildEnable(val);
} else if (b == b_cmdBuild) {
bld.setIncrementalBuildEnable(val);
@@ -639,7 +739,11 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
}
}
} else {
- if (b == b_autoBuild) {
+ if (b == r_useStandardBuildArguments) {
+ bldr.setUseDefaultBuildArgsOnly(val);
+ } else if (b == r_useCustomBuildArguments) {
+ bldr.setUseDefaultBuildArgsOnly(!val);
+ } else if (b == b_autoBuild) {
bldr.setAutoBuildEnable(val);
} else if (b == b_cmdBuild) {
bldr.setIncrementalBuildEnable(val);
@@ -655,4 +759,14 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
ManagedBuilderUIPlugin.log(e);
}
}
+
+ /**
+ * Return an empty string is parameter is null
+ */
+ private String nonNull(String maybeNullString) {
+ if (maybeNullString == null) {
+ return EMPTY_STR;
+ }
+ return maybeNullString;
+ }
}
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildOptionSettingsUI.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildOptionSettingsUI.java
index d20ac18b21c..991aa0d9e3e 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildOptionSettingsUI.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildOptionSettingsUI.java
@@ -808,59 +808,66 @@ public class BuildOptionSettingsUI extends AbstractToolSettingUI {
changedOption = (IOption) option[1];
changedHolder = (IHoldsOptions) option[0];
try {
- switch (changedOption.getValueType()) {
- case IOption.STRING:
- if (fe instanceof StringFieldEditor) {
- String val = ((StringFieldEditor) fe).getStringValue();
- ManagedBuildManager.setOption(fInfo, changedHolder, changedOption, val);
- }
- break;
- case IOption.BOOLEAN:
- if (fe instanceof BooleanFieldEditor) {
- boolean val = ((BooleanFieldEditor) fe).getBooleanValue();
- ManagedBuildManager.setOption(fInfo, changedHolder, changedOption, val);
- }
- break;
- case IOption.ENUMERATED:
- if (fe instanceof BuildOptionComboFieldEditor) {
- String name = ((BuildOptionComboFieldEditor) fe).getSelection();
- String enumId = changedOption.getEnumeratedId(name);
- ManagedBuildManager.setOption(fInfo, changedHolder, changedOption,
- (enumId != null && enumId.length() > 0) ? enumId : name);
+ boolean saved = false;
+ if (fe instanceof ICustomBuildOptionEditor2) {
+ saved = ((ICustomBuildOptionEditor2) fe).save(fInfo, changedHolder, changedOption);
+ }
- }
- break;
- case IOption.TREE:
- if (fe instanceof TreeBrowseFieldEditor) {
- String name = ((TreeBrowseFieldEditor) fe).getStringValue();
- String treeId = changedOption.getId(name);
- ManagedBuildManager.setOption(fInfo, changedHolder, changedOption,
- (treeId != null && treeId.length() > 0) ? treeId : name);
+ if (!saved) {
+ switch (changedOption.getValueType()) {
+ case IOption.STRING:
+ if (fe instanceof StringFieldEditor) {
+ String val = ((StringFieldEditor) fe).getStringValue();
+ ManagedBuildManager.setOption(fInfo, changedHolder, changedOption, val);
+ }
+ break;
+ case IOption.BOOLEAN:
+ if (fe instanceof BooleanFieldEditor) {
+ boolean val = ((BooleanFieldEditor) fe).getBooleanValue();
+ ManagedBuildManager.setOption(fInfo, changedHolder, changedOption, val);
+ }
+ break;
+ case IOption.ENUMERATED:
+ if (fe instanceof BuildOptionComboFieldEditor) {
+ String name = ((BuildOptionComboFieldEditor) fe).getSelection();
+ String enumId = changedOption.getEnumeratedId(name);
+ ManagedBuildManager.setOption(fInfo, changedHolder, changedOption,
+ (enumId != null && enumId.length() > 0) ? enumId : name);
+ }
+ break;
+ case IOption.TREE:
+ if (fe instanceof TreeBrowseFieldEditor) {
+ String name = ((TreeBrowseFieldEditor) fe).getStringValue();
+ String treeId = changedOption.getId(name);
+ ManagedBuildManager.setOption(fInfo, changedHolder, changedOption,
+ (treeId != null && treeId.length() > 0) ? treeId : name);
+
+ }
+ break;
+ case IOption.INCLUDE_PATH:
+ case IOption.STRING_LIST:
+ case IOption.PREPROCESSOR_SYMBOLS:
+ case IOption.LIBRARIES:
+ case IOption.OBJECTS:
+ case IOption.INCLUDE_FILES:
+ case IOption.LIBRARY_PATHS:
+ case IOption.LIBRARY_FILES:
+ case IOption.MACRO_FILES:
+ case IOption.UNDEF_INCLUDE_PATH:
+ case IOption.UNDEF_PREPROCESSOR_SYMBOLS:
+ case IOption.UNDEF_INCLUDE_FILES:
+ case IOption.UNDEF_LIBRARY_PATHS:
+ case IOption.UNDEF_LIBRARY_FILES:
+ case IOption.UNDEF_MACRO_FILES:
+ if (fe instanceof FileListControlFieldEditor) {
+ String val[] = ((FileListControlFieldEditor) fe).getStringListValue();
+ ManagedBuildManager.setOption(fInfo, changedHolder, changedOption, val);
+ }
+ break;
+ default:
+ break;
}
- break;
- case IOption.INCLUDE_PATH:
- case IOption.STRING_LIST:
- case IOption.PREPROCESSOR_SYMBOLS:
- case IOption.LIBRARIES:
- case IOption.OBJECTS:
- case IOption.INCLUDE_FILES:
- case IOption.LIBRARY_PATHS:
- case IOption.LIBRARY_FILES:
- case IOption.MACRO_FILES:
- case IOption.UNDEF_INCLUDE_PATH:
- case IOption.UNDEF_PREPROCESSOR_SYMBOLS:
- case IOption.UNDEF_INCLUDE_FILES:
- case IOption.UNDEF_LIBRARY_PATHS:
- case IOption.UNDEF_LIBRARY_FILES:
- case IOption.UNDEF_MACRO_FILES:
- if (fe instanceof FileListControlFieldEditor) {
- String val[] = ((FileListControlFieldEditor) fe).getStringListValue();
- ManagedBuildManager.setOption(fInfo, changedHolder, changedOption, val);
- }
- break;
- default:
- break;
}
} catch (BuildException e) {
}
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildStepsTab.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildStepsTab.java
index a5207a2dbe7..c5965880e80 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildStepsTab.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildStepsTab.java
@@ -466,31 +466,44 @@ public class BuildStepsTab extends AbstractCBuildPropertyTab {
boolean prj = page.isForProject();
if (prj || tool != null) {
for (ICConfigurationDescription cf : page.getCfgsEditable()) {
- IConfiguration c = null;
- ITool t = null;
+ String s = null;
if (prj) {
- c = getCfg(cf);
+ IConfiguration c = getCfg(cf);
+ switch (field) {
+ case PRECMD:
+ s = c.getPrebuildStep();
+ break;
+ case PREANN:
+ s = c.getPreannouncebuildStep();
+ break;
+ case PSTCMD:
+ s = c.getPostbuildStep();
+ break;
+ case PSTANN:
+ s = c.getPostannouncebuildStep();
+ break;
+ }
} else {
+ ITool t = null;
ICResourceDescription r = cf.getResourceDescription(cfgdescr.getPath(), true);
if (r != null && r instanceof ICFileDescription)
t = getRcbsTool((IFileInfo) getResCfg(r));
if (t == null)
continue; // there's no specific resconfig for this configuration
- }
- String s = null;
- switch (field) {
- case PRECMD:
- s = prj ? c.getPrebuildStep() : getInputTypes(t);
- break;
- case PREANN:
- s = prj ? c.getPreannouncebuildStep() : getOutputNames(t);
- break;
- case PSTCMD:
- s = prj ? c.getPostbuildStep() : t.getToolCommand();
- break;
- case PSTANN:
- s = prj ? c.getPostannouncebuildStep() : t.getAnnouncement();
- break;
+ switch (field) {
+ case PRECMD:
+ s = getInputTypes(t);
+ break;
+ case PREANN:
+ s = getOutputNames(t);
+ break;
+ case PSTCMD:
+ s = t.getToolCommand();
+ break;
+ case PSTANN:
+ s = t.getAnnouncement();
+ break;
+ }
}
if (s != null && s.trim().length() > 0)
set.add(s.trim());
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuilderSettingsTab.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuilderSettingsTab.java
index 569c6c6d026..f246a2c7820 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuilderSettingsTab.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuilderSettingsTab.java
@@ -48,7 +48,7 @@ import org.eclipse.swt.widgets.Widget;
public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
// Widgets
//1
- private Button b_useDefault;
+ private Button b_useDefaultBuildCommand;
private Combo c_builderType;
private Text t_buildCmd;
//2
@@ -85,25 +85,25 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
}
});
- b_useDefault = setupCheck(g1, Messages.BuilderSettingsTab_4, 3, GridData.BEGINNING);
+ b_useDefaultBuildCommand = setupCheck(g1, Messages.BuilderSettingsTab_4, 3, GridData.BEGINNING);
setupLabel(g1, Messages.BuilderSettingsTab_5, 1, GridData.BEGINNING);
- t_buildCmd = setupBlock(g1, b_useDefault);
+ t_buildCmd = setupBlock(g1, b_useDefaultBuildCommand);
t_buildCmd.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
if (!canModify)
return;
- String fullCommand = t_buildCmd.getText().trim();
- String buildCommand = parseMakeCommand(fullCommand);
- String buildArgs = fullCommand.substring(buildCommand.length()).trim();
- if (!buildCommand.equals(bldr.getCommand()) || !buildArgs.equals(bldr.getArguments())) {
+ String buildCommand = t_buildCmd.getText().trim();
+ if (!buildCommand.equals(bldr.getCommand())) {
setCommand(buildCommand);
- setArguments(buildArgs);
}
}
});
+ setupLabel(g1, Messages.BuilderSettingsTab_Configure_Build_Arguments_In_the_Behavior_tab, 2,
+ GridData.BEGINNING);
+
Group g2 = setupGroup(usercomp, Messages.BuilderSettingsTab_6, 2, GridData.FILL_HORIZONTAL);
((GridLayout) (g2.getLayout())).makeColumnsEqualWidth = true;
@@ -151,7 +151,7 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
b_genMakefileAuto.setEnabled(icfg.supportsBuild(true));
if (extStates == null) { // no extended states available
BuildBehaviourTab.setTriSelection(b_genMakefileAuto, bldr.isManagedBuildOn());
- BuildBehaviourTab.setTriSelection(b_useDefault, bldr.isDefaultBuildCmd());
+ BuildBehaviourTab.setTriSelection(b_useDefaultBuildCommand, bldr.isDefaultBuildCmdOnly());
// b_expandVars.setGrayed(false);
if (!bldr.canKeepEnvironmentVariablesInBuildfile())
b_expandVars.setEnabled(false);
@@ -161,7 +161,7 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
}
} else {
BuildBehaviourTab.setTriSelection(b_genMakefileAuto, extStates[0]);
- BuildBehaviourTab.setTriSelection(b_useDefault, extStates[1]);
+ BuildBehaviourTab.setTriSelection(b_useDefaultBuildCommand, extStates[4]);
if (extStates[2] != BuildBehaviourTab.TRI_YES)
b_expandVars.setEnabled(false);
else {
@@ -172,7 +172,7 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
c_builderType.select(isInternalBuilderEnabled() ? 1 : 0);
c_builderType.setEnabled(canEnableInternalBuilder(true) && canEnableInternalBuilder(false));
- t_buildCmd.setText(getMakeCommand());
+ t_buildCmd.setText(nonNull(icfg.getBuildCommand()));
if (page.isMultiCfg()) {
group_dir.setVisible(false);
@@ -187,16 +187,16 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
}
boolean external = (c_builderType.getSelectionIndex() == 0);
- b_useDefault.setEnabled(external);
+ b_useDefaultBuildCommand.setEnabled(external);
t_buildCmd.setEnabled(external);
- ((Control) t_buildCmd.getData()).setEnabled(external & !b_useDefault.getSelection());
+ ((Control) t_buildCmd.getData()).setEnabled(external & !b_useDefaultBuildCommand.getSelection());
b_genMakefileAuto.setEnabled(external && icfg.supportsBuild(true));
if (b_expandVars.getEnabled())
b_expandVars.setEnabled(external && b_genMakefileAuto.getSelection());
if (external) { // just set relatet text widget state,
- checkPressed(b_useDefault, false); // do not update
+ checkPressed(b_useDefaultBuildCommand, false); // do not update
}
canModify = true;
}
@@ -278,7 +278,7 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
if (b.getData() instanceof Text) {
Text t = (Text) b.getData();
- if (b == b_useDefault) {
+ if (b == b_useDefaultBuildCommand) {
val = !val;
}
t.setEnabled(val);
@@ -292,7 +292,7 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
if (!needUpdate)
return;
- if (b == b_useDefault) {
+ if (b == b_useDefaultBuildCommand) {
setUseDefaultBuildCmd(!val);
} else if (b == b_genMakefileAuto) {
setManagedBuild(val);
@@ -303,16 +303,13 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
}
/**
- * @return make command
+ * Return an empty string is parameter is null
*/
- private String getMakeCommand() {
- String makeCommand = icfg.getBuildCommand();
- String makeArgs = icfg.getBuildArguments();
-
- if (!makeCommand.isEmpty() && makeArgs != null) {
- return makeCommand + " " + makeArgs; //$NON-NLS-1$
+ private String nonNull(String maybeNullString) {
+ if (maybeNullString == null) {
+ return EMPTY_STR;
}
- return EMPTY_STR;
+ return maybeNullString;
}
/**
@@ -332,20 +329,6 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
BuildBehaviourTab.apply(src, dst, page.isMultiCfg());
}
- /* (non-Javadoc)
- *
- * @param string
- * @return
- */
- private String parseMakeCommand(String rawCommand) {
- String[] result = rawCommand.split("\\s"); //$NON-NLS-1$
- if (result != null && result.length > 0)
- return result[0];
- else
- return rawCommand;
-
- }
-
// This page can be displayed for project only
@Override
public boolean canBeVisible() {
@@ -400,10 +383,10 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
for (int i = 0; i < cfs.length; i++) {
IBuilder b = cfs[i].getEditableBuilder();
if (b != null)
- b.setUseDefaultBuildCmd(val);
+ b.setUseDefaultBuildCmdOnly(val);
}
} else {
- icfg.getEditableBuilder().setUseDefaultBuildCmd(val);
+ icfg.getEditableBuilder().setUseDefaultBuildCmdOnly(val);
}
} catch (CoreException e) {
ManagedBuilderUIPlugin.log(e);
@@ -435,18 +418,6 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
}
}
- private void setArguments(String makeArgs) {
- if (icfg instanceof IMultiConfiguration) {
- IConfiguration[] cfs = (IConfiguration[]) ((IMultiConfiguration) icfg).getItems();
- for (int i = 0; i < cfs.length; i++) {
- IBuilder b = cfs[i].getEditableBuilder();
- b.setArguments(makeArgs);
- }
- } else {
- icfg.getEditableBuilder().setArguments(makeArgs);
- }
- }
-
private void setBuildPath(String path) {
if (icfg instanceof IMultiConfiguration) {
IConfiguration[] cfs = (IConfiguration[]) ((IMultiConfiguration) icfg).getItems();
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/DiscoveryTab.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/DiscoveryTab.java
index 055459411f0..87be6667330 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/DiscoveryTab.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/DiscoveryTab.java
@@ -19,6 +19,7 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
import java.util.TreeSet;
@@ -31,7 +32,6 @@ import org.eclipse.cdt.core.language.settings.providers.ScannerDiscoveryLegacySu
import org.eclipse.cdt.core.model.util.CDTListComparator;
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
import org.eclipse.cdt.core.settings.model.ICResourceDescription;
-import org.eclipse.cdt.core.settings.model.util.CDataUtil;
import org.eclipse.cdt.internal.ui.language.settings.providers.LanguageSettingsProvidersPage;
import org.eclipse.cdt.internal.ui.newui.StatusMessageLine;
import org.eclipse.cdt.make.core.MakeCorePlugin;
@@ -734,13 +734,13 @@ public class DiscoveryTab extends AbstractCBuildPropertyTab implements IBuildInf
}
private boolean settingsEqual(IScannerConfigBuilderInfo2 info1, IScannerConfigBuilderInfo2 info2) {
- if (!CDataUtil.objectsEqual(info1.getSelectedProfileId(), info2.getSelectedProfileId()))
+ if (!Objects.equals(info1.getSelectedProfileId(), info2.getSelectedProfileId()))
return false;
- if (!CDataUtil.objectsEqual(info1.getBuildOutputFilePath(), info2.getBuildOutputFilePath()))
+ if (!Objects.equals(info1.getBuildOutputFilePath(), info2.getBuildOutputFilePath()))
return false;
- if (!CDataUtil.objectsEqual(info1.getContext(), info2.getContext()))
+ if (!Objects.equals(info1.getContext(), info2.getContext()))
return false;
- if (!CDataUtil.objectsEqual(info1.getSelectedProfileId(), info2.getSelectedProfileId()))
+ if (!Objects.equals(info1.getSelectedProfileId(), info2.getSelectedProfileId()))
return false;
if (info1.isAutoDiscoveryEnabled() != info2.isAutoDiscoveryEnabled()
|| info1.isBuildOutputFileActionEnabled() != info2.isBuildOutputFileActionEnabled()
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ICustomBuildOptionEditor.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ICustomBuildOptionEditor.java
index ee7d49f25e9..0a4d7f9cb98 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ICustomBuildOptionEditor.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ICustomBuildOptionEditor.java
@@ -29,6 +29,7 @@ import org.eclipse.swt.widgets.Control;
* org.eclipse.cdt.managedbuilder.core.buildDefinitions extension-point.
*
* @since 8.0
+ * @see {@link ICustomBuildOptionEditor2}
*/
public interface ICustomBuildOptionEditor {
/**
@@ -39,7 +40,7 @@ public interface ICustomBuildOptionEditor {
* for the field-editor. May be {@code null}.
* @param preferenceName the name of the preference this field editor binds to.
* @param parent the parent of the field editor's control.
- * @return {@code true} iff the custom field-editor can be successfully displayed. Returning {@code false}
+ * @return {@code true} if the custom field-editor can be successfully displayed. Returning {@code false}
* would cause the built-in field-editor to be displayed based on the option's {@link IOption#getValueType() valueType}.
*/
boolean init(IOption option, String extraArgument, String preferenceName, Composite parent);
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ICustomBuildOptionEditor2.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ICustomBuildOptionEditor2.java
new file mode 100644
index 00000000000..1232f34acef
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ICustomBuildOptionEditor2.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2020 Torbjörn Svensson, and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Torbjörn Svensson - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.managedbuilder.ui.properties;
+
+import org.eclipse.cdt.managedbuilder.core.IHoldsOptions;
+import org.eclipse.cdt.managedbuilder.core.IOption;
+import org.eclipse.cdt.managedbuilder.core.IResourceInfo;
+
+/**
+ * This interface can be implemented by clients to contribute custom build-option
+ * editors to the CDT Build Settings page in the project Properties dialog.
+ *
+ * In addition to implementing this interface, the custom build-option editor class
+ * must also extend the {@link org.eclipse.jface.preference.FieldEditor} class. The
+ * custom build-option editor class should be contributed through the <fieldEditor>
+ * element of the org.eclipse.cdt.managedbuilder.ui.buildDefinitionsUI extension-point,
+ * and then referenced, by its ID, from the <option>/fieldEditorId attribute of the
+ * org.eclipse.cdt.managedbuilder.core.buildDefinitions extension-point.
+ *
+ * @since 9.3
+ */
+public interface ICustomBuildOptionEditor2 extends ICustomBuildOptionEditor {
+ /**
+ * Save the option value to the resource info
+ * Typical usage is:
+ * <code>ManagedBuildManager.setOption(resConfig, holder, option, theValue);</code>
+ *
+ * @param resConfig The resource configuration the option belongs to.
+ * @param holder The holder/parent of the option.
+ * @param option The option to set the value for.
+ * @return {@code true} if the save was successful. Returning {@code false}
+ * to fall back to generic save implementation.
+ */
+ boolean save(IResourceInfo resConfig, IHoldsOptions holder, IOption option);
+}
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ManagedBuilderUIPlugin.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ManagedBuilderUIPlugin.java
index 2810036b3c5..fbdfff83436 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ManagedBuilderUIPlugin.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ManagedBuilderUIPlugin.java
@@ -23,6 +23,7 @@ import org.eclipse.core.runtime.Status;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.plugin.AbstractUIPlugin;
public class ManagedBuilderUIPlugin extends AbstractUIPlugin {
@@ -54,7 +55,7 @@ public class ManagedBuilderUIPlugin extends AbstractUIPlugin {
* Returns the active workbench window or <code>null</code> if none
*/
public static IWorkbenchWindow getActiveWorkbenchWindow() {
- return getDefault().getWorkbench().getActiveWorkbenchWindow();
+ return PlatformUI.getWorkbench().getActiveWorkbenchWindow();
}
/**
@@ -121,7 +122,7 @@ public class ManagedBuilderUIPlugin extends AbstractUIPlugin {
if (getActiveWorkbenchShell() != null) {
return getActiveWorkbenchShell();
} else {
- IWorkbenchWindow[] windows = getDefault().getWorkbench().getWorkbenchWindows();
+ IWorkbenchWindow[] windows = PlatformUI.getWorkbench().getWorkbenchWindows();
return windows[0].getShell();
}
}
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/NewVarDialog.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/NewVarDialog.java
index 52da2e22d56..404d2ce80d4 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/NewVarDialog.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/NewVarDialog.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2005, 2016 Intel Corporation and others.
+ * Copyright (c) 2005, 2020 Intel Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,9 +10,11 @@
*
* Contributors:
* Intel Corporation - Initial API and implementation
+ * Sergei Kovalchuk (NXP USA Inc)
*******************************************************************************/
package org.eclipse.cdt.managedbuilder.ui.properties;
+import java.text.Collator;
import java.util.Arrays;
import java.util.Comparator;
@@ -49,8 +51,6 @@ import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
-import com.ibm.icu.text.Collator;
-
/**
* the dialog used to create or edit the build macro
*
@@ -383,7 +383,7 @@ public class NewVarDialog extends Dialog {
private boolean macroNamesEqual(String name1, String name2) {
name1 = name1.trim();
name2 = name2.trim();
- return name1.equalsIgnoreCase(name2);
+ return name1.equals(name2);
}
/*
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ToolChainEditTab.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ToolChainEditTab.java
index b1b3383c375..96539cfe806 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ToolChainEditTab.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ToolChainEditTab.java
@@ -44,6 +44,7 @@ import org.eclipse.cdt.managedbuilder.tcmodification.IToolModification;
import org.eclipse.cdt.ui.CDTSharedImages;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
@@ -113,7 +114,14 @@ public class ToolChainEditTab extends AbstractCBuildPropertyTab {
c_toolchain.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
- modifyToolchain();
+ if (MessageDialog.open(MessageDialog.WARNING, c_toolchain.getShell(), Messages.BuilderSettingsTab_23,
+ Messages.BuilderSettingsTab_24, SWT.NONE, Messages.BuilderSettingsTab_25,
+ Messages.BuilderSettingsTab_26) == MessageDialog.OK) {
+ modifyToolchain();
+ } else {
+ e.doit = false;
+ fillToolChainCombo();
+ }
}
});
c_toolchain.setEnabled(!page.isForFile());
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/ConvertToMakeWizardPage.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/ConvertToMakeWizardPage.java
index 35f04bdaf6c..a2e266b558d 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/ConvertToMakeWizardPage.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/ConvertToMakeWizardPage.java
@@ -20,7 +20,7 @@ import java.util.ArrayList;
import java.util.List;
import org.eclipse.cdt.core.CCProjectNature;
-import org.eclipse.cdt.make.internal.ui.MakeUIPlugin;
+import org.eclipse.cdt.managedbuilder.internal.ui.wizards.Messages;
import org.eclipse.cdt.ui.newui.AbstractPage;
import org.eclipse.cdt.ui.newui.CDTPrefUtil;
import org.eclipse.cdt.ui.newui.PageLayout;
@@ -53,9 +53,6 @@ import org.eclipse.ui.wizards.newresource.BasicNewResourceWizard;
* @noinstantiate This class is not intended to be instantiated by clients.
*/
public class ConvertToMakeWizardPage extends ConvertProjectWizardPage {
- private static final String WZ_TITLE = "WizardMakeProjectConversion.title"; //$NON-NLS-1$
- private static final String WZ_DESC = "WizardMakeProjectConversion.description"; //$NON-NLS-1$
-
/**
* @since 5.1
*/
@@ -96,14 +93,13 @@ public class ConvertToMakeWizardPage extends ConvertProjectWizardPage {
layoutData.heightHint = 200;
optionsGroup.setLayoutData(layoutData);
optionsGroup.setLayout(new GridLayout(1, true));
- optionsGroup.setText(MakeUIPlugin.getResourceString("WizardMakeProjectConversion.projectOptions.title")); //$NON-NLS-1$
+ optionsGroup.setText(Messages.WizardMakeProjectConversion_projectOptions_title);
Composite c = new Composite(optionsGroup, SWT.NONE);
c.setLayoutData(new GridData(GridData.FILL_BOTH));
c.setLayout(new GridLayout(2, true));
specifyProjectTypeButton = new Button(c, SWT.CHECK);
- specifyProjectTypeButton
- .setText(MakeUIPlugin.getResourceString("WizardMakeProjectConversion.projectOptions.projectType")); //$NON-NLS-1$
+ specifyProjectTypeButton.setText(Messages.WizardMakeProjectConversion_projectOptions_projectType);
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 2;
specifyProjectTypeButton.setLayoutData(gd);
@@ -115,8 +111,7 @@ public class ConvertToMakeWizardPage extends ConvertProjectWizardPage {
});
left_label = new Label(c, SWT.NONE);
- left_label
- .setText(MakeUIPlugin.getResourceString("WizardMakeProjectConversion.projectOptions.projectTypeTable")); //$NON-NLS-1$
+ left_label.setText(Messages.WizardMakeProjectConversion_projectOptions_projectTypeTable);
left_label.setFont(container.getFont());
left_label.setLayoutData(new GridData(GridData.BEGINNING));
@@ -141,7 +136,7 @@ public class ConvertToMakeWizardPage extends ConvertProjectWizardPage {
show_sup = new Button(c, SWT.CHECK);
show_sup.setSelection(true);
- show_sup.setText(MakeUIPlugin.getResourceString("WizardMakeProjectConversion.projectOptions.showSuppressed")); //$NON-NLS-1$
+ show_sup.setText(Messages.WizardMakeProjectConversion_projectOptions_showSuppressed);
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 2;
show_sup.setLayoutData(gd);
@@ -233,7 +228,7 @@ public class ConvertToMakeWizardPage extends ConvertProjectWizardPage {
*/
@Override
protected String getWzTitleResource() {
- return MakeUIPlugin.getResourceString(WZ_TITLE);
+ return Messages.WizardMakeProjectConversion_title;
}
/**
@@ -242,7 +237,7 @@ public class ConvertToMakeWizardPage extends ConvertProjectWizardPage {
*/
@Override
protected String getWzDescriptionResource() {
- return MakeUIPlugin.getResourceString(WZ_DESC);
+ return Messages.WizardMakeProjectConversion_description;
}
/**
@@ -265,8 +260,7 @@ public class ConvertToMakeWizardPage extends ConvertProjectWizardPage {
@Override
public void convertProject(IProject project, String bsId, IProgressMonitor monitor) throws CoreException {
- monitor.beginTask(MakeUIPlugin.getResourceString("WizardMakeProjectConversion.monitor.convertingToMakeProject"), //$NON-NLS-1$
- 3);
+ monitor.beginTask(Messages.WizardMakeProjectConversion_monitor_convertingToMakeProject, 3);
try {
boolean wasCDTProject = AbstractPage.isCDTPrj(project);
super.convertProject(project, bsId, new SubProgressMonitor(monitor, 1));
@@ -280,8 +274,7 @@ public class ConvertToMakeWizardPage extends ConvertProjectWizardPage {
@Override
public void convertProject(IProject project, IProgressMonitor monitor, String projectID) throws CoreException {
- monitor.beginTask(MakeUIPlugin.getResourceString("WizardMakeProjectConversion.monitor.convertingToMakeProject"), //$NON-NLS-1$
- 3);
+ monitor.beginTask(Messages.WizardMakeProjectConversion_monitor_convertingToMakeProject, 3);
try {
boolean wasCDTProject = AbstractPage.isCDTPrj(project);
super.convertProject(project, new SubProgressMonitor(monitor, 1), projectID);
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/MBSCustomPageData.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/MBSCustomPageData.java
index 61fdc83f44b..2cb9815e408 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/MBSCustomPageData.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/MBSCustomPageData.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2005, 2011 Texas Instruments Incorporated and others.
+ * Copyright (c) 2005, 2020 Texas Instruments Incorporated and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -11,6 +11,7 @@
* Contributors:
* Texas Instruments - initial API and implementation
* IBM Corporation
+ * ArSysOp - rework to typed collections to fix type safety warnings
*******************************************************************************/
package org.eclipse.cdt.managedbuilder.ui.wizards;
@@ -29,11 +30,11 @@ import org.eclipse.jface.wizard.IWizardPage;
*/
public final class MBSCustomPageData {
- private Set natureSet = null;
+ private Set<String> natureSet = null;
- private Set toolchainSet = null;
+ private Set<ToolchainData> toolchainSet = null;
- private Set projectTypeSet = null;
+ private Set<String> projectTypeSet = null;
private IWizardPage wizardPage = null;
@@ -185,7 +186,7 @@ public final class MBSCustomPageData {
if (nature instanceof String) // old style
return hasNature((String) nature);
else if (nature instanceof Set) {
- Iterator it = ((Set) nature).iterator();
+ Iterator<?> it = ((Set<?>) nature).iterator();
while (it.hasNext()) {
String s = it.next().toString();
if (hasNature(s))
@@ -229,9 +230,9 @@ public final class MBSCustomPageData {
if (toolchainSet.size() == 0)
return true;
- Iterator iterator = toolchainSet.iterator();
+ Iterator<ToolchainData> iterator = toolchainSet.iterator();
while (iterator.hasNext()) {
- ToolchainData tcd = (ToolchainData) iterator.next();
+ ToolchainData tcd = iterator.next();
// look for toolchain with same id. The id in the tool-chain data should never
// contain a version suffix.
if (tcd.getId().equals(id)) {
@@ -259,12 +260,12 @@ public final class MBSCustomPageData {
ToolchainData[] tcd = new ToolchainData[toolchainSet.size()];
- Iterator iterator = toolchainSet.iterator();
+ Iterator<ToolchainData> iterator = toolchainSet.iterator();
int k = 0;
while (iterator.hasNext()) {
- tcd[k++] = (ToolchainData) iterator.next();
+ tcd[k++] = iterator.next();
}
if (tcd.length > 0)
return tcd;
@@ -303,7 +304,7 @@ public final class MBSCustomPageData {
return;
if (natureSet == null)
- natureSet = new TreeSet();
+ natureSet = new TreeSet<>();
natureSet.add(nature);
}
@@ -322,7 +323,7 @@ public final class MBSCustomPageData {
return;
if (toolchainSet == null)
- toolchainSet = new TreeSet();
+ toolchainSet = new TreeSet<>();
ToolchainData toolchainData = new ToolchainData();
toolchainData.setId(toolchainID);
@@ -350,7 +351,7 @@ public final class MBSCustomPageData {
if (projectType instanceof String)
return projectTypeSet.contains(projectType);
else if (projectType instanceof Set) {
- Iterator it = ((Set) projectType).iterator();
+ Iterator<?> it = ((Set<?>) projectType).iterator();
while (it.hasNext()) {
String s = it.next().toString();
if (projectTypeSet.contains(s))
@@ -372,7 +373,7 @@ public final class MBSCustomPageData {
return;
if (projectTypeSet == null)
- projectTypeSet = new TreeSet();
+ projectTypeSet = new TreeSet<>();
projectTypeSet.add(projectType);
}
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/MBSCustomPageManager.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/MBSCustomPageManager.java
index 05d5fd7ef0a..43622f8efaa 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/MBSCustomPageManager.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/MBSCustomPageManager.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2005, 2010 Texas Instruments Incorporated and others.
+ * Copyright (c) 2005, 2020 Texas Instruments Incorporated and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -12,6 +12,7 @@
* Texas Instruments - initial API and implementation
* Intel Corporation - adaptation to new project model
* IBM Corporation
+ * ArSysOp - rework to typed collections to fix type safety warnings
*******************************************************************************/
package org.eclipse.cdt.managedbuilder.ui.wizards;
@@ -105,21 +106,21 @@ public final class MBSCustomPageManager {
/**
* Maps String IDs to IWizardPages
*/
- private static Map idToPageDataMap = null;
+ private static Map<String, MBSCustomPageData> idToPageDataMap = null;
/**
* The set of pages that this manager knows about.
*/
- private static Set pageSet = null;
+ private static Set<MBSCustomPageData> pageSet = null;
/**
* Maps page IDs to the properties that page has set.
*/
- private static java.util.Map pageIDtoPagePropertiesMap = null;
+ private static Map<String, Map<String, Object>> pageIDtoPagePropertiesMap = null;
private static final String EXTENSION_POINT_ID = "org.eclipse.cdt.managedbuilder.ui.newWizardPages"; //$NON-NLS-1$
- private static List hiddenList;
+ private static List<String> hiddenList;
/**
*
@@ -293,7 +294,7 @@ public final class MBSCustomPageManager {
* @since 3.0
*/
public static MBSCustomPageData getPageData(String pageID) {
- return (MBSCustomPageData) idToPageDataMap.get(pageID);
+ return idToPageDataMap.get(pageID);
}
/**
@@ -311,10 +312,10 @@ public final class MBSCustomPageManager {
return false;
// first, find out what project type, toolchain, and nature have been set
- Map pagePropertiesMap = (Map) pageIDtoPagePropertiesMap.get(PAGE_ID);
+ Map<String, Object> pagePropertiesMap = pageIDtoPagePropertiesMap.get(PAGE_ID);
Object projectType = pagePropertiesMap.get(PROJECT_TYPE);
- List toolchainList = (List) pagePropertiesMap.get(TOOLCHAIN);
+ List<IToolChain> toolchainList = (List<IToolChain>) pagePropertiesMap.get(TOOLCHAIN);
Object nature = pagePropertiesMap.get(NATURE);
// does the page follow nature and project type constraints?
@@ -327,9 +328,9 @@ public final class MBSCustomPageManager {
// otherwise, iterate through the toolchains to see if one matches
for (int k = 0; k < toolchainData.length; k++) {
// check all toolchains, see if there is one for which we should be present
- Iterator toolchainIterator = toolchainList.iterator();
+ Iterator<IToolChain> toolchainIterator = toolchainList.iterator();
while (toolchainIterator.hasNext()) {
- IToolChain toolchain = (IToolChain) toolchainIterator.next();
+ IToolChain toolchain = toolchainIterator.next();
if (toolchain != null) {
String id = ManagedBuildManager.getIdFromIdAndVersion(toolchain.getId());
String version = ManagedBuildManager.getVersionFromIdAndVersion(toolchain.getId());
@@ -360,10 +361,10 @@ public final class MBSCustomPageManager {
* @see org.eclipse.cdt.managedbuilder.ui.wizards.MBSCustomPageManager#getPageProperty(String, String)
*/
public static void addPageProperty(String pageID, String key, Object data) {
- Map propertiesMap = (Map) pageIDtoPagePropertiesMap.get(pageID);
+ Map<String, Object> propertiesMap = pageIDtoPagePropertiesMap.get(pageID);
if (propertiesMap == null) {
- propertiesMap = new TreeMap();
+ propertiesMap = new TreeMap<>();
pageIDtoPagePropertiesMap.put(pageID, propertiesMap);
}
@@ -391,7 +392,7 @@ public final class MBSCustomPageManager {
* @since 3.0
*/
public static Object getPageProperty(String pageID, String key) {
- Map propertiesMap = (Map) pageIDtoPagePropertiesMap.get(pageID);
+ Map<String, Object> propertiesMap = pageIDtoPagePropertiesMap.get(pageID);
if (propertiesMap != null) {
return propertiesMap.get(key);
@@ -412,12 +413,12 @@ public final class MBSCustomPageManager {
public static IWizardPage getNextPage(String currentPageID) {
// find the current page in the set of pages
MBSCustomPageData pageData = getPageData(currentPageID);
- Iterator iterator = pageSet.iterator();
+ Iterator<MBSCustomPageData> iterator = pageSet.iterator();
while (iterator.hasNext()) {
if (pageData.equals(iterator.next())) {
IWizardPage nextPage = null;
while (iterator.hasNext() && nextPage == null) {
- MBSCustomPageData potentialPage = (MBSCustomPageData) iterator.next();
+ MBSCustomPageData potentialPage = iterator.next();
if (isPageVisible(potentialPage.getID()))
nextPage = potentialPage.getWizardPage();
}
@@ -455,14 +456,14 @@ public final class MBSCustomPageManager {
MBSCustomPageData pageData = getPageData(currentPageID);
MBSCustomPageData currentData = null;
- Iterator iterator = pageSet.iterator();
+ Iterator<MBSCustomPageData> iterator = pageSet.iterator();
// since Java has no concept of a reverse-iterator yet, we must keep a stack of the
// pages we have visited, so that we can get them in reverse chronological order
- Stack pageDataStack = new Stack();
+ Stack<MBSCustomPageData> pageDataStack = new Stack<>();
while (iterator.hasNext()) {
- currentData = (MBSCustomPageData) iterator.next();
+ currentData = iterator.next();
if (currentData == pageData) {
@@ -494,7 +495,7 @@ public final class MBSCustomPageManager {
// use the stack to visit the previous pages
while (pageDataStack.size() != 0 && !pageFound) {
- MBSCustomPageData potentialPage = (MBSCustomPageData) pageDataStack.pop();
+ MBSCustomPageData potentialPage = pageDataStack.pop();
if (isPageVisible(potentialPage.getID())) {
pageFound = true;
@@ -524,12 +525,12 @@ public final class MBSCustomPageManager {
public static IWizardPage[] getPages() {
IWizardPage[] pages = new IWizardPage[pageSet.size()];
- Iterator iterator = pageSet.iterator();
+ Iterator<MBSCustomPageData> iterator = pageSet.iterator();
int k = 0;
while (iterator.hasNext()) {
- MBSCustomPageData page = (MBSCustomPageData) iterator.next();
+ MBSCustomPageData page = iterator.next();
pages[k++] = page.getWizardPage();
}
@@ -548,12 +549,12 @@ public final class MBSCustomPageManager {
* @see getPages()
*/
public static IWizardPage[] getCustomPages() {
- Set customPageSet = new LinkedHashSet();
+ Set<IWizardPage> customPageSet = new LinkedHashSet<>();
- Iterator pageIterator = pageSet.iterator();
+ Iterator<MBSCustomPageData> pageIterator = pageSet.iterator();
while (pageIterator.hasNext()) {
- MBSCustomPageData page = (MBSCustomPageData) pageIterator.next();
+ MBSCustomPageData page = pageIterator.next();
if (!page.isStockPage()) {
customPageSet.add(page.getWizardPage());
@@ -561,13 +562,13 @@ public final class MBSCustomPageManager {
}
- Iterator iterator = customPageSet.iterator();
+ Iterator<IWizardPage> iterator = customPageSet.iterator();
IWizardPage[] pages = new IWizardPage[customPageSet.size()];
int k = 0;
while (iterator.hasNext()) {
- pages[k++] = (IWizardPage) iterator.next();
+ pages[k++] = iterator.next();
}
return pages;
@@ -581,12 +582,12 @@ public final class MBSCustomPageManager {
* @since 3.0
*/
public static IRunnableWithProgress[] getOperations() {
- Set operationSet = new LinkedHashSet();
+ Set<IRunnableWithProgress> operationSet = new LinkedHashSet<>();
- Iterator pageIterator = pageSet.iterator();
+ Iterator<MBSCustomPageData> pageIterator = pageSet.iterator();
while (pageIterator.hasNext()) {
- MBSCustomPageData page = (MBSCustomPageData) pageIterator.next();
+ MBSCustomPageData page = pageIterator.next();
if (!page.isStockPage() && isPageVisible(page.getID())) {
if (page.getOperation() != null) {
@@ -599,13 +600,13 @@ public final class MBSCustomPageManager {
if (operationSet.size() == 0)
return null;
- Iterator iterator = operationSet.iterator();
+ Iterator<IRunnableWithProgress> iterator = operationSet.iterator();
IRunnableWithProgress[] operations = new IRunnableWithProgress[operationSet.size()];
int k = 0;
while (iterator.hasNext()) {
- operations[k++] = (IRunnableWithProgress) iterator.next();
+ operations[k++] = iterator.next();
}
return operations;
@@ -621,10 +622,10 @@ public final class MBSCustomPageManager {
* @since 3.0
*/
public static void init() {
- idToPageDataMap = new TreeMap();
- pageIDtoPagePropertiesMap = new TreeMap();
- pageSet = new LinkedHashSet();
- hiddenList = new ArrayList();
+ idToPageDataMap = new TreeMap<>();
+ pageIDtoPagePropertiesMap = new TreeMap<>();
+ pageSet = new LinkedHashSet<>();
+ hiddenList = new ArrayList<>();
}
// singleton class - do not use
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/MBSWizardHandler.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/MBSWizardHandler.java
index 066ba6fba3e..0af8672ff60 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/MBSWizardHandler.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/MBSWizardHandler.java
@@ -61,6 +61,7 @@ import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.SubMonitor;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.wizard.IWizard;
import org.eclipse.jface.wizard.IWizardPage;
@@ -576,15 +577,11 @@ public class MBSWizardHandler extends CWizardHandler {
@Override
public void createProject(IProject project, boolean defaults, boolean onFinish, IProgressMonitor monitor)
throws CoreException {
- try {
- monitor.beginTask("", 100); //$NON-NLS-1$
- setProjectDescription(project, defaults, onFinish, monitor);
- doTemplatesPostProcess(project);
- doCustom(project);
- monitor.worked(30);
- } finally {
- monitor.done();
- }
+ SubMonitor subMonitor = SubMonitor.convert(monitor, 100);
+ setProjectDescription(project, defaults, onFinish, subMonitor.split(70));
+ doTemplatesPostProcess(project);
+ doCustom(project);
+ subMonitor.worked(30);
}
@Override
@@ -594,10 +591,11 @@ public class MBSWizardHandler extends CWizardHandler {
private void setProjectDescription(IProject project, boolean defaults, boolean onFinish, IProgressMonitor monitor)
throws CoreException {
+ SubMonitor subMonitor = SubMonitor.convert(monitor, 3);
ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
ICProjectDescription des = mngr.createProjectDescription(project, false, !onFinish);
ManagedBuildInfo info = ManagedBuildManager.createBuildInfo(project);
- monitor.worked(10);
+ subMonitor.worked(1);
cfgs = getCfgItems(false);
if (cfgs == null || cfgs.length == 0)
cfgs = CDTConfigWizardPage.getDefaultCfgs(this);
@@ -609,15 +607,15 @@ public class MBSWizardHandler extends CWizardHandler {
Configuration cf = (Configuration) cfgs[0].getConfiguration();
ManagedProject mProj = new ManagedProject(project, cf.getProjectType());
info.setManagedProject(mProj);
- monitor.worked(10);
+
cfgs = CfgHolder.unique(cfgs);
cfgs = CfgHolder.reorder(cfgs);
ICConfigurationDescription cfgDebug = null;
ICConfigurationDescription cfgFirst = null;
+ subMonitor.worked(1);
- int work = 50 / cfgs.length;
-
+ SubMonitor cfgMonitor = SubMonitor.convert(subMonitor.split(1), cfgs.length);
for (CfgHolder cfg : cfgs) {
cf = (Configuration) cfg.getConfiguration();
String id = ManagedBuildManager.calculateChildId(cf.getId(), null);
@@ -640,7 +638,7 @@ public class MBSWizardHandler extends CWizardHandler {
cfgDebug = cfgDes;
if (cfgFirst == null) // select at least first configuration
cfgFirst = cfgDes;
- monitor.worked(work);
+ cfgMonitor.worked(1);
}
mngr.setProjectDescription(project, des);
}
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/NewMakeProjFromExisting.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/NewMakeProjFromExisting.java
index ef201eb64cf..532a8259083 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/NewMakeProjFromExisting.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/NewMakeProjFromExisting.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2010, 2018 Wind River Systems and others.
+ * Copyright (c) 2010, 2020 Wind River Systems and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -109,7 +109,7 @@ public class NewMakeProjFromExisting extends Wizard implements IImportWizard, IN
CfgHolder cfgHolder = new CfgHolder(toolChain, null);
String s = toolChain == null ? "0" : ((ToolChain) toolChain).getId(); //$NON-NLS-1$
- Configuration config = new Configuration(mProj, (ToolChain) toolChain,
+ Configuration config = new Configuration(mProj, toolChain,
ManagedBuildManager.calculateChildId(s, null), cfgHolder.getName());
IBuilder builder = config.getEditableBuilder();
builder.setManagedBuildOn(false);
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/STDWizardHandler.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/STDWizardHandler.java
index 006b1ea217b..2b065fefe25 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/STDWizardHandler.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/STDWizardHandler.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2018 Intel Corporation and others.
+ * Copyright (c) 2007, 2020 Intel Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -88,7 +88,7 @@ public class STDWizardHandler extends MBSWizardHandler {
int work = 50 / cfgs.length;
for (int i = 0; i < cfgs.length; i++) {
String s = (cfgs[i].getToolChain() == null) ? "0" : ((ToolChain) (cfgs[i].getToolChain())).getId(); //$NON-NLS-1$
- Configuration cfg = new Configuration(mProj, (ToolChain) cfgs[i].getToolChain(),
+ Configuration cfg = new Configuration(mProj, cfgs[i].getToolChain(),
ManagedBuildManager.calculateChildId(s, null), cfgs[i].getName());
cfgs[i].setConfiguration(cfg);
IBuilder bld = cfg.getEditableBuilder();
diff --git a/build/org.eclipse.cdt.meson-feature/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.meson-feature/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.meson-feature/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.meson-feature/feature.xml b/build/org.eclipse.cdt.meson-feature/feature.xml
index 260faa66982..329e7b80d84 100644
--- a/build/org.eclipse.cdt.meson-feature/feature.xml
+++ b/build/org.eclipse.cdt.meson-feature/feature.xml
@@ -1,9 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2018, 2021 Contributors to the Eclipse Foundation
+
+ This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License 2.0
+ which accompanies this distribution, and is available at
+ https://www.eclipse.org/legal/epl-2.0/
+
+ SPDX-License-Identifier: EPL-2.0
+-->
<feature
id="org.eclipse.cdt.meson"
label="%featureName"
- version="9.9.0.qualifier"
+ version="10.7.0.qualifier"
provider-name="%providerName"
+ plugin="org.eclipse.cdt.meson.ui"
license-feature="org.eclipse.license"
license-feature-version="0.0.0">
@@ -46,12 +57,4 @@
version="0.0.0"
unpack="false"/>
- <plugin
- id="org.eclipse.tools.templates.freemarker.java11"
- download-size="0"
- install-size="0"
- version="0.0.0"
- fragment="true"
- unpack="false"/>
-
</feature>
diff --git a/build/org.eclipse.cdt.meson.core/.classpath b/build/org.eclipse.cdt.meson.core/.classpath
index eca7bdba8f0..e801ebfb468 100644
--- a/build/org.eclipse.cdt.meson.core/.classpath
+++ b/build/org.eclipse.cdt.meson.core/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
diff --git a/build/org.eclipse.cdt.meson.core/.project b/build/org.eclipse.cdt.meson.core/.project
index 88c2a4d72fe..bc31fea93ce 100644
--- a/build/org.eclipse.cdt.meson.core/.project
+++ b/build/org.eclipse.cdt.meson.core/.project
@@ -25,9 +25,15 @@
<arguments>
</arguments>
</buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
</natures>
</projectDescription>
diff --git a/build/org.eclipse.cdt.meson.core/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.meson.core/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.meson.core/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.meson.core/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.meson.core/.settings/org.eclipse.jdt.core.prefs
index 2b6ecff8a01..e3a8104f9ca 100644
--- a/build/org.eclipse.cdt.meson.core/.settings/org.eclipse.jdt.core.prefs
+++ b/build/org.eclipse.cdt.meson.core/.settings/org.eclipse.jdt.core.prefs
@@ -30,9 +30,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -49,6 +49,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
@@ -107,6 +108,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
@@ -144,13 +146,14 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -158,21 +161,24 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@@ -264,11 +270,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@@ -299,6 +306,8 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@@ -323,13 +332,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@@ -377,6 +390,8 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do no
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@@ -413,9 +428,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@@ -454,10 +472,14 @@ org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/build/org.eclipse.cdt.meson.core/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.meson.core/.settings/org.eclipse.jdt.ui.prefs
index e44576346c4..d35ba9b5231 100644
--- a/build/org.eclipse.cdt.meson.core/.settings/org.eclipse.jdt.ui.prefs
+++ b/build/org.eclipse.cdt.meson.core/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,4 @@
+cleanup.add_all=false
cleanup.add_default_serial_version_id=true
cleanup.add_generated_serial_version_id=false
cleanup.add_missing_annotations=true
@@ -11,25 +12,72 @@ cleanup.always_use_blocks=true
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=false
cleanup.always_use_this_for_non_static_method_access=false
+cleanup.array_with_curly=false
+cleanup.arrays_fill=false
+cleanup.bitwise_conditional_expression=false
+cleanup.boolean_literal=false
+cleanup.boolean_value_rather_than_comparison=false
+cleanup.break_loop=false
+cleanup.collection_cloning=false
+cleanup.comparing_on_criteria=false
+cleanup.comparison_statement=false
+cleanup.controlflow_merge=false
cleanup.convert_functional_interfaces=false
cleanup.convert_to_enhanced_for_loop=false
+cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
+cleanup.convert_to_switch_expressions=false
cleanup.correct_indentation=false
+cleanup.do_while_rather_than_while=true
+cleanup.double_negation=false
+cleanup.else_if=false
+cleanup.embedded_if=false
+cleanup.evaluate_nullable=false
+cleanup.extract_increment=false
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
+cleanup.hash=false
+cleanup.if_condition=false
cleanup.insert_inferred_type_arguments=false
+cleanup.instanceof=false
+cleanup.instanceof_keyword=false
+cleanup.invert_equals=false
+cleanup.join=false
+cleanup.lazy_logical_operator=false
cleanup.make_local_variable_final=true
cleanup.make_parameters_final=false
cleanup.make_private_fields_final=true
cleanup.make_type_abstract_if_missing_method=false
cleanup.make_variable_declarations_final=false
+cleanup.map_cloning=false
+cleanup.merge_conditional_blocks=false
+cleanup.multi_catch=false
cleanup.never_use_blocks=false
cleanup.never_use_parentheses_in_expressions=true
+cleanup.no_string_creation=false
+cleanup.no_super=false
+cleanup.number_suffix=false
+cleanup.objects_equals=false
+cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
+cleanup.operand_factorization=false
cleanup.organize_imports=true
+cleanup.overridden_assignment=false
+cleanup.plain_replacement=false
+cleanup.precompile_regex=false
+cleanup.primitive_comparison=false
+cleanup.primitive_parsing=false
+cleanup.primitive_rather_than_wrapper=false
+cleanup.primitive_serialization=false
+cleanup.pull_out_if_from_if_else=false
+cleanup.pull_up_assignment=false
+cleanup.push_down_negation=false
cleanup.qualify_static_field_accesses_with_declaring_class=false
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
cleanup.qualify_static_member_accesses_with_declaring_class=false
cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.reduce_indentation=false
+cleanup.redundant_comparator=false
+cleanup.redundant_falling_through_block_end=false
cleanup.remove_private_constructors=true
cleanup.remove_redundant_modifiers=false
cleanup.remove_redundant_semicolons=true
@@ -37,25 +85,57 @@ cleanup.remove_redundant_type_arguments=true
cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true
cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_array_creation=false
cleanup.remove_unnecessary_casts=true
cleanup.remove_unnecessary_nls_tags=false
cleanup.remove_unused_imports=true
cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_method_parameters=false
cleanup.remove_unused_private_fields=true
cleanup.remove_unused_private_members=false
cleanup.remove_unused_private_methods=true
cleanup.remove_unused_private_types=true
+cleanup.return_expression=false
+cleanup.simplify_lambda_expression_and_method_ref=false
+cleanup.single_used_field=false
cleanup.sort_members=false
cleanup.sort_members_all=false
+cleanup.standard_comparison=false
+cleanup.static_inner_class=false
+cleanup.strictly_equal_or_different=false
+cleanup.stringbuffer_to_stringbuilder=false
+cleanup.stringbuilder=false
+cleanup.stringbuilder_for_local_vars=true
+cleanup.stringconcat_to_textblock=false
+cleanup.substring=false
+cleanup.switch=false
+cleanup.system_property=false
+cleanup.system_property_boolean=false
+cleanup.system_property_file_encoding=false
+cleanup.system_property_file_separator=false
+cleanup.system_property_line_separator=false
+cleanup.system_property_path_separator=false
+cleanup.ternary_operator=false
+cleanup.try_with_resource=false
+cleanup.unlooped_while=false
+cleanup.unreachable_block=false
cleanup.use_anonymous_class_creation=false
+cleanup.use_autoboxing=false
cleanup.use_blocks=false
cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_directly_map_method=false
cleanup.use_lambda=true
cleanup.use_parentheses_in_expressions=false
+cleanup.use_string_is_blank=false
cleanup.use_this_for_non_static_field_access=false
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
cleanup.use_this_for_non_static_method_access=false
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_unboxing=false
+cleanup.use_var=false
+cleanup.useless_continue=false
+cleanup.useless_return=false
+cleanup.valueof_rather_than_instantiation=false
cleanup_profile=_CDT
cleanup_settings_version=2
eclipse.preferences.version=1
diff --git a/build/org.eclipse.cdt.meson.core/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.meson.core/META-INF/MANIFEST.MF
index cfb8748d551..822699dd66c 100644
--- a/build/org.eclipse.cdt.meson.core/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.meson.core/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name.0
Bundle-SymbolicName: org.eclipse.cdt.meson.core;singleton:=true
-Bundle-Version: 1.0.100.qualifier
+Bundle-Version: 1.1.400.qualifier
Bundle-Activator: org.eclipse.cdt.meson.core.Activator
Bundle-Vendor: %provider
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.core.resources,
org.eclipse.cdt.core;bundle-version="6.4.0",
- org.eclipse.tools.templates.freemarker
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+ org.eclipse.tools.templates.freemarker;bundle-version="1.2.200"
+Bundle-RequiredExecutionEnvironment: JavaSE-11
Bundle-ActivationPolicy: lazy
Bundle-Localization: plugin
Import-Package: com.google.gson
diff --git a/build/org.eclipse.cdt.meson.core/about.html b/build/org.eclipse.cdt.meson.core/about.html
index 164f781a8fd..b3134865230 100644
--- a/build/org.eclipse.cdt.meson.core/about.html
+++ b/build/org.eclipse.cdt.meson.core/about.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
</head>
+
<body lang="EN-US">
<h2>About This Content</h2>
@@ -16,7 +17,7 @@
(&quot;Content&quot;). Unless otherwise indicated below, the Content
is provided to you under the terms and conditions of the Eclipse
Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ available at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
@@ -29,8 +30,9 @@
license exists, contact the Redistributor. Unless otherwise indicated
below, the terms and conditions of the EPL still apply to any source
code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ href="https://www.eclipse.org/">https://www.eclipse.org</a>.
</p>
</body>
+
</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.meson.core/build.properties b/build/org.eclipse.cdt.meson.core/build.properties
index 1f193d82824..c62704bd0c4 100644
--- a/build/org.eclipse.cdt.meson.core/build.properties
+++ b/build/org.eclipse.cdt.meson.core/build.properties
@@ -8,3 +8,4 @@ bin.includes = META-INF/,\
about.html,\
OSGI-INF/,
source.. = src/
+src.includes = about.html
diff --git a/build/org.eclipse.cdt.meson.core/plugin.properties b/build/org.eclipse.cdt.meson.core/plugin.properties
index 2064aebe936..aeb955d2b82 100644
--- a/build/org.eclipse.cdt.meson.core/plugin.properties
+++ b/build/org.eclipse.cdt.meson.core/plugin.properties
@@ -1,4 +1,5 @@
edHatVendor.name = Red Hat
Bundle-Name.0 = Meson Plug-in
provider=Eclipse CDT
-extension-point.name = Meson ToolChain File Provider \ No newline at end of file
+extension-point.name = Meson ToolChain File Provider
+mesonnature.name=Meson Nature \ No newline at end of file
diff --git a/build/org.eclipse.cdt.meson.core/plugin.xml b/build/org.eclipse.cdt.meson.core/plugin.xml
index b1243ae4a85..0bb0d2fe8c2 100644
--- a/build/org.eclipse.cdt.meson.core/plugin.xml
+++ b/build/org.eclipse.cdt.meson.core/plugin.xml
@@ -4,6 +4,7 @@
<extension-point id="toolChainProvider" name="%extension-point.name" schema="schema/toolChainProvider.exsd"/>
<extension
id="mesonNature"
+ name="%mesonnature.name"
point="org.eclipse.core.resources.natures">
<runtime>
<run
diff --git a/build/org.eclipse.cdt.meson.core/src/org/eclipse/cdt/internal/meson/core/MesonBuildConfiguration.java b/build/org.eclipse.cdt.meson.core/src/org/eclipse/cdt/internal/meson/core/MesonBuildConfiguration.java
index 6e9d56bb7f4..0be025a4838 100644
--- a/build/org.eclipse.cdt.meson.core/src/org/eclipse/cdt/internal/meson/core/MesonBuildConfiguration.java
+++ b/build/org.eclipse.cdt.meson.core/src/org/eclipse/cdt/internal/meson/core/MesonBuildConfiguration.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2015, 2018 QNX Software Systems and others.
+ * Copyright (c) 2015, 2022 QNX Software Systems and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -34,13 +34,13 @@ import org.eclipse.cdt.meson.core.Activator;
import org.eclipse.cdt.meson.core.IMesonConstants;
import org.eclipse.cdt.meson.core.IMesonToolChainFile;
import org.eclipse.cdt.meson.core.IMesonToolChainManager;
-import org.eclipse.cdt.utils.Platform;
import org.eclipse.core.resources.IBuildConfiguration;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.osgi.service.prefs.BackingStoreException;
@@ -159,11 +159,11 @@ public class MesonBuildConfiguration extends CBuildConfiguration {
String userArgs = getProperty(IMesonConstants.MESON_ARGUMENTS);
if (userArgs != null && !userArgs.isEmpty()) {
- commandList.addAll(Arrays.asList(userArgs.split(" ")));
+ commandList.addAll(Arrays.asList(userArgs.split(" "))); //$NON-NLS-1$
}
String projOptions = getProperty(IMesonConstants.MESON_PROJECT_OPTIONS);
if (projOptions != null && !projOptions.isEmpty()) {
- commandList.addAll(Arrays.asList(projOptions.split(" ")));
+ commandList.addAll(Arrays.asList(projOptions.split(" "))); //$NON-NLS-1$
}
commandList.add(getBuildDirectory().toString());
@@ -183,7 +183,7 @@ public class MesonBuildConfiguration extends CBuildConfiguration {
return null;
}
- watchProcess(p, console);
+ watchProcess(console, monitor);
}
if (!Files.exists(buildDir.resolve("build.ninja"))) { //$NON-NLS-1$
@@ -238,7 +238,7 @@ public class MesonBuildConfiguration extends CBuildConfiguration {
return null;
}
- watchProcess(p, new IConsoleParser[] { epm });
+ watchProcess(new IConsoleParser[] { epm }, monitor);
}
project.refreshLocal(IResource.DEPTH_INFINITE, monitor);
@@ -298,7 +298,7 @@ public class MesonBuildConfiguration extends CBuildConfiguration {
return;
}
- watchProcess(p, console);
+ watchProcess(console, monitor);
}
outStream.write(String.format(Messages.MesonBuildConfiguration_BuildingComplete, buildDir.toString()));
@@ -336,6 +336,11 @@ public class MesonBuildConfiguration extends CBuildConfiguration {
try (FileReader reader = new FileReader(commandsFile.toFile())) {
Gson gson = new Gson();
CompileCommand[] commands = gson.fromJson(reader, CompileCommand[].class);
+ if (commands == null) {
+ throw new CoreException(Activator.errorStatus(
+ String.format(Messages.MesonBuildConfiguration_ProcCompCmds, project.getName()),
+ new NullPointerException(Messages.MesonBuildConfiguration_StillNull)));
+ }
Map<String, CompileCommand> dedupedCmds = new HashMap<>();
for (CompileCommand command : commands) {
dedupedCmds.put(command.getFile(), command);
diff --git a/build/org.eclipse.cdt.meson.core/src/org/eclipse/cdt/internal/meson/core/Messages.java b/build/org.eclipse.cdt.meson.core/src/org/eclipse/cdt/internal/meson/core/Messages.java
index 33ba2f73fd1..7103bfcc2dc 100644
--- a/build/org.eclipse.cdt.meson.core/src/org/eclipse/cdt/internal/meson/core/Messages.java
+++ b/build/org.eclipse.cdt.meson.core/src/org/eclipse/cdt/internal/meson/core/Messages.java
@@ -32,6 +32,8 @@ public class Messages extends NLS {
public static String MesonBuildConfiguration_ProcCompCmds;
public static String MesonBuildConfiguration_ProcCompJson;
+ public static String MesonBuildConfiguration_StillNull;
+
static {
// initialize resource bundle
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
diff --git a/build/org.eclipse.cdt.meson.core/src/org/eclipse/cdt/internal/meson/core/messages.properties b/build/org.eclipse.cdt.meson.core/src/org/eclipse/cdt/internal/meson/core/messages.properties
index 2ed915078df..8aaef0b02bb 100644
--- a/build/org.eclipse.cdt.meson.core/src/org/eclipse/cdt/internal/meson/core/messages.properties
+++ b/build/org.eclipse.cdt.meson.core/src/org/eclipse/cdt/internal/meson/core/messages.properties
@@ -24,5 +24,4 @@ MesonBuildConfiguration_RunningMesonFailure=Failure running meson: %s
MesonBuildConfiguration_RunningNinjaFailure=Failure running ninja: %s
MesonBuildConfiguration_NoNinjaFileToClean=No ninja.build file so clean has nothing to do
MesonBuildConfiguration_NoNinjaFile=Meson did not create a ninja.build file so build cannot complete
-
-
+MesonBuildConfiguration_StillNull=Compilation database (usually compile_commands.json) appears to be empty
diff --git a/build/org.eclipse.cdt.meson.core/src/org/eclipse/cdt/meson/core/MesonProjectGenerator.java b/build/org.eclipse.cdt.meson.core/src/org/eclipse/cdt/meson/core/MesonProjectGenerator.java
index 6b0179c5b1c..e107c93e0bc 100644
--- a/build/org.eclipse.cdt.meson.core/src/org/eclipse/cdt/meson/core/MesonProjectGenerator.java
+++ b/build/org.eclipse.cdt.meson.core/src/org/eclipse/cdt/meson/core/MesonProjectGenerator.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2015, 2018 QNX Software Systems and others.
+ * Copyright (c) 2015, 2021 QNX Software Systems and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -28,6 +28,7 @@ import org.eclipse.core.resources.IProjectDescription;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
import org.eclipse.tools.templates.freemarker.FMProjectGenerator;
import org.eclipse.tools.templates.freemarker.SourceRoot;
import org.eclipse.tools.templates.freemarker.TemplateManifest;
@@ -81,8 +82,8 @@ public class MesonProjectGenerator extends FMProjectGenerator {
}
}
- entries.add(CoreModel.newOutputEntry(buildFolder.getFullPath(), // $NON-NLS-1$
- new IPath[] {})); //$NON-NLS-1$
+ entries.add(
+ CoreModel.newOutputEntry(buildFolder.getFullPath(), new IPath[] { new Path("**/meson-private/**") })); //$NON-NLS-1$
CoreModel.getDefault().create(project).setRawPathEntries(entries.toArray(new IPathEntry[entries.size()]),
monitor);
}
diff --git a/build/org.eclipse.cdt.meson.docs/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.meson.docs/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.meson.docs/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.meson.docs/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.meson.docs/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 2b6ecff8a01..00000000000
--- a/build/org.eclipse.cdt.meson.docs/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,464 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
-org.eclipse.jdt.core.formatter.align_with_spaces=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
-org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/build/org.eclipse.cdt.meson.docs/.settings/org.eclipse.jdt.launching.prefs b/build/org.eclipse.cdt.meson.docs/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index f8a131b56e0..00000000000
--- a/build/org.eclipse.cdt.meson.docs/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/build/org.eclipse.cdt.meson.docs/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.meson.docs/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index e44576346c4..00000000000
--- a/build/org.eclipse.cdt.meson.docs/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,133 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_functional_interfaces=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.insert_inferred_type_arguments=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_redundant_modifiers=false
-cleanup.remove_redundant_semicolons=true
-cleanup.remove_redundant_type_arguments=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=false
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_lambda=true
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_CDT
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_CDT
-formatter_settings_version=14
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=1000
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=1000
-org.eclipse.jdt.ui.text.custom_code_templates=
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=false
-sp_cleanup.remove_redundant_semicolons=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/build/org.eclipse.cdt.meson.docs/CDT/Meson/User_Guide/Updating-This-Document.html b/build/org.eclipse.cdt.meson.docs/CDT/Meson/User_Guide/Updating-This-Document.html
index c18c44a58b1..8db463650cf 100644
--- a/build/org.eclipse.cdt.meson.docs/CDT/Meson/User_Guide/Updating-This-Document.html
+++ b/build/org.eclipse.cdt.meson.docs/CDT/Meson/User_Guide/Updating-This-Document.html
@@ -28,7 +28,7 @@
<h1 id="Updating_This_Document">Updating This Document</h1>
<p>This document is maintained in a collaborative wiki. If you wish to update or modify this document please visit
- <a href="http://wiki.eclipse.org/CDT/Meson/User_Guide">http://wiki.eclipse.org/CDT/Meson/User_Guide</a>
+ <a href="https://wiki.eclipse.org/CDT/Meson/User_Guide">https://wiki.eclipse.org/CDT/Meson/User_Guide</a>
</p><hr class="navigation-separator"/>
<table class="navigation" style="width: 100%;" border="0" summary="navigation">
<tr>
diff --git a/build/org.eclipse.cdt.meson.docs/CDT/Meson/User_Guide/User-Guide.html b/build/org.eclipse.cdt.meson.docs/CDT/Meson/User_Guide/User-Guide.html
index caa7687d8dd..0049833145c 100644
--- a/build/org.eclipse.cdt.meson.docs/CDT/Meson/User_Guide/User-Guide.html
+++ b/build/org.eclipse.cdt.meson.docs/CDT/Meson/User_Guide/User-Guide.html
@@ -39,7 +39,7 @@
<p>This file tells <i>meson</i> that the project name hello is a C project and that it creates a single executable called <i>hello</i> which is formed from <i>hello.c</i>. Meson will find the C compiler, etc.. needed to build this project on this build machine.</p>
<p>Running meson in the directory containing <i>meson.build</i> will create a <i>ninja.build</i> file in the <b>build</b> directory (or specified build directory).</p>
<p>For more details see:
- <a href="http://mesonbuild.com/">http://mesonbuild.com/</a>
+ <a href="https://mesonbuild.com/">https://mesonbuild.com/</a>
</p><hr class="navigation-separator"/>
<table class="navigation" style="width: 100%;" border="0" summary="navigation">
<tr>
diff --git a/build/org.eclipse.cdt.meson.docs/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.meson.docs/META-INF/MANIFEST.MF
index 4a3f483c7ce..92bbfcaf4aa 100644
--- a/build/org.eclipse.cdt.meson.docs/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.meson.docs/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %bundleName
Bundle-SymbolicName: org.eclipse.cdt.meson.docs;singleton:=true
-Bundle-Version: 1.0.100.qualifier
+Bundle-Version: 1.0.1200.qualifier
Bundle-Vendor: %provider
Bundle-Localization: plugin
Require-Bundle: org.eclipse.help,
diff --git a/build/org.eclipse.cdt.meson.docs/about.html b/build/org.eclipse.cdt.meson.docs/about.html
index 164f781a8fd..b3134865230 100644
--- a/build/org.eclipse.cdt.meson.docs/about.html
+++ b/build/org.eclipse.cdt.meson.docs/about.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
</head>
+
<body lang="EN-US">
<h2>About This Content</h2>
@@ -16,7 +17,7 @@
(&quot;Content&quot;). Unless otherwise indicated below, the Content
is provided to you under the terms and conditions of the Eclipse
Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ available at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
@@ -29,8 +30,9 @@
license exists, contact the Redistributor. Unless otherwise indicated
below, the terms and conditions of the EPL still apply to any source
code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ href="https://www.eclipse.org/">https://www.eclipse.org</a>.
</p>
</body>
+
</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.meson.docs/build-helper.xml b/build/org.eclipse.cdt.meson.docs/build-helper.xml
index bfa7504a91b..d013909f9a3 100644
--- a/build/org.eclipse.cdt.meson.docs/build-helper.xml
+++ b/build/org.eclipse.cdt.meson.docs/build-helper.xml
@@ -29,7 +29,7 @@
= Updating This Document =
This document is maintained in a collaborative wiki. If you wish to update or modify this document please visit
-http://wiki.eclipse.org/CDT/Meson/User_Guide
+https://wiki.eclipse.org/CDT/Meson/User_Guide
</pageAppendum>
</mediawiki-to-eclipse-help>
<replace file="CDT/Meson/User_Guide/User-Guide.html" token="{{#eclipseproject:tools.cdt}}" value=""/>
diff --git a/build/org.eclipse.cdt.meson.docs/build-index.xml b/build/org.eclipse.cdt.meson.docs/build-index.xml
index 717f473343c..23a8bf4de53 100644
--- a/build/org.eclipse.cdt.meson.docs/build-index.xml
+++ b/build/org.eclipse.cdt.meson.docs/build-index.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
- Copyright (c) 2012 Marc-Andre Laperle, Inc. and others
+ Copyright (c) 2012 Marc-Andre Laperle and others
This program and the accompanying materials
are made available under the terms of the Eclipse Public License 2.0
which accompanies this distribution, and is available at
diff --git a/build/org.eclipse.cdt.meson.docs/build.properties b/build/org.eclipse.cdt.meson.docs/build.properties
index 28bb7eca7cd..de72f5485aa 100644
--- a/build/org.eclipse.cdt.meson.docs/build.properties
+++ b/build/org.eclipse.cdt.meson.docs/build.properties
@@ -10,3 +10,4 @@ bin.includes = META-INF/,\
CDT/
jars.compile.order = .
+src.includes = about.html
diff --git a/build/org.eclipse.cdt.meson.docs/pom.xml b/build/org.eclipse.cdt.meson.docs/pom.xml
index 38e6f54c6fa..a9bdfa9dc24 100644
--- a/build/org.eclipse.cdt.meson.docs/pom.xml
+++ b/build/org.eclipse.cdt.meson.docs/pom.xml
@@ -1,4 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2018, 2021 Contributors to the Eclipse Foundation
+
+ This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License 2.0
+ which accompanies this distribution, and is available at
+ https://www.eclipse.org/legal/epl-2.0/
+
+ SPDX-License-Identifier: EPL-2.0
+-->
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
@@ -7,14 +17,33 @@
<parent>
<groupId>org.eclipse.cdt</groupId>
<artifactId>cdt-parent</artifactId>
- <version>9.9.0-SNAPSHOT</version>
+ <version>10.7.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
- <version>1.0.100-SNAPSHOT</version>
+ <version>1.0.1200-SNAPSHOT</version>
<artifactId>org.eclipse.cdt.meson.docs</artifactId>
<packaging>eclipse-plugin</packaging>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.tycho</groupId>
+ <artifactId>tycho-source-plugin</artifactId>
+ <version>${tycho-version}</version>
+ <executions>
+ <execution>
+ <id>plugin-source</id>
+ <phase>none</phase>
+ </execution>
+ <execution>
+ <id>attach-source</id>
+ <phase>none</phase>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
<profiles>
<profile>
<id>build-doc</id>
@@ -28,7 +57,7 @@
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-eclipserun-plugin</artifactId>
- <version>${tycho-extras-version}</version>
+ <version>${tycho-version}</version>
<configuration>
<appArgLine>-application org.eclipse.ant.core.antRunner -buildfile build-index.xml build.index</appArgLine>
<dependencies>
@@ -104,7 +133,6 @@
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
- <version>1.8</version>
<executions>
<execution>
<phase>compile</phase>
diff --git a/build/org.eclipse.cdt.meson.ui.editor/.classpath b/build/org.eclipse.cdt.meson.ui.editor/.classpath
index 075009d7745..edc8895124d 100644
--- a/build/org.eclipse.cdt.meson.ui.editor/.classpath
+++ b/build/org.eclipse.cdt.meson.ui.editor/.classpath
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src/"/>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/build/org.eclipse.cdt.meson.ui.editor/.project b/build/org.eclipse.cdt.meson.ui.editor/.project
index da493162cda..0ee660f0e86 100644
--- a/build/org.eclipse.cdt.meson.ui.editor/.project
+++ b/build/org.eclipse.cdt.meson.ui.editor/.project
@@ -20,9 +20,15 @@
<arguments>
</arguments>
</buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
</natures>
</projectDescription>
diff --git a/build/org.eclipse.cdt.meson.ui.editor/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.meson.ui.editor/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.meson.ui.editor/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.meson.ui.editor/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.meson.ui.editor/.settings/org.eclipse.jdt.core.prefs
index 2b6ecff8a01..e3a8104f9ca 100644
--- a/build/org.eclipse.cdt.meson.ui.editor/.settings/org.eclipse.jdt.core.prefs
+++ b/build/org.eclipse.cdt.meson.ui.editor/.settings/org.eclipse.jdt.core.prefs
@@ -30,9 +30,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -49,6 +49,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
@@ -107,6 +108,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
@@ -144,13 +146,14 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -158,21 +161,24 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@@ -264,11 +270,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@@ -299,6 +306,8 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@@ -323,13 +332,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@@ -377,6 +390,8 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do no
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@@ -413,9 +428,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@@ -454,10 +472,14 @@ org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/build/org.eclipse.cdt.meson.ui.editor/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.meson.ui.editor/.settings/org.eclipse.jdt.ui.prefs
index e44576346c4..d35ba9b5231 100644
--- a/build/org.eclipse.cdt.meson.ui.editor/.settings/org.eclipse.jdt.ui.prefs
+++ b/build/org.eclipse.cdt.meson.ui.editor/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,4 @@
+cleanup.add_all=false
cleanup.add_default_serial_version_id=true
cleanup.add_generated_serial_version_id=false
cleanup.add_missing_annotations=true
@@ -11,25 +12,72 @@ cleanup.always_use_blocks=true
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=false
cleanup.always_use_this_for_non_static_method_access=false
+cleanup.array_with_curly=false
+cleanup.arrays_fill=false
+cleanup.bitwise_conditional_expression=false
+cleanup.boolean_literal=false
+cleanup.boolean_value_rather_than_comparison=false
+cleanup.break_loop=false
+cleanup.collection_cloning=false
+cleanup.comparing_on_criteria=false
+cleanup.comparison_statement=false
+cleanup.controlflow_merge=false
cleanup.convert_functional_interfaces=false
cleanup.convert_to_enhanced_for_loop=false
+cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
+cleanup.convert_to_switch_expressions=false
cleanup.correct_indentation=false
+cleanup.do_while_rather_than_while=true
+cleanup.double_negation=false
+cleanup.else_if=false
+cleanup.embedded_if=false
+cleanup.evaluate_nullable=false
+cleanup.extract_increment=false
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
+cleanup.hash=false
+cleanup.if_condition=false
cleanup.insert_inferred_type_arguments=false
+cleanup.instanceof=false
+cleanup.instanceof_keyword=false
+cleanup.invert_equals=false
+cleanup.join=false
+cleanup.lazy_logical_operator=false
cleanup.make_local_variable_final=true
cleanup.make_parameters_final=false
cleanup.make_private_fields_final=true
cleanup.make_type_abstract_if_missing_method=false
cleanup.make_variable_declarations_final=false
+cleanup.map_cloning=false
+cleanup.merge_conditional_blocks=false
+cleanup.multi_catch=false
cleanup.never_use_blocks=false
cleanup.never_use_parentheses_in_expressions=true
+cleanup.no_string_creation=false
+cleanup.no_super=false
+cleanup.number_suffix=false
+cleanup.objects_equals=false
+cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
+cleanup.operand_factorization=false
cleanup.organize_imports=true
+cleanup.overridden_assignment=false
+cleanup.plain_replacement=false
+cleanup.precompile_regex=false
+cleanup.primitive_comparison=false
+cleanup.primitive_parsing=false
+cleanup.primitive_rather_than_wrapper=false
+cleanup.primitive_serialization=false
+cleanup.pull_out_if_from_if_else=false
+cleanup.pull_up_assignment=false
+cleanup.push_down_negation=false
cleanup.qualify_static_field_accesses_with_declaring_class=false
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
cleanup.qualify_static_member_accesses_with_declaring_class=false
cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.reduce_indentation=false
+cleanup.redundant_comparator=false
+cleanup.redundant_falling_through_block_end=false
cleanup.remove_private_constructors=true
cleanup.remove_redundant_modifiers=false
cleanup.remove_redundant_semicolons=true
@@ -37,25 +85,57 @@ cleanup.remove_redundant_type_arguments=true
cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true
cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_array_creation=false
cleanup.remove_unnecessary_casts=true
cleanup.remove_unnecessary_nls_tags=false
cleanup.remove_unused_imports=true
cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_method_parameters=false
cleanup.remove_unused_private_fields=true
cleanup.remove_unused_private_members=false
cleanup.remove_unused_private_methods=true
cleanup.remove_unused_private_types=true
+cleanup.return_expression=false
+cleanup.simplify_lambda_expression_and_method_ref=false
+cleanup.single_used_field=false
cleanup.sort_members=false
cleanup.sort_members_all=false
+cleanup.standard_comparison=false
+cleanup.static_inner_class=false
+cleanup.strictly_equal_or_different=false
+cleanup.stringbuffer_to_stringbuilder=false
+cleanup.stringbuilder=false
+cleanup.stringbuilder_for_local_vars=true
+cleanup.stringconcat_to_textblock=false
+cleanup.substring=false
+cleanup.switch=false
+cleanup.system_property=false
+cleanup.system_property_boolean=false
+cleanup.system_property_file_encoding=false
+cleanup.system_property_file_separator=false
+cleanup.system_property_line_separator=false
+cleanup.system_property_path_separator=false
+cleanup.ternary_operator=false
+cleanup.try_with_resource=false
+cleanup.unlooped_while=false
+cleanup.unreachable_block=false
cleanup.use_anonymous_class_creation=false
+cleanup.use_autoboxing=false
cleanup.use_blocks=false
cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_directly_map_method=false
cleanup.use_lambda=true
cleanup.use_parentheses_in_expressions=false
+cleanup.use_string_is_blank=false
cleanup.use_this_for_non_static_field_access=false
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
cleanup.use_this_for_non_static_method_access=false
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_unboxing=false
+cleanup.use_var=false
+cleanup.useless_continue=false
+cleanup.useless_return=false
+cleanup.valueof_rather_than_instantiation=false
cleanup_profile=_CDT
cleanup_settings_version=2
eclipse.preferences.version=1
diff --git a/build/org.eclipse.cdt.meson.ui.editor/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.meson.ui.editor/META-INF/MANIFEST.MF
index 3fe9757c69c..607cfed4221 100644
--- a/build/org.eclipse.cdt.meson.ui.editor/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.meson.ui.editor/META-INF/MANIFEST.MF
@@ -2,9 +2,9 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Bundle-SymbolicName: org.eclipse.cdt.meson.ui.editor;singleton:=true
-Bundle-Version: 1.0.1.qualifier
+Bundle-Version: 1.1.200.qualifier
Bundle-Vendor: %vendorName
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
Require-Bundle: org.eclipse.ui.genericeditor;bundle-version="1.0.0",
org.eclipse.tm4e.ui;bundle-version="0.1.0",
org.eclipse.ui.editors;bundle-version="3.11.0",
diff --git a/build/org.eclipse.cdt.cmake.ui/about.html b/build/org.eclipse.cdt.meson.ui.editor/about.html
index 164f781a8fd..b3134865230 100644
--- a/build/org.eclipse.cdt.cmake.ui/about.html
+++ b/build/org.eclipse.cdt.meson.ui.editor/about.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
</head>
+
<body lang="EN-US">
<h2>About This Content</h2>
@@ -16,7 +17,7 @@
(&quot;Content&quot;). Unless otherwise indicated below, the Content
is provided to you under the terms and conditions of the Eclipse
Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ available at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
@@ -29,8 +30,9 @@
license exists, contact the Redistributor. Unless otherwise indicated
below, the terms and conditions of the EPL still apply to any source
code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ href="https://www.eclipse.org/">https://www.eclipse.org</a>.
</p>
</body>
+
</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.meson.ui.editor/build.properties b/build/org.eclipse.cdt.meson.ui.editor/build.properties
index 3f23145208f..dd69371a41e 100644
--- a/build/org.eclipse.cdt.meson.ui.editor/build.properties
+++ b/build/org.eclipse.cdt.meson.ui.editor/build.properties
@@ -4,4 +4,6 @@ bin.includes = META-INF/,\
.,\
syntaxes/,\
plugin.xml,\
- OSGI-INF/
+ OSGI-INF/,\
+ about.html
+src.includes = about.html
diff --git a/build/org.eclipse.cdt.meson.ui.editor/src/keep.txt b/build/org.eclipse.cdt.meson.ui.editor/src/keep.txt
new file mode 100644
index 00000000000..0099f362938
--- /dev/null
+++ b/build/org.eclipse.cdt.meson.ui.editor/src/keep.txt
@@ -0,0 +1 @@
+This file is here just to keep this otherwise empty directory.
diff --git a/build/org.eclipse.cdt.meson.ui.tests/.classpath b/build/org.eclipse.cdt.meson.ui.tests/.classpath
index eca7bdba8f0..a42a828e04a 100644
--- a/build/org.eclipse.cdt.meson.ui.tests/.classpath
+++ b/build/org.eclipse.cdt.meson.ui.tests/.classpath
@@ -1,7 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="src">
+ <attributes>
+ <attribute name="test" value="true"/>
+ </attributes>
+ </classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/build/org.eclipse.cdt.meson.ui.tests/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.meson.ui.tests/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.meson.ui.tests/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.meson.ui.tests/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.meson.ui.tests/.settings/org.eclipse.jdt.core.prefs
index ad05599159f..5b1c443114d 100644
--- a/build/org.eclipse.cdt.meson.ui.tests/.settings/org.eclipse.jdt.core.prefs
+++ b/build/org.eclipse.cdt.meson.ui.tests/.settings/org.eclipse.jdt.core.prefs
@@ -30,9 +30,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -49,6 +49,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
@@ -107,6 +108,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
@@ -144,13 +146,14 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -158,21 +161,24 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@@ -264,11 +270,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@@ -299,6 +306,8 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@@ -323,13 +332,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@@ -377,6 +390,8 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do no
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@@ -413,9 +428,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@@ -454,10 +472,14 @@ org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/build/org.eclipse.cdt.meson.ui.tests/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.meson.ui.tests/.settings/org.eclipse.jdt.ui.prefs
index e44576346c4..d35ba9b5231 100644
--- a/build/org.eclipse.cdt.meson.ui.tests/.settings/org.eclipse.jdt.ui.prefs
+++ b/build/org.eclipse.cdt.meson.ui.tests/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,4 @@
+cleanup.add_all=false
cleanup.add_default_serial_version_id=true
cleanup.add_generated_serial_version_id=false
cleanup.add_missing_annotations=true
@@ -11,25 +12,72 @@ cleanup.always_use_blocks=true
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=false
cleanup.always_use_this_for_non_static_method_access=false
+cleanup.array_with_curly=false
+cleanup.arrays_fill=false
+cleanup.bitwise_conditional_expression=false
+cleanup.boolean_literal=false
+cleanup.boolean_value_rather_than_comparison=false
+cleanup.break_loop=false
+cleanup.collection_cloning=false
+cleanup.comparing_on_criteria=false
+cleanup.comparison_statement=false
+cleanup.controlflow_merge=false
cleanup.convert_functional_interfaces=false
cleanup.convert_to_enhanced_for_loop=false
+cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
+cleanup.convert_to_switch_expressions=false
cleanup.correct_indentation=false
+cleanup.do_while_rather_than_while=true
+cleanup.double_negation=false
+cleanup.else_if=false
+cleanup.embedded_if=false
+cleanup.evaluate_nullable=false
+cleanup.extract_increment=false
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
+cleanup.hash=false
+cleanup.if_condition=false
cleanup.insert_inferred_type_arguments=false
+cleanup.instanceof=false
+cleanup.instanceof_keyword=false
+cleanup.invert_equals=false
+cleanup.join=false
+cleanup.lazy_logical_operator=false
cleanup.make_local_variable_final=true
cleanup.make_parameters_final=false
cleanup.make_private_fields_final=true
cleanup.make_type_abstract_if_missing_method=false
cleanup.make_variable_declarations_final=false
+cleanup.map_cloning=false
+cleanup.merge_conditional_blocks=false
+cleanup.multi_catch=false
cleanup.never_use_blocks=false
cleanup.never_use_parentheses_in_expressions=true
+cleanup.no_string_creation=false
+cleanup.no_super=false
+cleanup.number_suffix=false
+cleanup.objects_equals=false
+cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
+cleanup.operand_factorization=false
cleanup.organize_imports=true
+cleanup.overridden_assignment=false
+cleanup.plain_replacement=false
+cleanup.precompile_regex=false
+cleanup.primitive_comparison=false
+cleanup.primitive_parsing=false
+cleanup.primitive_rather_than_wrapper=false
+cleanup.primitive_serialization=false
+cleanup.pull_out_if_from_if_else=false
+cleanup.pull_up_assignment=false
+cleanup.push_down_negation=false
cleanup.qualify_static_field_accesses_with_declaring_class=false
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
cleanup.qualify_static_member_accesses_with_declaring_class=false
cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.reduce_indentation=false
+cleanup.redundant_comparator=false
+cleanup.redundant_falling_through_block_end=false
cleanup.remove_private_constructors=true
cleanup.remove_redundant_modifiers=false
cleanup.remove_redundant_semicolons=true
@@ -37,25 +85,57 @@ cleanup.remove_redundant_type_arguments=true
cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true
cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_array_creation=false
cleanup.remove_unnecessary_casts=true
cleanup.remove_unnecessary_nls_tags=false
cleanup.remove_unused_imports=true
cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_method_parameters=false
cleanup.remove_unused_private_fields=true
cleanup.remove_unused_private_members=false
cleanup.remove_unused_private_methods=true
cleanup.remove_unused_private_types=true
+cleanup.return_expression=false
+cleanup.simplify_lambda_expression_and_method_ref=false
+cleanup.single_used_field=false
cleanup.sort_members=false
cleanup.sort_members_all=false
+cleanup.standard_comparison=false
+cleanup.static_inner_class=false
+cleanup.strictly_equal_or_different=false
+cleanup.stringbuffer_to_stringbuilder=false
+cleanup.stringbuilder=false
+cleanup.stringbuilder_for_local_vars=true
+cleanup.stringconcat_to_textblock=false
+cleanup.substring=false
+cleanup.switch=false
+cleanup.system_property=false
+cleanup.system_property_boolean=false
+cleanup.system_property_file_encoding=false
+cleanup.system_property_file_separator=false
+cleanup.system_property_line_separator=false
+cleanup.system_property_path_separator=false
+cleanup.ternary_operator=false
+cleanup.try_with_resource=false
+cleanup.unlooped_while=false
+cleanup.unreachable_block=false
cleanup.use_anonymous_class_creation=false
+cleanup.use_autoboxing=false
cleanup.use_blocks=false
cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_directly_map_method=false
cleanup.use_lambda=true
cleanup.use_parentheses_in_expressions=false
+cleanup.use_string_is_blank=false
cleanup.use_this_for_non_static_field_access=false
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
cleanup.use_this_for_non_static_method_access=false
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_unboxing=false
+cleanup.use_var=false
+cleanup.useless_continue=false
+cleanup.useless_return=false
+cleanup.valueof_rather_than_instantiation=false
cleanup_profile=_CDT
cleanup_settings_version=2
eclipse.preferences.version=1
diff --git a/build/org.eclipse.cdt.meson.ui.tests/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.meson.ui.tests/META-INF/MANIFEST.MF
index 6c3cf30d801..7b9273943cd 100644
--- a/build/org.eclipse.cdt.meson.ui.tests/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.meson.ui.tests/META-INF/MANIFEST.MF
@@ -1,25 +1,27 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
-Bundle-Name: Tests
+Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.cdt.meson.ui.tests
+Bundle-Vendor: %providerName
Bundle-Version: 1.0.1.qualifier
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
Require-Bundle: org.eclipse.cdt.meson.core;bundle-version="1.0.0",
org.eclipse.cdt.meson.ui;bundle-version="1.0.0",
org.eclipse.swtbot.junit4_x;bundle-version="2.6.0",
- org.junit,
org.eclipse.cdt.core,
org.eclipse.swtbot.eclipse.finder,
org.eclipse.core.resources,
org.eclipse.core.runtime;bundle-version="3.13.0",
org.eclipse.ui;bundle-version="3.109.0",
org.apache.log4j;bundle-version="1.2.15",
- org.eclipse.epp.logging.aeri.core;bundle-version="2.0.6",
org.hamcrest.library;bundle-version="1.3.0",
org.eclipse.launchbar.ui;bundle-version="2.2.0",
org.eclipse.launchbar.ui.controls;bundle-version="1.0.1",
org.eclipse.ui.console;bundle-version="3.8.0",
org.eclipse.ui.views;bundle-version="3.9.100",
org.eclipse.ui.views.properties.tabbed;bundle-version="3.8.100"
-Import-Package: org.assertj.core.api;version="1.7.1"
+Import-Package: org.assertj.core.api;version="1.7.1",
+ org.junit.jupiter.api;version="5.7.1",
+ org.junit.jupiter.api.extension;version="5.7.1"
Automatic-Module-Name: org.eclipse.cdt.meson.ui.tests
+Bundle-Localization: plugin
diff --git a/build/org.eclipse.cdt.meson.ui.tests/about.html b/build/org.eclipse.cdt.meson.ui.tests/about.html
index 164f781a8fd..b3134865230 100644
--- a/build/org.eclipse.cdt.meson.ui.tests/about.html
+++ b/build/org.eclipse.cdt.meson.ui.tests/about.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
</head>
+
<body lang="EN-US">
<h2>About This Content</h2>
@@ -16,7 +17,7 @@
(&quot;Content&quot;). Unless otherwise indicated below, the Content
is provided to you under the terms and conditions of the Eclipse
Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ available at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
@@ -29,8 +30,9 @@
license exists, contact the Redistributor. Unless otherwise indicated
below, the terms and conditions of the EPL still apply to any source
code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ href="https://www.eclipse.org/">https://www.eclipse.org</a>.
</p>
</body>
+
</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.meson.ui.tests/build.properties b/build/org.eclipse.cdt.meson.ui.tests/build.properties
index 34d2e4d2dad..86cda4414f3 100644
--- a/build/org.eclipse.cdt.meson.ui.tests/build.properties
+++ b/build/org.eclipse.cdt.meson.ui.tests/build.properties
@@ -1,4 +1,7 @@
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
- .
+ plugin.properties,\
+ .,\
+ about.html
+src.includes = about.html
diff --git a/build/org.eclipse.cdt.meson.ui.tests/plugin.properties b/build/org.eclipse.cdt.meson.ui.tests/plugin.properties
new file mode 100644
index 00000000000..1f398852583
--- /dev/null
+++ b/build/org.eclipse.cdt.meson.ui.tests/plugin.properties
@@ -0,0 +1,14 @@
+##################################################################################
+# Copyright (c) 2020 Torbjörn Svensson and others. All rights reserved.
+# This program and the accompanying materials are made available under the terms
+# of the Eclipse Public License 2.0 which accompanies this distribution, and is
+# available at https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+# Torbjörn Svensson - initial API and implementation
+##################################################################################
+
+pluginName = Tests
+providerName = Eclipse CDT
diff --git a/build/org.eclipse.cdt.meson.ui.tests/pom.xml b/build/org.eclipse.cdt.meson.ui.tests/pom.xml
index d1e1560fb1d..01da0ba17e1 100644
--- a/build/org.eclipse.cdt.meson.ui.tests/pom.xml
+++ b/build/org.eclipse.cdt.meson.ui.tests/pom.xml
@@ -1,4 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2018, 2021 Contributors to the Eclipse Foundation
+
+ This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License 2.0
+ which accompanies this distribution, and is available at
+ https://www.eclipse.org/legal/epl-2.0/
+
+ SPDX-License-Identifier: EPL-2.0
+-->
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
@@ -7,7 +17,7 @@
<parent>
<groupId>org.eclipse.cdt</groupId>
<artifactId>cdt-parent</artifactId>
- <version>9.9.0-SNAPSHOT</version>
+ <version>10.7.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/AutomatedIntegrationSuite.java b/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/AutomatedIntegrationSuite.java
deleted file mode 100644
index 103de2cdf54..00000000000
--- a/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/AutomatedIntegrationSuite.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2017, 2018 QNX Software Systems and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Red Hat Inc. - modified for use in Meson testing
- *******************************************************************************/
-package org.eclipse.cdt.internal.meson.ui.tests;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-
-@RunWith(Suite.class)
-@Suite.SuiteClasses({ NewMesonProjectTest.class, NewMesonConfigureTest.class, NewManualNinjaTest.class })
-public class AutomatedIntegrationSuite {
-
-}
diff --git a/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/NewManualNinjaTest.java b/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/NewManualNinjaTest.java
index 2d1ff80c66d..637ada6637a 100644
--- a/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/NewManualNinjaTest.java
+++ b/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/NewManualNinjaTest.java
@@ -13,25 +13,23 @@
*******************************************************************************/
package org.eclipse.cdt.internal.meson.ui.tests;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
import java.util.List;
+import java.util.concurrent.TimeUnit;
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.index.IIndexManager;
import org.eclipse.cdt.core.model.CoreModel;
import org.eclipse.cdt.core.model.IBinary;
import org.eclipse.cdt.core.model.ICProject;
-import org.eclipse.cdt.internal.meson.ui.tests.utils.CloseWelcomePageRule;
+import org.eclipse.cdt.internal.meson.ui.tests.utils.CloseWelcomePag;
import org.eclipse.cdt.meson.core.MesonNature;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPath;
-import org.eclipse.epp.logging.aeri.core.ISystemSettings;
-import org.eclipse.epp.logging.aeri.core.SendMode;
-import org.eclipse.epp.logging.aeri.core.SystemControl;
import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
import org.eclipse.swtbot.swt.finder.SWTBot;
@@ -42,26 +40,24 @@ import org.eclipse.swtbot.swt.finder.widgets.SWTBotTable;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotTableItem;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotText;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
-import org.junit.FixMethodOrder;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runners.MethodSorters;
-
-@SuppressWarnings("nls")
-@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-@Ignore
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.MethodOrderer.MethodName;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestMethodOrder;
+import org.junit.jupiter.api.Timeout;
+import org.junit.jupiter.api.extension.ExtendWith;
+
+@TestMethodOrder(MethodName.class)
+@ExtendWith(CloseWelcomePag.class)
+@Tag("flakyTest"/*BaseTestCase5.FLAKY_TEST_TAG*/)
+@Tag("slowTest"/*BaseTestCase5.SLOW_TEST_TAG*/)
public class NewManualNinjaTest {
private static SWTWorkbenchBot bot;
- @ClassRule
- public static CloseWelcomePageRule closeWelcomePage = new CloseWelcomePageRule(
- CloseWelcomePageRule.CDT_PERSPECTIVE_ID);
-
- @BeforeClass
+ @BeforeAll
public static void beforeClass() {
SWTBotPreferences.TIMEOUT = 50000;
SWTBotPreferences.KEYBOARD_LAYOUT = "EN_US";
@@ -69,14 +65,13 @@ public class NewManualNinjaTest {
bot = new SWTWorkbenchBot();
}
- @Before
+ @BeforeEach
public void before() {
- ISystemSettings settings = SystemControl.getSystemSettings();
- settings.setSendMode(SendMode.NEVER);
bot.resetWorkbench();
}
- @Test(timeout = 120000)
+ @Test
+ @Timeout(value = 2, unit = TimeUnit.MINUTES)
public void addNewMesonProject() throws Exception {
// open C++ perspective
if (!"C/C++".equals(bot.activePerspective().getLabel())) {
diff --git a/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/NewMesonConfigureTest.java b/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/NewMesonConfigureTest.java
index f01ff98a7e0..e14fb92b57b 100644
--- a/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/NewMesonConfigureTest.java
+++ b/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/NewMesonConfigureTest.java
@@ -14,22 +14,21 @@
package org.eclipse.cdt.internal.meson.ui.tests;
import static org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory.withRegex;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.util.concurrent.TimeUnit;
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.index.IIndexManager;
import org.eclipse.cdt.core.model.CoreModel;
import org.eclipse.cdt.core.model.IBinary;
import org.eclipse.cdt.core.model.ICProject;
-import org.eclipse.cdt.internal.meson.ui.tests.utils.CloseWelcomePageRule;
+import org.eclipse.cdt.internal.meson.ui.tests.utils.CloseWelcomePag;
import org.eclipse.cdt.meson.core.MesonNature;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPath;
-import org.eclipse.epp.logging.aeri.core.ISystemSettings;
-import org.eclipse.epp.logging.aeri.core.SendMode;
-import org.eclipse.epp.logging.aeri.core.SystemControl;
import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences;
@@ -39,26 +38,24 @@ import org.eclipse.swtbot.swt.finder.widgets.SWTBotTable;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotTableItem;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotText;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
-import org.junit.FixMethodOrder;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runners.MethodSorters;
-
-@SuppressWarnings("nls")
-@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-@Ignore
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.MethodOrderer.MethodName;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestMethodOrder;
+import org.junit.jupiter.api.Timeout;
+import org.junit.jupiter.api.extension.ExtendWith;
+
+@TestMethodOrder(MethodName.class)
+@ExtendWith(CloseWelcomePag.class)
+@Tag("flakyTest"/*BaseTestCase5.FLAKY_TEST_TAG*/)
+@Tag("slowTest"/*BaseTestCase5.SLOW_TEST_TAG*/)
public class NewMesonConfigureTest {
private static SWTWorkbenchBot bot;
- @ClassRule
- public static CloseWelcomePageRule closeWelcomePage = new CloseWelcomePageRule(
- CloseWelcomePageRule.CDT_PERSPECTIVE_ID);
-
- @BeforeClass
+ @BeforeAll
public static void beforeClass() {
SWTBotPreferences.TIMEOUT = 50000;
SWTBotPreferences.KEYBOARD_LAYOUT = "EN_US";
@@ -66,14 +63,13 @@ public class NewMesonConfigureTest {
bot = new SWTWorkbenchBot();
}
- @Before
+ @BeforeEach
public void before() {
- ISystemSettings settings = SystemControl.getSystemSettings();
- settings.setSendMode(SendMode.NEVER);
bot.resetWorkbench();
}
- @Test(timeout = 120000)
+ @Test
+ @Timeout(value = 2, unit = TimeUnit.MINUTES)
public void addNewMesonProject() throws Exception {
// open C++ perspective
if (!"C/C++".equals(bot.activePerspective().getLabel())) {
diff --git a/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/NewMesonProjectTest.java b/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/NewMesonProjectTest.java
index 93730b9d7a0..5019e71e0fd 100644
--- a/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/NewMesonProjectTest.java
+++ b/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/NewMesonProjectTest.java
@@ -14,22 +14,21 @@
package org.eclipse.cdt.internal.meson.ui.tests;
import static org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory.withRegex;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.util.concurrent.TimeUnit;
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.index.IIndexManager;
import org.eclipse.cdt.core.model.CoreModel;
import org.eclipse.cdt.core.model.IBinary;
import org.eclipse.cdt.core.model.ICProject;
-import org.eclipse.cdt.internal.meson.ui.tests.utils.CloseWelcomePageRule;
+import org.eclipse.cdt.internal.meson.ui.tests.utils.CloseWelcomePag;
import org.eclipse.cdt.meson.core.MesonNature;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPath;
-import org.eclipse.epp.logging.aeri.core.ISystemSettings;
-import org.eclipse.epp.logging.aeri.core.SendMode;
-import org.eclipse.epp.logging.aeri.core.SystemControl;
import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences;
@@ -39,26 +38,24 @@ import org.eclipse.swtbot.swt.finder.widgets.SWTBotTable;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotTableItem;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotText;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
-import org.junit.FixMethodOrder;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runners.MethodSorters;
-
-@SuppressWarnings("nls")
-@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-@Ignore
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.MethodOrderer.MethodName;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestMethodOrder;
+import org.junit.jupiter.api.Timeout;
+import org.junit.jupiter.api.extension.ExtendWith;
+
+@TestMethodOrder(MethodName.class)
+@ExtendWith(CloseWelcomePag.class)
+@Tag("flakyTest"/*BaseTestCase5.FLAKY_TEST_TAG*/)
+@Tag("slowTest"/*BaseTestCase5.SLOW_TEST_TAG*/)
public class NewMesonProjectTest {
private static SWTWorkbenchBot bot;
- @ClassRule
- public static CloseWelcomePageRule closeWelcomePage = new CloseWelcomePageRule(
- CloseWelcomePageRule.CDT_PERSPECTIVE_ID);
-
- @BeforeClass
+ @BeforeAll
public static void beforeClass() {
SWTBotPreferences.TIMEOUT = 50000;
SWTBotPreferences.KEYBOARD_LAYOUT = "EN_US";
@@ -66,14 +63,13 @@ public class NewMesonProjectTest {
bot = new SWTWorkbenchBot();
}
- @Before
+ @BeforeEach
public void before() {
- ISystemSettings settings = SystemControl.getSystemSettings();
- settings.setSendMode(SendMode.NEVER);
bot.resetWorkbench();
}
- @Test(timeout = 120000)
+ @Test
+ @Timeout(value = 2, unit = TimeUnit.MINUTES)
public void addNewMesonProject() throws Exception {
// open C++ perspective
if (!"C/C++".equals(bot.activePerspective().getLabel())) {
diff --git a/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/CloseShellRule.java b/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/CloseShellRule.java
deleted file mode 100644
index 2bda34a4587..00000000000
--- a/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/CloseShellRule.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 Red Hat.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Red Hat - Initial Contribution
- *******************************************************************************/
-
-package org.eclipse.cdt.internal.meson.ui.tests.utils;
-
-import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
-import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotButton;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
-import org.eclipse.ui.PlatformUI;
-import org.junit.rules.ExternalResource;
-
-/**
- * Closes the wizard(s) after each test, if the "Cancel" button is available
- */
-public class CloseShellRule extends ExternalResource {
-
- private final String buttonLabel;
-
- public CloseShellRule(final String buttonLabel) {
- this.buttonLabel = buttonLabel;
- }
-
- @Override
- protected void after() {
- final SWTWorkbenchBot bot = new SWTWorkbenchBot();
- try {
- while (isInDialog(bot) && getButton(bot, this.buttonLabel) != null) {
- getButton(bot, this.buttonLabel).click();
- }
-
- } catch (WidgetNotFoundException e) {
- // ignoring
- }
- }
-
- private static boolean isInDialog(final SWTWorkbenchBot bot) {
- final SWTBotShell activeShell = bot.activeShell();
- final String text = SWTUtils
- .syncExec(() -> PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().getText());
- final String shellText = activeShell.getText();
- return text != null && !text.equals(shellText);
- }
-
- private static SWTBotButton getButton(final SWTWorkbenchBot bot, final String buttonLabel) {
- return bot.button(buttonLabel);
- }
-}
diff --git a/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/CloseWelcomePageRule.java b/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/CloseWelcomePag.java
index a7f214d559d..c286684fe70 100644
--- a/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/CloseWelcomePageRule.java
+++ b/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/CloseWelcomePag.java
@@ -19,35 +19,25 @@ import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.WorkbenchException;
-import org.junit.rules.ExternalResource;
+import org.junit.jupiter.api.extension.BeforeEachCallback;
+import org.junit.jupiter.api.extension.ExtensionContext;
/**
* Closes the Welcome page and optionally opens a given perspective
*/
-public class CloseWelcomePageRule extends ExternalResource {
-
- public static final String DOCKER_PERSPECTIVE_ID = "org.eclipse.linuxtools.docker.ui.perspective";
+public class CloseWelcomePag implements BeforeEachCallback {
public static final String CDT_PERSPECTIVE_ID = "org.eclipse.cdt.ui.CPerspective";
- public static final String JAVA_PERSPECTIVE_ID = "org.eclipse.jdt.ui.JavaPerspective";
-
/** the Id of the perspective to open. */
private final String defaultPerspectiveId;
- /**
- * Custom constructor with the id of the perspective to open once the
- * welcome page was closed.
- *
- * @param perspectiveId
- * the id of the perspective to open.
- */
- public CloseWelcomePageRule(final String perspectiveId) {
- this.defaultPerspectiveId = perspectiveId;
+ public CloseWelcomePag() {
+ this.defaultPerspectiveId = CloseWelcomePag.CDT_PERSPECTIVE_ID;
}
@Override
- protected void before() {
+ public void beforeEach(ExtensionContext context) throws Exception {
Display.getDefault().syncExec(() -> {
final IWorkbench workbench = PlatformUI.getWorkbench();
if (workbench.getIntroManager().getIntro() != null) {
diff --git a/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/ConsoleViewRule.java b/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/ConsoleViewRule.java
deleted file mode 100644
index 7a64cc93b15..00000000000
--- a/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/ConsoleViewRule.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 Red Hat.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Red Hat - Initial Contribution
- *******************************************************************************/
-
-package org.eclipse.cdt.internal.meson.ui.tests.utils;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
-import org.eclipse.ui.console.IConsoleConstants;
-import org.junit.rules.ExternalResource;
-
-/**
- * An {@link ExternalResource} to close the Console view.
- */
-public class ConsoleViewRule extends ExternalResource {
-
- @Override
- protected void before() {
- Display.getDefault().syncExec(() -> {
- final SWTBotView consoleView = SWTUtils.getSWTBotView(new SWTWorkbenchBot(),
- IConsoleConstants.ID_CONSOLE_VIEW);
- if (consoleView != null) {
- consoleView.close();
- }
- });
- }
-
-}
diff --git a/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/ProjectExplorerViewRule.java b/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/ProjectExplorerViewRule.java
deleted file mode 100644
index 99933555779..00000000000
--- a/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/ProjectExplorerViewRule.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 Red Hat.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Red Hat - Initial Contribution
- *******************************************************************************/
-
-package org.eclipse.cdt.internal.meson.ui.tests.utils;
-
-import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.junit.Rule;
-import org.junit.rules.ExternalResource;
-
-/**
- * A JUnit {@link Rule} to open the Project Explorer view.
- */
-public class ProjectExplorerViewRule extends ExternalResource {
-
- private SWTBotView projectExplorerBotView;
-
- public static final String PROJECT_EXPLORER_VIEW_ID = "org.eclipse.ui.navigator.ProjectExplorer";
-
- @Override
- protected void before() {
- final SWTWorkbenchBot bot = new SWTWorkbenchBot();
- SWTUtils.syncExec(() -> {
- try {
- return PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
- .showView(PROJECT_EXPLORER_VIEW_ID);
- } catch (PartInitException e) {
- e.printStackTrace();
- return null;
- }
- });
- this.projectExplorerBotView = bot.viewById(PROJECT_EXPLORER_VIEW_ID);
- this.projectExplorerBotView.setFocus();
- }
-
- public SWTBotView getProjectExplorerBotView() {
- return this.projectExplorerBotView;
- }
-}
diff --git a/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/SWTBotViewRule.java b/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/SWTBotViewRule.java
deleted file mode 100644
index 42ed786baff..00000000000
--- a/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/SWTBotViewRule.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 Red Hat.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Red Hat - Initial Contribution
- *******************************************************************************/
-
-package org.eclipse.cdt.internal.meson.ui.tests.utils;
-
-import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.PlatformUI;
-import org.junit.Assert;
-import org.junit.rules.ExternalResource;
-
-/**
- *
- */
-public class SWTBotViewRule extends ExternalResource {
-
- private final SWTWorkbenchBot bot = new SWTWorkbenchBot();
-
- private final String viewId;
-
- private SWTBotView botView = null;
-
- private IViewPart view = null;
-
- public SWTBotViewRule(final String viewId) {
- this.viewId = viewId;
- }
-
- @Override
- protected void before() {
- SWTUtils.asyncExec(() -> {
- try {
- PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(this.viewId);
- } catch (Exception e) {
- e.printStackTrace();
- Assert.fail("Failed to open view with id '" + this.viewId + "': " + e.getMessage());
- }
- });
- this.botView = this.bot.viewById(this.viewId);
- this.botView.show();
- this.view = this.botView.getViewReference().getView(true);
- }
-
- public SWTBotView bot() {
- return this.botView;
- }
-
- @SuppressWarnings("unchecked")
- public <T> T view() {
- return (T) view;
- }
-
- public void close() {
- this.botView.close();
- }
-}
diff --git a/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/SWTUtils.java b/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/SWTUtils.java
index faf04a9e62b..dda4d836f16 100644
--- a/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/SWTUtils.java
+++ b/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/SWTUtils.java
@@ -13,47 +13,11 @@
*******************************************************************************/
package org.eclipse.cdt.internal.meson.ui.tests.utils;
-import static org.assertj.core.api.Assertions.fail;
-
-import java.util.List;
import java.util.Queue;
import java.util.concurrent.ArrayBlockingQueue;
-import java.util.concurrent.TimeUnit;
import java.util.function.Supplier;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.IJobChangeEvent;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.core.runtime.jobs.JobChangeAdapter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
-import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
-import org.eclipse.swtbot.swt.finder.finders.ContextMenuHelper;
-import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable;
-import org.eclipse.swtbot.swt.finder.results.Result;
-import org.eclipse.swtbot.swt.finder.results.VoidResult;
-import org.eclipse.swtbot.swt.finder.widgets.AbstractSWTBot;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotMenu;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTable;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTableItem;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarButton;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
-import org.eclipse.ui.console.IConsoleConstants;
-import org.eclipse.ui.progress.UIJob;
-import org.junit.Assert;
-import org.junit.ComparisonFailure;
/**
* Utility class for SWT
@@ -73,439 +37,4 @@ public class SWTUtils {
Display.getDefault().syncExec(() -> result.add(supplier.get()));
return result.poll();
}
-
- /**
- * Executes <strong>synchronously</strong> the given {@link Runnable} in the
- * default Display
- *
- * @param runnable
- * the {@link Runnable} to execute
- */
- public static void syncExec(final Runnable runnable) {
- Display.getDefault().syncExec(runnable);
- }
-
- /**
- * Executes <strong>synchronously</strong> the given {@link Runnable} in the
- * default Display. The given {@link Runnable} is ran into a rapping
- * {@link Runnable} that will catch the {@link ComparisonFailure} that may
- * be raised during an assertion.
- *
- * @param runnable
- * the {@link Runnable} to execute
- * @throws ComparisonFailure
- * if an assertion failed.
- * @throws SWTException
- * if an {@link SWTException} occurred
- */
- public static void syncAssert(final Runnable runnable) throws SWTException, ComparisonFailure {
- final Queue<ComparisonFailure> failure = new ArrayBlockingQueue<>(1);
- final Queue<SWTException> swtException = new ArrayBlockingQueue<>(1);
- Display.getDefault().syncExec(() -> {
- try {
- runnable.run();
- } catch (ComparisonFailure e1) {
- failure.add(e1);
- } catch (SWTException e2) {
- swtException.add(e2);
- }
- });
- if (!failure.isEmpty()) {
- throw failure.poll();
- }
- if (!swtException.isEmpty()) {
- throw swtException.poll();
- }
- }
-
- /**
- * Executes the given {@link Runnable} <strong>asynchronously</strong> in
- * the default {@link Display} and waits until all jobs are done before
- * completing.
- *
- * @param runnable
- * @throws InterruptedException
- */
- public static void asyncExec(final Runnable runnable) {
- asyncExec(runnable, true);
- }
-
- /**
- * Executes the given {@link Runnable} <strong>asynchronously</strong> in
- * the default {@link Display} and waits until all jobs are done before
- * completing.
- *
- * @param runnable
- * the {@link Runnable} to execute
- * @param waitForJobsToComplete
- * boolean flag to indicate if the method should wait for all
- * jobs to complete before finishing
- * @throws InterruptedException
- */
- public static void asyncExec(final Runnable runnable, final boolean waitForJobsToComplete) {
- final Queue<ComparisonFailure> failure = new ArrayBlockingQueue<>(1);
- final Queue<SWTException> swtException = new ArrayBlockingQueue<>(1);
- Display.getDefault().asyncExec(() -> {
- try {
- runnable.run();
- } catch (ComparisonFailure e1) {
- failure.add(e1);
- } catch (SWTException e2) {
- swtException.add(e2);
- }
- });
- if (waitForJobsToComplete) {
- waitForJobsToComplete();
- }
- if (!failure.isEmpty()) {
- throw failure.poll();
- }
- if (!swtException.isEmpty()) {
- throw swtException.poll();
- }
- }
-
- /**
- * Waits for all {@link Job} to complete.
- *
- * @throws InterruptedException
- */
- public static void waitForJobsToComplete() {
- wait(1, TimeUnit.SECONDS);
- while (!Job.getJobManager().isIdle()) {
- wait(1, TimeUnit.SECONDS);
- }
- }
-
- /**
- * @param viewBot
- * the {@link SWTBotView} containing the {@link Tree} to traverse
- * @param paths
- * the node path in the {@link SWTBotTree} associated with the
- * given {@link SWTBotView}
- * @return the first {@link SWTBotTreeItem} matching the given node names
- */
- public static SWTBotTreeItem getTreeItem(final SWTBotView viewBot, final String... paths) {
- final SWTBotTree tree = viewBot.bot().tree();
- return getTreeItem(tree.getAllItems(), paths);
- }
-
- /**
- *
- * @param parentTreeItem
- * the parent tree item from which to start
- * @param paths
- * the relative path to the item to return
- * @return the {@link SWTBotTreeItem} that matches the given path from the
- * given parent tree item
- */
- public static SWTBotTreeItem getTreeItem(final SWTBotTreeItem parentTreeItem, final String... paths) {
- if (paths.length == 1) {
- return getTreeItem(parentTreeItem, paths[0]);
- }
- final String[] remainingPaths = new String[paths.length - 1];
- System.arraycopy(paths, 1, remainingPaths, 0, paths.length - 1);
- return getTreeItem(getTreeItem(parentTreeItem, paths[0]), remainingPaths);
- }
-
- /**
- * Returns the first child node in the given parent tree item whose text
- * matches (ie, begins with) the given path argument.
- *
- * @param parentTree
- * the parent tree item
- * @param path
- * the text of the node that should match
- * @return the first matching node or <code>null</code> if none could be
- * found
- */
- public static SWTBotTreeItem getTreeItem(final SWTBotTree parentTree, final String path) {
- for (SWTBotTreeItem child : parentTree.getAllItems()) {
- if (child.getText().startsWith(path)) {
- return child;
- }
- }
- return null;
- }
-
- /**
- * Returns the first child node in the given parent tree item whose text
- * matches (ie, begins with) the given path argument.
- *
- * @param parentTreeItem
- * the parent tree item
- * @param path
- * the text of the node that should match
- * @return the first matching node or <code>null</code> if none could be
- * found
- */
- public static SWTBotTreeItem getTreeItem(final SWTBotTreeItem parentTreeItem, final String path) {
- for (SWTBotTreeItem child : parentTreeItem.getItems()) {
- if (child.getText().startsWith(path)) {
- return child;
- }
- }
- return null;
- }
-
- private static SWTBotTreeItem getTreeItem(final SWTBotTreeItem[] treeItems, final String[] paths) {
- final SWTBotTreeItem swtBotTreeItem = Stream.of(treeItems).filter(item -> item.getText().startsWith(paths[0]))
- .findFirst().orElseThrow(() -> new RuntimeException("Only available items: "
- + Stream.of(treeItems).map(item -> item.getText()).collect(Collectors.joining(", "))));
- if (paths.length > 1) {
- syncExec(() -> swtBotTreeItem.expand());
- final String[] remainingPath = new String[paths.length - 1];
- System.arraycopy(paths, 1, remainingPath, 0, remainingPath.length);
- return getTreeItem(swtBotTreeItem.getItems(), remainingPath);
- }
- return swtBotTreeItem;
- }
-
- public static SWTBotTableItem getListItem(final SWTBotTable table, final String name) {
- return Stream.iterate(0, i -> i + 1).limit(table.rowCount()).map(rowNumber -> table.getTableItem(rowNumber))
- .filter(rowItem -> {
- return Stream.iterate(0, j -> j + 1).limit(table.columnCount())
- .map(colNum -> rowItem.getText(colNum)).anyMatch(colValue -> colValue.contains(name));
- }).findFirst().orElse(null);
- }
-
- /**
- * Waits for the given duration
- *
- * @param duration
- * the duration
- * @param unit
- * the duration unit
- */
- public static void wait(final int duration, final TimeUnit unit) {
- try {
- Thread.sleep(unit.toMillis(duration));
- } catch (InterruptedException e) {
- fail("Failed to wait for a " + unit.toMillis(duration) + "ms", e);
- }
- }
-
- /**
- * Selects <strong> all child items</strong> in the given
- * <code>parentTreeItem</code> whose labels match the given
- * <code>items</code>.
- *
- * @param parentTreeItem
- * the parent tree item
- * @param matchItems
- * the items to select
- * @return
- */
- public static SWTBotTreeItem select(final SWTBotTreeItem parentTreeItem, final String... matchItems) {
- final List<String> fullyQualifiedItems = Stream.of(parentTreeItem.getItems()).filter(
- treeItem -> Stream.of(matchItems).anyMatch(matchItem -> treeItem.getText().startsWith(matchItem)))
- .map(item -> item.getText()).collect(Collectors.toList());
- return parentTreeItem.select(fullyQualifiedItems.toArray(new String[0]));
- }
-
- /**
- * Selects <strong> all child items</strong> in the given
- * <code>parentTreeItem</code> whose labels match the given
- * <code>items</code>.
- *
- * @param parentTree
- * the parent tree
- * @param matchItems
- * the items to select
- * @return
- */
- public static SWTBotTree select(final SWTBotTree parentTree, final String... matchItems) {
- final List<String> fullyQualifiedItems = Stream.of(parentTree.getAllItems()).filter(
- treeItem -> Stream.of(matchItems).anyMatch(matchItem -> treeItem.getText().startsWith(matchItem)))
- .map(item -> item.getText()).collect(Collectors.toList());
- return parentTree.select(fullyQualifiedItems.toArray(new String[0]));
- }
-
- /**
- * Selects the given <code>treeItem</code> whose labels match the given
- * <code>items</code>.
- *
- * @param treeItem
- * the parent tree item
- * @param matchItems
- * the items to select
- */
- public static void select(SWTBotTreeItem treeItem) {
- treeItem.select();
- }
-
- /**
- * @param tree
- * the root {@link SWTBotTree}
- * @param path
- * the path for the menu
- * @return the child {@link SWTBotMenu} named with the first item in the
- * given <code>path</code> from the given {@link SWTBotTree}
- */
- public static SWTBotMenu getContextMenu(final SWTBotTree tree, String... path) {
- final SWTBotMenu contextMenu = tree.contextMenu(path[0]);
- if (contextMenu == null) {
- Assert.fail("Failed to find context menu '" + path[0] + "'.");
- }
- if (path.length == 1) {
- return contextMenu;
- }
- final String[] remainingPath = new String[path.length - 1];
- System.arraycopy(path, 1, remainingPath, 0, remainingPath.length);
- return getSubMenu(contextMenu, remainingPath);
- }
-
- /**
- * Hides the menu for the given <code>tree</code>
- *
- * @param tree
- * the tree whose {@link Menu} should be hidden
- */
- public static void hideMenu(final SWTBotTree tree) {
- try {
- final Menu menu = UIThreadRunnable.syncExec((Result<Menu>) () -> tree.widget.getMenu());
- UIThreadRunnable.syncExec(new VoidResult() {
-
- @Override
- public void run() {
- hide(menu);
- }
-
- private void hide(final Menu menu) {
- menu.notifyListeners(SWT.Hide, new Event());
- if (menu.getParentMenu() != null) {
- hide(menu.getParentMenu());
- }
- }
- });
- } catch (WidgetNotFoundException e) {
- // ignore if widget is not found, that's probably because there's no
- // tree in the
- // Docker Explorer view for the test that just ran.
- }
- }
-
- /**
- * @param menu
- * the parent menu
- * @param path
- * the path for the menu
- * @return the child {@link SWTBotMenu} named with the first item in the
- * given <code>path</code> from the given {@link SWTBotMenu}
- */
- public static SWTBotMenu getSubMenu(final SWTBotMenu menu, String... path) {
- final SWTBotMenu subMenu = menu.menu(path[0]);
- if (subMenu == null) {
- Assert.fail("Failed to find submenu '" + path[0] + "'.");
- }
- if (path.length == 1) {
- return subMenu;
- }
- final String[] remainingPath = new String[path.length - 1];
- System.arraycopy(path, 1, remainingPath, 0, remainingPath.length);
- return getSubMenu(subMenu, remainingPath);
- }
-
- public static SWTBotTreeItem expand(final SWTBotTree tree, final String... paths) {
- final SWTBotTreeItem rootItem = getTreeItem(tree, paths[0]);
- expandTreeItem(rootItem);
- if (paths.length > 1) {
- final String[] remainingPath = new String[paths.length - 1];
- System.arraycopy(paths, 1, remainingPath, 0, remainingPath.length);
- return expand(rootItem, remainingPath);
- }
- return rootItem;
- }
-
- public static SWTBotTreeItem expand(final SWTBotTreeItem treeItem, final String... paths) {
- final SWTBotTreeItem childItem = getTreeItem(treeItem, paths[0]);
- expandTreeItem(childItem);
- if (paths.length > 1) {
- final String[] remainingPath = new String[paths.length - 1];
- System.arraycopy(paths, 1, remainingPath, 0, remainingPath.length);
- return expand(childItem, remainingPath);
- }
- return getTreeItem(treeItem, paths[0]);
- }
-
- private static SWTBotTreeItem expandTreeItem(final SWTBotTreeItem treeItem) {
- final UIJob expandJob = new UIJob("expanding tree") {
-
- @Override
- public IStatus runInUIThread(IProgressMonitor monitor) {
- treeItem.expand();
- return Status.OK_STATUS;
- }
- };
- expandJob.addJobChangeListener(new JobChangeAdapter() {
- @Override
- public void done(IJobChangeEvent event) {
- final int maxAttempts = 30;
- int currentAttempt = 0;
- while (currentAttempt < maxAttempts && treeItem.getItems().length == 1
- && treeItem.getItems()[0].getText().isEmpty()) {
- SWTUtils.wait(1, TimeUnit.SECONDS);
- currentAttempt++;
- }
-
- }
- });
- expandJob.schedule();
- SWTUtils.wait(1, TimeUnit.SECONDS);
- return treeItem;
- }
-
- public static SWTBotView getSWTBotView(final SWTWorkbenchBot bot, final String viewId) {
- return bot.views().stream().filter(v -> v.getViewReference().getId().equals(viewId)).findFirst().orElse(null);
- }
-
- @SuppressWarnings("unchecked")
- public static <T> T getView(final SWTWorkbenchBot bot, final String viewId) {
- return (T) getView(bot, viewId, false);
- }
-
- @SuppressWarnings("unchecked")
- public static <T> T getView(final SWTWorkbenchBot bot, final String viewId, final boolean restore) {
- final SWTBotView viewBot = bot.viewById(viewId);
- viewBot.setFocus();
- return (T) viewBot.getReference().getView(restore);
- }
-
- /**
- * @return <code>true</code> if the Console view is visible in the active
- * page, <code>false</code> otherwise.
- * @throws InterruptedException
- */
- public static boolean isConsoleViewVisible(final SWTWorkbenchBot bot) {
- return bot.views().stream()
- .anyMatch(v -> v.getViewReference().getId().equals(IConsoleConstants.ID_CONSOLE_VIEW));
- }
-
- public static SWTBotToolbarButton getConsoleToolbarButtonWithTooltipText(final SWTWorkbenchBot bot,
- final String tooltipText) {
- return bot.viewById(IConsoleConstants.ID_CONSOLE_VIEW).getToolbarButtons().stream()
- .filter(button -> button.getToolTipText().equals(tooltipText)).findFirst().get();
- }
-
- public static void closeView(final SWTWorkbenchBot bot, final String viewId) {
- bot.views().stream().filter(v -> v.getReference().getId().equals(viewId)).forEach(v -> v.close());
- }
-
- /**
- * Creates a new {@link SWTBotMenu} from the context. This avoids some
- * unexpected "Widget is disposed" errors.
- *
- * @param bot
- * the bot
- * @param menuName
- * the name of the menu to find
- * @return the context menu
- * @see <a href=
- * "https://www.eclipse.org/forums/index.php?t=msg&th=11863&start=0&">Eclipse
- * forum</a>
- */
- public static SWTBotMenu getContextMenu(final AbstractSWTBot<? extends Control> bot, final String menuName) {
- return new SWTBotMenu(ContextMenuHelper.contextMenu(bot, menuName));
- }
-
}
diff --git a/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/TestLoggerRule.java b/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/TestLoggerRule.java
deleted file mode 100644
index 663f77a0d7c..00000000000
--- a/build/org.eclipse.cdt.meson.ui.tests/src/org/eclipse/cdt/internal/meson/ui/tests/utils/TestLoggerRule.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 Red Hat.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Red Hat - Initial Contribution
- *******************************************************************************/
-
-package org.eclipse.cdt.internal.meson.ui.tests.utils;
-
-import org.junit.rules.TestWatcher;
-import org.junit.runner.Description;
-
-/**
- *
- */
-public class TestLoggerRule extends TestWatcher {
-
- @Override
- protected void starting(final Description description) {
- System.out.println("Starting " + description.getClassName() + "." + description.getMethodName());
- }
-}
diff --git a/build/org.eclipse.cdt.meson.ui/.classpath b/build/org.eclipse.cdt.meson.ui/.classpath
index eca7bdba8f0..e801ebfb468 100644
--- a/build/org.eclipse.cdt.meson.ui/.classpath
+++ b/build/org.eclipse.cdt.meson.ui/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
diff --git a/build/org.eclipse.cdt.meson.ui/.project b/build/org.eclipse.cdt.meson.ui/.project
index e70361cee48..09581b90499 100644
--- a/build/org.eclipse.cdt.meson.ui/.project
+++ b/build/org.eclipse.cdt.meson.ui/.project
@@ -20,9 +20,15 @@
<arguments>
</arguments>
</buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
</natures>
</projectDescription>
diff --git a/build/org.eclipse.cdt.meson.ui/.settings/org.eclipse.core.resources.prefs b/build/org.eclipse.cdt.meson.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/build/org.eclipse.cdt.meson.ui/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/build/org.eclipse.cdt.meson.ui/.settings/org.eclipse.jdt.core.prefs b/build/org.eclipse.cdt.meson.ui/.settings/org.eclipse.jdt.core.prefs
index 2b6ecff8a01..e3a8104f9ca 100644
--- a/build/org.eclipse.cdt.meson.ui/.settings/org.eclipse.jdt.core.prefs
+++ b/build/org.eclipse.cdt.meson.ui/.settings/org.eclipse.jdt.core.prefs
@@ -30,9 +30,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -49,6 +49,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
@@ -107,6 +108,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
@@ -144,13 +146,14 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@@ -158,21 +161,24 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@@ -264,11 +270,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@@ -299,6 +306,8 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@@ -323,13 +332,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@@ -377,6 +390,8 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do no
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@@ -413,9 +428,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@@ -454,10 +472,14 @@ org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/build/org.eclipse.cdt.meson.ui/.settings/org.eclipse.jdt.ui.prefs b/build/org.eclipse.cdt.meson.ui/.settings/org.eclipse.jdt.ui.prefs
index e44576346c4..d35ba9b5231 100644
--- a/build/org.eclipse.cdt.meson.ui/.settings/org.eclipse.jdt.ui.prefs
+++ b/build/org.eclipse.cdt.meson.ui/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,4 @@
+cleanup.add_all=false
cleanup.add_default_serial_version_id=true
cleanup.add_generated_serial_version_id=false
cleanup.add_missing_annotations=true
@@ -11,25 +12,72 @@ cleanup.always_use_blocks=true
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=false
cleanup.always_use_this_for_non_static_method_access=false
+cleanup.array_with_curly=false
+cleanup.arrays_fill=false
+cleanup.bitwise_conditional_expression=false
+cleanup.boolean_literal=false
+cleanup.boolean_value_rather_than_comparison=false
+cleanup.break_loop=false
+cleanup.collection_cloning=false
+cleanup.comparing_on_criteria=false
+cleanup.comparison_statement=false
+cleanup.controlflow_merge=false
cleanup.convert_functional_interfaces=false
cleanup.convert_to_enhanced_for_loop=false
+cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
+cleanup.convert_to_switch_expressions=false
cleanup.correct_indentation=false
+cleanup.do_while_rather_than_while=true
+cleanup.double_negation=false
+cleanup.else_if=false
+cleanup.embedded_if=false
+cleanup.evaluate_nullable=false
+cleanup.extract_increment=false
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
+cleanup.hash=false
+cleanup.if_condition=false
cleanup.insert_inferred_type_arguments=false
+cleanup.instanceof=false
+cleanup.instanceof_keyword=false
+cleanup.invert_equals=false
+cleanup.join=false
+cleanup.lazy_logical_operator=false
cleanup.make_local_variable_final=true
cleanup.make_parameters_final=false
cleanup.make_private_fields_final=true
cleanup.make_type_abstract_if_missing_method=false
cleanup.make_variable_declarations_final=false
+cleanup.map_cloning=false
+cleanup.merge_conditional_blocks=false
+cleanup.multi_catch=false
cleanup.never_use_blocks=false
cleanup.never_use_parentheses_in_expressions=true
+cleanup.no_string_creation=false
+cleanup.no_super=false
+cleanup.number_suffix=false
+cleanup.objects_equals=false
+cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
+cleanup.operand_factorization=false
cleanup.organize_imports=true
+cleanup.overridden_assignment=false
+cleanup.plain_replacement=false
+cleanup.precompile_regex=false
+cleanup.primitive_comparison=false
+cleanup.primitive_parsing=false
+cleanup.primitive_rather_than_wrapper=false
+cleanup.primitive_serialization=false
+cleanup.pull_out_if_from_if_else=false
+cleanup.pull_up_assignment=false
+cleanup.push_down_negation=false
cleanup.qualify_static_field_accesses_with_declaring_class=false
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
cleanup.qualify_static_member_accesses_with_declaring_class=false
cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.reduce_indentation=false
+cleanup.redundant_comparator=false
+cleanup.redundant_falling_through_block_end=false
cleanup.remove_private_constructors=true
cleanup.remove_redundant_modifiers=false
cleanup.remove_redundant_semicolons=true
@@ -37,25 +85,57 @@ cleanup.remove_redundant_type_arguments=true
cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true
cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_array_creation=false
cleanup.remove_unnecessary_casts=true
cleanup.remove_unnecessary_nls_tags=false
cleanup.remove_unused_imports=true
cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_method_parameters=false
cleanup.remove_unused_private_fields=true
cleanup.remove_unused_private_members=false
cleanup.remove_unused_private_methods=true
cleanup.remove_unused_private_types=true
+cleanup.return_expression=false
+cleanup.simplify_lambda_expression_and_method_ref=false
+cleanup.single_used_field=false
cleanup.sort_members=false
cleanup.sort_members_all=false
+cleanup.standard_comparison=false
+cleanup.static_inner_class=false
+cleanup.strictly_equal_or_different=false
+cleanup.stringbuffer_to_stringbuilder=false
+cleanup.stringbuilder=false
+cleanup.stringbuilder_for_local_vars=true
+cleanup.stringconcat_to_textblock=false
+cleanup.substring=false
+cleanup.switch=false
+cleanup.system_property=false
+cleanup.system_property_boolean=false
+cleanup.system_property_file_encoding=false
+cleanup.system_property_file_separator=false
+cleanup.system_property_line_separator=false
+cleanup.system_property_path_separator=false
+cleanup.ternary_operator=false
+cleanup.try_with_resource=false
+cleanup.unlooped_while=false
+cleanup.unreachable_block=false
cleanup.use_anonymous_class_creation=false
+cleanup.use_autoboxing=false
cleanup.use_blocks=false
cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_directly_map_method=false
cleanup.use_lambda=true
cleanup.use_parentheses_in_expressions=false
+cleanup.use_string_is_blank=false
cleanup.use_this_for_non_static_field_access=false
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
cleanup.use_this_for_non_static_method_access=false
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_unboxing=false
+cleanup.use_var=false
+cleanup.useless_continue=false
+cleanup.useless_return=false
+cleanup.valueof_rather_than_instantiation=false
cleanup_profile=_CDT
cleanup_settings_version=2
eclipse.preferences.version=1
diff --git a/build/org.eclipse.cdt.meson.ui/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.meson.ui/META-INF/MANIFEST.MF
index 971f531e9f2..2328dfcb6ee 100644
--- a/build/org.eclipse.cdt.meson.ui/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.meson.ui/META-INF/MANIFEST.MF
@@ -2,22 +2,23 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name.0
Bundle-SymbolicName: org.eclipse.cdt.meson.ui;singleton:=true
-Bundle-Version: 1.0.100.qualifier
+Bundle-Version: 1.1.500.qualifier
Bundle-Vendor: %vendorName
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
Bundle-Activator: org.eclipse.cdt.meson.ui.Activator
Bundle-ActivationPolicy: lazy
Bundle-Localization: plugin
Require-Bundle: org.eclipse.core.runtime;bundle-version="3.13.0",
org.eclipse.ui;bundle-version="3.109.0",
org.eclipse.cdt.meson.core;bundle-version="1.0.0",
- org.eclipse.tools.templates.core;bundle-version="1.1.0",
- org.eclipse.tools.templates.ui;bundle-version="1.1.1",
+ org.eclipse.tools.templates.ui;bundle-version="1.3.0",
+ org.eclipse.tools.templates.freemarker;bundle-version="1.2.200",
org.eclipse.ui.ide;bundle-version="3.13.1",
- org.eclipse.tools.templates.freemarker;bundle-version="1.0.0",
org.eclipse.cdt.core;bundle-version="6.4.0",
org.eclipse.core.resources;bundle-version="3.12.0",
org.eclipse.debug.core;bundle-version="3.11.0",
org.eclipse.cdt.launch;bundle-version="9.2.0",
- org.eclipse.debug.ui;bundle-version="3.12.50"
+ org.eclipse.debug.ui;bundle-version="3.12.50",
+ com.fasterxml.jackson.core.jackson-databind;bundle-version="2.9.93",
+ com.fasterxml.jackson.core.jackson-core;bundle-version="2.9.9"
Automatic-Module-Name: org.eclipse.cdt.meson.ui
diff --git a/build/org.eclipse.cdt.meson.ui/about.html b/build/org.eclipse.cdt.meson.ui/about.html
index 164f781a8fd..b3134865230 100644
--- a/build/org.eclipse.cdt.meson.ui/about.html
+++ b/build/org.eclipse.cdt.meson.ui/about.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <title>About</title>
</head>
+
<body lang="EN-US">
<h2>About This Content</h2>
@@ -16,7 +17,7 @@
(&quot;Content&quot;). Unless otherwise indicated below, the Content
is provided to you under the terms and conditions of the Eclipse
Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
- available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ available at <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
@@ -29,8 +30,9 @@
license exists, contact the Redistributor. Unless otherwise indicated
below, the terms and conditions of the EPL still apply to any source
code in the Content and such source code may be obtained at <a
- href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ href="https://www.eclipse.org/">https://www.eclipse.org</a>.
</p>
</body>
+
</html> \ No newline at end of file
diff --git a/build/org.eclipse.cdt.meson.ui/about.ini b/build/org.eclipse.cdt.meson.ui/about.ini
new file mode 100644
index 00000000000..e07a7bb377e
--- /dev/null
+++ b/build/org.eclipse.cdt.meson.ui/about.ini
@@ -0,0 +1,24 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%blurb
+
+# Property "windowImage" contains path to window icon (16x16)
+# needed for primary features only
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=cdt_logo_icon32.png
+
+# Property "aboutImage" contains path to product image (500x330 or 115x164)
+# needed for primary features only
+
+# Property "appName" contains name of the application (translated)
+# needed for primary features only
+
+# Property "welcomePerspective" contains the id of the perspective in which the
+# welcome page is to be opened.
+# optional
diff --git a/build/org.eclipse.cdt.meson.ui/about.mappings b/build/org.eclipse.cdt.meson.ui/about.mappings
new file mode 100644
index 00000000000..936a8039c3e
--- /dev/null
+++ b/build/org.eclipse.cdt.meson.ui/about.mappings
@@ -0,0 +1,9 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+# The following should contain the build version.
+# e.g. "0=20200106-1728"
+# This value will be added automatically via the build scripts
+0=${buildId}
diff --git a/build/org.eclipse.cdt.meson.ui/about.properties b/build/org.eclipse.cdt.meson.ui/about.properties
new file mode 100644
index 00000000000..05af348fff3
--- /dev/null
+++ b/build/org.eclipse.cdt.meson.ui/about.properties
@@ -0,0 +1,32 @@
+###############################################################################
+# Copyright (c) 2018, 2022 Contributors to the Eclipse Foundation
+#
+# See the NOTICE file(s) distributed with this work for additional
+# information regarding copyright ownership.
+#
+# This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+###############################################################################
+# about.properties
+# contains externalized strings for about.ini
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# fill-ins are supplied by about.mappings
+# This file should be translated.
+# NOTE TO TRANSLATOR: Please do not translate the featureVersion variable.
+
+
+blurb=C/C++ Meson Build Support - Preview\n\
+\n\
+Version: {featureVersion}\n\
+Build id: {0}\n\
+\n\
+Copyright (c) 2018, 2022 Contributors to the Eclipse Foundation
+\n\
+See the NOTICE file(s) distributed with this work for additional\n\
+information regarding copyright ownership.\n\
+\n\
+Visit http://www.eclipse.org/cdt
diff --git a/build/org.eclipse.cdt.meson.ui/build.properties b/build/org.eclipse.cdt.meson.ui/build.properties
index d3ac1d69326..905d070d39b 100644
--- a/build/org.eclipse.cdt.meson.ui/build.properties
+++ b/build/org.eclipse.cdt.meson.ui/build.properties
@@ -5,4 +5,9 @@ bin.includes = META-INF/,\
icons/,\
plugin.xml,\
plugin.properties,\
- about.html
+ about.html,\
+ cdt_logo_icon32.png,\
+ about.properties,\
+ about.mappings,\
+ about.ini
+src.includes = about.html
diff --git a/build/org.eclipse.cdt.meson.ui/cdt_logo_icon32.png b/build/org.eclipse.cdt.meson.ui/cdt_logo_icon32.png
new file mode 100644
index 00000000000..470ca81b327
--- /dev/null
+++ b/build/org.eclipse.cdt.meson.ui/cdt_logo_icon32.png
Binary files differ
diff --git a/build/org.eclipse.cdt.meson.ui/plugin.xml b/build/org.eclipse.cdt.meson.ui/plugin.xml
index a517f8ec1cf..9c788aaff3c 100644
--- a/build/org.eclipse.cdt.meson.ui/plugin.xml
+++ b/build/org.eclipse.cdt.meson.ui/plugin.xml
@@ -147,7 +147,12 @@
</command>
</menuContribution>
</extension>
-
-
+ <extension
+ point="org.eclipse.ui.ide.projectConfigurators">
+ <projectConfigurator
+ class="org.eclipse.cdt.internal.meson.ui.MesonProjectConfigurator"
+ label="Meson Project">
+ </projectConfigurator>
+ </extension>
</plugin>
diff --git a/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/internal/meson/ui/MesonBuildTab.java b/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/internal/meson/ui/MesonBuildTab.java
index 0e2359d1ed3..8840b3dfc1e 100644
--- a/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/internal/meson/ui/MesonBuildTab.java
+++ b/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/internal/meson/ui/MesonBuildTab.java
@@ -34,7 +34,7 @@ import org.eclipse.swt.widgets.Text;
public class MesonBuildTab extends CommonBuildTab {
- private static final String NINJA = "Ninja";
+ private static final String NINJA = "Ninja"; //$NON-NLS-1$
private Button unixGenButton;
private Button ninjaGenButton;
private Text mesonArgsText;
@@ -135,7 +135,7 @@ public class MesonBuildTab extends CommonBuildTab {
}
private void updateGeneratorButtons(String generator) {
- if (generator == null || generator.equals(NINJA)) { //$NON-NLS-1$
+ if (generator == null || generator.equals(NINJA)) {
ninjaGenButton.setSelection(true);
} else {
unixGenButton.setSelection(true);
@@ -149,7 +149,7 @@ public class MesonBuildTab extends CommonBuildTab {
ICBuildConfiguration buildConfig = getBuildConfiguration();
buildConfig.setProperty(IMesonConstants.MESON_GENERATOR,
- ninjaGenButton.getSelection() ? NINJA : "Unix Makefiles"); //$NON-NLS-1$ //$NON-NLS-2$
+ ninjaGenButton.getSelection() ? NINJA : "Unix Makefiles"); //$NON-NLS-1$
String mesonArgs = mesonArgsText.getText().trim();
if (!mesonArgs.isEmpty()) {
@@ -176,7 +176,7 @@ public class MesonBuildTab extends CommonBuildTab {
@Override
protected void saveProperties(Map<String, String> properties) {
super.saveProperties(properties);
- properties.put(IMesonConstants.MESON_GENERATOR, ninjaGenButton.getSelection() ? NINJA : "Unix Makefiles"); //$NON-NLS-1$ //$NON-NLS-2$
+ properties.put(IMesonConstants.MESON_GENERATOR, ninjaGenButton.getSelection() ? NINJA : "Unix Makefiles"); //$NON-NLS-1$
properties.put(IMesonConstants.MESON_ARGUMENTS, mesonArgsText.getText().trim());
properties.put(IMesonConstants.BUILD_COMMAND, buildCommandText.getText().trim());
@@ -190,7 +190,7 @@ public class MesonBuildTab extends CommonBuildTab {
String gen = properties.get(IMesonConstants.MESON_GENERATOR);
if (gen != null) {
switch (gen) {
- case NINJA: //$NON-NLS-1$
+ case NINJA:
ninjaGenButton.setSelection(true);
unixGenButton.setSelection(false);
break;
diff --git a/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/internal/meson/ui/MesonProjectConfigurator.java b/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/internal/meson/ui/MesonProjectConfigurator.java
new file mode 100644
index 00000000000..3c38675aa16
--- /dev/null
+++ b/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/internal/meson/ui/MesonProjectConfigurator.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2021 Mat Booth and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************/
+package org.eclipse.cdt.internal.meson.ui;
+
+import java.util.List;
+
+import org.eclipse.cdt.meson.core.MesonProjectGenerator;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.tools.templates.core.IGenerator;
+import org.eclipse.tools.templates.ui.ProjectImportConfigurator;
+
+/**
+ * Smart-import strategy for importing pre-existing Meson projects.
+ */
+public class MesonProjectConfigurator extends ProjectImportConfigurator {
+
+ @Override
+ protected List<String> getProjectFileNames() {
+ return List.of("meson.build"); //$NON-NLS-1$
+ }
+
+ @Override
+ protected IGenerator getGenerator(IProject project) {
+ // Don't pass any template to the generator, we are importing an existing project
+ MesonProjectGenerator generator = new MesonProjectGenerator(null);
+ generator.setProjectName(project.getName());
+ generator.setLocationURI(project.getLocationURI());
+ return generator;
+ }
+}
diff --git a/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/internal/meson/ui/SWTImagesFactory.java b/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/internal/meson/ui/SWTImagesFactory.java
index 5c56c670950..0995fed8283 100644
--- a/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/internal/meson/ui/SWTImagesFactory.java
+++ b/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/internal/meson/ui/SWTImagesFactory.java
@@ -40,7 +40,7 @@ public class SWTImagesFactory {
private static final String NAME_PREFIX = Activator.PLUGIN_ID + '.';
private static final int NAME_PREFIX_LENGTH = NAME_PREFIX.length();
public static final String IMG_MESON = NAME_PREFIX + "meson-logo.png"; //$NON-NLS-1$
- public static final ImageDescriptor DESC_MESON = createManaged("", IMG_MESON);
+ public static final ImageDescriptor DESC_MESON = createManaged("", IMG_MESON); //$NON-NLS-1$
private static ImageDescriptor createManaged(String prefix, String name) {
return createManaged(imageRegistry, prefix, name);
diff --git a/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/internal/meson/ui/commands/RunNinjaCommandHandler.java b/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/internal/meson/ui/commands/RunNinjaCommandHandler.java
index 8e79f194cba..22a4f477056 100644
--- a/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/internal/meson/ui/commands/RunNinjaCommandHandler.java
+++ b/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/internal/meson/ui/commands/RunNinjaCommandHandler.java
@@ -79,7 +79,7 @@ public class RunNinjaCommandHandler extends AbstractMesonCommandHandler {
String[] ninjaArgs = null;
if (argString != null) {
List<String> ninjaArgList = new ArrayList<>();
- Matcher m = Pattern.compile("([^\"]\\S*|\".+?\")\\s*").matcher(argString);
+ Matcher m = Pattern.compile("([^\"]\\S*|\".+?\")\\s*").matcher(argString); //$NON-NLS-1$
while (m.find()) {
ninjaArgList.add(m.group(1));
}
diff --git a/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyArgs.java b/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyArgs.java
index 1d90412dee3..cce190ee8c6 100644
--- a/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyArgs.java
+++ b/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyArgs.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2018 Red Hat Inc. and others.
+ * Copyright (c) 2018, 2020 Red Hat Inc. and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -23,7 +23,6 @@ public class MesonPropertyArgs extends MesonPropertyText {
@Override
public String getConfiguredString() {
- // TODO Auto-generated method stub
return "-D" + getFieldName() + "='" + getFieldValue() + "'"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
diff --git a/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyCheckbox.java b/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyCheckbox.java
index 1fd22d73650..2b713d683ed 100644
--- a/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyCheckbox.java
+++ b/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyCheckbox.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2018 Red Hat Inc. and others.
+ * Copyright (c) 2018, 2020 Red Hat Inc. and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -40,7 +40,14 @@ public class MesonPropertyCheckbox implements IMesonPropertyPageControl {
data2.grabExcessHorizontalSpace = true;
data2.horizontalSpan = 1;
Label label = new Label(composite, SWT.NONE);
- label.setText(tooltip);
+ String labelText = tooltip;
+ if (tooltip.length() > 15) {
+ int period = labelText.indexOf("."); //$NON-NLS-1$
+ if (period > 0 && period < tooltip.length() - 1) {
+ labelText = tooltip.substring(0, period + 1);
+ }
+ }
+ label.setText(labelText);
label.setLayoutData(data2);
}
diff --git a/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyCombo.java b/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyCombo.java
index bff5d38fa5e..433eab9da91 100644
--- a/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyCombo.java
+++ b/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyCombo.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2018 Red Hat Inc. and others.
+ * Copyright (c) 2018, 2020 Red Hat Inc. and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -30,6 +30,7 @@ public class MesonPropertyCombo implements IMesonPropertyPageControl {
this.initialValue = initialValue;
Label label = new Label(composite, SWT.NONE);
label.setText(name);
+ label.setToolTipText(tooltip);
label.setLayoutData(new GridData());
combo = new Combo(composite, SWT.BORDER | SWT.DROP_DOWN | SWT.READ_ONLY);
GridData data = new GridData(GridData.FILL_BOTH);
diff --git a/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyPage.java b/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyPage.java
index 9007fcd215b..9b7faf40ad2 100644
--- a/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyPage.java
+++ b/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyPage.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2016,2018 IAR Systems AB
+ * Copyright (c) 2016,2020 IAR Systems AB
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -53,6 +53,10 @@ import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.dialogs.PropertyPage;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
/**
* Property page for Meson projects. For unconfigured projects, we use the meson command and parse
* the output of the --help option. Otherwise, we use the meson configure command to find current
@@ -89,28 +93,40 @@ public class MesonPropertyPage extends PropertyPage {
configured = buildPath.toFile().exists();
if (configured) {
- ICommandLauncher launcher = CommandLauncherManager.getInstance()
- .getCommandLauncher(project.getActiveBuildConfig().getAdapter(ICBuildConfiguration.class));
- launcher.setProject(project);
- if (launcher instanceof ICBuildCommandLauncher) {
- ((ICBuildCommandLauncher) launcher).setBuildConfiguration(buildConfig);
- }
- Process p = launcher.execute(new Path("meson"), new String[] { "configure", buildDir }, //$NON-NLS-1$ //$NON-NLS-2$
- new String[0], sourceDir, new NullProgressMonitor());
- if (p != null) {
- ByteArrayOutputStream stdout = new ByteArrayOutputStream();
- ByteArrayOutputStream stderr = new ByteArrayOutputStream();
- int rc = -1;
- try {
- if (launcher.waitAndRead(stdout, stderr, new NullProgressMonitor()) == ICommandLauncher.OK) {
- p.waitFor();
- }
- rc = p.exitValue();
- } catch (InterruptedException e) {
- // ignore for now
+ IPath infoPath = new Path(buildDir).append("meson-info"); //$NON-NLS-1$
+ boolean newerMeson = infoPath.toFile().exists();
+ if (newerMeson) {
+ IPath optionsPath = infoPath.append("intro-buildoptions.json"); //$NON-NLS-1$
+ if (optionsPath.toFile().exists()) {
+ componentList = parseInfoOptions(optionsPath, composite);
+ } else {
+ return null;
+ }
+ } else {
+ ICommandLauncher launcher = CommandLauncherManager.getInstance()
+ .getCommandLauncher(project.getActiveBuildConfig().getAdapter(ICBuildConfiguration.class));
+ launcher.setProject(project);
+ if (launcher instanceof ICBuildCommandLauncher) {
+ ((ICBuildCommandLauncher) launcher).setBuildConfiguration(buildConfig);
}
- if (rc == 0) {
- componentList = parseConfigureOutput(stdout, composite);
+ Process p = launcher.execute(new Path("meson"), new String[] { "configure", buildDir }, //$NON-NLS-1$ //$NON-NLS-2$
+ new String[0], sourceDir, new NullProgressMonitor());
+ if (p != null) {
+ ByteArrayOutputStream stdout = new ByteArrayOutputStream();
+ ByteArrayOutputStream stderr = new ByteArrayOutputStream();
+ int rc = -1;
+ try {
+ if (launcher.waitAndRead(stdout, stderr,
+ new NullProgressMonitor()) == ICommandLauncher.OK) {
+ p.waitFor();
+ }
+ rc = p.exitValue();
+ } catch (InterruptedException e) {
+ // ignore for now
+ }
+ if (rc == 0) {
+ componentList = parseConfigureOutput(stdout, composite);
+ }
}
}
} else {
@@ -249,10 +265,10 @@ public class MesonPropertyPage extends PropertyPage {
args.add("configure"); //$NON-NLS-1$
for (IMesonPropertyPageControl control : componentList) {
if (control.isValueChanged()) {
- args.add(control.getConfiguredString()); //$NON-NLS-1$ //$NON-NLS-2$
+ args.add(control.getConfiguredString());
}
}
- if (args.size() == 2) {
+ if (args.size() == 1) {
return true;
}
try {
@@ -268,7 +284,7 @@ public class MesonPropertyPage extends PropertyPage {
}
args.add(buildDir);
Process p = launcher.execute(new Path("meson"), args.toArray(new String[0]), new String[0], sourceDir, //$NON-NLS-1$
- new NullProgressMonitor()); //$NON-NLS-2$
+ new NullProgressMonitor());
int rc = -1;
IConsole console = CCorePlugin.getDefault().getConsole();
console.start(project);
@@ -345,12 +361,12 @@ public class MesonPropertyPage extends PropertyPage {
try {
String output = stdout.toString(StandardCharsets.UTF_8.name()).replaceAll("\\r?\\n\\s+", " "); //$NON-NLS-1$ //$NON-NLS-2$
String[] lines = output.split("--"); //$NON-NLS-1$
- Pattern optionPattern = Pattern.compile("(([a-z-]+)\\s+(([A-Z_][A-Z_]+))?\\s*(\\{.*?\\})?([^\\[\\]]*))");
- Pattern descPattern1 = Pattern.compile("([^\\.]+).*");
- Pattern descPattern = Pattern.compile("([^\\(]*)(\\(default\\:\\s+([^\\)]+)\\).*)");
+ Pattern optionPattern = Pattern.compile("(([a-z-]+)\\s+(([A-Z_][A-Z_]+))?\\s*(\\{.*?\\})?([^\\[\\]]*))"); //$NON-NLS-1$
+ Pattern descPattern1 = Pattern.compile("([^\\.]+).*"); //$NON-NLS-1$
+ Pattern descPattern = Pattern.compile("([^\\(]*)(\\(default\\:\\s+([^\\)]+)\\).*)"); //$NON-NLS-1$
for (String line : lines) {
Matcher optionMatcher = optionPattern.matcher(line);
- if (optionMatcher.matches() && !optionMatcher.group(2).equals("help")) {
+ if (optionMatcher.matches() && !optionMatcher.group(2).equals("help")) { //$NON-NLS-1$
if (optionMatcher.group(3) != null) {
String defaultValue = argMap.get(optionMatcher.group(2));
String description = optionMatcher.group(6);
@@ -409,7 +425,7 @@ public class MesonPropertyPage extends PropertyPage {
Pattern optionWithValuesPattern = Pattern.compile(Messages.MesonPropertyPage_option_with_values_pattern);
Pattern optionLine = Pattern.compile("(\\w+)\\s+([\\w,\\-,/]+)\\s+(.*)$"); //$NON-NLS-1$
Pattern optionWithValuesLine = Pattern
- .compile("(\\w+)\\s+([\\w,\\-,/]+)\\s+\\[([\\w,\\-,/]+)((,\\s+[\\w,\\-]+)*)\\]\\s+(.*)$");
+ .compile("(\\w+)\\s+([\\w,\\-,/]+)\\s+\\[([\\w,\\-,/]+)((,\\s+[\\w,\\-]+)*)\\]\\s+(.*)$"); //$NON-NLS-1$
Pattern compilerOrLinkerArgs = Pattern.compile(Messages.MesonPropertyPage_compiler_or_link_args);
Pattern argLine = Pattern.compile("(\\w+)\\s+\\[([^\\]]*)\\]"); //$NON-NLS-1$
Pattern groupPattern = Pattern.compile("(([^:]*)):"); //$NON-NLS-1$
@@ -550,7 +566,7 @@ public class MesonPropertyPage extends PropertyPage {
String description = m4.group(6);
String[] values = new String[] { possibleValue };
if (!extraValues.isEmpty()) {
- values = extraValues.split(",\\s+");
+ values = extraValues.split(",\\s+"); //$NON-NLS-1$
values[0] = possibleValue;
}
IMesonPropertyPageControl control = new MesonPropertyCombo(parent, name, values, value,
@@ -576,4 +592,89 @@ public class MesonPropertyPage extends PropertyPage {
return controls;
}
+ List<IMesonPropertyPageControl> parseInfoOptions(IPath optionsPath, Composite composite) {
+ List<IMesonPropertyPageControl> controls = new ArrayList<>();
+ ObjectMapper mapper = new ObjectMapper();
+ Composite parent = composite;
+ try {
+ JsonNode root = mapper.readTree(optionsPath.toFile());
+ if (!root.isArray()) {
+ return null;
+ }
+ String lastSection = ""; //$NON-NLS-1$
+ for (JsonNode node : root) {
+ IMesonPropertyPageControl control = null;
+ String type = node.path("type").asText(); //$NON-NLS-1$
+ String section = node.path("section").asText(); //$NON-NLS-1$
+ String name = null;
+ String value = null;
+ String description = null;
+ if (!section.equals(lastSection)) {
+ Group group = new Group(composite, SWT.BORDER);
+ group.setLayout(new GridLayout(2, true));
+ group.setLayoutData(new GridData(GridData.FILL_BOTH));
+ String sectionName = section + " options:"; //$NON-NLS-1$
+ sectionName = sectionName.substring(0, 1).toUpperCase() + sectionName.substring(1);
+ group.setText(sectionName);
+ parent = group;
+ lastSection = section;
+ }
+ switch (type) {
+ case "combo": //$NON-NLS-1$
+ name = node.path("name").asText(); //$NON-NLS-1$
+ value = node.path("value").asText(); //$NON-NLS-1$
+ description = node.path("description").asText(); //$NON-NLS-1$
+ JsonNode choices = node.path("choices"); //$NON-NLS-1$
+ ArrayList<String> choiceList = new ArrayList<>();
+ for (JsonNode choiceNode : choices) {
+ String choice = choiceNode.asText();
+ choiceList.add(choice);
+ }
+ control = new MesonPropertyCombo(parent, name, choiceList.toArray(new String[0]), value,
+ description);
+ controls.add(control);
+ break;
+ case "boolean": //$NON-NLS-1$
+ name = node.path("name").asText(); //$NON-NLS-1$
+ value = node.path("value").asText(); //$NON-NLS-1$
+ description = node.path("description").asText(); //$NON-NLS-1$
+ control = new MesonPropertyCheckbox(parent, name, Boolean.getBoolean(value), description);
+ controls.add(control);
+ break;
+ case "string": //$NON-NLS-1$
+ name = node.path("name").asText(); //$NON-NLS-1$
+ value = node.path("value").asText(); //$NON-NLS-1$
+ description = node.path("description").asText(); //$NON-NLS-1$
+ control = new MesonPropertyText(parent, name, value, description);
+ controls.add(control);
+ break;
+ case "array": //$NON-NLS-1$
+ name = node.path("name").asText(); //$NON-NLS-1$
+ value = new String(""); //$NON-NLS-1$
+ for (JsonNode val : node.path("value")) { ////$NON-NLS-1$
+ if (!value.isEmpty()) {
+ value += ","; //$NON-NLS-1$
+ }
+ value += val.asText();
+ }
+ description = node.path("description").asText(); //$NON-NLS-1$
+ control = new MesonPropertyText(parent, name, value, description);
+ controls.add(control);
+ break;
+ case "integer": //$NON-NLS-1$
+ name = node.path("name").asText(); //$NON-NLS-1$
+ value = node.path("value").asText(); //$NON-NLS-1$
+ description = node.path("description").asText(); //$NON-NLS-1$
+ control = new MesonPropertyInteger(parent, this, name, value, description);
+ controls.add(control);
+ break;
+ }
+ }
+ } catch (JsonProcessingException e) {
+ Activator.log(e);
+ } catch (IOException e) {
+ Activator.log(e);
+ }
+ return controls;
+ }
} \ No newline at end of file
diff --git a/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertySpecialCheckbox.java b/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertySpecialCheckbox.java
index 1bd5e1c3f27..ef15e16d0c0 100644
--- a/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertySpecialCheckbox.java
+++ b/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertySpecialCheckbox.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2018 Red Hat Inc. and others.
+ * Copyright (c) 2018, 2020 Red Hat Inc. and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -26,7 +26,7 @@ public class MesonPropertySpecialCheckbox extends MesonPropertyCheckbox {
if (checkbox.getSelection()) {
return "--" + getFieldName(); //$NON-NLS-1$
}
- return "";
+ return ""; //$NON-NLS-1$
}
}
diff --git a/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyText.java b/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyText.java
index 951ce10b46e..ac819882650 100644
--- a/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyText.java
+++ b/build/org.eclipse.cdt.meson.ui/src/org/eclipse/cdt/meson/ui/properties/MesonPropertyText.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2018 Red Hat Inc. and others.
+ * Copyright (c) 2018, 2020 Red Hat Inc. and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -33,13 +33,13 @@ public class MesonPropertyText implements IMesonPropertyPageControl {
this.initialValue = initialValue;
Label label = new Label(composite, SWT.NONE);
label.setText(name);
+ label.setToolTipText(tooltip);
label.setLayoutData(new GridData());
text = new Text(composite, SWT.SINGLE | SWT.BORDER);
GridData data = new GridData(GridData.FILL_BOTH);
data.grabExcessHorizontalSpace = true;
text.setLayoutData(data);
text.setText(initialValue);
- text.setToolTipText(tooltip);
}
@Override
@@ -68,7 +68,7 @@ public class MesonPropertyText implements IMesonPropertyPageControl {
if (value != null && !value.isEmpty()) {
return "--" + getFieldName() + "=" + getFieldValue(); //$NON-NLS-1$ //$NON-NLS-2$
}
- return "";
+ return ""; //$NON-NLS-1$
}
@Override
diff --git a/build/pom.xml b/build/pom.xml
index 860cb5957df..e83e53bfb42 100644
--- a/build/pom.xml
+++ b/build/pom.xml
@@ -1,4 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2017, 2021 Contributors to the Eclipse Foundation
+
+ This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License 2.0
+ which accompanies this distribution, and is available at
+ https://www.eclipse.org/legal/epl-2.0/
+
+ SPDX-License-Identifier: EPL-2.0
+-->
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
@@ -7,7 +17,7 @@
<parent>
<groupId>org.eclipse.cdt</groupId>
<artifactId>cdt-parent</artifactId>
- <version>9.9.0-SNAPSHOT</version>
+ <version>10.7.0-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.cdt.build-parent</artifactId>

Back to the top