Skip to content

Commit

Permalink
fix: SPM build issues with Xcode 16 (issue parse-community#1793)
Browse files Browse the repository at this point in the history
parse-community#1793

There is an issue with the Package.swift file where it uses wildcard
globbing to refer to all the private header directories that should
be included when building.

It turns out that it was a mistake that Xcode ever supported wildcard
globbing in the first place, as described here:

https://forums.swift.org/t/recursive-headersearchpath/59769

To fix it, we are replacing the wildcard glob with a list of all
header directories.

This issue was first observed on Xcode 16.0.0 beta 1. I confirmed that
it now builds correctly on Xcode 16.0.0 beta 2.
  • Loading branch information
syrupticious authored and roostr committed Jul 12, 2024
1 parent 73ddb8e commit 9f82f46
Showing 1 changed file with 87 additions and 1 deletion.
88 changes: 87 additions & 1 deletion Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,93 @@ let package = Package(
exclude: ["Resources/Parse-tvOS.Info.plist", "Resources/Parse-iOS.Info.plist", "Resources/Parse-OSX.Info.plist", "Resources/Parse-watchOS.Info.plist"],
resources: [.process("Resources")],
publicHeadersPath: "Source",
cSettings: [.headerSearchPath("Internal/**")]
cSettings: [
.headerSearchPath("Internal"),
.headerSearchPath("Internal/ACL"),
.headerSearchPath("Internal/ACL/DefaultACLController"),
.headerSearchPath("Internal/ACL/State"),
.headerSearchPath("Internal/Analytics"),
.headerSearchPath("Internal/Analytics/Controller"),
.headerSearchPath("Internal/Analytics/Utilities"),
.headerSearchPath("Internal/CloudCode"),
.headerSearchPath("Internal/Commands"),
.headerSearchPath("Internal/Commands/CommandRunner"),
.headerSearchPath("Internal/Commands/CommandRunner/URLRequestConstructor"),
.headerSearchPath("Internal/Commands/CommandRunner/URLSession"),
.headerSearchPath("Internal/Commands/CommandRunner/URLSession/Session"),
.headerSearchPath("Internal/Commands/CommandRunner/URLSession/Session/TaskDelegate"),
.headerSearchPath("Internal/Config"),
.headerSearchPath("Internal/Config/Controller"),
.headerSearchPath("Internal/FieldOperation"),
.headerSearchPath("Internal/File"),
.headerSearchPath("Internal/File/Controller"),
.headerSearchPath("Internal/File/FileDataStream"),
.headerSearchPath("Internal/File/State"),
.headerSearchPath("Internal/HTTPRequest"),
.headerSearchPath("Internal/Installation"),
.headerSearchPath("Internal/Installation/Constants"),
.headerSearchPath("Internal/Installation/Controller"),
.headerSearchPath("Internal/Installation/CurrentInstallationController"),
.headerSearchPath("Internal/Installation/InstallationIdentifierStore"),
.headerSearchPath("Internal/KeyValueCache"),
.headerSearchPath("Internal/LocalDataStore"),
.headerSearchPath("Internal/LocalDataStore/OfflineQueryLogic"),
.headerSearchPath("Internal/LocalDataStore/OfflineStore"),
.headerSearchPath("Internal/LocalDataStore/Pin"),
.headerSearchPath("Internal/LocalDataStore/SQLite"),
.headerSearchPath("Internal/MultiProcessLock"),
.headerSearchPath("Internal/Object"),
.headerSearchPath("Internal/Object/BatchController"),
.headerSearchPath("Internal/Object/Coder"),
.headerSearchPath("Internal/Object/Coder/File"),
.headerSearchPath("Internal/Object/Constants"),
.headerSearchPath("Internal/Object/Controller"),
.headerSearchPath("Internal/Object/Controller/OfflineController"),
.headerSearchPath("Internal/Object/CurrentController"),
.headerSearchPath("Internal/Object/EstimatedData"),
.headerSearchPath("Internal/Object/FilePersistence"),
.headerSearchPath("Internal/Object/LocalIdStore"),
.headerSearchPath("Internal/Object/OperationSet"),
.headerSearchPath("Internal/Object/PinningStore"),
.headerSearchPath("Internal/Object/State"),
.headerSearchPath("Internal/Object/Subclassing"),
.headerSearchPath("Internal/Object/Utilities"),
.headerSearchPath("Internal/Persistence"),
.headerSearchPath("Internal/Persistence/Group"),
.headerSearchPath("Internal/Product"),
.headerSearchPath("Internal/Product/ProductsRequestHandler"),
.headerSearchPath("Internal/PropertyInfo"),
.headerSearchPath("Internal/Purchase"),
.headerSearchPath("Internal/Purchase/Controller"),
.headerSearchPath("Internal/Purchase/PaymentTransactionObserver"),
.headerSearchPath("Internal/Push"),
.headerSearchPath("Internal/Push/ChannelsController"),
.headerSearchPath("Internal/Push/Controller"),
.headerSearchPath("Internal/Push/Manager"),
.headerSearchPath("Internal/Push/State"),
.headerSearchPath("Internal/Push/Utilites"),
.headerSearchPath("Internal/Query"),
.headerSearchPath("Internal/Query/Controller"),
.headerSearchPath("Internal/Query/State"),
.headerSearchPath("Internal/Query/Utilities"),
.headerSearchPath("Internal/Relation"),
.headerSearchPath("Internal/Relation/State"),
.headerSearchPath("Internal/Session"),
.headerSearchPath("Internal/Session/Controller"),
.headerSearchPath("Internal/Session/Utilities"),
.headerSearchPath("Internal/ThreadSafety"),
.headerSearchPath("Internal/User"),
.headerSearchPath("Internal/User/AuthenticationProviders"),
.headerSearchPath("Internal/User/AuthenticationProviders/Controller"),
.headerSearchPath("Internal/User/AuthenticationProviders/Providers"),
.headerSearchPath("Internal/User/AuthenticationProviders/Providers/Anonymous"),
.headerSearchPath("Internal/User/Coder"),
.headerSearchPath("Internal/User/Coder/File"),
.headerSearchPath("Internal/User/Constants"),
.headerSearchPath("Internal/User/Controller"),
.headerSearchPath("Internal/User/CurrentUserController"),
.headerSearchPath("Internal/User/State"),
]
),
.target(
name: "ParseLiveQuery",
Expand Down

0 comments on commit 9f82f46

Please sign in to comment.