diff --git a/BUILD.gn b/BUILD.gn new file mode 100644 index 000000000..02867ab4e --- /dev/null +++ b/BUILD.gn @@ -0,0 +1,20 @@ +# 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 + +import("crubit.gni") + +group("cpp_api_from_rust_bindings_rs_deps") { + # These are the dependencies required by Rust implementations of bindings. + public_deps = [ + ] +} + +group("cpp_api_from_rust_bindings_cpp_deps") { + # These are the dependencies required by C++ implementations of bindings. + public_deps = [ + "$crubit_src_dir/support", + "$crubit_src_dir/support/rs_std", + "$crubit_src_dir/support/internal", + ] +} diff --git a/crubit.gni b/crubit.gni new file mode 100644 index 000000000..601fec144 --- /dev/null +++ b/crubit.gni @@ -0,0 +1,13 @@ +# 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 + +import("//build_overrides/crubit.gni") + +if (!defined(crubit_src_dir)) { + crubit_src_dir = "//third_party/crubit" +} + +if (!defined(crubit_absl_dep_target)) { + crubit_absl_dep_target = "//third_party/abseil-cpp:absl" +} diff --git a/support/BUILD b/support/BUILD index e36e82842..2f41f7fc5 100644 --- a/support/BUILD +++ b/support/BUILD @@ -295,8 +295,9 @@ filegroup( ) bazel_to_builds( - name = "generate_cmake", + name = "generate_builds", cmake = "CMakeLists.txt", + gn = "BUILD.gn", targets = [ ":annotations", ":annotations_internal", diff --git a/support/BUILD.gn b/support/BUILD.gn new file mode 100644 index 000000000..d12a64241 --- /dev/null +++ b/support/BUILD.gn @@ -0,0 +1,80 @@ +# 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 BUILD.gn. + +import("../crubit.gni") + +visibility = [ "$crubit_src_dir/*" ] + +source_set("annotations") { + public_configs = [ "$crubit_src_dir/support:config" ] + if (defined(crubit_gn_configs_to_remove)) { + configs -= crubit_gn_configs_to_remove + } + if (defined(crubit_gn_support_configs_to_add)) { + configs += crubit_gn_support_configs_to_add + } + + public = [ + "annotations.h", + ] + deps = [ + "$crubit_src_dir/support:annotations_internal", + ] +} + +source_set("annotations_internal") { + public_configs = [ "$crubit_src_dir/support:config" ] + if (defined(crubit_gn_configs_to_remove)) { + configs -= crubit_gn_configs_to_remove + } + if (defined(crubit_gn_support_configs_to_add)) { + configs += crubit_gn_support_configs_to_add + } + + public = [ + "annotations_internal.h", + ] + deps = [ + "$crubit_absl_dep_target", + ] +} + +source_set("bridge_cpp") { + public_configs = [ "$crubit_src_dir/support:config" ] + if (defined(crubit_gn_configs_to_remove)) { + configs -= crubit_gn_configs_to_remove + } + if (defined(crubit_gn_support_configs_to_add)) { + configs += crubit_gn_support_configs_to_add + } + + public = [ + "bridge.h", + ] +} + +source_set("lifetime_annotations") { + public_configs = [ "$crubit_src_dir/support:config" ] + if (defined(crubit_gn_configs_to_remove)) { + configs -= crubit_gn_configs_to_remove + } + if (defined(crubit_gn_support_configs_to_add)) { + configs += crubit_gn_support_configs_to_add + } + + public = [ + "lifetime_annotations.h", + ] +} + +group("support") { + public_deps = [ + ":annotations", + ":annotations_internal", + ":bridge_cpp", + ":lifetime_annotations", + ] +} diff --git a/support/internal/BUILD b/support/internal/BUILD index a1eaf91e9..f776dc0e1 100644 --- a/support/internal/BUILD +++ b/support/internal/BUILD @@ -86,8 +86,9 @@ crubit_cc_test( ) bazel_to_builds( - name = "generate_cmake", + name = "generate_builds", cmake = "CMakeLists.txt", + gn = "BUILD.gn", targets = [ ":bindings_support", ], diff --git a/support/internal/BUILD.gn b/support/internal/BUILD.gn new file mode 100644 index 000000000..9850eddd3 --- /dev/null +++ b/support/internal/BUILD.gn @@ -0,0 +1,43 @@ +# 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 BUILD.gn. + +import("../../crubit.gni") + +visibility = [ "$crubit_src_dir/*" ] + +source_set("bindings_support") { + public_configs = [ "$crubit_src_dir/support:config" ] + if (defined(crubit_gn_configs_to_remove)) { + configs -= crubit_gn_configs_to_remove + } + if (defined(crubit_gn_support_configs_to_add)) { + configs += crubit_gn_support_configs_to_add + } + + public = [ + "check.h", + "check_no_mutable_aliasing.h", + "cxx20_backports.h", + "fmt.h", + "lazy_init.h", + "memswap.h", + "offsetof.h", + "sizeof.h", + "slot.h", + ] + sources = [ + "check_no_mutable_aliasing.cc", + ] + deps = [ + "$crubit_absl_dep_target", + ] +} + +group("internal") { + public_deps = [ + ":bindings_support", + ] +} diff --git a/support/rs_std/BUILD b/support/rs_std/BUILD index cd1df3982..c089e904a 100644 --- a/support/rs_std/BUILD +++ b/support/rs_std/BUILD @@ -279,8 +279,9 @@ cpp_api_from_rust_toolchain_bindings( ) bazel_to_builds( - name = "generate_cmake", + name = "generate_builds", cmake = "CMakeLists.txt", + gn = "BUILD.gn", targets = [ ":char", ":slice_ref", diff --git a/support/rs_std/BUILD.gn b/support/rs_std/BUILD.gn new file mode 100644 index 000000000..3960cc407 --- /dev/null +++ b/support/rs_std/BUILD.gn @@ -0,0 +1,161 @@ +# 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 BUILD.gn. + +import("../../crubit.gni") + +visibility = [ "$crubit_src_dir/*" ] + +source_set("char") { + public_configs = [ "$crubit_src_dir/support:config" ] + if (defined(crubit_gn_configs_to_remove)) { + configs -= crubit_gn_configs_to_remove + } + if (defined(crubit_gn_support_configs_to_add)) { + configs += crubit_gn_support_configs_to_add + } + + public = [ + "char.h", + ] + sources = [ + "char.cc", + ] + deps = [ + "$crubit_src_dir/support/rs_std:str_ref", + "$crubit_src_dir/support:annotations", + "$crubit_absl_dep_target", + ] +} + +source_set("slice_ref") { + public_configs = [ "$crubit_src_dir/support:config" ] + if (defined(crubit_gn_configs_to_remove)) { + configs -= crubit_gn_configs_to_remove + } + if (defined(crubit_gn_support_configs_to_add)) { + configs += crubit_gn_support_configs_to_add + } + + public = [ + "slice_ref.h", + ] + deps = [ + "$crubit_src_dir/support:annotations_internal", + "$crubit_src_dir/support/internal:bindings_support", + "$crubit_absl_dep_target", + ] +} + +source_set("str_ref") { + public_configs = [ "$crubit_src_dir/support:config" ] + if (defined(crubit_gn_configs_to_remove)) { + configs -= crubit_gn_configs_to_remove + } + if (defined(crubit_gn_support_configs_to_add)) { + configs += crubit_gn_support_configs_to_add + } + + public = [ + "str_ref.h", + ] + deps = [ + "$crubit_src_dir/support/rs_std:slice_ref", + "$crubit_src_dir/support:annotations_internal", + "$crubit_src_dir/support/internal:bindings_support", + "$crubit_src_dir/support/rs_std/internal:is_utf8", + "$crubit_absl_dep_target", + ] +} + +source_set("dyn_callable") { + public_configs = [ "$crubit_src_dir/support:config" ] + if (defined(crubit_gn_configs_to_remove)) { + configs -= crubit_gn_configs_to_remove + } + if (defined(crubit_gn_support_configs_to_add)) { + configs += crubit_gn_support_configs_to_add + } + + public = [ + "dyn_callable.h", + ] + deps = [ + "$crubit_src_dir/support:bridge_cpp", + "$crubit_absl_dep_target", + ] +} + +source_set("traits") { + public_configs = [ "$crubit_src_dir/support:config" ] + if (defined(crubit_gn_configs_to_remove)) { + configs -= crubit_gn_configs_to_remove + } + if (defined(crubit_gn_support_configs_to_add)) { + configs += crubit_gn_support_configs_to_add + } + + public = [ + "traits.h", + ] +} + +source_set("option") { + public_configs = [ "$crubit_src_dir/support:config" ] + if (defined(crubit_gn_configs_to_remove)) { + configs -= crubit_gn_configs_to_remove + } + if (defined(crubit_gn_support_configs_to_add)) { + configs += crubit_gn_support_configs_to_add + } + + public = [ + "option.h", + ] +} + +source_set("result") { + public_configs = [ "$crubit_src_dir/support:config" ] + if (defined(crubit_gn_configs_to_remove)) { + configs -= crubit_gn_configs_to_remove + } + if (defined(crubit_gn_support_configs_to_add)) { + configs += crubit_gn_support_configs_to_add + } + + public = [ + "result.h", + ] +} + +source_set("lossy_formatter_for_bindings") { + public_configs = [ "$crubit_src_dir/support:config" ] + if (defined(crubit_gn_configs_to_remove)) { + configs -= crubit_gn_configs_to_remove + } + if (defined(crubit_gn_support_configs_to_add)) { + configs += crubit_gn_support_configs_to_add + } + + public = [ + "lossy_formatter_for_bindings.h", + ] + deps = [ + "$crubit_src_dir/support/rs_std:lossy_formatter_cc", + ] +} + +group("rs_std") { + public_deps = [ + ":char", + ":slice_ref", + ":str_ref", + ":dyn_callable", + ":traits", + ":option", + ":result", + ":lossy_formatter_for_bindings", + ] +} diff --git a/support/rs_std/internal/BUILD b/support/rs_std/internal/BUILD index b37d60553..57a165aed 100644 --- a/support/rs_std/internal/BUILD +++ b/support/rs_std/internal/BUILD @@ -34,8 +34,9 @@ cc_test( ) bazel_to_builds( - name = "generate_cmake", + name = "generate_builds", cmake = "CMakeLists.txt", + gn = "BUILD.gn", targets = [ ":is_utf8", ], diff --git a/support/rs_std/internal/BUILD.gn b/support/rs_std/internal/BUILD.gn new file mode 100644 index 000000000..1745d1f51 --- /dev/null +++ b/support/rs_std/internal/BUILD.gn @@ -0,0 +1,32 @@ +# 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 BUILD.gn. + +import("../../../crubit.gni") + +visibility = [ "$crubit_src_dir/*" ] + +source_set("is_utf8") { + public_configs = [ "$crubit_src_dir/support:config" ] + if (defined(crubit_gn_configs_to_remove)) { + configs -= crubit_gn_configs_to_remove + } + if (defined(crubit_gn_support_configs_to_add)) { + configs += crubit_gn_support_configs_to_add + } + + public = [ + "is_utf8.h", + ] + deps = [ + "$crubit_absl_dep_target", + ] +} + +group("internal") { + public_deps = [ + ":is_utf8", + ] +}