# 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 strong_int_sys.

[package]
name = "strong_int_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"}
