Skip to content
This repository has been archived by the owner on Aug 5, 2024. It is now read-only.

Commit

Permalink
[fix] build & sync doesnt build manual targets if `build_manual_targe…
Browse files Browse the repository at this point in the history
…ts` flag is set to false

Merge-request: BAZEL-MR-981
Merged-by: Marcin Abramowicz <[email protected]>
  • Loading branch information
abrams27 authored and Space Team committed Apr 2, 2024
1 parent 73008c5 commit a7925e7
Show file tree
Hide file tree
Showing 3 changed files with 98 additions and 93 deletions.
168 changes: 84 additions & 84 deletions MODULE.bazel.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -49,19 +49,21 @@ class BazelBspAspectsManager(
aspect: String,
outputGroups: List<String>,
isAndroidEnabled: Boolean,
shouldBuildManualFlags: Boolean,
): BazelBspAspectsManagerResult {
if (targetSpecs.values.isEmpty()) return BazelBspAspectsManagerResult(BepOutput(), isFailure = false)
val androidFlags = listOf(experimentalGoogleLegacyApi(), experimentalEnableAndroidMigrationApis())
val defaultFlags = listOf(
repositoryOverride(Constants.ASPECT_REPOSITORY, aspectsResolver.bazelBspRoot),
aspect(aspectsResolver.resolveLabel(aspect)),
outputGroups(outputGroups),
keepGoing(),
color(true),
buildManualTests(),
curses(false),
)
val flagsToUse = defaultFlags + if (isAndroidEnabled) androidFlags else emptyList()
val androidFlags = if (isAndroidEnabled) listOf(experimentalGoogleLegacyApi(), experimentalEnableAndroidMigrationApis()) else emptyList()
val buildManualTargetsFlags = if (shouldBuildManualFlags) listOf(buildManualTests()) else emptyList()

val flagsToUse = defaultFlags + androidFlags + buildManualTargetsFlags

return bazelBspCompilationManager
.buildTargetsWithBep(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import org.jetbrains.bsp.bazel.server.bsp.managers.BazelBspAspectsManager
import org.jetbrains.bsp.bazel.server.bsp.managers.BazelBspAspectsManagerResult
import org.jetbrains.bsp.bazel.server.bsp.managers.BazelBspFallbackAspectsManager
import org.jetbrains.bsp.bazel.server.bsp.managers.BazelBspLanguageExtensionsGenerator
import org.jetbrains.bsp.bazel.server.bsp.managers.BazelExternalRulesQuery
import org.jetbrains.bsp.bazel.server.bsp.managers.BazelExternalRulesQueryImpl
import org.jetbrains.bsp.bazel.server.sync.model.Project
import org.jetbrains.bsp.bazel.workspacecontext.WorkspaceContext
Expand Down Expand Up @@ -87,11 +86,12 @@ class ProjectResolver(
.map { if (keepDefaultOutputGroups) "+$it" else it }

return bazelBspAspectsManager.fetchFilesFromOutputGroups(
cancelChecker,
workspaceContext.targets,
ASPECT_NAME,
outputGroups,
workspaceContext.isAndroidEnabled,
cancelChecker = cancelChecker,
targetSpecs = workspaceContext.targets,
aspect = ASPECT_NAME,
outputGroups = outputGroups,
isAndroidEnabled = workspaceContext.isAndroidEnabled,
shouldBuildManualFlags = workspaceContext.shouldAddBuildAffectingFlags(keepDefaultOutputGroups)
)
}

Expand All @@ -107,6 +107,9 @@ class ProjectResolver(
}
}.toList()

private fun WorkspaceContext.shouldAddBuildAffectingFlags(willBeBuilt: Boolean): Boolean =
this.buildManualTargets.value || !willBeBuilt

companion object {
private const val ASPECT_NAME = "bsp_target_info_aspect"
private const val BSP_INFO_OUTPUT_GROUP = "bsp-target-info-transitive-deps"
Expand Down

0 comments on commit a7925e7

Please sign in to comment.