Skip to content

Commit a426a08

Browse files
wattcgrindel
andauthored
feat: use suffixed repo name as package name (#1072)
Resolves #1057. Following the recommendation from the discussion there, this uses the repo name suffixed with `.rspm` as the package name. --------- Co-authored-by: Chuck Grindel <[email protected]>
1 parent 6501fcc commit a426a08

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

swiftpkg/internal/swiftpkg_build_files.bzl

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,15 @@ def _swift_target_build_file(pkg_ctx, target):
5353
"visibility": ["//:__subpackages__"],
5454
}
5555

56+
# Naively parse the tools semver.
57+
tools_version = pkg_ctx.pkg_info.tools_version or "0.0.0"
58+
tools_version_components = tools_version.split(".") + ["0", "0"]
59+
tools_version_major, tools_version_minor = [int(x if x.isdigit() else "0") for x in tools_version_components[0:2]]
60+
61+
# Gate package_name behind swift tools version 5.9
62+
if tools_version_major >= 6 or (tools_version_major == 5 and tools_version_minor >= 9):
63+
attrs["package_name"] = target.label.repository_name.lstrip("@") + ".rspm"
64+
5665
# Add macros as plugins
5766
macro_target_labels = [
5867
target.label.repository_name + "//:" + target.label.name

swiftpkg/tests/swiftpkg_build_files_tests.bzl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ _repo_name = "@swiftpkg_mypackage"
3434
_pkg_info = pkginfos.new(
3535
name = "MyPackage",
3636
path = "/path/to/my-package",
37+
tools_version = "5.9",
3738
dependencies = [
3839
pkginfos.new_dependency(
3940
identity = "swift-argument-parser",
@@ -581,6 +582,7 @@ swift_library(
581582
copts = ["-DSWIFT_PACKAGE"],
582583
deps = [],
583584
module_name = "RegularSwiftTargetAsLibrary",
585+
package_name = "swiftpkg_mypackage.rspm",
584586
srcs = ["Source/RegularSwiftTargetAsLibrary/RegularSwiftTargetAsLibrary.swift"],
585587
tags = ["manual"],
586588
visibility = ["//:__subpackages__"],
@@ -602,6 +604,7 @@ swift_library(
602604
copts = ["-DSWIFT_PACKAGE"],
603605
deps = ["@swiftpkg_mypackage//:RegularSwiftTargetAsLibrary.rspm"],
604606
module_name = "RegularTargetForExec",
607+
package_name = "swiftpkg_mypackage.rspm",
605608
srcs = ["Source/RegularTargetForExec/main.swift"],
606609
tags = ["manual"],
607610
visibility = ["//:__subpackages__"],
@@ -619,6 +622,7 @@ swift_test(
619622
copts = ["-DSWIFT_PACKAGE"],
620623
deps = ["@swiftpkg_mypackage//:RegularSwiftTargetAsLibrary.rspm"],
621624
module_name = "RegularSwiftTargetAsLibraryTests",
625+
package_name = "swiftpkg_mypackage.rspm",
622626
srcs = ["Tests/RegularSwiftTargetAsLibraryTests/RegularSwiftTargetAsLibraryTests.swift"],
623627
visibility = ["//:__subpackages__"],
624628
)
@@ -646,6 +650,7 @@ swift_binary(
646650
}),
647651
deps = [],
648652
module_name = "SwiftExecutableTarget",
653+
package_name = "swiftpkg_mypackage.rspm",
649654
srcs = ["Source/SwiftExecutableTarget/main.swift"],
650655
visibility = ["//:__subpackages__"],
651656
)
@@ -817,6 +822,7 @@ swift_library(
817822
"//conditions:default": [],
818823
}),
819824
module_name = "SwiftLibraryWithConditionalDep",
825+
package_name = "swiftpkg_mypackage.rspm",
820826
srcs = ["Source/SwiftLibraryWithConditionalDep/SwiftLibraryWithConditionalDep.swift"],
821827
tags = ["manual"],
822828
visibility = ["//:__subpackages__"],
@@ -880,6 +886,7 @@ swift_library(
880886
],
881887
generates_header = True,
882888
module_name = "SwiftForObjcTarget",
889+
package_name = "swiftpkg_mypackage.rspm",
883890
srcs = ["Source/SwiftForObjcTarget/SwiftForObjcTarget.swift"],
884891
tags = ["manual"],
885892
visibility = ["//:__subpackages__"],
@@ -919,6 +926,7 @@ swift_library(
919926
data = [":SwiftLibraryWithFilePathResource.rspm_resource_bundle"],
920927
deps = [],
921928
module_name = "SwiftLibraryWithFilePathResource",
929+
package_name = "swiftpkg_mypackage.rspm",
922930
srcs = [
923931
"Source/SwiftLibraryWithFilePathResource/SwiftLibraryWithFilePathResource.swift",
924932
":SwiftLibraryWithFilePathResource.rspm_resource_bundle_accessor",

0 commit comments

Comments
 (0)