mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
114 lines
2.9 KiB
Python
114 lines
2.9 KiB
Python
load("@bazel_skylib//rules:native_binary.bzl", "native_binary")
|
|
load("@gazelle//:def.bzl", "gazelle")
|
|
load("@rules_go//go:def.bzl", "go_cross_binary")
|
|
load("@rules_pkg//pkg:install.bzl", "pkg_install")
|
|
load("@rules_pkg//pkg:mappings.bzl", "pkg_attributes", "pkg_filegroup", "pkg_files")
|
|
load("//:defs.bzl", "codeql_platform")
|
|
|
|
# following is needed for running gazelle on macOS
|
|
# see https://github.com/bazelbuild/bazel-gazelle/issues/1793
|
|
go_cross_binary(
|
|
name = "gazelle-1.21.9",
|
|
sdk_version = "1.21.9",
|
|
target = "@gazelle//cmd/gazelle",
|
|
)
|
|
|
|
gazelle(
|
|
name = "gazelle",
|
|
extra_args = ["go/extractor"],
|
|
gazelle = select({
|
|
"@platforms//os:macos": ":gazelle-1.21.9",
|
|
"//conditions:default": "@gazelle//cmd/gazelle",
|
|
}),
|
|
)
|
|
|
|
_gen_binaries = [
|
|
"@rules_go//go",
|
|
":gazelle",
|
|
"//go/extractor/cli/go-gen-dbscheme",
|
|
]
|
|
|
|
py_binary(
|
|
name = "gen",
|
|
srcs = ["gen.py"],
|
|
args = ["$(rlocationpath %s)" % bin for bin in _gen_binaries],
|
|
data = _gen_binaries,
|
|
deps = ["@rules_python//python/runfiles"],
|
|
)
|
|
|
|
# this is an internal copy of the dbscheme to be used by extractor-pack
|
|
# this allows the extractor-pack target to be independent and up-to-date with respect to
|
|
# having run //go:gen to update the checked in files
|
|
genrule(
|
|
name = "dbscheme",
|
|
outs = ["go.dbscheme"],
|
|
cmd = "$(execpath //go/extractor/cli/go-gen-dbscheme) $@",
|
|
tools = ["//go/extractor/cli/go-gen-dbscheme"],
|
|
)
|
|
|
|
pkg_files(
|
|
name = "resources",
|
|
srcs = [
|
|
"LICENSE",
|
|
"codeql-extractor.yml",
|
|
"ql/lib/go.dbscheme.stats",
|
|
":dbscheme",
|
|
],
|
|
)
|
|
|
|
pkg_filegroup(
|
|
name = "extractor-pack-generic",
|
|
srcs = [
|
|
":resources",
|
|
"//go/codeql-tools",
|
|
"//go/downgrades",
|
|
"//go/extractor:tokenizer",
|
|
],
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
pkg_files(
|
|
name = "extractor-pack-arch",
|
|
srcs = [
|
|
"//go/extractor/cli/go-autobuilder",
|
|
"//go/extractor/cli/go-bootstrap",
|
|
"//go/extractor/cli/go-build-runner",
|
|
"//go/extractor/cli/go-extractor",
|
|
"//go/extractor/cli/go-gen-dbscheme",
|
|
"//go/extractor/cli/go-tokenizer",
|
|
],
|
|
attributes = pkg_attributes(mode = "0755"),
|
|
prefix = "tools/" + codeql_platform,
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
pkg_filegroup(
|
|
name = "extractor-pack",
|
|
srcs = [
|
|
":extractor-pack-arch",
|
|
":extractor-pack-generic",
|
|
],
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
pkg_install(
|
|
name = "_create_extractor_pack",
|
|
srcs = [":extractor-pack"],
|
|
)
|
|
|
|
py_binary(
|
|
name = "create-extractor-pack",
|
|
srcs = ["create_extractor_pack.py"],
|
|
main = "create_extractor_pack.py",
|
|
deps = [":_create_extractor_pack"],
|
|
)
|
|
|
|
native_binary(
|
|
name = "gen-dbscheme",
|
|
src = "//go/extractor/cli/go-gen-dbscheme",
|
|
out = "go-gen-dbscheme",
|
|
args = [
|
|
"$$BUILD_WORKSPACE_DIRECTORY/go/ql/lib/go.dbscheme",
|
|
],
|
|
)
|