обнаружил виртуальный манифест в <path>вместо манифеста пакета - PullRequest
1 голос
/ 13 апреля 2020

Я искал [rust] "instead of a package manifest" на этом сайте, прежде чем спрашивать и не нашел ни одного хита. Я также читал о виртуальных манифестах здесь , но не решил мой вопрос.

Моя цель - внести изменения в azul .

. Я читал о исправлении зависимостей здесь , и теперь у меня есть это Cargo.toml

[package]
name = "my_first_azul_app"
version = "0.1.0"
authors = ["Name <Email>"]
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
azul = { git = "https://github.com/maps4print/azul" }

[patch."https://github.com/maps4print/azul"]
azul = { path = "../azul" }

В пути ../azul Я проверил проект azul с git clone. В main.rs я следовал этому , чтобы получить,

extern crate azul;

fn main() {
    println!("Hello world!");
}

Затем я пытаюсь проверить

$ cargo run
error: failed to resolve patches for `https://github.com/maps4print/azul`

Caused by:
  failed to load source for a dependency on `azul`

Caused by:
  Unable to update /home/name/projects/azul

Caused by:
  found a virtual manifest at `/home/name/projects/azul/Cargo.toml` instead of a package manifest

Я не понимаю окончательный результат, вызванный строкой. Если я удаляю конфигурацию [patch], она «работает». Цитирую, потому что он не компилируется, но именно поэтому я пытаюсь проверить его и исправить. Какие платежи мне нужно сделать для развития зависимости azul?

TIA,

1 Ответ

0 голосов
/ 08 мая 2020

похоже, что azul использует рабочие пространства, поэтому, если вы хотите обратиться к нему по пути, вы должны указать точный член (ы) этого рабочего пространства.

Автомобиль azul go .toml содержит


[workspace]
members = [
    "cargo/azul",
    "cargo/azul-css",
    "cargo/azul-core",
    "cargo/azul-layout",
    "cargo/azul-text-layout",
    "cargo/azul-widgets",
    "cargo/azul-css-parser",
    "cargo/azul-native-style",
]

поэтому я считаю, что вы должны быть в состоянии сделать что-то вроде:


[dependencies]
azul = { path = "../azul/cargo/azul"
azul-css = { path = "../azul/cargo/azul-css" }

вам могут понадобиться все / некоторые члены там.

...