Coder Social home page Coder Social logo

jcefbuild's Introduction

JCEF BUILD

build-all

Independent project to produce binary artifacts for the JCef project

Visit the JCEF repo at bitbucket or github
Consider using these builds with Maven or Gradle: jcefmaven

Build Specs:

linux
amd64, arm64 & arm
windows
amd64 & i386
windows
arm64
apple
amd64 & arm64
Java OpenJDK 11 Oracle JDK 8 Microsoft JDK 11 Temurin JDK 8
Compiler GCC 10 VS 2019 VS 2019 Xcode 13
Build Python 3.7; ninja Python 3.7; ninja Python 3.7; ninja Python 2.7; ninja; SDK10.13
Limitations - - No OSR mode (no Jogamp) Needs custom structure to run outside of a bundle

Downloading artifacts

You can find the most recent versions of the artifacts on the releases page of this repository.

Building your own projects

You have multiple options to build your own project using this repository. They are listed below.

Building another git repo using GitHub Actions

To build another git repo, simply fork this repository. Then go to the "Actions" tab of your forked repository, activate the workflows and manually run the build-all (or build-<platform>) workflow with your repository and commit id/branch specified. This will trigger a build of your desired repository and platforms. To produce a build for MacOS, you will need to specify your code signing information or remove the signing and notarization steps from the action workflows.

Required Actions Secrets for signing and notarization:

+APPLE_API_KEY_BASE64: Your API key to access the Apple Notarization Service (in base64) +APPLE_API_KEY_ISSUER: UUID of issuer (can be found along with your generated key in Apple Dev Console) +APPLE_API_KEY_NAME: The name to be used for your API key on the runner (can be random) +APPLE_API_KEY_ID: The ID of your key (10 digit code) +APPLE_BUILD_CERTIFICATE_BASE64: Base64 encoded pkcs12 certificate file from Apple to use for signing +APPLE_BUILD_CERTIFICATE_NAME: Your certificate name (usually starts with Developer ID Application) +APPLE_P12_PASSWORD: Password of your pkcs12 certificate file +APPLE_KEYCHAIN_PASSWORD: A random password to use for the keychain on the runner +APPLE_TEAM_NAME: Your apple team name, part of the certificate name (10 digit id in brackets)`

You can obtain the api key here (make sure key has developer access) and the certificate here (choose Developer ID Application).

Building locally

To build locally, put your sources in the jcef directory of this repository, or leave it empty to clone a repository. On Windows and Linux, make sure you installed docker (NOT the Snap version!). On MacOS, make sure you installed the build dependencies specified here and ninja.

Then execute compile-<os>.<sh|bat> <arch> <buildType> [<gitrepo> <gitref>]. Specify an architecture (docker architectures, see script source for options) and build type (Release or Debug). Optionally, you can specify a git repository and ref/branch to pull when no sources are present in the jcef folder.

Reporting bugs

Please only report bugs here that are related to the build process. Please report bugs in JCEF/CEF to the corresponding repository on Bitbucket.

Contributing

Feel free to open a pull request on this repository to improve its stability or artifact quality. Make sure to provide a valid GitHub Actions run for your pull requests to be accepted.

jcefbuild's People

Contributors

friwidev avatar osiris-team avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

jcefbuild's Issues

How to build and install for Intellij Idea?

I still don't much understand what is so special on this JCEF, that it won't be installed alongside with Intellij Idea distribution, but ok. I am on Gentoo system and would like to make my Markdown plugin in Intellij Idea working again.

I tried to run following command as suggested, but it failed:

11:52:35] zangetsu@zeus  $    /data/proj/jcefbuild   master  sh compile_linux.sh amd64 Release 
linux-latest: Pulling from friwidev/jcefdocker
eff15d958d66: Pull complete 
7769c8218092: Pull complete 
35dea76c406c: Pull complete 
ce43bd257de5: Pull complete 
bd0a72a85ed7: Pull complete 
2902fc762a5b: Pull complete 
Digest: sha256:60d7fd79579aba871840903570f96ccd6b3f220576cbf7288816823745c6e7fd
Status: Downloaded newer image for friwidev/jcefdocker:linux-latest
docker.io/friwidev/jcefdocker:linux-latest
unknown flag: --no-cache
See 'docker --help'.

Usage:  docker [OPTIONS] COMMAND

A self-sufficient runtime for containers

Options:
      --config string      Location of client config files (default "/home/zangetsu/.docker")
  -c, --context string     Name of the context to use to connect to the daemon (overrides DOCKER_HOST env var and default context set with "docker
                           context use")
  -D, --debug              Enable debug mode
  -H, --host list          Daemon socket(s) to connect to
  -l, --log-level string   Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default "info")
      --tls                Use TLS; implied by --tlsverify
      --tlscacert string   Trust certs signed only by this CA (default "/home/zangetsu/.docker/ca.pem")
      --tlscert string     Path to TLS certificate file (default "/home/zangetsu/.docker/cert.pem")
      --tlskey string      Path to TLS key file (default "/home/zangetsu/.docker/key.pem")
      --tlsverify          Use TLS and verify the remote
  -v, --version            Print version information and quit

Management Commands:
  builder     Manage builds
  config      Manage Docker configs
  container   Manage containers
  context     Manage contexts
  image       Manage images
  manifest    Manage Docker image manifests and manifest lists
  network     Manage networks
  node        Manage Swarm nodes
  plugin      Manage plugins
  secret      Manage Docker secrets
  service     Manage services
  stack       Manage Docker stacks
  swarm       Manage Swarm
  system      Manage Docker
  trust       Manage trust on Docker images
  volume      Manage volumes

Commands:
  attach      Attach local standard input, output, and error streams to a running container
  build       Build an image from a Dockerfile
  commit      Create a new image from a container's changes
  cp          Copy files/folders between a container and the local filesystem
  create      Create a new container
  diff        Inspect changes to files or directories on a container's filesystem
  events      Get real time events from the server
  exec        Run a command in a running container
  export      Export a container's filesystem as a tar archive
  history     Show the history of an image
  images      List images
  import      Import the contents from a tarball to create a filesystem image
  info        Display system-wide information
  inspect     Return low-level information on Docker objects
  kill        Kill one or more running containers
  load        Load an image from a tar archive or STDIN
  login       Log in to a Docker registry
  logout      Log out from a Docker registry
  logs        Fetch the logs of a container
  pause       Pause all processes within one or more containers
  port        List port mappings or a specific mapping for the container
  ps          List containers
  pull        Pull an image or a repository from a registry
  push        Push an image or a repository to a registry
  rename      Rename a container
  restart     Restart one or more containers
  rm          Remove one or more containers
  rmi         Remove one or more images
  run         Run a command in a new container
  save        Save one or more images to a tar archive (streamed to STDOUT by default)
  search      Search the Docker Hub for images
  start       Start one or more stopped containers
  stats       Display a live stream of container(s) resource usage statistics
  stop        Stop one or more running containers
  tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
  top         Display the running processes of a container
  unpause     Unpause all processes within one or more containers
  update      Update configuration of one or more containers
  version     Show the Docker version information
  wait        Block until one or more containers stop, then print their exit codes

Run 'docker COMMAND --help' for more information on a command.

To get more help with docker, check out our guides at https://docs.docker.com/go/guides/

Total reclaimed space: 0B
mv: cannot stat 'out/jcef_build': No such file or directory
mv: cannot stat 'out/target': No such file or directory

any suggestion of what to be done to make this working welcomed.

Update to 114 needs some changes, and possibly needs to be skipped

Just downloaded: https://github.com/jcefmaven/jcefbuild/releases/download/1.0.47/windows-amd64.tar.gz

unpacked it on my windows 10 PC started the run.bat and got:

C:\tooling\programs\jcef-java\114>run.bat

C:\tooling\programs\jcef-java\114>java -cp "./bin;./bin/*" -Djava.library.path=./bin/lib/win64 tests.detailed.MainFrame
Offscreen rendering disabled
Exception in thread "main" java.lang.UnsatisfiedLinkError: chrome_elf (Not found in java.library.path)
        at java.base/java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:1742)
        at java.base/java.lang.ClassLoader.loadLibraryWithClassLoader(ClassLoader.java:1694)
        at java.base/java.lang.System.loadLibrary(System.java:615)
        at org.cef.SystemBootstrap$1.loadLibrary(SystemBootstrap.java:24)
        at org.cef.SystemBootstrap.loadLibrary(SystemBootstrap.java:36)
        at org.cef.CefApp.<init>(CefApp.java:145)
        at org.cef.CefApp.getInstance(CefApp.java:221)
        at tests.detailed.MainFrame.<init>(MainFrame.java:105)
        at tests.detailed.MainFrame.main(MainFrame.java:76)`

