From 6a520246e528ee67742da57005469488f2f0bb59 Mon Sep 17 00:00:00 2001 From: "sebastian.sellmair" Date: Mon, 13 Jun 2022 14:11:07 +0200 Subject: [PATCH] [kpm] kgp-idea-proto: Add .proto definitions for IdeaKpm models ^KT-52568 In Progress --- .../src/main/proto/proto_idea_kpm.proto | 167 ++++++++++++++++++ .../main/proto/proto_idea_kpm_extras.proto | 8 + 2 files changed, 175 insertions(+) create mode 100644 libraries/tools/kotlin-gradle-plugin-idea-proto/src/main/proto/proto_idea_kpm.proto create mode 100644 libraries/tools/kotlin-gradle-plugin-idea-proto/src/main/proto/proto_idea_kpm_extras.proto diff --git a/libraries/tools/kotlin-gradle-plugin-idea-proto/src/main/proto/proto_idea_kpm.proto b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/main/proto/proto_idea_kpm.proto new file mode 100644 index 00000000000..acbd2eecf3b --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/main/proto/proto_idea_kpm.proto @@ -0,0 +1,167 @@ +syntax = "proto3"; + +package org.jetbrains.kotlin.kpm.idea.proto; +import "proto_idea_kpm_extras.proto"; +option java_multiple_files = true; + +message IdeaKpmModuleCoordinatesProto { + optional string build_id = 1; + optional string project_path = 2; + optional string project_name = 3; + optional string module_name = 4; + optional string module_classifier = 5; +} + +message IdeaKpmLanguageSettingsProto { + optional string language_version = 1; + optional string api_version = 2; + optional bool is_progressive_mode = 3; + repeated string enabled_language_features = 4; + repeated string opt_in_annotations_in_use = 5; + repeated string compiler_plugin_arguments = 6; + repeated string compiler_plugin_classpath = 7; + repeated string free_compiler_args = 8; +} + +message IdeaKpmSourceDirectoryProto { + optional IdeaKpmExtrasProto extras = 1; + optional string absolute_path = 2; + optional string type = 3; +} + +message IdeaKpmResourceDirectoryProto { + optional IdeaKpmExtrasProto extras = 1; + optional string absolute_path = 2; +} + +message IdeaKpmBinaryCoordinatesProto { + optional string group = 1; + optional string module = 2; + optional string version = 3; + optional string kotlin_module_name = 4; + optional string kotlin_fragment_name = 5; +} + +message IdeaKpmFragmentCoordinatesProto { + optional IdeaKpmModuleCoordinatesProto module = 1; + optional string fragment_name = 2; +} + +message IdeaKpmDependencyProto { + oneof dependency { + IdeaKpmUnresolvedBinaryDependencyProto unresolved_binary_dependency = 1; + IdeaKpmResolvedBinaryDependencyProto resolved_binary_dependency = 2; + IdeaKpmFragmentDependencyProto fragment_dependency = 3; + } +} + +message IdeaKpmUnresolvedBinaryDependencyProto { + optional IdeaKpmExtrasProto extras = 1; + optional IdeaKpmBinaryCoordinatesProto coordinates = 2; + optional string cause = 3; +} + +message IdeaKpmResolvedBinaryDependencyProto { + optional IdeaKpmExtrasProto extras = 1; + optional IdeaKpmBinaryCoordinatesProto coordinates = 2; + optional string binary_type = 3; + optional string binary_file_absolute_path = 4; +} + +message IdeaKpmFragmentDependencyProto { + enum Type { + REGULAR = 0; + FRIEND = 1; + REFINES = 2; + } + + optional IdeaKpmExtrasProto extras = 1; + optional Type type = 2; + optional IdeaKpmFragmentCoordinatesProto coordinates = 3; +} + +message IdeaKpmPlatformProto { + oneof platform { + IdeaKpmJvmPlatformProto jvm = 1; + IdeaKpmNativePlatformProto native = 2; + IdeaKpmJsPlatformProto js = 3; + IdeaKpmWasmPlatformProto wasm = 4; + IdeaKpmUnknownPlatformProto unknown = 5; + } +} + +message IdeaKpmJvmPlatformProto { + optional IdeaKpmExtrasProto extras = 1; + optional string jvm_target = 2; +} + +message IdeaKpmNativePlatformProto { + optional IdeaKpmExtrasProto extras = 1; + optional string konan_target = 2; +} + +message IdeaKpmJsPlatformProto { + optional IdeaKpmExtrasProto extras = 1; + optional bool isIr = 2 ; +} + +message IdeaKpmWasmPlatformProto { + optional IdeaKpmExtrasProto extras = 1; +} + +message IdeaKpmUnknownPlatformProto { + optional IdeaKpmExtrasProto extras = 1; +} + +message IdeaKpmFragmentProto { + optional IdeaKpmExtrasProto extras = 1; + optional IdeaKpmFragmentCoordinatesProto coordinates = 2; + repeated IdeaKpmPlatformProto platforms = 3; + optional IdeaKpmLanguageSettingsProto language_settings = 4; + repeated IdeaKpmDependencyProto dependencies = 5; + repeated IdeaKpmSourceDirectoryProto source_directories = 6; +} + +message IdeaKpmCompilationOutputProto { + repeated string classes_dirs = 1; + optional string resources_dir = 2; +} + +message IdeaKpmVariantProto { + optional IdeaKpmFragmentProto fragment = 1; + optional IdeaKpmPlatformProto platform = 2; + map variant_attributes = 3; + optional IdeaKpmCompilationOutputProto compilation_output = 4; +} + +message IdeaKpmModuleProto { + optional IdeaKpmExtrasProto extras = 1; + optional IdeaKpmModuleCoordinatesProto coordinates = 2; + repeated IdeaKpmFragmentProto fragments = 3; + repeated IdeaKpmVariantProto variants = 4; +} + +message IdeaKpmProjectProto { + optional IdeaKpmExtrasProto extras = 1; + optional string gradle_plugin_version = 2; + optional string core_libraries_version = 3; + optional string explicit_api_mode_cli_option = 4; + optional string kotlin_native_home = 5; + repeated IdeaKpmModuleProto modules = 6; +} + +message IdeaKpmSchemaInfoProto { + optional uint32 since_schema_version_major = 1; + optional uint32 since_schema_version_minor = 2; + optional uint32 since_schema_version_patch = 3; + optional string message = 4; +} + +message IdeaKpmContainerProto { + optional uint32 schema_version_major = 1; + optional uint32 schema_version_minor = 2; + optional uint32 schema_version_patch = 3; + repeated IdeaKpmSchemaInfoProto schema_infos = 4; + + optional IdeaKpmProjectProto project = 24; +} diff --git a/libraries/tools/kotlin-gradle-plugin-idea-proto/src/main/proto/proto_idea_kpm_extras.proto b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/main/proto/proto_idea_kpm_extras.proto new file mode 100644 index 00000000000..d0ec13abd79 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/main/proto/proto_idea_kpm_extras.proto @@ -0,0 +1,8 @@ +syntax = "proto3"; + +package org.jetbrains.kotlin.kpm.idea.proto; +option java_multiple_files = true; + +message IdeaKpmExtrasProto { + map values = 1; +}