30edf1874c
Summary: Users may desire to specify extra dependencies via buck. This PR allows users to pass additional dependencies as a JSON object so that the buckifier script can generate TARGETS file with desired extra dependencies. Test plan (on dev server) ``` $python buckifier/buckify_rocksdb.py '{"fake": {"extra_deps": [":test_dep", "//fakes/module:mock1"], "extra_compiler_flags": ["-DROCKSDB_LITE", "-Os"]}}' Generating TARGETS Extra dependencies: {'': {'extra_compiler_flags': [], 'extra_deps': []}, 'test_dep1': {'extra_compiler_flags': ['-O2', '-DROCKSDB_LITE'], 'extra_deps': [':fake', '//dep1/mock']}} Generated TARGETS Summary: - 5 libs - 0 binarys - 296 tests ``` Verify the TARGETS file. Pull Request resolved: https://github.com/facebook/rocksdb/pull/5648 Differential Revision: D16565043 Pulled By: riversand963 fbshipit-source-id: a6ef02274174fcf159692d7b846e828454d01e89
40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
|
|
|
load("@fbcode_macros//build_defs:cpp_binary.bzl", "cpp_binary")
|
|
load("@fbcode_macros//build_defs:custom_unittest.bzl", "custom_unittest")
|
|
|
|
def test_binary(
|
|
test_name,
|
|
test_cc,
|
|
parallelism,
|
|
rocksdb_arch_preprocessor_flags,
|
|
rocksdb_os_preprocessor_flags,
|
|
rocksdb_compiler_flags,
|
|
rocksdb_preprocessor_flags,
|
|
rocksdb_external_deps,
|
|
rocksdb_os_deps,
|
|
extra_deps,
|
|
extra_compiler_flags):
|
|
TEST_RUNNER = native.package_name() + "/buckifier/rocks_test_runner.sh"
|
|
|
|
ttype = "gtest" if parallelism == "parallel" else "simple"
|
|
test_bin = test_name + "_bin"
|
|
|
|
cpp_binary(
|
|
name = test_bin,
|
|
srcs = [test_cc],
|
|
arch_preprocessor_flags = rocksdb_arch_preprocessor_flags,
|
|
os_preprocessor_flags = rocksdb_os_preprocessor_flags,
|
|
compiler_flags = rocksdb_compiler_flags + extra_compiler_flags,
|
|
preprocessor_flags = rocksdb_preprocessor_flags,
|
|
deps = [":rocksdb_test_lib"] + extra_deps,
|
|
os_deps = rocksdb_os_deps,
|
|
external_deps = rocksdb_external_deps,
|
|
)
|
|
|
|
custom_unittest(
|
|
name = test_name,
|
|
command = [TEST_RUNNER, "$(location :{})".format(test_bin)],
|
|
type = ttype,
|
|
)
|