Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Explicit Module Builds interop with vfsoverlays #1705

Open
chiragramani opened this issue Sep 27, 2024 · 5 comments
Open

Explicit Module Builds interop with vfsoverlays #1705

chiragramani opened this issue Sep 27, 2024 · 5 comments

Comments

@chiragramani
Copy link

We have an existing Xcode project where we make use of vfsoverlays. These overlays have been working well in our previous setups. However, after enabling the Explicit Module Build feature in Xcode 16, our builds start to fail.

It seems like the VFS overlays, although configured correctly and pointing to valid files, are not being honored during the build process. We are unsure if this is a configuration issue or a limitation with the new explicit module build system.

Any insights or suggestions?

@chiragramani
Copy link
Author

cc: @artemcm

@chiragramani
Copy link
Author

Hi @artemcm, @compnerd, @cachemeifyoucan, could you assist us with this?

@artemcm
Copy link
Contributor

artemcm commented Jan 7, 2025

@chiragramani would you be able to provide a reduced sample project that demonstrates the issue?

@chiragramani
Copy link
Author

chiragramani commented Jan 7, 2025

@chiragramani would you be able to provide a reduced sample project that demonstrates the issue?

Sure, I’ll try to share it by tomorrow.

@chiragramani
Copy link
Author

ReproBase.zip

Hey @artemcm,
I’ve prepared a reproducible project to demonstrate the issue. Please follow these steps:

  1. Unarchive the file and set the extracted folder as your current directory.
  2. Run the setup script:
    ./setup.sh
    This script updates the template variables with the absolute paths required for the project to work.
  3. Open the project CorePrebuild/CorePrebuild.xcodeproj in Xcode and build the target. This is the unfocused target.
  4. Next, open FocussedProj/FocussedProj.xcodeproj in Xcode and build the target. This is the focused project, which uses an overlay pointing to CorePrebuild.swiftmodule (externally built in step 3).
  5. In the default setup, which does not use the Explicitly Built Modules feature (as controlled in the .xcconfig file), everything builds successfully.
  6. However, when the Explicitly Built Modules feature is enabled in the .xcconfig file, the build fails with the following error:
    Build input file cannot be found: 
    .../FocussedProj/FocussedProj/includes/FocussedProj/CorePrebuild.swiftmodule/arm64-apple-ios-simulator.swiftmodule. 
    Did you forget to declare this file as an output of a script phase or custom build rule which produces it?
    

Let me know if further clarification or tweaks to the setup are needed!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants