lvsti / CEF.swift

Swift bindings for the Chromium Embedded Framework
BSD 3-Clause "New" or "Revised" License
94 stars 29 forks source link

Is there a way to build on top of a custom more recent CEF binary? #49

Closed knightbenax closed 3 years ago

knightbenax commented 3 years ago

So I cloned from the most recent CEF branch but noticed it's still using a old CEF binary. I tried to replace with a more recent one and it didn't build.

Any way to go about that?

knightbenax commented 3 years ago

Never mind. Figured it out. Posting this for anyone from the future. Create a new branch in a format that matches the available cef_binary from Spotify. For example for cef_binary 4183, you create the branch cef_4183 Change branch.txt in the repo to the name of the branch too.

Then run scripts/setup.sh in the root folder to download the binary

lvsti commented 3 years ago

For the record:

it is true that the setup script decides on the binary to download based on the branch name and what it sees in the branch.txt file, but even if you get it to pull a newer version, there is no guarantee that it will work with what has been implemented so far. Enabling a new CEF version in CEF.swift is unfortunately a manual process, I have to create the Swift bindings for the new APIs and apply occasional changes myself.

If you are lucky, then yes, you can check out the latest supported branch, then create a new branch on top of it with the hack you described above, and you can even build a working framework that e.g. has some critical bugfix included. But, make no mistake, you won't find any of the new APIs on the Swift interface.

knightbenax commented 3 years ago

Oh yes. You are right, there are no Swift bindings for the new API. If you are brave enough, you can write the bindings yourself. My case was just to bump to 85, because it fixed a bug with transparency being broken in off screen rendering.

Had to fix a few errors but it complied and ran well after.