Skip to content

Commit

Permalink
[fix] Pass the asset folders for Compose preview | #BAZEL-868
Browse files Browse the repository at this point in the history
fix format

make creation a file location a new function in aspect

[fix] Pass the asset folders for Compose preview | #BAZEL-868


Merge-request: BAZEL-MR-1029
Merged-by: Lev Leontev <lev.leontev@jetbrains.com>
  • Loading branch information
gottagofaster236 authored and qodana-bot committed Apr 15, 2024
1 parent fcfa360 commit 2483bab
Show file tree
Hide file tree
Showing 8 changed files with 39 additions and 8 deletions.
30 changes: 23 additions & 7 deletions aspects/rules/android/android_info.bzl
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
load("//aspects:utils/utils.bzl", "create_proto", "create_struct", "file_location")
load("//aspects:utils/utils.bzl", "create_file_location", "create_proto", "create_struct", "file_location")

ANDROID_SDK_TOOLCHAIN_TYPE = "@bazel_tools//tools/android:sdk_toolchain_type"

Expand Down Expand Up @@ -28,12 +28,8 @@ def extract_android_info(target, ctx, dep_targets, **kwargs):
resource_source_dir_relative_path = android_common.resource_source_directory(resource_file)
if resource_source_dir_relative_path == None:
continue
resource_source_dir_location = struct(
relative_path = resource_source_dir_relative_path,
is_source = resource_file_location.is_source,
is_external = resource_file_location.is_external,
root_execution_path_fragment = resource_file_location.root_execution_path_fragment,
)
resource_source_dir_location = \
set_relative_path(resource_file_location, resource_source_dir_relative_path)

# Add to set
resource_folders_set[resource_source_dir_location] = None
Expand All @@ -42,6 +38,17 @@ def extract_android_info(target, ctx, dep_targets, **kwargs):
if hasattr(ctx.rule.attr, "custom_package"):
resource_java_package = ctx.rule.attr.custom_package

asset_folders = []
if hasattr(ctx.rule.attr, "assets") and ctx.rule.attr.assets and \
hasattr(ctx.rule.attr, "assets_dir") and ctx.rule.attr.assets_dir:
first_asset_files = ctx.rule.attr.assets[0].files.to_list()
if first_asset_files:
first_asset = first_asset_files[0]
first_asset_location = file_location(first_asset)
asset_folder_relative_path = ctx.label.package + "/" + ctx.rule.attr.assets_dir
asset_folder_location = set_relative_path(first_asset_location, asset_folder_relative_path)
asset_folders.append(asset_folder_location)

aidl_binary_jar = None
aidl_source_jar = None
if AndroidIdeInfo in target:
Expand All @@ -56,12 +63,21 @@ def extract_android_info(target, ctx, dep_targets, **kwargs):
manifest = manifest,
resource_folders = resource_folders_set.keys(),
resource_java_package = resource_java_package,
asset_folders = asset_folders,
aidl_binary_jar = aidl_binary_jar,
aidl_source_jar = aidl_source_jar,
)

return create_proto(target, ctx, android_target_info_proto, "android_target_info"), None

def set_relative_path(location, new_relative_path):
return create_file_location(
relative_path = new_relative_path,
is_source = location.is_source,
is_external = location.is_external,
root_execution_path_fragment = location.root_execution_path_fragment,
)

def extract_android_aar_import_info(target, ctx, dep_targets, **kwargs):
if ctx.rule.kind != "aar_import":
return None, None
Expand Down
5 changes: 4 additions & 1 deletion aspects/utils/utils.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,14 @@ def to_file_location(exec_path, root_exec_path_fragment, is_source, is_external)

root_exec_path_fragment = exec_path[:-(len("/" + relative_path))] if relative_path != "" else exec_path

return create_file_location(relative_path, is_source, is_external, root_exec_path_fragment)

def create_file_location(relative_path, is_source, is_external, root_execution_path_fragment):
return struct(
relative_path = relative_path,
is_source = is_source,
is_external = is_external,
root_execution_path_fragment = root_exec_path_fragment,
root_execution_path_fragment = root_execution_path_fragment,
)

