Skip to content

Commit 3467290

Browse files
committed
[Build-Script-Helper] Avoid installing argument-parser into the toolchain, until needed
Code commented-out with TODOs
1 parent daef6f4 commit 3467290

File tree

1 file changed

+14
-28
lines changed

1 file changed

+14
-28
lines changed

Utilities/build-script-helper.py

Lines changed: 14 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ def handle_invocation(toolchain_bin, args):
172172
elif args.action == 'install':
173173
if platform.system() == 'Darwin':
174174
distribution_build_dir = os.path.join(args.build_path, 'dist')
175-
build_for_distribution(args, toolchain_bin, distribution_build_dir)
175+
build_for_toolchain_install(args, toolchain_bin, distribution_build_dir)
176176
install(args, distribution_build_dir)
177177
else:
178178
bin_path = swiftpm_bin_path(swift_exec, swiftpm_args, env)
@@ -210,7 +210,7 @@ def install(args, build_dir):
210210

211211
# Binary Swift Modules:
212212
# swift-driver: SwiftDriver.swiftmodule, SwiftOptions.swiftmodule
213-
# swift-argument-parser: ArgumentParser.swiftmodule
213+
# TODO: swift-argument-parser: ArgumentParser.swiftmodule
214214
# swift-tools-support-core: TSCUtility.swiftmodule, TSCLibc.swiftmodule, TSCBasic.swiftmodule
215215
install_binary_swift_modules(args, build_dir, toolchain_lib)
216216

@@ -275,36 +275,21 @@ def install_libraries(args, build_dir, universal_lib_dir, toolchain_lib_dir):
275275

276276
# Install the libSwiftDriver and libSwiftOptions shared libraries into the toolchain lib
277277
for lib in ['libSwiftDriver', 'libSwiftOptions']:
278-
shared_lib_file = lib + shared_lib_ext
279-
output_dylib_path = os.path.join(universal_lib_dir, shared_lib_file)
280-
lipo_cmd = ['lipo']
281-
for arch in macos_target_architectures:
282-
input_lib_path = os.path.join(build_dir, arch + '-apple-macos' + macos_deployment_target,
283-
'swift-driver', 'lib', shared_lib_file)
284-
lipo_cmd.append(input_lib_path)
285-
lipo_cmd.extend(['-create', '-output', output_dylib_path])
286-
subprocess.check_call(lipo_cmd)
287-
install_binary(shared_lib_file, universal_lib_dir, toolchain_lib_dir, args.verbose)
278+
install_library(args, build_dir, lib, universal_lib_dir, toolchain_lib_dir, 'swift-driver')
288279

289280
for lib in ['libTSCBasic', 'libTSCLibc', 'libTSCUtility']:
290-
shared_lib_file = lib + shared_lib_ext
291-
output_dylib_path = os.path.join(universal_lib_dir, shared_lib_file)
292-
lipo_cmd = ['lipo']
293-
for arch in macos_target_architectures:
294-
input_lib_path = os.path.join(build_dir, arch + '-apple-macos' + macos_deployment_target,
295-
'swift-tools-support-core', 'lib', shared_lib_file)
296-
lipo_cmd.append(input_lib_path)
297-
lipo_cmd.extend(['-create', '-output', output_dylib_path])
298-
subprocess.check_call(lipo_cmd)
299-
install_binary(shared_lib_file, universal_lib_dir, toolchain_lib_dir, args.verbose)
281+
install_library(args, build_dir, lib, universal_lib_dir, toolchain_lib_dir, 'swift-tools-support-core')
282+
283+
# TODO: Until the argument parser is used, avoid installing it into the toolchain
284+
#install_library(args, build_dir, 'libArgumentParser', universal_lib_dir, toolchain_lib_dir, 'swift-argument-parser')
300285

301-
def install_library(args, lib_name, ):
302-
shared_lib_file = lib + shared_lib_ext
286+
def install_library(args, build_dir, lib_name, universal_lib_dir, toolchain_lib_dir, package_name):
287+
shared_lib_file = lib_name + shared_lib_ext
303288
output_dylib_path = os.path.join(universal_lib_dir, shared_lib_file)
304289
lipo_cmd = ['lipo']
305290
for arch in macos_target_architectures:
306291
input_lib_path = os.path.join(build_dir, arch + '-apple-macos' + macos_deployment_target,
307-
'swift-driver', 'lib', shared_lib_file)
292+
package_name, 'lib', shared_lib_file)
308293
lipo_cmd.append(input_lib_path)
309294
lipo_cmd.extend(['-create', '-output', output_dylib_path])
310295
subprocess.check_call(lipo_cmd)
@@ -319,7 +304,8 @@ def install_binary_swift_modules(args, build_dir, toolchain_lib_dir):
319304
install_module(args, build_dir, product_subpath, toolchain_lib_dir, module, 'swift-driver')
320305

321306
# swift-argument-parser
322-
install_module(args, build_dir, product_subpath, toolchain_lib_dir, 'ArgumentParser', 'swift-argument-parser')
307+
# TODO: Until the argument parser is used, avoid installing it into the toolchain
308+
#install_module(args, build_dir, product_subpath, toolchain_lib_dir, 'ArgumentParser', 'swift-argument-parser')
323309

324310
# swift-tools-support-core
325311
for module in ['TSCUtility', 'TSCLibc', 'TSCBasic']:
@@ -357,7 +343,7 @@ def install_module_includes(args, toolchain_include_dir, src_include_dir, dst_mo
357343
shutil.rmtree(toolchain_module_include_dir, ignore_errors=True)
358344
shutil.copytree(src_include_dir, toolchain_module_include_dir)
359345

360-
def build_for_distribution(args, toolchain_bin, build_dir):
346+
def build_for_toolchain_install(args, toolchain_bin, build_dir):
361347
print('Preparing SwiftDriver for distribution using CMake.')
362348
swiftc_exec = os.path.join(toolchain_bin, 'swiftc')
363349

@@ -427,7 +413,7 @@ def build_argument_parser_using_cmake(args, target, swiftc_exec, cmake_target_di
427413
print('Building Argument Parser for target: %s' % target)
428414
parser_source_dir = os.path.join(os.path.dirname(args.package_path), 'swift-argument-parser')
429415
parser_build_dir = os.path.join(cmake_target_dir, 'swift-argument-parser')
430-
custom_flags = ['-DBUILD_SHARED_LIBS=OFF', '-DBUILD_TESTING=NO', '-DBUILD_EXAMPLES=NO']
416+
custom_flags = ['-DBUILD_TESTING=NO', '-DBUILD_EXAMPLES=NO']
431417
parser_flags = base_cmake_flags + custom_flags
432418
cmake_build(args, swiftc_exec, parser_flags, parser_source_dir, parser_build_dir)
433419
return

0 commit comments

Comments
 (0)