From 0501d6865b728e40e3d14cb939d4967d12a53075 Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Fri, 30 Aug 2019 08:20:06 -0700 Subject: [PATCH] build: stage movement for dispatch build output In order to support libdispatch tests on Windows, the build tree layout needs to be adjusted. Account for this path adjustment here in a compatible manner. --- Utilities/bootstrap | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/Utilities/bootstrap b/Utilities/bootstrap index 99b5d59f81d..35cbc76aea7 100755 --- a/Utilities/bootstrap +++ b/Utilities/bootstrap @@ -261,6 +261,7 @@ class Target(object): other_args.extend(["-Xcc", "-F" + args.foundation_path]) import_paths.append(os.path.join(args.foundation_path, "swift")) if args.libdispatch_build_dir: + import_paths.append(os.path.join(args.libdispatch_build_dir, 'lib')) import_paths.append(os.path.join(args.libdispatch_build_dir, "src")) import_paths.append(os.path.join(args.libdispatch_build_dir, "src", "swift")) if args.libdispatch_source_dir: @@ -579,8 +580,10 @@ class llbuild(object): link_command.extend(["-L", self.args.foundation_path]) if self.args.libdispatch_build_dir: link_command.extend(['-L', self.args.libdispatch_build_dir, + '-L', os.path.join(self.args.libdispatch_build_dir, 'lib'), '-Xlinker', '-lBlocksRuntime']) - link_command.extend(["-L", os.path.join(self.args.libdispatch_build_dir, "src")]) + link_command.extend(['-L', os.path.join(self.args.libdispatch_build_dir, "src"), + '-L', os.path.join(self.args.libdispatch_build_dir, 'lib')]) # Add llbuild link flags. link_command.extend(llbuild_link_args(self.args)) @@ -1193,9 +1196,12 @@ def main(): symlink_force(cf_xml_path, libincludedir) # Add symlinks for dispatch. - symlink_force(os.path.join(args.libdispatch_build_dir, 'libBlocksRuntime.so'), libswiftdir) - symlink_force(os.path.join(args.libdispatch_build_dir, "src", "libdispatch.so"), libswiftdir) - symlink_force(os.path.join(args.libdispatch_build_dir, "src", "libswiftDispatch.so"), libswiftdir) + for library in ['libBlocksRuntime.so', 'libdispatch.so', 'libswiftDispatch.so']: + for subdir in ['lib', 'src', '']: + path = os.path.join(args.libdispatch_build_dir, subdir, library) + if os.path.exists(path): + symlink_force(path, libswiftdir) + break # Add swiftmodules. for module_file in ["Dispatch.swiftmodule", "Dispatch.swiftdoc"]: