Skip to content

Commit cd66fb8

Browse files
committed
Merge pull request #107 from seabaylea/dispatch-integration
Configure use of Dispatch on Linux if included in Foundation
2 parents 686a46f + 52c9a66 commit cd66fb8

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

build_script.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,10 @@ def build(args):
115115
foundation_build_dir = os.path.abspath(args.foundation_build_dir)
116116
core_foundation_build_dir = GenericUnixStrategy.core_foundation_build_dir(
117117
foundation_build_dir)
118+
if args.libdispatch_build_dir:
119+
libdispatch_build_dir = os.path.abspath(args.libdispatch_build_dir)
120+
if args.libdispatch_src_dir:
121+
libdispatch_src_dir = os.path.abspath(args.libdispatch_src_dir)
118122

119123
_mkdirp(build_dir)
120124

@@ -128,17 +132,26 @@ def build(args):
128132

129133
# Not incremental..
130134
# Build library
131-
run("{swiftc} -c {style_options} -emit-object -emit-module "
135+
if args.libdispatch_build_dir and args.libdispatch_src_dir:
136+
libdispatch_args = "-I {libdispatch_build_dir}/src -I {libdispatch_src_dir} ".format(
137+
libdispatch_build_dir=libdispatch_build_dir,
138+
libdispatch_src_dir=libdispatch_src_dir)
139+
else:
140+
libdispatch_args = ""
141+
142+
run("{swiftc} -Xcc -fblocks -c {style_options} -emit-object -emit-module "
132143
"-module-name XCTest -module-link-name XCTest -parse-as-library "
133144
"-emit-module-path {build_dir}/XCTest.swiftmodule "
134145
"-force-single-frontend-invocation "
135146
"-I {foundation_build_dir} -I {core_foundation_build_dir} "
147+
"{libdispatch_args} "
136148
"{source_paths} -o {build_dir}/XCTest.o".format(
137149
swiftc=swiftc,
138150
style_options=style_options,
139151
build_dir=build_dir,
140152
foundation_build_dir=foundation_build_dir,
141153
core_foundation_build_dir=core_foundation_build_dir,
154+
libdispatch_args=libdispatch_args,
142155
source_paths=" ".join(sourcePaths)))
143156
run("{swiftc} -emit-library {build_dir}/XCTest.o "
144157
"-L {foundation_build_dir} -lswiftGlibc -lswiftCore -lFoundation -lm "
@@ -314,6 +327,14 @@ def main(args=sys.argv[1:]):
314327
help="Path to swift-corelibs-foundation build products, which "
315328
"the built XCTest.so will be linked against.",
316329
required=strategy.requires_foundation_build_dir())
330+
build_parser.add_argument(
331+
"--libdispatch-build-dir",
332+
help="Path to swift-corelibs-libdispatch build products, which "
333+
"the built XCTest.so will be linked against.")
334+
build_parser.add_argument(
335+
"--libdispatch-src-dir",
336+
help="Path to swift-corelibs-libdispatch source tree, which "
337+
"the built XCTest.so will be linked against.")
317338
build_parser.add_argument("--swift-build-dir",
318339
help="deprecated, do not use")
319340
build_parser.add_argument("--arch", help="deprecated, do not use")

0 commit comments

Comments
 (0)