port //c10/macros to common build structure (#70852)

Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/70852

This is the first change that uses a common build file, build.bzl, to
hold most of the build logic.
ghstack-source-id: 147170895

Test Plan: Relying on internal and external CI.

Reviewed By: malfet

Differential Revision: D33299331

fbshipit-source-id: a66afffba6deec76b758dfb39bdf61d747b5bd99
(cherry picked from commit d9163c56f55cfc97c20f5a6d505474d5b8839201)
This commit is contained in:
Michael Dagitses
2022-01-19 12:48:21 -08:00
committed by PyTorch MergeBot
parent 661d10aab4
commit 78e1f9db34
3 changed files with 45 additions and 32 deletions

View File

@ -1,33 +1,4 @@
load("@rules_cc//cc:defs.bzl", "cc_library")
load(":cmake_configure_file.bzl", "cmake_configure_file")
load("//:tools/bazel.bzl", "rules")
load(":build.bzl", "define_targets")
cc_library(
name = "macros",
srcs = [":cmake_macros_h"],
hdrs = [
"Macros.h",
# Despite the documentation in Macros.h, Export.h is included
# directly by many downstream files. Thus, we declare it as a
# public header in this file.
"Export.h",
],
linkstatic = True,
local_defines = ["C10_BUILD_MAIN_LIB"],
visibility = ["//visibility:public"],
)
cmake_configure_file(
name = "cmake_macros_h",
src = "cmake_macros.h.in",
out = "cmake_macros.h",
definitions = [
"C10_BUILD_SHARED_LIBS",
"C10_USE_MSVC_STATIC_RUNTIME",
] + select({
"//c10:using_gflags": ["C10_USE_GFLAGS"],
"//conditions:default": [],
}) + select({
"//c10:using_glog": ["C10_USE_GLOG"],
"//conditions:default": [],
}),
)
define_targets(rules = rules)

31
c10/macros/build.bzl Normal file
View File

@ -0,0 +1,31 @@
def define_targets(rules):
rules.cc_library(
name = "macros",
srcs = [":cmake_macros_h"],
hdrs = [
"Macros.h",
# Despite the documentation in Macros.h, Export.h is included
# directly by many downstream files. Thus, we declare it as a
# public header in this file.
"Export.h",
],
linkstatic = True,
local_defines = ["C10_BUILD_MAIN_LIB"],
visibility = ["//visibility:public"],
)
rules.cmake_configure_file(
name = "cmake_macros_h",
src = "cmake_macros.h.in",
out = "cmake_macros.h",
definitions = [
"C10_BUILD_SHARED_LIBS",
"C10_USE_MSVC_STATIC_RUNTIME",
] + rules.select({
"//c10:using_gflags": ["C10_USE_GFLAGS"],
"//conditions:default": [],
}) + rules.select({
"//c10:using_glog": ["C10_USE_GLOG"],
"//conditions:default": [],
}),
)

11
tools/bazel.bzl Normal file
View File

@ -0,0 +1,11 @@
load("@rules_cc//cc:defs.bzl", "cc_library")
load("//c10/macros:cmake_configure_file.bzl", "cmake_configure_file")
# Rules implementation for the Bazel build system. Since the common
# build structure aims to replicate Bazel as much as possible, most of
# the rules simply forward to the Bazel definitions.
rules = struct(
cc_library = cc_library,
cmake_configure_file = cmake_configure_file,
select = select,
)