From 768f52340da3a67a68fb138683909b8b292f470c Mon Sep 17 00:00:00 2001 From: Jeremy Apthorp Date: Wed, 10 Oct 2018 16:26:05 -0700 Subject: [PATCH] docs: deprecate libcc repo --- README.md | 159 +++--------------------------------------------------- 1 file changed, 8 insertions(+), 151 deletions(-) diff --git a/README.md b/README.md index dee4bede..b65b8ff3 100644 --- a/README.md +++ b/README.md @@ -1,156 +1,13 @@ -# libchromiumcontent +# ⚠️⚠️⚠️ DEPRECATED ⚠️⚠️⚠️ -Automatically builds and provides prebuilt binaries of the [Chromium Content -module](http://www.chromium.org/developers/content-module) and all its -dependencies (e.g., Blink, V8, etc.). +As of Electron 4.0.0, libchromiumcontent is no longer built separately from Electron. -## Development +See [Updated Electron build instructions](https://github.com/electron/electron/blob/master/docs/development/build-instructions-gn.md). -### Prerequisites +### Older versions -* [Linux](https://chromium.googlesource.com/chromium/src/+/master/docs/linux_build_instructions.md) -* [Mac](https://chromium.googlesource.com/chromium/src/+/master/docs/mac_build_instructions.md#Prerequisites) -* [Windows](https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md) +If you're trying to build a pre-4.0.0 version of Electron, look at one of the old branches in this repo: -Note: Even though it is not mentioned in chromium documentation, pywin32 must -also be installed for `gclient` to work properly. Before invoking script/update, -download/install the x64 version from: https://sourceforge.net/projects/pywin32/ - -### One-time setup - - $ script/bootstrap - -### Building - - $ script/update -t x64 - $ script/build -t x64 - -### Updating project files - -If you switch to a different Chromium release, or modify -files inside the `chromiumcontent` directory, you should run: - - $ script/update - -This will regenerate all the project files. Then you can build again. - -### Building for ARM target - -> TODO: This section may be out of date, needs review - -```bash -$ ./script/bootstrap -$ ./script/update -t arm -$ cd vendor/chromium/src -$ ./build/install-build-deps.sh --arm -$ ./chrome/installer/linux/sysroot_scripts/install-debian.wheezy.sysroot.py --arch=arm -$ cd - -$ ./script/build -t arm -``` - - -### Building for ARM64 target - -```bash -$ ./script/bootstrap -$ ./script/update -t arm64 -$ ./script/build -t arm64 -$ ./script/create-dist -t arm64 -``` - -### Adding a Patch - -The Chromium checkout consists of several repos. Chromium itself is in the `src` -directory, and its dependencies are in subdirectories of `src`, mostly in -`src/third_party/*`. - -Files in the top level of the `patches` directory only contain patches for -the files in `src` that belong to the Chromium repo itself. Subdirectories like -`patches/v8` or `patches/third_party/skia` contain patches for the corresponding -subdirectories in `src` (`src/v8` and -`src/third_party/skia` respectively), which are independent repos. - -If you need to make changes in two different repos, you must create two patch -files. Giving those patch files the same name is a good idea. - -Get Chromium in `src/` and apply existing patches to it. No need to do this -again if it has already been done: - -```sh -./script/update -``` - -Change to the `src` directory: - -```sh -cd src -``` - -Stage existing changes to make `git diff` useful: - - -```sh -git add . -``` - -Make any code changes you like. - -When you're done, pipe the diff into a patch file. The file should be prefixed -with a number with leading zeros that is greater than any existing patch index, -e.g. `0052` if the last patch in the folder is named `0051-some-other.patch`: - -``` -git diff > patches/0052-meaningful-name.patch -``` - - -## Releases - -There is no formal release process for libchromiumcontent, as release artifacts -are created as a byproduct of CI. When a build is successful, its compiled -asset is automatically uploaded to S3. These assets are later downloaded as -part of Electron's bootstrap script. These files are about 4GB, so the -bootstrap task takes a while to run. - -Asset URLs have the following format: - -```js -`https://s3.amazonaws.com/github-janky-artifacts/libchromiumcontent/${platform}/${commit}/libchromiumcontent.zip` -``` - -Builds exist for the following platform/arch pairs: - -- `linux/arm` -- `linux/ia32` -- `linux/x64` -- `mas/x64` (though `osx/mas` would be a more accurate name) -- `osx/x64` -- `win/ia32` -- `win/x64` - -The Linux machines only build for pushes by GitHub employees, so PRs -from third parties have to have their linux builds triggered manually. - -Each platform/arch has its own CI task, so it should be made sure that all -platform/arch have the CI tasks started and finished. To verify that -a given commit has all the necessary build artifacts: - -``` -npm i -g electron/libcc-check -libcc-check 7a9d4a1c9c265468dd54005f6c1920b2cc2c8ec3 -``` - -## Setting libchromiumcontent version in Electron - -For Electron versions 1.7 and higher, libchromiumcontent is vendored as a git -submodule in the Electron repo. To change the version that Electron is using, -use git to check out the target branch / SHA: - -``` -cd electron/electron/vendor/libchromiumcontent -git checkout some-branch-or-sha -``` - -For Electron versions 1.6 and lower, libchromiumcontent is vendored as part -of a (now retired) project called brightray. To change the version that -Electron is using, change the commit SHA in [config.py](https://github.com/electron/electron/blob/0428632a4e5dfa65e7ffbe39ff208069f0b9cdc4/script/lib/config.py#L12). +- [electron-3-0-x](https://github.com/electron/libchromiumcontent/tree/electron-3-0-x) +- [electron-2-0-x](https://github.com/electron/libchromiumcontent/tree/electron-2-0-x) +- [electron-1-8-x](https://github.com/electron/libchromiumcontent/tree/electron-1-8-x)