Compiling an unrelated executable compiles StaticBuildConfigPluginExecutable

Ouverte
#776 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
25/100
Type d'issue
Bug
Clarté
À clarifier
Activité
Calme
Stack technique
swift
Domaine
build-system

Piste de recherche

Commencez par le reproducteur Package.swift décrit dans l’issue, qui ajoute swiftlang/swift-java comme dépendance inutilisée, puis exécutez swift run Target et examinez le journal de build. Vérifiez si StaticBuildConfigPluginExecutable ainsi que les targets SwiftSyntax et Subprocess associés sont construits malgré la dépendance inutilisée ; l’issue ne spécifie pas de correction côté dépôt.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

build

I'm encountering a rather annoying issue which is causing swift-java's StaticBuildConfigPluginExecutable target to be built when building unrelated SwiftPM targets that don't import anything from swift-java at all.

I believe this is a SwiftPM issue, but I figured I'd report it here first in case anyone else has encountered the issue and found a workaround.

I'll file a SwiftPM issue once I've got a more minimal reproducer.

Reproducing

Add swiftlang/swift-java to a package (without actually using it anywhere);

// swift-tools-version: 6.1

import PackageDescription

let package = Package(
    name: "SwiftJavaUser",
    platforms: [.macOS(.v10_15)],
    dependencies: [
        .package(
            url: "https://github.com/swiftlang/swift-java",
            .upToNextMinor(from: "0.4.0")
        ),
    ],
    targets: [
        .executableTarget(name: "Target"),
    ]
)

Build and run an executable target that has nothing to do with swift-java;

swift run Target

Observe that StaticBuildConfigPluginExecutable related targets (such as SwiftSyntax and Subprocess) appear in the build log, and that the target takes significantly longer to build than if you remove the unused swift-java dependency.

SwiftPM itself even states that the swift-java dependency is unused (which is a bit contradictory).

Here's a simple Swift package that reproduces the issue: SwiftJavaUser.zip

Langage dominant
Swift
Étoiles
1.3k
Forks
127
Merge moyen
2 j 14 h
PR mergées (30 j)
5

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de swiftlang/swift-java

Toutes les issues de swiftlang/swift-java

Issues similaires

Plus d'issues Swift

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.