From c58c781d17f0395659410b592a87cc75b8f27426 Mon Sep 17 00:00:00 2001 From: Jonah Graham Date: Wed, 22 Jan 2025 11:01:11 -0500 Subject: [PATCH] Provide an example of extending CMake project type in Core Build In issue #1000 a lot of the work is on exposing a better API to ISVs. This new project serves these purposes: - Ensure the exposed API works in practice - Example for ISVs to use if they want to extend CMake - Provide an in-tree example of the API in use, so future editors of CDT have better chance of understanding *why* items are done as they are. --- NewAndNoteworthy/CDT-12.0.md | 8 + ...DT-12.0-cmake-example-project-for-isvs.png | Bin 0 -> 62496 bytes .../org.eclipse.cdt.cmake.example/.classpath | 7 + cmake/org.eclipse.cdt.cmake.example/.project | 28 + .../org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 486 ++++++++++++++++++ .../.settings/org.eclipse.jdt.launching.prefs | 3 + .../.settings/org.eclipse.jdt.ui.prefs | 213 ++++++++ .../.settings/org.eclipse.pde.api.tools.prefs | 184 +++++++ .../.settings/org.eclipse.pde.prefs | 36 ++ .../META-INF/MANIFEST.MF | 22 + .../org.eclipse.cdt.cmake.example/about.html | 38 ++ .../build.properties | 10 + .../icons/cmake_logo-main.png | Bin 0 -> 5140 bytes .../plugin.properties | 16 + .../org.eclipse.cdt.cmake.example/plugin.xml | 55 ++ .../ExtendedCMakeBuildConfiguration.java | 38 ++ ...tendedCMakeBuildConfigurationProvider.java | 47 ++ .../cmake/example/ExtendedCMakeNature.java | 19 + .../ExtendedCMakeProjectGenerator.java | 44 ++ .../eclipse/cdt/cmake/example/Messages.java | 27 + .../NewExtendedCMakeProjectWizard.java | 55 ++ .../cdt/cmake/example/messages.properties | 3 + .../templates/simple/.clangd | 4 + .../templates/simple/CMakeLists.txt | 15 + .../templates/simple/config.h.in | 2 + .../templates/simple/main.cpp | 9 + .../templates/simple/manifest.xml | 11 + 28 files changed, 1382 insertions(+) create mode 100644 NewAndNoteworthy/images/CDT-12.0-cmake-example-project-for-isvs.png create mode 100644 cmake/org.eclipse.cdt.cmake.example/.classpath create mode 100644 cmake/org.eclipse.cdt.cmake.example/.project create mode 100644 cmake/org.eclipse.cdt.cmake.example/.settings/org.eclipse.core.resources.prefs create mode 100644 cmake/org.eclipse.cdt.cmake.example/.settings/org.eclipse.jdt.core.prefs create mode 100644 cmake/org.eclipse.cdt.cmake.example/.settings/org.eclipse.jdt.launching.prefs create mode 100644 cmake/org.eclipse.cdt.cmake.example/.settings/org.eclipse.jdt.ui.prefs create mode 100644 cmake/org.eclipse.cdt.cmake.example/.settings/org.eclipse.pde.api.tools.prefs create mode 100644 cmake/org.eclipse.cdt.cmake.example/.settings/org.eclipse.pde.prefs create mode 100644 cmake/org.eclipse.cdt.cmake.example/META-INF/MANIFEST.MF create mode 100644 cmake/org.eclipse.cdt.cmake.example/about.html create mode 100644 cmake/org.eclipse.cdt.cmake.example/build.properties create mode 100644 cmake/org.eclipse.cdt.cmake.example/icons/cmake_logo-main.png create mode 100644 cmake/org.eclipse.cdt.cmake.example/plugin.properties create mode 100644 cmake/org.eclipse.cdt.cmake.example/plugin.xml create mode 100644 cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/ExtendedCMakeBuildConfiguration.java create mode 100644 cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/ExtendedCMakeBuildConfigurationProvider.java create mode 100644 cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/ExtendedCMakeNature.java create mode 100644 cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/ExtendedCMakeProjectGenerator.java create mode 100644 cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/Messages.java create mode 100644 cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/NewExtendedCMakeProjectWizard.java create mode 100644 cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/messages.properties create mode 100644 cmake/org.eclipse.cdt.cmake.example/templates/simple/.clangd create mode 100644 cmake/org.eclipse.cdt.cmake.example/templates/simple/CMakeLists.txt create mode 100644 cmake/org.eclipse.cdt.cmake.example/templates/simple/config.h.in create mode 100644 cmake/org.eclipse.cdt.cmake.example/templates/simple/main.cpp create mode 100644 cmake/org.eclipse.cdt.cmake.example/templates/simple/manifest.xml diff --git a/NewAndNoteworthy/CDT-12.0.md b/NewAndNoteworthy/CDT-12.0.md index 858a4877d1d..45e2426bf66 100644 --- a/NewAndNoteworthy/CDT-12.0.md +++ b/NewAndNoteworthy/CDT-12.0.md @@ -63,6 +63,14 @@ Starting in CDT 12, the Terminal will now default to UTF-8. # API Changes, current and planned +## CMake Support easier for extenders and ISVs + +Improvements to the API for CMake has made it easier to extend and specialize CMake for ISVs. +A fully worked example demonstrating the support is now provided in the CDT source in [org.eclipse.cdt.cmake.example](https://github.com/eclipse-cdt/cdt/tree/main/cmake/org.eclipse.cdt.cmake.example). +This example demonstrates the API, and how to contribute a new project wizard to make such a project. + +

