Compiling an unrelated executable compiles StaticBuildConfigPluginExecutable

Aperta
#776 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
25/100
Tipo di issue
Bug
Chiarezza
Da chiarire
Stato di attività
Tranquilla
Stack tecnologico
swift
Ambito
build-system

Direzione di ricerca

Inizia con il riproduttore Package.swift descritto nell’issue, che aggiunge swiftlang/swift-java come dipendenza inutilizzata, quindi esegui swift run Target ed esamina il log di build. Verifica se StaticBuildConfigPluginExecutable e i relativi target SwiftSyntax e Subprocess vengono compilati nonostante la dipendenza inutilizzata; l’issue non specifica una correzione lato repository.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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

Lingua principale
Swift
Stelle
1.3k
Fork
127
Merge medio
2g 14h
PR unite (30g)
5

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di swiftlang/swift-java

Tutte le issue di swiftlang/swift-java

Issue simili

Altre issue su Swift

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.