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

mac: Incremental build fails to run due to API hash mismatch or missing Framework symlinks #3828

Open
magreenblatt opened this issue Nov 11, 2024 · 3 comments
Labels
bug Bug report Build Related to building CEF/Chromium macos MacOS platform

Comments

@magreenblatt
Copy link
Collaborator

magreenblatt commented Nov 11, 2024

Describe the bug
The CEF sample apps sometimes fail to run when building incrementally after modifying the CEF API. For example, they fail due to API hash mismatches. This can be fixed by manually deleting the *.app and *.framework artifacts to force a full repackaging of the sample apps. However, this does not recreate the Framework symlinks that exist with a new/clean build (e.g. the symlink from ceftests.app/Contents/Frameworks/Chromium Embedded Framework.framework to ceftests.app/Contents/Frameworks/Chromium Embedded Framework.framework/Versions/A/Chromium Embedded Framework).

To Reproduce
Steps to reproduce the behavior:

  1. Create a CEF master build.
  2. Delete out/Debug_GN_x64/*.app and out/Debug_GN_x64/Chromium Embedded Framework.framework directories and rebuild.
  3. Sample apps (cefclient, ceftests, etc) fail to launch.

Expected behavior
Sample apps should launch successfully.

Versions (please complete the following information):

  • OS: MacOS 15.0.1 (24A348)
  • CEF Version: M131 (master)
@magreenblatt magreenblatt added bug Bug report Build Related to building CEF/Chromium macos MacOS platform labels Nov 11, 2024
@magreenblatt
Copy link
Collaborator Author

The frameworks symlinks are created in //build/config/mac/rules.gni.

@magreenblatt
Copy link
Collaborator Author

magreenblatt commented Nov 11, 2024

Running touch out/Debug_GN_arm64/obj/cef/cef_framework.toc and then rebuilding causes the Framework symlinks to be recreated.

@magreenblatt
Copy link
Collaborator Author

The CEF sample apps sometimes fail to run when building incrementally after modifying the CEF API. For example, they fail due to API hash mismatches.

This causal issue doesn't reproduce consistently (e.g. I can't reproduce it currently just by modifying cef_api_hash.h and rebuilding). I suspect that ninja is occasionally failing to update binaries in the app bundle when the Framework is rebuilt.

@magreenblatt magreenblatt changed the title mac: Incremental build missing Framework symlinks in app bundle mac: Incremental build fails due to API has mismatch or missing Framework symlinks Nov 11, 2024
@magreenblatt magreenblatt changed the title mac: Incremental build fails due to API has mismatch or missing Framework symlinks mac: Incremental build fails due to API hash mismatch or missing Framework symlinks Nov 11, 2024
@magreenblatt magreenblatt changed the title mac: Incremental build fails due to API hash mismatch or missing Framework symlinks mac: Running incremental build fails due to API hash mismatch or missing Framework symlinks Nov 11, 2024
@magreenblatt magreenblatt changed the title mac: Running incremental build fails due to API hash mismatch or missing Framework symlinks mac: Incremental build fails to run due to API hash mismatch or missing Framework symlinks Nov 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Bug report Build Related to building CEF/Chromium macos MacOS platform
Projects
None yet
Development

No branches or pull requests

1 participant