+ ## Breaking API changes Please see [CHANGELOG-API](CHANGELOG-API.md) for details on the breaking API changes in this release as well as future planned API changes. diff --git a/NewAndNoteworthy/images/CDT-12.0-cmake-example-project-for-isvs.png b/NewAndNoteworthy/images/CDT-12.0-cmake-example-project-for-isvs.png new file mode 100644 index 0000000000000000000000000000000000000000..0f3b9f0886589e9967dc1d1b7c03d249538c1f9f GIT binary patch literal 62496 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 z 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 + + + + + + diff --git a/cmake/org.eclipse.cdt.cmake.example/.project b/cmake/org.eclipse.cdt.cmake.example/.project new file mode 100644 index 00000000000..8f1213aa16e --- /dev/null +++ b/cmake/org.eclipse.cdt.cmake.example/.project @@ -0,0 +1,28 @@ + + + org.eclipse.cdt.cmake.example + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/cmake/org.eclipse.cdt.cmake.example/.settings/org.eclipse.core.resources.prefs b/cmake/org.eclipse.cdt.cmake.example/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000000..99f26c0203a --- /dev/null +++ b/cmake/org.eclipse.cdt.cmake.example/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/cmake/org.eclipse.cdt.cmake.example/.settings/org.eclipse.jdt.core.prefs b/cmake/org.eclipse.cdt.cmake.example/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000000..9df862f8d49 --- /dev/null +++ b/cmake/org.eclipse.cdt.cmake.example/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,486 @@ +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=17 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=17 +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.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 +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.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 +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=enabled +org.eclipse.jdt.core.compiler.source=17 +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 +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_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 +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_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_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 +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_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 +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_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_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 +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_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 +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_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 +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_additive_operator=true +org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false +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 +org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/cmake/org.eclipse.cdt.cmake.example/.settings/org.eclipse.jdt.launching.prefs b/cmake/org.eclipse.cdt.cmake.example/.settings/org.eclipse.jdt.launching.prefs new file mode 100644 index 00000000000..f8a131b56e0 --- /dev/null +++ b/cmake/org.eclipse.cdt.cmake.example/.settings/org.eclipse.jdt.launching.prefs @@ -0,0 +1,3 @@ +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/cmake/org.eclipse.cdt.cmake.example/.settings/org.eclipse.jdt.ui.prefs b/cmake/org.eclipse.cdt.cmake.example/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 00000000000..d35ba9b5231 --- /dev/null +++ b/cmake/org.eclipse.cdt.cmake.example/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,213 @@ +cleanup.add_all=false +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.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 +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 +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/cmake/org.eclipse.cdt.cmake.example/.settings/org.eclipse.pde.api.tools.prefs b/cmake/org.eclipse.cdt.cmake.example/.settings/org.eclipse.pde.api.tools.prefs new file mode 100644 index 00000000000..ec9fbf321d0 --- /dev/null +++ b/cmake/org.eclipse.cdt.cmake.example/.settings/org.eclipse.pde.api.tools.prefs @@ -0,0 +1,184 @@ +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/cmake/org.eclipse.cdt.cmake.example/.settings/org.eclipse.pde.prefs b/cmake/org.eclipse.cdt.cmake.example/.settings/org.eclipse.pde.prefs new file mode 100644 index 00000000000..ffaa8e3f1a7 --- /dev/null +++ b/cmake/org.eclipse.cdt.cmake.example/.settings/org.eclipse.pde.prefs @@ -0,0 +1,36 @@ +compilers.f.unresolved-features=1 +compilers.f.unresolved-plugins=1 +compilers.incompatible-environment=1 +compilers.p.build=1 +compilers.p.build.bin.includes=0 +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=0 +compilers.p.deprecated=1 +compilers.p.discouraged-class=1 +compilers.p.exec-env-too-low=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=0 +compilers.p.unknown-element=1 +compilers.p.unknown-identifier=0 +compilers.p.unknown-resource=0 +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/cmake/org.eclipse.cdt.cmake.example/META-INF/MANIFEST.MF b/cmake/org.eclipse.cdt.cmake.example/META-INF/MANIFEST.MF new file mode 100644 index 00000000000..330d818fb2b --- /dev/null +++ b/cmake/org.eclipse.cdt.cmake.example/META-INF/MANIFEST.MF @@ -0,0 +1,22 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: org.eclipse.cdt.cmake.example;singleton:=true +Bundle-Version: 1.0.0.qualifier +Export-Package: org.eclipse.cdt.cmake.example;x-internal:=true +Bundle-Vendor: %providerName +Bundle-RequiredExecutionEnvironment: JavaSE-17 +Require-Bundle: org.eclipse.cdt.cmake.core, + org.eclipse.cdt.cmake.ui, + org.eclipse.cdt.core, + org.eclipse.core.resources, + org.eclipse.core.runtime, + org.eclipse.jface, + org.eclipse.tools.templates.core, + org.eclipse.tools.templates.ui, + org.eclipse.tools.templates.freemarker, + org.eclipse.ui, + org.eclipse.ui.ide +Import-Package: freemarker.template;version="[2.3.22,3.0.0)" +Automatic-Module-Name: org.eclipse.cdt.cmake.example +Bundle-Localization: plugin diff --git a/cmake/org.eclipse.cdt.cmake.example/about.html b/cmake/org.eclipse.cdt.cmake.example/about.html new file mode 100644 index 00000000000..b3134865230 --- /dev/null +++ b/cmake/org.eclipse.cdt.cmake.example/about.html @@ -0,0 +1,38 @@ + + + + + + About + + + +

