[kpm] kgp-idea-proto: Add .proto definitions for IdeaKpm models

^KT-52568 In Progress
This commit is contained in:
sebastian.sellmair
2022-06-13 14:11:07 +02:00
committed by Space
parent 252c297112
commit 6a520246e5
2 changed files with 175 additions and 0 deletions
@@ -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<string, string> 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;
}
@@ -0,0 +1,8 @@
syntax = "proto3";
package org.jetbrains.kotlin.kpm.idea.proto;
option java_multiple_files = true;
message IdeaKpmExtrasProto {
map<string, bytes> values = 1;
}