Screenshot not possible with offscreen rendering? - NullPointerException

Exception in thread "main" java.lang.NullPointerException
	at org.cef.browser.CefBrowserOsr.createScreenshot(CefBrowserOsr.java:474)
	at com.osiris.deskuapp.Main.render(Main.java:42)
	at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Window.update(Lwjgl3Window.java:387)
	at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.loop(Lwjgl3Application.java:192)
	at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.<init>(Lwjgl3Application.java:166)
	at com.osiris.deskuapp.lwjgl3.Lwjgl3Launcher.createApplication(Lwjgl3Launcher.java:14)
	at com.osiris.deskuapp.lwjgl3.Lwjgl3Launcher.main(Lwjgl3Launcher.java:10)

I am initialiszing with

            builder.getCefSettings().windowless_rendering_enabled = false;

Full code here: https://github.com/Osiris-Team/Desku/blob/6cfead918da72ae333a1785e1043099c3e4c15b9/src/main/java/com/osiris/desku/App.java#L70

Use JetBrains/jcef instead

It looks like the JetBrains fork contains a lot more features than the original, for example the ability to access the offscreen rendered image (which I need). I already created a feature request here
but I doubt that it will be added any time soon if it even gets added.

Would it be possible for you to create a new branch that uses that fork to create the maven artifacts, or include it in the current branch?
I would really appreciate that!

I am trying it on my fork, but without success: https://github.com/Osiris-Team/jetbrains-jcefbuild/actions/workflows/build-all.yml
https://bitbucket.org/Osiris-Team/java-cef/src/master/
I also cannot publish artifacts to maven, so i'd have to somehow make it work via JitPack...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.