blob: b68dbefb25e1ea67cf3603e5a286345bf229e56c [file] [log] [blame]
load("@rules_cc//cc:defs.bzl", "cc_library")
load("//python:py_test.bzl", "py_test")
# buildifier: disable=bzl-visibility
load("//python/cc:py_extension.bzl", "py_extension")
load(":py_extension_tests.bzl", "py_extension_analysis_test_suite")
package(
default_testonly = True,
default_visibility = ["//visibility:private"],
)
licenses(["notice"])
py_extension(
name = "ext_static",
##srcs = ["ext_static.c"],
static_deps = [":static_dep"],
)
py_extension(
name = "ext_shared",
dynamic_deps = [
":add_one",
],
static_deps = [
":ext_shared_impl",
],
)
cc_library(
name = "ext_shared_impl",
srcs = ["ext_shared.c"],
copts = [
# Gemini says PIC is needed
"-fPIC",
"-fvisibility=hidden",
],
deps = [
":add_one_headers",
# todo: if we put this here, we statically link add_one into the
# extension.
#":add_one_impl",
"@rules_python//python/cc:current_py_cc_headers",
],
)
cc_library(
name = "static_dep",
srcs = ["static_dep.c"],
hdrs = ["static_dep.h"],
)
cc_library(
name = "add_one_headers",
hdrs = ["add_one.h"],
)
cc_library(
name = "add_one",
srcs = ["add_one.c"],
)
py_test(
name = "py_extension_test",
srcs = ["py_extension_test.py"],
deps = [
":ext_shared",
"@dev_pip//pyelftools",
"@rules_python//python/runfiles",
],
)
py_extension_analysis_test_suite(
name = "py_extension_analysis_tests",
)