Skip to content

Commit 93c63f5

Browse files
add swift-collections to CMakeLists and bootstrap
1 parent de1cd10 commit 93c63f5

File tree

5 files changed

+65
-44
lines changed

5 files changed

+65
-44
lines changed

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ if(FIND_PM_DEPS)
5151
endif()
5252

5353
find_package(ArgumentParser CONFIG REQUIRED)
54+
find_package(swift-collections CONFIG REQUIRED)
5455
find_package(SwiftCrypto CONFIG REQUIRED)
5556
find_package(SwiftDriver CONFIG REQUIRED)
5657
endif()

Sources/Build/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ add_library(Build
1616
target_link_libraries(Build PUBLIC
1717
TSCBasic
1818
Basics
19+
OrderedCollections
1920
PackageGraph
2021
LLBuildManifest
2122
SPMBuildCore

Sources/PackageGraph/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ add_library(PackageGraph
3636
target_link_libraries(PackageGraph PUBLIC
3737
TSCBasic
3838
Basics
39+
OrderedCollections
3940
PackageLoading
4041
PackageModel
4142
SourceControl

Sources/PackageLoading/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ add_library(PackageLoading
2222
target_link_libraries(PackageLoading PUBLIC
2323
TSCBasic
2424
Basics
25+
OrderedCollections
2526
PackageModel
2627
SourceControl
2728
TSCUtility)

Utilities/bootstrap

Lines changed: 61 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -166,14 +166,16 @@ def add_test_args(parser):
166166

167167
def parse_global_args(args):
168168
"""Parses and cleans arguments necessary for all actions."""
169-
args.build_dir = os.path.abspath(args.build_dir)
170-
args.project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
171-
args.tsc_source_dir = os.path.join(args.project_root, "..", "swift-tools-support-core")
172-
args.yams_source_dir = os.path.join(args.project_root, "..", "yams")
169+
args.build_dir = os.path.abspath(args.build_dir)
170+
args.project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
171+
args.source_root = os.path.join(args.project_root, "Sources")
173172
args.swift_argument_parser_source_dir = os.path.join(args.project_root, "..", "swift-argument-parser")
174-
args.swift_driver_source_dir = os.path.join(args.project_root, "..", "swift-driver")
175-
args.swift_crypto_source_dir = os.path.join(args.project_root, "..", "swift-crypto")
176-
args.source_root = os.path.join(args.project_root, "Sources")
173+
args.swift_collections_source_dir = os.path.join(args.project_root, "..", "swift-collections")
174+
args.swift_crypto_source_dir = os.path.join(args.project_root, "..", "swift-crypto")
175+
args.swift_driver_source_dir = os.path.join(args.project_root, "..", "swift-driver")
176+
args.tsc_source_dir = os.path.join(args.project_root, "..", "swift-tools-support-core")
177+
args.yams_source_dir = os.path.join(args.project_root, "..", "yams")
178+
177179

178180
if platform.system() == 'Darwin':
179181
args.sysroot = call_output(["xcrun", "--sdk", "macosx", "--show-sdk-path"], verbose=args.verbose)
@@ -305,11 +307,12 @@ def build(args):
305307
build_llbuild(args)
306308

307309
if args.bootstrap:
308-
build_tsc(args)
309-
build_yams(args)
310310
build_swift_argument_parser(args)
311-
build_swift_driver(args)
311+
build_swift_collections(args)
312312
build_swift_crypto(args)
313+
build_swift_driver(args)
314+
build_tsc(args)
315+
build_yams(args)
313316

314317
build_swiftpm_with_cmake(args)
315318
build_swiftpm_with_swiftpm(args,integrated_swift_driver=False)
@@ -531,17 +534,6 @@ def build_llbuild(args):
531534
llbuild_source_dir = get_llbuild_source_path(args)
532535
build_with_cmake(args, flags, llbuild_source_dir, args.llbuild_build_dir)
533536

534-
def build_tsc(args):
535-
note("Building TSC")
536-
args.tsc_build_dir = os.path.join(args.target_dir, "tsc")
537-
538-
cmake_flags = []
539-
if platform.system() == 'Darwin':
540-
cmake_flags.append("-DCMAKE_C_FLAGS=-target %s%s" % (get_build_target(args), g_macos_deployment_target))
541-
cmake_flags.append("-DCMAKE_OSX_DEPLOYMENT_TARGET=%s" % g_macos_deployment_target)
542-
543-
build_with_cmake(args, cmake_flags, args.tsc_source_dir, args.tsc_build_dir)
544-
545537
def build_swift_argument_parser(args):
546538
note("Building swift-argument-parser")
547539
args.swift_argument_parser_build_dir = os.path.join(args.target_dir, "swift-argument-parser")
@@ -555,19 +547,27 @@ def build_swift_argument_parser(args):
555547
cmake_flags.append("-DBUILD_EXAMPLES=NO")
556548
build_with_cmake(args, cmake_flags, args.swift_argument_parser_source_dir, args.swift_argument_parser_build_dir)
557549

558-
def build_yams(args):
559-
note("Building Yams")
560-
args.yams_build_dir = os.path.join(args.target_dir, "yams")
550+
def build_swift_collections(args):
551+
note("Building swift-collections")
552+
args.swift_collections_build_dir = os.path.join(args.target_dir, "swift-collections")
561553

562554
cmake_flags = []
563555
if platform.system() == 'Darwin':
564556
cmake_flags.append("-DCMAKE_C_FLAGS=-target %s%s" % (get_build_target(args), g_macos_deployment_target))
565557
cmake_flags.append("-DCMAKE_OSX_DEPLOYMENT_TARGET=%s" % g_macos_deployment_target)
566-
else:
567-
if args.foundation_build_dir:
568-
cmake_flags.append(get_foundation_cmake_arg(args))
558+
559+
build_with_cmake(args, cmake_flags, args.swift_collections_source_dir, args.swift_collections_build_dir)
569560

570-
build_with_cmake(args, cmake_flags, args.yams_source_dir, args.yams_build_dir)
561+
def build_swift_crypto(args):
562+
note("Building SwiftCrypto")
563+
args.swift_crypto_build_dir = os.path.join(args.target_dir, "swift-crypto")
564+
565+
cmake_flags = []
566+
if platform.system() == 'Darwin':
567+
cmake_flags.append("-DCMAKE_C_FLAGS=-target %s%s" % (get_build_target(args), g_macos_deployment_target))
568+
cmake_flags.append("-DCMAKE_OSX_DEPLOYMENT_TARGET=%s" % g_macos_deployment_target)
569+
570+
build_with_cmake(args, cmake_flags, args.swift_crypto_source_dir, args.swift_crypto_build_dir)
571571

572572
def build_swift_driver(args):
573573
note("Building SwiftDriver")
@@ -584,17 +584,31 @@ def build_swift_driver(args):
584584
cmake_flags.append("-DCMAKE_OSX_DEPLOYMENT_TARGET=%s" % g_macos_deployment_target)
585585

586586
build_with_cmake(args, cmake_flags, args.swift_driver_source_dir, args.swift_driver_build_dir)
587-
588-
def build_swift_crypto(args):
589-
note("Building SwiftCrypto")
590-
args.swift_crypto_build_dir = os.path.join(args.target_dir, "swift-crypto")
587+
588+
def build_tsc(args):
589+
note("Building TSC")
590+
args.tsc_build_dir = os.path.join(args.target_dir, "tsc")
591591

592592
cmake_flags = []
593593
if platform.system() == 'Darwin':
594594
cmake_flags.append("-DCMAKE_C_FLAGS=-target %s%s" % (get_build_target(args), g_macos_deployment_target))
595595
cmake_flags.append("-DCMAKE_OSX_DEPLOYMENT_TARGET=%s" % g_macos_deployment_target)
596596

597-
build_with_cmake(args, cmake_flags, args.swift_crypto_source_dir, args.swift_crypto_build_dir)
597+
build_with_cmake(args, cmake_flags, args.tsc_source_dir, args.tsc_build_dir)
598+
599+
def build_yams(args):
600+
note("Building Yams")
601+
args.yams_build_dir = os.path.join(args.target_dir, "yams")
602+
603+
cmake_flags = []
604+
if platform.system() == 'Darwin':
605+
cmake_flags.append("-DCMAKE_C_FLAGS=-target %s%s" % (get_build_target(args), g_macos_deployment_target))
606+
cmake_flags.append("-DCMAKE_OSX_DEPLOYMENT_TARGET=%s" % g_macos_deployment_target)
607+
else:
608+
if args.foundation_build_dir:
609+
cmake_flags.append(get_foundation_cmake_arg(args))
610+
611+
build_with_cmake(args, cmake_flags, args.yams_source_dir, args.yams_build_dir)
598612

599613
def add_rpath_for_cmake_build(args, rpath):
600614
"Adds the given rpath to the CMake-built swift-build"
@@ -610,11 +624,12 @@ def build_swiftpm_with_cmake(args):
610624
if args.bootstrap:
611625
cmake_flags = [
612626
get_llbuild_cmake_arg(args),
613-
"-DTSC_DIR=" + os.path.join(args.tsc_build_dir, "cmake/modules"),
614-
"-DYams_DIR=" + os.path.join(args.yams_build_dir, "cmake/modules"),
615-
"-DArgumentParser_DIR=" + os.path.join(args.swift_argument_parser_build_dir, "cmake/modules"),
616-
"-DSwiftDriver_DIR=" + os.path.join(args.swift_driver_build_dir, "cmake/modules"),
617-
"-DSwiftCrypto_DIR=" + os.path.join(args.swift_crypto_build_dir, "cmake/modules"),
627+
"-DArgumentParser_DIR=" + os.path.join(args.swift_argument_parser_build_dir, "cmake/modules"),
628+
"-DSwiftCollections_DIR=" + os.path.join(args.swift_collections_build_dir, "cmake/modules"),
629+
"-DSwiftCrypto_DIR=" + os.path.join(args.swift_crypto_build_dir, "cmake/modules"),
630+
"-DSwiftDriver_DIR=" + os.path.join(args.swift_driver_build_dir, "cmake/modules"),
631+
"-DYams_DIR=" + os.path.join(args.yams_build_dir, "cmake/modules"),
632+
"-DTSC_DIR=" + os.path.join(args.tsc_build_dir, "cmake/modules"),
618633
"-DFIND_PM_DEPS:BOOL=YES",
619634
]
620635
else:
@@ -632,10 +647,11 @@ def build_swiftpm_with_cmake(args):
632647
add_rpath_for_cmake_build(args, args.llbuild_build_dir)
633648

634649
if platform.system() == "Darwin":
635-
add_rpath_for_cmake_build(args, os.path.join(args.yams_build_dir, "lib"))
636650
add_rpath_for_cmake_build(args, os.path.join(args.swift_argument_parser_build_dir, "lib"))
637-
add_rpath_for_cmake_build(args, os.path.join(args.swift_driver_build_dir, "lib"))
638-
add_rpath_for_cmake_build(args, os.path.join(args.swift_crypto_build_dir, "lib"))
651+
add_rpath_for_cmake_build(args, os.path.join(args.swift_collections_build_dir, "lib"))
652+
add_rpath_for_cmake_build(args, os.path.join(args.swift_crypto_build_dir, "lib"))
653+
add_rpath_for_cmake_build(args, os.path.join(args.swift_driver_build_dir, "lib"))
654+
add_rpath_for_cmake_build(args, os.path.join(args.yams_build_dir, "lib"))
639655

640656
def build_swiftpm_with_swiftpm(args, integrated_swift_driver):
641657
"""Builds SwiftPM using the version of SwiftPM built with CMake."""
@@ -728,12 +744,13 @@ def get_swiftpm_env_cmd(args):
728744
if args.bootstrap:
729745
libs_joined = ":".join([
730746
os.path.join(args.bootstrap_dir, "lib"),
731-
os.path.join(args.tsc_build_dir, "lib"),
732747
os.path.join(args.llbuild_build_dir, "lib"),
733-
os.path.join(args.yams_build_dir, "lib"),
734748
os.path.join(args.swift_argument_parser_build_dir, "lib"),
735-
os.path.join(args.swift_driver_build_dir, "lib"),
749+
os.path.join(args.swift_collections_build_dir, "lib"),
736750
os.path.join(args.swift_crypto_build_dir, "lib"),
751+
os.path.join(args.swift_driver_build_dir, "lib"),
752+
os.path.join(args.tsc_build_dir, "lib"),
753+
os.path.join(args.yams_build_dir, "lib"),
737754
] + args.target_info["paths"]["runtimeLibraryPaths"])
738755

739756
if platform.system() == 'Darwin':

0 commit comments

Comments
 (0)