@@ -15,8 +15,8 @@ Table of contents:
1515* [ Build CEF Python using prebuilt CEF binaries] ( #build-cefpython-using-prebuilt-cef-binaries )
1616* [ Build both CEF Python and CEF from sources] ( #build-both-cefpython-and-cef-from-sources )
1717* [ Build CEF manually] ( #build-cef-manually )
18+ * [ CEF automated builds] ( #cef-automated-builds )
1819* [ How to patch] ( #how-to-patch )
19- * [ Ninja build slows down computer] ( #ninja-build-slows-down-computer )
2020
2121
2222## Requirements
@@ -50,9 +50,18 @@ __Windows__
5050
5151__ Linux__
5252
53- * Install required packages using apt-get or similar:
53+ * Install packages: cmake, g++ 4.6.3+, libgtkglext1-dev
54+ * Download and install cmake 2.8.12 or later (unless you already have a
55+ proper version, check with cmake --version):
5456```
55- sudo apt-get install cmake g++ pkg-config gtk+-2.0 libgtkglext1-dev
57+ cd build/
58+ wget http://www.cmake.org/files/v2.8/cmake-2.8.12.2.tar.gz
59+ tar xzf cmake-2.8.12.2.tar.gz
60+ cd cmake-2.8.12.2
61+ ./configure
62+ make
63+ sudo make install
64+ # restart terminal, so that new cmake is used
5665```
5766* Download [ ninja] ( http://martine.github.io/ninja/ ) 1.7.1 or later
5867 and copy it to /usr/bin and chmod 755.
@@ -63,7 +72,8 @@ sudo apt-get install cmake g++ pkg-config gtk+-2.0 libgtkglext1-dev
6372 For branches 2623 (Chrome 49) or later Ubuntu 14.04+ is required.
6473* To build on Debian 7 see
6574 [ cef/BuildingOnDebian7.md] ( https://bitbucket.org/chromiumembedded/cef/wiki/BuildingOnDebian7.md ) and
66- [ cef/#1575 ] ( https://bitbucket.org/chromiumembedded/cef/issues/1575 )
75+ [ cef/#1575 ] ( https://bitbucket.org/chromiumembedded/cef/issues/1575 ) ,
76+ and [ cef/#1697 ] ( https://bitbucket.org/chromiumembedded/cef/issues/1697 )
6777* To perform a 32-bit Linux build on a 64-bit Linux system see
6878 [ cef/#1804 ] ( https://bitbucket.org/chromiumembedded/cef/issues/1804 )
6979
@@ -78,32 +88,42 @@ __All platforms__
7888
7989## Build CEF Python using prebuilt CEF binaries
8090
81- Run the automate.py tool using the --prebuilt-cef flag:
91+ Prebuilt binaries are available on
92+ [ GitHub Releases] ( https://github.com/cztomczak/cefpython/releases )
93+ tagged 'cefXX'.
94+
95+ Run the automate.py tool using the --prebuilt-cef flag that will download
96+ prebuilt binaries from GitHub Releases using version information from
97+ src/version/.
98+
99+ __ NOTE__ : The --prebuilt-cef flag is not implemented yet - you need to
100+ download manually from GitHub Releases and put files to
101+ cefpython/build/linux64/ (rename cef47_xxx_linux64/ to linux64/).
82102```
83103cd tools/
84104python automate.py --prebuilt-cef
85105```
86106
87- You should be fine by running it with the default options, but if you
107+ You should be fine by running automate.py with the default options, but if you
88108need to customize the build then use the --help flag to see more.
89109
90110
91111## Build both CEF Python and CEF from sources
92112
93113Run the automate.py tool using the --build-cef flag. Specify cef branch
94114and optionally how many parallel ninja jobs to run (by default cores/2).
115+ If building on Linux see the Important note futher down.
95116
96117```
97118cd tools/
98119python automate.py --build-cef --cef-branch 2526 --ninja-jobs 6
99120```
100121
101- __ IMPORTANT __ : On Linux it will fail on first run. After the chromium
122+ __ IMPORTANT NOTE (Linux) __ : On Linux it will fail on first run. After the chromium
102123sources are downloaded, it will try to build cef projects and fail
103124due to missing packages. You will need to run the install-build-deps.sh
104125script (intended for Ubuntu systems). When the "ttf-mscorefonts-installer"
105- graphical installer pops up you can deny EULA and not install these fonts
106- (might deteriorate UX on some systems, experienced on Ubuntu 12.04 32-bit).
126+ graphical installer pops up don't install it - deny EULA.
107127
108128```
109129cd build/chromium/src/build/
@@ -113,7 +133,7 @@ sudo ./install-build-deps.sh --no-arm --no-chromeos-fonts --no-nacl
113133
114134After dependencies are satisifed re-run automate.py.
115135
116- You should be fine by running it with the default options, but if you
136+ You should be fine by running automate.py with the default options, but if you
117137need to customize the build then use the --help flag to see more.
118138
119139
@@ -137,6 +157,28 @@ Note that CEF patches must be applied in the "download_dir/chromium/src/cef/"
137157directory, not in the "download_dir/cef/" directory.
138158
139159
160+ ## CEF automated builds
161+
162+ There are two sites that provide latest builds of CEF:
163+ * Spotify - http://opensource.spotify.com/cefbuilds/index.html
164+ * This is a new build system
165+ * Since 07/06/2016 all builds are without tcmalloc, see
166+ [ cefpython/#76 ] ( https://github.com/cztomczak/cefpython/issues/73 )
167+ and [ cef/#1827 ] ( https://bitbucket.org/chromiumembedded/cef/issues/1827 )
168+ * Adobe - https://cefbuilds.com/
169+ * This is an old build system. It probably still builds with tcmalloc
170+ (see above)
171+
172+ Official CEF Python binaries come with additional patches to CEF/Chromium,
173+ see the [ patches/] ( ../../../tree/master/patches ) directory. Whether you
174+ need these patches depends on your use case, they may not be required
175+ and thus you could use the Spotify binaries. As of this writing there are
176+ three patches:
177+ * issue73 patch - tcmalloc issues, Spotify builds already apply it
178+ * issue125 patch - for https cache problems when using private certificates
179+ * issue218 patch - not required when running GTK or Kivy examples
180+
181+
140182## How to patch
141183
142184Create a patch from unstaged changes in current directory:
@@ -150,13 +192,3 @@ Apply a patch in current directory:
150192cd chromium/src/cef/
151193git apply cef.gyp.patch
152194```
153-
154-
155- ## Ninja build slows down computer
156-
157- If ninja slows down your computer too much (6 parallel jobs by default),
158- build manually with this command (where -j2 means to run 2 jobs in parallel):
159- ```
160- cd chromium/src
161- ninja -v -j2 -Cout\Release cefclient
162- ```
0 commit comments