Skip to content

Commit 61a3f86

Browse files
authored
Merge pull request github#13447 from github/sashabu/windows2
Swift: Bare-bones extractor pack for Windows.
2 parents 21ad3e8 + abc6d62 commit 61a3f86

File tree

10 files changed

+54
-31
lines changed

10 files changed

+54
-31
lines changed

.bazelrc

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1-
build --repo_env=CC=clang --repo_env=CXX=clang++ --cxxopt="-std=c++20"
1+
common --enable_platform_specific_config
2+
3+
build --repo_env=CC=clang --repo_env=CXX=clang++
4+
5+
build:linux --cxxopt=-std=c++20
6+
build:macos --cxxopt=-std=c++20 --cpu=darwin_x86_64
7+
build:windows --cxxopt=/std:c++20 --cxxopt=/Zc:preprocessor
28

39
try-import %workspace%/local.bazelrc

swift/BUILD.bazel

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,15 @@ pkg_files(
3838
pkg_filegroup(
3939
name = "extractor-pack-generic",
4040
srcs = [
41-
":dbscheme_files",
4241
":manifest",
43-
"//swift/downgrades",
4442
"//swift/tools",
45-
],
43+
] + select({
44+
"@platforms//os:windows": [],
45+
"//conditions:default": [
46+
":dbscheme_files",
47+
"//swift/downgrades",
48+
],
49+
}),
4650
visibility = ["//visibility:public"],
4751
)
4852

@@ -59,8 +63,8 @@ pkg_runfiles(
5963
)
6064

6165
pkg_runfiles(
62-
name = "incompatible-os",
63-
srcs = ["//swift/tools/autobuilder-diagnostics:incompatible-os"],
66+
name = "diagnostics",
67+
srcs = ["//swift/tools/diagnostics:autobuilder-incompatible-os"],
6468
prefix = "tools/" + codeql_platform,
6569
)
6670

@@ -80,17 +84,20 @@ pkg_files(
8084

8185
pkg_filegroup(
8286
name = "extractor-pack-arch",
83-
srcs = [
84-
":extractor",
85-
":swift-test-sdk-arch",
86-
":resource-dir-arch",
87-
] + select({
88-
"@platforms//os:linux": [
89-
":incompatible-os",
87+
srcs = select({
88+
"@platforms//os:windows": [],
89+
"//conditions:default": [
90+
":extractor",
91+
":resource-dir-arch",
92+
":swift-test-sdk-arch",
9093
],
94+
}) + select({
9195
"@platforms//os:macos": [
9296
":xcode-autobuilder",
9397
],
98+
"//conditions:default": [
99+
":diagnostics",
100+
],
94101
}),
95102
visibility = ["//visibility:public"],
96103
)
@@ -122,7 +129,7 @@ generate_cmake(
122129
"//swift/extractor:extractor.real",
123130
"//swift/logging/tests/assertion-diagnostics:assert-false",
124131
] + select({
125-
"@platforms//os:linux": ["//swift/tools/autobuilder-diagnostics:incompatible-os"],
132+
"@platforms//os:linux": ["//swift/tools/diagnostics:autobuilder-incompatible-os"],
126133
"@platforms//os:macos": ["//swift/xcode-autobuilder"],
127134
}),
128135
visibility = ["//visibility:public"],

swift/logging/SwiftLogging.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@
33
#include <filesystem>
44
#include <stdlib.h>
55
#include <optional>
6+
#ifdef _WIN32
7+
#include <process.h>
8+
#else
69
#include <unistd.h>
10+
#endif
711
#include "absl/strings/str_cat.h"
812

913
#define LEVEL_REGEX_PATTERN "trace|debug|info|warning|error|critical|no_logs"

swift/rules.bzl

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,13 @@ def _wrap_cc(rule, kwargs):
1010
# temporary, before we do universal merging
1111
"-universal_binaries",
1212
])
13-
_add_args(kwargs, "target_compatible_with", select({
14-
"@platforms//os:linux": [],
15-
"@platforms//os:macos": [],
16-
"//conditions:default": ["@platforms//:incompatible"],
17-
}))
13+
if "target_compatible_with" not in kwargs:
14+
# Restrict to Linux or macOS by default, but allow overriding
15+
_add_args(kwargs, "target_compatible_with", select({
16+
"@platforms//os:linux": [],
17+
"@platforms//os:macos": [],
18+
"//conditions:default": ["@platforms//:incompatible"],
19+
}))
1820
rule(**kwargs)
1921

2022
def swift_cc_binary(**kwargs):

swift/tools/BUILD.bazel

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@ sh_binary(
1919
pkg_files(
2020
name = "scripts",
2121
srcs = [
22-
":identify-environment",
22+
"autobuild.cmd",
2323
":autobuild",
24+
":identify-environment",
2425
":qltest",
2526
],
2627
attributes = pkg_attributes(mode = "0755"),

swift/tools/autobuild.cmd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
"%CODEQL_EXTRACTOR_SWIFT_ROOT%/tools/%CODEQL_PLATFORM%/autobuilder-incompatible-os.exe"

swift/tools/autobuild.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
if [[ "$OSTYPE" == "darwin"* ]]; then
44
exec "${CODEQL_EXTRACTOR_SWIFT_ROOT}/tools/${CODEQL_PLATFORM}/xcode-autobuilder"
55
else
6-
exec "${CODEQL_EXTRACTOR_SWIFT_ROOT}/tools/${CODEQL_PLATFORM}/incompatible-os"
6+
exec "${CODEQL_EXTRACTOR_SWIFT_ROOT}/tools/${CODEQL_PLATFORM}/autobuilder-incompatible-os"
77
fi

swift/tools/autobuilder-diagnostics/BUILD.bazel

Lines changed: 0 additions & 10 deletions
This file was deleted.

swift/tools/diagnostics/BUILD.bazel

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
load("//swift:rules.bzl", "swift_cc_binary")
2+
3+
swift_cc_binary(
4+
name = "autobuilder-incompatible-os",
5+
srcs = ["AutobuilderIncompatibleOs.cpp"],
6+
# No restrictions (Windows allowed)
7+
target_compatible_with = [],
8+
visibility = ["//swift:__subpackages__"],
9+
deps = [
10+
"//swift/logging",
11+
],
12+
)

0 commit comments

Comments
 (0)