def create_struct(**kwargs):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ object BazelBspAndroidKotlinProjectTest : BazelBspAndroidProjectTestBase() {
manifest = "file://\$WORKSPACE/src/main/AndroidManifest.xml",
resourceFolders = emptyList(),
resourceJavaPackage = null,
assetFolders = emptyList(),
jvmBuildTarget = jvmBuildTargetData,
kotlinBuildTarget = null,
)
Expand All @@ -52,6 +53,7 @@ object BazelBspAndroidKotlinProjectTest : BazelBspAndroidProjectTestBase() {
manifest = "file://\$WORKSPACE/src/main/java/com/example/myapplication/AndroidManifest.xml",
resourceFolders = listOf("file://\$WORKSPACE/src/main/java/com/example/myapplication/res/"),
resourceJavaPackage = null,
assetFolders = emptyList(),
jvmBuildTarget = jvmBuildTargetData,
kotlinBuildTarget = kotlinBuildTargetData,
)
Expand All @@ -62,6 +64,7 @@ object BazelBspAndroidKotlinProjectTest : BazelBspAndroidProjectTestBase() {
manifest = "file://\$WORKSPACE/src/test/java/com/example/myapplication/AndroidManifest.xml",
resourceFolders = emptyList(),
resourceJavaPackage = null,
assetFolders = emptyList(),
jvmBuildTarget = jvmBuildTargetData,
kotlinBuildTarget = kotlinBuildTargetData,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ object BazelBspAndroidProjectTest : BazelBspAndroidProjectTestBase() {
manifest = "file://\$WORKSPACE/src/main/AndroidManifest.xml",
resourceFolders = emptyList(),
resourceJavaPackage = null,
assetFolders = emptyList(),
jvmBuildTarget = jvmBuildTargetData,
)

Expand All @@ -42,6 +43,7 @@ object BazelBspAndroidProjectTest : BazelBspAndroidProjectTestBase() {
manifest = "file://\$WORKSPACE/src/main/java/com/example/myapplication/AndroidManifest.xml",
resourceFolders = listOf("file://\$WORKSPACE/src/main/java/com/example/myapplication/res/"),
resourceJavaPackage = null,
assetFolders = emptyList(),
jvmBuildTarget = jvmBuildTargetData,
)

Expand All @@ -51,6 +53,7 @@ object BazelBspAndroidProjectTest : BazelBspAndroidProjectTestBase() {
manifest = "file://\$WORKSPACE/src/test/java/com/example/myapplication/AndroidManifest.xml",
resourceFolders = emptyList(),
resourceJavaPackage = null,
assetFolders = emptyList(),
jvmBuildTarget = jvmBuildTargetData,
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ public data class AndroidBuildTarget(
val manifest: String?,
val resourceFolders: List<String>,
val resourceJavaPackage: String?,
val assetFolders: List<String>,
var jvmBuildTarget: JvmBuildTarget? = null,
var kotlinBuildTarget: KotlinBuildTarget? = null,
)
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ class AndroidLanguagePlugin(
manifest = manifest?.toString(),
resourceFolders = resourceFolders.map { it.toString() },
resourceJavaPackage = resourceJavaPackage,
assetFolders = assetFolders.map { it.toString() },
)
}
moduleData.javaModule?.let { javaLanguagePlugin.toJvmBuildTarget(it) }?.let {
Expand All @@ -50,13 +51,15 @@ class AndroidLanguagePlugin(
}
val resourceFolders = bazelPathsResolver.resolveUris(androidTargetInfo.resourceFoldersList)
val resourceJavaPackage = androidTargetInfo.resourceJavaPackage.takeIf { it.isNotEmpty() }
val assetFolders = bazelPathsResolver.resolveUris(androidTargetInfo.assetFoldersList)

return AndroidModule(
androidJar = androidJar,
androidTargetType = getAndroidTargetType(targetInfo),
manifest = manifest,
resourceFolders = resourceFolders,
resourceJavaPackage = resourceJavaPackage,
assetFolders = assetFolders,
javaModule = javaLanguagePlugin.resolveModule(targetInfo),
kotlinModule = null,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ data class AndroidModule(
val manifest: URI?,
val resourceFolders: List<URI>,
val resourceJavaPackage: String?,
val assetFolders: List<URI>,
val javaModule: JavaModule?,
val kotlinModule: KotlinModule?,
) : LanguageData
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ message AndroidTargetInfo {
FileLocation manifest = 200;
repeated FileLocation resource_folders = 300;
string resource_java_package = 400;
repeated FileLocation asset_folders = 450;
FileLocation aidl_binary_jar = 500;
FileLocation aidl_source_jar = 600;
}
Expand Down

0 comments on commit 2483bab

Please sign in to comment.