mirror of
https://github.com/topjohnwu/cxx.git
synced 2024-11-24 04:20:02 +00:00
Inline cxx-symbols crate into cxx
The separation is no longer needed for Buck when linking with lld.
This commit is contained in:
parent
7aa5e21ab7
commit
9f6c075e3c
9
BUCK
9
BUCK
@ -1,11 +1,10 @@
|
||||
rust_library(
|
||||
name = "cxx",
|
||||
srcs = glob(["src/**"], exclude = ["src/symbols/**"]),
|
||||
srcs = glob(["src/**"]),
|
||||
visibility = ["PUBLIC"],
|
||||
deps = [
|
||||
":core",
|
||||
":macro",
|
||||
":symbols",
|
||||
],
|
||||
)
|
||||
|
||||
@ -32,12 +31,6 @@ cxx_library(
|
||||
"cxx.h": "include/cxx.h",
|
||||
},
|
||||
exported_linker_flags = ["-lstdc++"],
|
||||
deps = [":symbols"],
|
||||
)
|
||||
|
||||
rust_library(
|
||||
name = "symbols",
|
||||
srcs = glob(["src/symbols/**"]),
|
||||
)
|
||||
|
||||
rust_library(
|
||||
|
15
BUILD
15
BUILD
@ -2,18 +2,12 @@ load("//tools/bazel:rust.bzl", "rust_binary", "rust_library")
|
||||
|
||||
rust_library(
|
||||
name = "cxx",
|
||||
srcs = glob(
|
||||
["src/**/*.rs"],
|
||||
exclude = ["src/symbols/**/*.rs"],
|
||||
),
|
||||
srcs = glob(["src/**/*.rs"]),
|
||||
proc_macro_deps = [
|
||||
":cxxbridge-macro",
|
||||
],
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":core-lib",
|
||||
":symbols",
|
||||
],
|
||||
deps = [":core-lib"],
|
||||
)
|
||||
|
||||
rust_binary(
|
||||
@ -44,11 +38,6 @@ cc_library(
|
||||
hdrs = ["include/cxx.h"],
|
||||
)
|
||||
|
||||
rust_library(
|
||||
name = "symbols",
|
||||
srcs = glob(["src/symbols/**/*.rs"]),
|
||||
)
|
||||
|
||||
rust_library(
|
||||
name = "cxxbridge-macro",
|
||||
srcs = glob(["macro/src/**"]),
|
||||
|
@ -20,7 +20,6 @@ default = ["cxxbridge-flags/default"] # c++11
|
||||
"c++20" = ["cxxbridge-flags/c++20"]
|
||||
|
||||
[dependencies]
|
||||
cxx-symbols = { version = "=0.4.3", path = "src/symbols" }
|
||||
cxxbridge-macro = { version = "=0.4.3", path = "macro" }
|
||||
link-cplusplus = "1.0"
|
||||
|
||||
@ -35,7 +34,7 @@ rustversion = "1.0"
|
||||
trybuild = { version = "1.0.33", features = ["diff"] }
|
||||
|
||||
[workspace]
|
||||
members = ["demo", "flags", "gen/build", "gen/cmd", "gen/lib", "macro", "src/symbols", "tests/ffi"]
|
||||
members = ["demo", "flags", "gen/build", "gen/cmd", "gen/lib", "macro", "tests/ffi"]
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
targets = ["x86_64-unknown-linux-gnu"]
|
||||
|
@ -369,8 +369,9 @@
|
||||
|
||||
#[cfg(built_with_cargo)]
|
||||
extern crate link_cplusplus;
|
||||
|
||||
#[macro_use]
|
||||
extern crate symbols;
|
||||
mod macros;
|
||||
|
||||
mod cxx_string;
|
||||
mod cxx_vector;
|
||||
@ -383,6 +384,7 @@ mod rust_sliceu8;
|
||||
mod rust_str;
|
||||
mod rust_string;
|
||||
mod rust_vec;
|
||||
mod symbols;
|
||||
mod unique_ptr;
|
||||
mod unwind;
|
||||
|
||||
|
@ -3,7 +3,7 @@ use std::mem::ManuallyDrop;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct RustVec<T> {
|
||||
repr: Vec<T>,
|
||||
pub(crate) repr: Vec<T>,
|
||||
}
|
||||
|
||||
impl<T> RustVec<T> {
|
||||
|
@ -1,13 +0,0 @@
|
||||
[package]
|
||||
name = "cxx-symbols"
|
||||
version = "0.4.3"
|
||||
authors = ["David Tolnay <dtolnay@gmail.com>"]
|
||||
edition = "2018"
|
||||
license = "MIT OR Apache-2.0"
|
||||
description = "Implementation detail of the `cxx` crate"
|
||||
repository = "https://github.com/dtolnay/cxx"
|
||||
documentation = "https://docs.rs/cxx"
|
||||
|
||||
[lib]
|
||||
name = "symbols"
|
||||
path = "lib.rs"
|
@ -1,9 +0,0 @@
|
||||
//! *Implementation detail of the `cxx` crate.*
|
||||
|
||||
#[macro_use]
|
||||
mod macros;
|
||||
|
||||
mod exception;
|
||||
mod rust_str;
|
||||
mod rust_string;
|
||||
mod rust_vec;
|
4
src/symbols/mod.rs
Normal file
4
src/symbols/mod.rs
Normal file
@ -0,0 +1,4 @@
|
||||
mod exception;
|
||||
mod rust_str;
|
||||
mod rust_string;
|
||||
mod rust_vec;
|
@ -3,11 +3,6 @@ use std::ptr;
|
||||
use std::slice;
|
||||
use std::str;
|
||||
|
||||
#[repr(C)]
|
||||
pub(crate) struct RustString {
|
||||
repr: String,
|
||||
}
|
||||
|
||||
#[export_name = "cxxbridge04$string$new"]
|
||||
unsafe extern "C" fn string_new(this: &mut MaybeUninit<String>) {
|
||||
ptr::write(this.as_mut_ptr(), String::new());
|
||||
|
@ -1,12 +1,8 @@
|
||||
use crate::rust_string::RustString;
|
||||
use crate::rust_vec::RustVec;
|
||||
use std::mem;
|
||||
use std::ptr;
|
||||
|
||||
#[repr(C)]
|
||||
pub(crate) struct RustVec<T> {
|
||||
repr: Vec<T>,
|
||||
}
|
||||
|
||||
macro_rules! rust_vec_shims {
|
||||
($segment:expr, $ty:ty) => {
|
||||
const_assert_eq!(mem::size_of::<[usize; 3]>(), mem::size_of::<Vec<$ty>>());
|
||||
|
5
third-party/Cargo.lock
generated
vendored
5
third-party/Cargo.lock
generated
vendored
@ -63,7 +63,6 @@ version = "0.4.3"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"cxx-build",
|
||||
"cxx-symbols",
|
||||
"cxx-test-suite",
|
||||
"cxxbridge-flags",
|
||||
"cxxbridge-macro",
|
||||
@ -95,10 +94,6 @@ dependencies = [
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cxx-symbols"
|
||||
version = "0.4.3"
|
||||
|
||||
[[package]]
|
||||
name = "cxx-test-suite"
|
||||
version = "0.0.0"
|
||||
|
Loading…
Reference in New Issue
Block a user