Files
codeql/swift/BUILD.bazel
Paolo Tranquilli 8efd127010 Swift: improve diagnostics for OS incompatibility
* do not mention any more that one might make analysis happen on Linux with
  advanced setup
* say that outright Swift analysis is only supported on macOS, not just
  autobuild.
* emit the error diagnostics even for traced builds, not only for autobuilds
  (by using a dummy `extractor` executable).
2024-12-16 10:12:31 +01:00

132 lines
2.8 KiB
Python

load("@rules_pkg//pkg:mappings.bzl", "pkg_filegroup")
load(
"//misc/bazel:pkg.bzl",
"codeql_pack",
"codeql_pkg_files",
"codeql_pkg_runfiles",
)
load("//misc/bazel:utils.bzl", "select_os")
filegroup(
name = "schema",
srcs = ["schema.py"],
visibility = ["//swift:__subpackages__"],
)
filegroup(
name = "schema_includes",
srcs = glob(["*.dbscheme"]),
visibility = ["//swift:__subpackages__"],
)
filegroup(
name = "codegen_conf",
srcs = ["codegen.conf"],
visibility = ["//swift:__subpackages__"],
)
codeql_pkg_files(
name = "incompatible-os",
exes = ["//swift/tools/incompatible-os"],
renames = select_os(
otherwise = {},
windows = {
"//swift/tools/incompatible-os": "extractor.exe",
},
),
)
codeql_pkg_runfiles(
name = "autobuilder-files",
exes = ["//swift/swift-autobuilder"],
)
pkg_filegroup(
name = "autobuilder",
srcs = select_os(
macos = [
":autobuilder-files",
],
otherwise = [
":incompatible-os",
],
),
prefix = "tools/{CODEQL_PLATFORM}",
)
pkg_filegroup(
name = "tools",
srcs = ["//swift/tools"],
prefix = "tools",
)
pkg_filegroup(
name = "extractor",
srcs = select_os(
posix = [
"//swift/extractor:pkg",
],
),
prefix = "tools/{CODEQL_PLATFORM}",
)
pkg_filegroup(
name = "incompatible-linux-extractor",
srcs = ["//swift/extractor:incompatible"],
prefix = "tools/{CODEQL_PLATFORM}",
target_compatible_with = ["@platforms//os:linux"],
)
codeql_pkg_files(
name = "root-files",
srcs = [
"codeql-extractor.yml",
"ql/lib/swift.dbscheme.stats",
"//swift/extractor/trap:generated_dbscheme",
],
)
zip_map = {
"//swift/third_party/resources:dir": "resource-dir/{CODEQL_PLATFORM}",
}
[
codeql_pack(
name = "swift-linux-included" if linux_included else "swift",
srcs = [
":autobuilder",
":root-files",
":tools",
"//swift/downgrades",
] + select_os(
linux = [":extractor"] if linux_included else [":incompatible-linux-extractor"],
macos = [":extractor"],
windows = [],
),
installer_alias = "install-linux" if linux_included else "install-other",
pack_prefix = "swift",
zips = select_os(
linux = zip_map if linux_included else {},
macos = zip_map,
windows = {},
),
)
for linux_included in [
True,
False,
]
]
alias(
name = "create-extractor-pack",
actual = ":install",
)
alias(
name = "install",
actual = select_os(
linux = ":install-linux",
otherwise = ":install-other",
),
)