Skip to content

Commit c21849b

Browse files
authored
Merge pull request github#9015 from redsun82/swift-enable-dynamic-library
Swift: enable dynamic mode
2 parents fe72dfe + c2be267 commit c21849b

File tree

8 files changed

+54
-22
lines changed

8 files changed

+54
-22
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,8 @@ csharp/extractor/Semmle.Extraction.CSharp.Driver/Properties/launchSettings.json
3737
# links created by bazel
3838
/bazel-*
3939

40+
# local bazel options
41+
/local.bazelrc
42+
4043
# CLion project files
4144
/.clwb

misc/bazel/pkg_runfiles.bzl

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
load("@rules_pkg//:mappings.bzl", "pkg_attributes", "pkg_files")
2+
3+
def _runfiles_group_impl(ctx):
4+
files = []
5+
for src in ctx.attr.srcs:
6+
rf = src[DefaultInfo].default_runfiles
7+
if rf != None:
8+
files.append(rf.files)
9+
return [
10+
DefaultInfo(
11+
files = depset(transitive = files),
12+
),
13+
]
14+
15+
_runfiles_group = rule(
16+
implementation = _runfiles_group_impl,
17+
attrs = {
18+
"srcs": attr.label_list(),
19+
},
20+
)
21+
22+
def pkg_runfiles(*, name, srcs, **kwargs):
23+
internal_name = "_%s_runfiles" % name
24+
_runfiles_group(
25+
name = internal_name,
26+
srcs = srcs,
27+
)
28+
kwargs.setdefault("attributes", pkg_attributes(mode = "0755"))
29+
pkg_files(
30+
name = name,
31+
srcs = [internal_name],
32+
**kwargs
33+
)

misc/bazel/workspace.bzl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def codeql_workspace(repository_name = "codeql"):
2222
_swift_prebuilt_version,
2323
repo_arch,
2424
),
25-
build_file = "@%s//swift/extractor:BUILD.swift-prebuilt.bazel" % repository_name,
25+
build_file = "@%s//swift/tools/prebuilt:BUILD.swift-prebuilt.bazel" % repository_name,
2626
sha256 = sha256,
2727
)
2828

@@ -55,4 +55,3 @@ def codeql_workspace(repository_name = "codeql"):
5555
"https://github.com/bazelbuild/rules_python/archive/refs/tags/0.8.1.tar.gz",
5656
],
5757
)
58-

swift/BUILD.bazel

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
load("@rules_pkg//:mappings.bzl", "pkg_attributes", "pkg_filegroup", "pkg_files", "strip_prefix")
22
load("@rules_pkg//:install.bzl", "pkg_install")
33
load("//:defs.bzl", "codeql_platform")
4+
load("//misc/bazel:pkg_runfiles.bzl", "pkg_runfiles")
45

56
filegroup(
67
name = "dbscheme",
@@ -45,24 +46,15 @@ pkg_filegroup(
4546
visibility = ["//visibility:public"],
4647
)
4748

48-
pkg_files(
49+
pkg_runfiles(
4950
name = "extractor",
5051
srcs = ["//swift/extractor"],
51-
attributes = pkg_attributes(mode = "0755"),
5252
prefix = "tools/" + codeql_platform,
5353
)
5454

55-
alias(
56-
name = "swift-test-sdk",
57-
actual = select({
58-
"@bazel_tools//src/conditions:%s" % arch: "@swift_prebuilt_%s//:swift-test-sdk" % arch
59-
for arch in ("linux", "darwin_x86_64", "darwin_arm64")
60-
}),
61-
)
62-
6355
pkg_files(
6456
name = "swift-test-sdk-arch",
65-
srcs = [":swift-test-sdk"],
57+
srcs = ["//swift/tools/prebuilt:swift-test-sdk"],
6658
prefix = "qltest/" + codeql_platform,
6759
strip_prefix = strip_prefix.from_pkg(),
6860
)

swift/extractor/BUILD.bazel

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,5 @@
11
load("//swift:rules.bzl", "swift_cc_binary")
22

3-
alias(
4-
name = "swift-llvm-support",
5-
actual = select({
6-
"@bazel_tools//src/conditions:%s" % arch: "@swift_prebuilt_%s//:swift-llvm-support" % arch
7-
for arch in ("linux", "darwin_x86_64", "darwin_arm64")
8-
}),
9-
)
10-
113
swift_cc_binary(
124
name = "extractor",
135
srcs = [
@@ -18,7 +10,7 @@ swift_cc_binary(
1810
],
1911
visibility = ["//swift:__pkg__"],
2012
deps = [
21-
":swift-llvm-support",
13+
"//swift/tools/prebuilt:swift-llvm-support",
2214
"//swift/extractor/trap",
2315
],
2416
)

swift/tools/prebuilt/BUILD.bazel

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package(default_visibility = ["//swift:__subpackages__"])
2+
3+
[
4+
alias(
5+
name = name,
6+
actual = select({
7+
"@bazel_tools//src/conditions:%s" % arch: "@swift_prebuilt_%s//:%s" % (arch, name)
8+
for arch in ("linux", "darwin_x86_64", "darwin_arm64")
9+
}),
10+
) for name in ("swift-llvm-support", "swift-test-sdk")
11+
]

swift/tools/qltest.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,6 @@ mkdir -p "$CODEQL_EXTRACTOR_SWIFT_TRAP_DIR"
44

55
QLTEST_LOG="$CODEQL_EXTRACTOR_SWIFT_LOG_DIR"/qltest.log
66

7+
export LD_LIBRARY_PATH="$CODEQL_EXTRACTOR_SWIFT_ROOT/tools/$CODEQL_PLATFORM"
8+
79
exec "$CODEQL_EXTRACTOR_SWIFT_ROOT/tools/$CODEQL_PLATFORM/extractor" -sdk "$CODEQL_EXTRACTOR_SWIFT_ROOT/qltest/$CODEQL_PLATFORM/sdk" -c *.swift >> $QLTEST_LOG 2>&1

0 commit comments

Comments
 (0)