bazel: build RocksDB with CMake
Also build grocksdb with `go_library`
This commit is contained in:
parent
02d697c47e
commit
4976cfc518
87
WORKSPACE
87
WORKSPACE
|
@ -2,9 +2,54 @@ workspace(name = "firedancer_radiance")
|
|||
|
||||
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
||||
|
||||
################################################################################
|
||||
# Foreign C/C++ build system support #
|
||||
################################################################################
|
||||
|
||||
http_archive(
|
||||
name = "rules_foreign_cc",
|
||||
sha256 = "2a4d07cd64b0719b39a7c12218a3e507672b82a97b98c6a89d38565894cf7c51",
|
||||
strip_prefix = "rules_foreign_cc-0.9.0",
|
||||
url = "https://github.com/bazelbuild/rules_foreign_cc/archive/refs/tags/0.9.0.tar.gz",
|
||||
)
|
||||
|
||||
load("@rules_foreign_cc//foreign_cc:repositories.bzl", "rules_foreign_cc_dependencies")
|
||||
|
||||
rules_foreign_cc_dependencies()
|
||||
|
||||
################################################################################
|
||||
# Dependencies #
|
||||
################################################################################
|
||||
|
||||
# Dep: gflags (C++)
|
||||
http_archive(
|
||||
name = "com_github_gflags_gflags",
|
||||
sha256 = "34af2f15cf7367513b352bdcd2493ab14ce43692d2dcd9dfc499492966c64dcf",
|
||||
strip_prefix = "gflags-2.2.2",
|
||||
urls = ["https://github.com/gflags/gflags/archive/v2.2.2.tar.gz"],
|
||||
)
|
||||
|
||||
# Dep: RocksDB (C++)
|
||||
http_archive(
|
||||
name = "com_github_facebook_rocksdb",
|
||||
build_file = "//:third_party/rocksdb/rocksdb.bzl",
|
||||
sha256 = "b8ac9784a342b2e314c821f6d701148912215666ac5e9bdbccd93cf3767cb611",
|
||||
strip_prefix = "rocksdb-7.7.3",
|
||||
urls = ["https://github.com/facebook/rocksdb/archive/v7.7.3.tar.gz"],
|
||||
)
|
||||
|
||||
# Dep: grocksdb (Go)
|
||||
http_archive(
|
||||
name = "com_github_linxgnu_grocksdb",
|
||||
build_file = "//:third_party/go/grocksdb/grocksdb.bzl",
|
||||
sha256 = "3e76617aaa74a2658ac59a03b77c632c41971ae01a5ccb6e1b8edeff59f567bf",
|
||||
strip_prefix = "grocksdb-1.7.10",
|
||||
urls = ["https://github.com/linxGnu/grocksdb/archive/refs/tags/v1.7.10.tar.gz"],
|
||||
)
|
||||
|
||||
################################################################################
|
||||
# Go toolchain #
|
||||
# Gazelle build file generator for Go modules and Protobuf #
|
||||
# Gazelle build file generator #
|
||||
################################################################################
|
||||
|
||||
http_archive(
|
||||
|
@ -49,7 +94,9 @@ load("//:third_party/go/repositories.bzl", "go_repositories")
|
|||
# gazelle:repository_macro third_party/go/repositories.bzl%go_repositories
|
||||
go_repositories()
|
||||
|
||||
# Protobuf
|
||||
################################################################################
|
||||
# Protobuf #
|
||||
################################################################################
|
||||
|
||||
http_archive(
|
||||
name = "com_google_protobuf",
|
||||
|
@ -61,39 +108,3 @@ http_archive(
|
|||
load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
|
||||
|
||||
protobuf_deps()
|
||||
|
||||
################################################################################
|
||||
# Foreign C/C++ build system support #
|
||||
################################################################################
|
||||
|
||||
http_archive(
|
||||
name = "rules_foreign_cc",
|
||||
sha256 = "2a4d07cd64b0719b39a7c12218a3e507672b82a97b98c6a89d38565894cf7c51",
|
||||
strip_prefix = "rules_foreign_cc-0.9.0",
|
||||
url = "https://github.com/bazelbuild/rules_foreign_cc/archive/refs/tags/0.9.0.tar.gz",
|
||||
)
|
||||
|
||||
load("@rules_foreign_cc//foreign_cc:repositories.bzl", "rules_foreign_cc_dependencies")
|
||||
|
||||
rules_foreign_cc_dependencies()
|
||||
|
||||
################################################################################
|
||||
# Dependencies #
|
||||
################################################################################
|
||||
|
||||
# Dep: gflags (C++)
|
||||
http_archive(
|
||||
name = "com_github_gflags_gflags",
|
||||
sha256 = "34af2f15cf7367513b352bdcd2493ab14ce43692d2dcd9dfc499492966c64dcf",
|
||||
strip_prefix = "gflags-2.2.2",
|
||||
urls = ["https://github.com/gflags/gflags/archive/v2.2.2.tar.gz"],
|
||||
)
|
||||
|
||||
# Dep: RocksDB (C++)
|
||||
http_archive(
|
||||
name = "com_github_facebook_rocksdb",
|
||||
build_file = "//:third_party/rocksdb/rocksdb.bzl",
|
||||
sha256 = "b8ac9784a342b2e314c821f6d701148912215666ac5e9bdbccd93cf3767cb611",
|
||||
strip_prefix = "rocksdb-7.7.3",
|
||||
urls = ["https://github.com/facebook/rocksdb/archive/v7.7.3.tar.gz"],
|
||||
)
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
||||
|
||||
go_library(
|
||||
name = "grocksdb",
|
||||
srcs = [
|
||||
"array.go",
|
||||
"backup.go",
|
||||
"c.h",
|
||||
"cache.go",
|
||||
"cf_handle.go",
|
||||
"cf_metadata.go",
|
||||
"checkpoint.go",
|
||||
"compaction_filter.go",
|
||||
"comparator.go",
|
||||
"cow.go",
|
||||
"cuckoo_table.go",
|
||||
"db.go",
|
||||
"dbpath.go",
|
||||
"doc.go",
|
||||
"env.go",
|
||||
"filter_policy.go",
|
||||
"grocksdb.c",
|
||||
"grocksdb.h",
|
||||
"iterator.go",
|
||||
"jemalloc.go",
|
||||
"mem_alloc.go",
|
||||
"memory_usage.go",
|
||||
"merge_operator.go",
|
||||
"non_builtin.go",
|
||||
"optimistic_transaction_db.go",
|
||||
"options.go",
|
||||
"options_backup.go",
|
||||
"options_block_based_table.go",
|
||||
"options_compaction.go",
|
||||
"options_compression.go",
|
||||
"options_env.go",
|
||||
"options_flush.go",
|
||||
"options_ingest.go",
|
||||
"options_read.go",
|
||||
"options_restore.go",
|
||||
"options_transaction.go",
|
||||
"options_transactiondb.go",
|
||||
"options_write.go",
|
||||
"perf_context.go",
|
||||
"perf_level.go",
|
||||
"ratelimiter.go",
|
||||
"slice.go",
|
||||
"slice_transform.go",
|
||||
"snapshot.go",
|
||||
"sst_file_writer.go",
|
||||
"transaction.go",
|
||||
"transactiondb.go",
|
||||
"util.go",
|
||||
"wal_iterator.go",
|
||||
"write_batch.go",
|
||||
"write_batch_wi.go",
|
||||
],
|
||||
cdeps = ["@com_github_facebook_rocksdb//:rocksdb"],
|
||||
cgo = True,
|
||||
importpath = "github.com/linxGnu/grocksdb",
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
|
@ -1,24 +1,14 @@
|
|||
load("@rules_foreign_cc//foreign_cc:make.bzl", "make")
|
||||
load("@rules_foreign_cc//foreign_cc:defs.bzl", "cmake")
|
||||
|
||||
filegroup(
|
||||
name = "srcs",
|
||||
srcs = glob(["**"]),
|
||||
)
|
||||
|
||||
make(
|
||||
name = "librocksdb",
|
||||
targets = ["static_lib", "install"],
|
||||
visibility = ["//visibility:public"],
|
||||
lib_source = "//:srcs",
|
||||
args = ["-j `nproc`"],
|
||||
env = {
|
||||
# Fix `libtool: no output file specified` on Xcode.
|
||||
"AR": "",
|
||||
},
|
||||
)
|
||||
|
||||
alias(
|
||||
cmake(
|
||||
name = "rocksdb",
|
||||
actual = ":librocksdb",
|
||||
lib_source = "//:srcs",
|
||||
out_static_libs = ["librocksdb.a"],
|
||||
visibility = ["//visibility:public"],
|
||||
build_args = ["--parallel `njobs`"],
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue