From 8f492b388a1edb0b3567237960d588f44b596a32 Mon Sep 17 00:00:00 2001 From: Max Desiatov Date: Tue, 16 Jan 2024 15:41:02 +0000 Subject: [PATCH] Revert "Revert "Start using `package` for some APIs"" --- CMakeLists.txt | 3 ++ Sources/Basics/CMakeLists.txt | 1 + Sources/Basics/OSSignpost.swift | 11 +++--- .../GitRepositoryExtensions.swift | 2 +- Sources/SPMTestSupport/MockArchiver.swift | 34 +++++++++---------- 5 files changed, 28 insertions(+), 23 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ddbb5447b3d..029f3ffa337 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,5 +51,8 @@ find_package(dispatch QUIET) find_package(Foundation QUIET) find_package(SQLite3 REQUIRED) +# Enable `package` modifier for the whole package. +add_compile_options("$<$:-package-name;SwiftPM>") + add_subdirectory(Sources) add_subdirectory(cmake/modules) diff --git a/Sources/Basics/CMakeLists.txt b/Sources/Basics/CMakeLists.txt index dd61eda01eb..9d414fc9eea 100644 --- a/Sources/Basics/CMakeLists.txt +++ b/Sources/Basics/CMakeLists.txt @@ -70,6 +70,7 @@ target_link_libraries(Basics PUBLIC target_link_libraries(Basics PRIVATE SPMSQLite3 TSCclibc) + # NOTE(compnerd) workaround for CMake not setting up include flags yet set_target_properties(Basics PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_Swift_MODULE_DIRECTORY}) diff --git a/Sources/Basics/OSSignpost.swift b/Sources/Basics/OSSignpost.swift index 34eb9d49c04..96f524f2a60 100644 --- a/Sources/Basics/OSSignpost.swift +++ b/Sources/Basics/OSSignpost.swift @@ -22,7 +22,7 @@ extension os.OSLog { #endif /// Emits a signpost. -@inlinable public func os_signpost( +@inlinable package func os_signpost( _ type: SignpostType, name: StaticString, signpostID: SignpostID = .exclusive @@ -39,8 +39,8 @@ extension os.OSLog { #endif } - -public enum SignpostType { +@usableFromInline +package enum SignpostType { case begin case end case event @@ -61,7 +61,8 @@ public enum SignpostType { #endif } -public enum SignpostID { +@usableFromInline +package enum SignpostID { case exclusive #if canImport(os) @@ -77,7 +78,7 @@ public enum SignpostID { } -public enum SignpostName { +package enum SignpostName { public static let updatingDependencies: StaticString = "updating" public static let resolvingDependencies: StaticString = "resolving" public static let pubgrub: StaticString = "pubgrub" diff --git a/Sources/SPMTestSupport/GitRepositoryExtensions.swift b/Sources/SPMTestSupport/GitRepositoryExtensions.swift index 9f3c4db0d9c..5a61fd9925b 100644 --- a/Sources/SPMTestSupport/GitRepositoryExtensions.swift +++ b/Sources/SPMTestSupport/GitRepositoryExtensions.swift @@ -18,7 +18,7 @@ import enum TSCUtility.Git /// Extensions useful for unit testing purposes. /// Note: These are not thread safe. -public extension GitRepository { +package extension GitRepository { /// Create the repository using git init. func create() throws { try systemQuietly([Git.tool, "-C", self.path.pathString, "init"]) diff --git a/Sources/SPMTestSupport/MockArchiver.swift b/Sources/SPMTestSupport/MockArchiver.swift index 2bfc63546a3..cf1a84434df 100644 --- a/Sources/SPMTestSupport/MockArchiver.swift +++ b/Sources/SPMTestSupport/MockArchiver.swift @@ -12,22 +12,22 @@ import Basics -public class MockArchiver: Archiver { - public typealias ExtractionHandler = ( +package class MockArchiver: Archiver { + package typealias ExtractionHandler = ( MockArchiver, AbsolutePath, AbsolutePath, (Result) -> Void ) throws -> Void - public typealias CompressionHandler = ( + package typealias CompressionHandler = ( MockArchiver, AbsolutePath, AbsolutePath, (Result) -> Void ) throws -> Void - public typealias ValidationHandler = (MockArchiver, AbsolutePath, (Result) -> Void) throws -> Void + package typealias ValidationHandler = (MockArchiver, AbsolutePath, (Result) -> Void) throws -> Void - public struct Extraction: Equatable { + package struct Extraction: Equatable { public let archivePath: AbsolutePath public let destinationPath: AbsolutePath @@ -37,7 +37,7 @@ public class MockArchiver: Archiver { } } - public struct Compression: Equatable { + package struct Compression: Equatable { public let directory: AbsolutePath public let destinationPath: AbsolutePath @@ -47,18 +47,18 @@ public class MockArchiver: Archiver { } } - public let supportedExtensions: Set = ["zip"] - public let extractions = ThreadSafeArrayStore() - public let compressions = ThreadSafeArrayStore() - public let extractionHandler: ExtractionHandler? - public let compressionHandler: CompressionHandler? - public let validationHandler: ValidationHandler? + package let supportedExtensions: Set = ["zip"] + package let extractions = ThreadSafeArrayStore() + package let compressions = ThreadSafeArrayStore() + package let extractionHandler: ExtractionHandler? + package let compressionHandler: CompressionHandler? + package let validationHandler: ValidationHandler? - public convenience init(handler: ExtractionHandler? = .none) { + package convenience init(handler: ExtractionHandler? = .none) { self.init(extractionHandler: handler, compressionHandler: .none, validationHandler: .none) } - public init( + package init( extractionHandler: ExtractionHandler? = .none, compressionHandler: CompressionHandler? = .none, validationHandler: ValidationHandler? = .none @@ -68,7 +68,7 @@ public class MockArchiver: Archiver { self.validationHandler = validationHandler } - public func extract( + package func extract( from archivePath: AbsolutePath, to destinationPath: AbsolutePath, completion: @escaping (Result) -> Void @@ -85,7 +85,7 @@ public class MockArchiver: Archiver { } } - public func compress( + package func compress( directory: AbsolutePath, to destinationPath: AbsolutePath, completion: @escaping (Result) -> Void @@ -102,7 +102,7 @@ public class MockArchiver: Archiver { } } - public func validate(path: AbsolutePath, completion: @escaping (Result) -> Void) { + package func validate(path: AbsolutePath, completion: @escaping (Result) -> Void) { do { if let handler = self.validationHandler { try handler(self, path, completion)