About This Content

+ +

November 30, 2017

+

License

+ +

+ The Eclipse Foundation makes available all content in this plug-in + ("Content"). Unless otherwise indicated below, the Content + is provided to you under the terms and conditions of the Eclipse + Public License Version 2.0 ("EPL"). A copy of the EPL is + available at https://www.eclipse.org/legal/epl-2.0. + For purposes of the EPL, "Program" will mean the Content. +

+ +

+ If you did not receive this Content directly from the Eclipse + Foundation, the Content is being redistributed by another party + ("Redistributor") 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 https://www.eclipse.org. +

+ + + + \ No newline at end of file diff --git a/cmake/org.eclipse.cdt.cmake.example/build.properties b/cmake/org.eclipse.cdt.cmake.example/build.properties new file mode 100644 index 00000000000..da95ac2901b --- /dev/null +++ b/cmake/org.eclipse.cdt.cmake.example/build.properties @@ -0,0 +1,10 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + plugin.properties,\ + about.html,\ + plugin.xml,\ + icons/,\ + templates/ +src.includes = about.html diff --git a/cmake/org.eclipse.cdt.cmake.example/icons/cmake_logo-main.png b/cmake/org.eclipse.cdt.cmake.example/icons/cmake_logo-main.png new file mode 100644 index 0000000000000000000000000000000000000000..f31af16c27208dd654eb5490556d826fc7a3ad8d GIT binary patch literal 5140 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 literal 0 HcmV?d00001 diff --git a/cmake/org.eclipse.cdt.cmake.example/plugin.properties b/cmake/org.eclipse.cdt.cmake.example/plugin.properties new file mode 100644 index 00000000000..8abf9807fb4 --- /dev/null +++ b/cmake/org.eclipse.cdt.cmake.example/plugin.properties @@ -0,0 +1,16 @@ +################################################################################## +# 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 = CMake Examples +providerName = Eclipse CDT + +nature.name = Extended CMake Nature diff --git a/cmake/org.eclipse.cdt.cmake.example/plugin.xml b/cmake/org.eclipse.cdt.cmake.example/plugin.xml new file mode 100644 index 00000000000..4d250309bf8 --- /dev/null +++ b/cmake/org.eclipse.cdt.cmake.example/plugin.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/ExtendedCMakeBuildConfiguration.java b/cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/ExtendedCMakeBuildConfiguration.java new file mode 100644 index 00000000000..6bf274dc316 --- /dev/null +++ b/cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/ExtendedCMakeBuildConfiguration.java @@ -0,0 +1,38 @@ +/******************************************************************************* + * Copyright (c) 2015, 2025 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.example; + +import org.eclipse.cdt.cmake.core.CMakeBuildConfiguration; +import org.eclipse.cdt.cmake.core.ICMakeToolChainFile; +import org.eclipse.cdt.core.build.IToolChain; +import org.eclipse.core.resources.IBuildConfiguration; +import org.eclipse.core.runtime.CoreException; + +/** + * An example CMake build configuration that demonstrates how an ISV can provide their own customisations. + */ +public class ExtendedCMakeBuildConfiguration extends CMakeBuildConfiguration { + + public ExtendedCMakeBuildConfiguration(IBuildConfiguration config, String name) throws CoreException { + super(config, name); + } + + public ExtendedCMakeBuildConfiguration(IBuildConfiguration config, String name, IToolChain toolChain, + ICMakeToolChainFile toolChainFile, String launchMode) { + super(config, name, toolChain, toolChainFile, launchMode); + } + + public ExtendedCMakeBuildConfiguration(IBuildConfiguration config, String name, IToolChain toolChain) { + super(config, name, toolChain); + } + + // TODO: Here goes the example extending that is being developed in #1046 https://github.com/eclipse-cdt/cdt/pull/1046 +} \ No newline at end of file diff --git a/cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/ExtendedCMakeBuildConfigurationProvider.java b/cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/ExtendedCMakeBuildConfigurationProvider.java new file mode 100644 index 00000000000..db46df571d9 --- /dev/null +++ b/cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/ExtendedCMakeBuildConfigurationProvider.java @@ -0,0 +1,47 @@ +/******************************************************************************* + * Copyright (c) 2016, 2025 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.example; + +import org.eclipse.cdt.cmake.core.CMakeBuildConfiguration; +import org.eclipse.cdt.cmake.core.CMakeBuildConfigurationProvider; +import org.eclipse.cdt.cmake.core.ICMakeToolChainFile; +import org.eclipse.cdt.core.build.IToolChain; +import org.eclipse.core.resources.IBuildConfiguration; +import org.eclipse.core.runtime.CoreException; + +public class ExtendedCMakeBuildConfigurationProvider extends CMakeBuildConfigurationProvider { + @SuppressWarnings("hiding") + public static final String ID = "org.eclipse.cdt.cmake.example.provider.extended"; //$NON-NLS-1$ + + @Override + public String getId() { + return ID; + } + + @Override + protected CMakeBuildConfiguration createCMakeBuildConfiguration(IBuildConfiguration config, String name) + throws CoreException { + return new ExtendedCMakeBuildConfiguration(config, name); + } + + @Override + protected CMakeBuildConfiguration createCMakeBuildConfiguration(IBuildConfiguration config, String name, + IToolChain toolChain) { + return new ExtendedCMakeBuildConfiguration(config, name, toolChain); + } + + @Override + protected CMakeBuildConfiguration createCMakeBuildConfiguration(IBuildConfiguration config, String name, + IToolChain toolChain, ICMakeToolChainFile toolChainFile, String launchMode) { + return new ExtendedCMakeBuildConfiguration(config, name, toolChain, toolChainFile, launchMode); + } + +} diff --git a/cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/ExtendedCMakeNature.java b/cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/ExtendedCMakeNature.java new file mode 100644 index 00000000000..4e9220a2434 --- /dev/null +++ b/cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/ExtendedCMakeNature.java @@ -0,0 +1,19 @@ +/******************************************************************************* + * Copyright (c) 2015, 2025 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.example; + +import org.eclipse.cdt.cmake.core.CMakeNature; + +public class ExtendedCMakeNature extends CMakeNature { + + @SuppressWarnings("hiding") + public static final String ID = "org.eclipse.cdt.cmake.example.extendedCmakeNature"; //$NON-NLS-1$ +} diff --git a/cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/ExtendedCMakeProjectGenerator.java b/cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/ExtendedCMakeProjectGenerator.java new file mode 100644 index 00000000000..97a49e1e546 --- /dev/null +++ b/cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/ExtendedCMakeProjectGenerator.java @@ -0,0 +1,44 @@ +/******************************************************************************* + * Copyright (c) 2015, 2025 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.example; + +import java.util.ArrayList; +import java.util.Arrays; + +import org.eclipse.cdt.cmake.core.CMakeNature; +import org.eclipse.cdt.cmake.core.CMakeProjectGenerator; +import org.eclipse.core.resources.IProjectDescription; +import org.osgi.framework.Bundle; +import org.osgi.framework.FrameworkUtil; + +public class ExtendedCMakeProjectGenerator extends CMakeProjectGenerator { + + public ExtendedCMakeProjectGenerator(String manifestFile) { + super(manifestFile); + } + + @Override + protected void initProjectDescription(IProjectDescription description) { + super.initProjectDescription(description); + + // Add our nature ID so that our extension to CMakeBuildConfiguration can be used + var natureIds = new ArrayList<>(Arrays.asList(description.getNatureIds())); + natureIds.remove(CMakeNature.ID); + natureIds.add(ExtendedCMakeNature.ID); + description.setNatureIds(natureIds.toArray(String[]::new)); + } + + @Override + public Bundle getSourceBundle() { + return FrameworkUtil.getBundle(ExtendedCMakeProjectGenerator.class); + } + +} diff --git a/cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/Messages.java b/cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/Messages.java new file mode 100644 index 00000000000..587e70fd19a --- /dev/null +++ b/cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/Messages.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright (c) 2017, 2025 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.example; + +import org.eclipse.osgi.util.NLS; + +public class Messages extends NLS { + public static String NewExtendedCMakeProjectWizard_Description; + public static String NewExtendedCMakeProjectWizard_PageTitle; + public static String NewExtendedCMakeProjectWizard_WindowTitle; + + static { + // initialize resource bundle + NLS.initializeMessages("org.eclipse.cdt.cmake.example.messages", Messages.class); //$NON-NLS-1$ + } + + private Messages() { + } +} diff --git a/cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/NewExtendedCMakeProjectWizard.java b/cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/NewExtendedCMakeProjectWizard.java new file mode 100644 index 00000000000..4ac8cb90d8f --- /dev/null +++ b/cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/NewExtendedCMakeProjectWizard.java @@ -0,0 +1,55 @@ +/******************************************************************************* + * Copyright (c) 2016, 2025 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.example; + +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 NewExtendedCMakeProjectWizard extends TemplateWizard { + + private WizardNewProjectCreationPage mainPage; + + @Override + public void setContainer(IWizardContainer wizardContainer) { + super.setContainer(wizardContainer); + setWindowTitle(Messages.NewExtendedCMakeProjectWizard_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.NewExtendedCMakeProjectWizard_PageTitle); + mainPage.setDescription(Messages.NewExtendedCMakeProjectWizard_Description); + this.addPage(mainPage); + } + + @Override + protected IGenerator getGenerator() { + ExtendedCMakeProjectGenerator generator = new ExtendedCMakeProjectGenerator("templates/simple/manifest.xml"); //$NON-NLS-1$ + generator.setProjectName(mainPage.getProjectName()); + if (!mainPage.useDefaults()) { + generator.setLocationURI(mainPage.getLocationURI()); + } + return generator; + } +} diff --git a/cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/messages.properties b/cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/messages.properties new file mode 100644 index 00000000000..09ebf197424 --- /dev/null +++ b/cmake/org.eclipse.cdt.cmake.example/src/org/eclipse/cdt/cmake/example/messages.properties @@ -0,0 +1,3 @@ +NewExtendedCMakeProjectWizard_WindowTitle=New CMake Project +NewExtendedCMakeProjectWizard_PageTitle=New CMake Project +NewExtendedCMakeProjectWizard_Description=Specify properties of new CMake project. diff --git a/cmake/org.eclipse.cdt.cmake.example/templates/simple/.clangd b/cmake/org.eclipse.cdt.cmake.example/templates/simple/.clangd new file mode 100644 index 00000000000..a63edd3c33b --- /dev/null +++ b/cmake/org.eclipse.cdt.cmake.example/templates/simple/.clangd @@ -0,0 +1,4 @@ +CompileFlags: + # When using clangd update this entry to point at the desired + # configuration directory to pick up the compile_commands.json + CompilationDatabase: build/default diff --git a/cmake/org.eclipse.cdt.cmake.example/templates/simple/CMakeLists.txt b/cmake/org.eclipse.cdt.cmake.example/templates/simple/CMakeLists.txt new file mode 100644 index 00000000000..8585ed73ced --- /dev/null +++ b/cmake/org.eclipse.cdt.cmake.example/templates/simple/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 3.10) + +# Set some basic project attributes +project (${projectName?replace(" ", "_")} + VERSION 0.1 + DESCRIPTION "A Hello World Project") + +# This project will output an executable file +add_executable(${r"${PROJECT_NAME}"} ${projectName?replace(" ", "_")}.cpp) + +# Create a simple configuration header +configure_file(config.h.in config.h) + +# Include the configuration header in the build +target_include_directories(${r"${PROJECT_NAME}"} PUBLIC "${r"${PROJECT_BINARY_DIR}"}") diff --git a/cmake/org.eclipse.cdt.cmake.example/templates/simple/config.h.in b/cmake/org.eclipse.cdt.cmake.example/templates/simple/config.h.in new file mode 100644 index 00000000000..731d2a89868 --- /dev/null +++ b/cmake/org.eclipse.cdt.cmake.example/templates/simple/config.h.in @@ -0,0 +1,2 @@ +#define ${projectName?replace(" ", "_")}_VERSION_MAJOR @${projectName?replace(" ", "_")}_VERSION_MAJOR@ +#define ${projectName?replace(" ", "_")}_VERSION_MINOR @${projectName?replace(" ", "_")}_VERSION_MINOR@ diff --git a/cmake/org.eclipse.cdt.cmake.example/templates/simple/main.cpp b/cmake/org.eclipse.cdt.cmake.example/templates/simple/main.cpp new file mode 100644 index 00000000000..05f6764728e --- /dev/null +++ b/cmake/org.eclipse.cdt.cmake.example/templates/simple/main.cpp @@ -0,0 +1,9 @@ +#include +#include "config.h" + +int main(int argc, char **argv) { + std::cout << "Hello World" << std::endl; + std::cout << "Welcome to the ISV Example for how to extend CMake projects in Eclipse CDT." << std::endl; + std::cout << "Version " << ${projectName?replace(" ", "_")}_VERSION_MAJOR << "." << ${projectName?replace(" ", "_")}_VERSION_MINOR << std::endl; + return 0; +} diff --git a/cmake/org.eclipse.cdt.cmake.example/templates/simple/manifest.xml b/cmake/org.eclipse.cdt.cmake.example/templates/simple/manifest.xml new file mode 100644 index 00000000000..063ec46773a --- /dev/null +++ b/cmake/org.eclipse.cdt.cmake.example/templates/simple/manifest.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file