# Copyright 2022 The Chromium OS Authors. All rights reserved.
# Distributed under the terms of the GNU General Public License v2

EAPI="7"

CROS_RUST_REMOVE_DEV_DEPS=1

inherit cros-rust

DESCRIPTION='Parser for Rust source code'
HOMEPAGE='https://crates.io/crates/syn'
SRC_URI="https://crates.io/api/v1/crates/${PN}/${PV}/download -> ${P}.crate"

LICENSE="|| ( MIT Apache-2.0 )"
SLOT="${PV}/${PR}"
KEYWORDS="*"

DEPEND="
	>=dev-rust/proc-macro2-1.0.32 <dev-rust/proc-macro2-2.0.0_alpha:=
	=dev-rust/quote-1*:=
	=dev-rust/unicode-xid-0.2*:=
"
RDEPEND="${DEPEND}"

# This file was automatically generated by cargo2ebuild.py
# Changes below are manual:

src_prepare() {
	cros-rust_src_prepare

	# Delete the test dependency, syn-test-suite.
	sed -i '/^test = \[/d' "${S}/Cargo.toml"
}

# error: could not compile `syn`
RESTRICT="test"
