# Part of the Crubit project, under the Apache License v2.0 with LLVM
# Exceptions. See /LICENSE for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

# Automatically @generated Cargo.toml for the cc_library annotation_reader_sys.

[package]
name = "annotation_reader_sys"
edition.workspace = true
license-file.workspace = true
repository.workspace = true
categories.workspace = true

build = "build.rs"

[lib]
path = "lib.rs"

[dependencies]


[build-dependencies]
crubit_build = { path =  "../../../cargo/build"}
