X Tutup
diff --git automate-git.py automate-git.py index 4f24793..b819c7b 100644 --- automate-git.py +++ automate-git.py @@ -1,3 +1,128 @@ +""" See automate.py. This script is for internal usage only, don't +call it directly. This is a modified copy of automate-git.py from +upstream CEF. + +Some modifications were applied for CEF Python specific use case. +There is a patch file with the same name as this script that contains +differences from the original file. + +------------------------------------------------------------------------------- + +Usage: automate-git.py [options] + + This utility implements automation for the download, update, build and +distribution of CEF. + +Options: + -h, --help show this help message and exit + --download-dir=DIR Download directory with no spaces [required]. + --depot-tools-dir=DIR + Download directory for depot_tools. + --depot-tools-archive=DEPOTTOOLSARCHIVE + Zip archive file that contains a single top-level + depot_tools directory. + --branch=BRANCH Branch of CEF to build (trunk, 1916, ...). This will + be used to name the CEF download directory and to + identify the correct URL if --url is not specified. + The default value is trunk. + --url=URL CEF download URL. If not specified the default URL + will be used. + --chromium-url=CHROMIUMURL + Chromium download URL. If not specified the default + URL will be used. + --checkout=CHECKOUT Version of CEF to checkout. If not specified the most + recent remote version of the branch will be used. + --chromium-checkout=CHROMIUMCHECKOUT + Version of Chromium to checkout (Git branch/hash/tag). + This overrides the value specified by CEF in + CHROMIUM_BUILD_COMPATIBILITY.txt. + --chromium-channel=CHROMIUMCHANNEL + Chromium channel to check out (canary, dev, beta or + stable). This overrides the value specified by CEF in + CHROMIUM_BUILD_COMPATIBILITY.txt. + --chromium-channel-distance=CHROMIUMCHANNELDISTANCE + The target number of commits to step in the channel, + or 0 to use the newest channel version. Used in + combination with --chromium-channel. + --force-config Force creation of a new gclient config file. + --force-clean Force a clean checkout of Chromium and CEF. This will + trigger a new update, build and distribution. + --force-clean-deps Force a clean checkout of Chromium dependencies. Used + in combination with --force-clean. + --dry-run Output commands without executing them. + --dry-run-platform=DRYRUNPLATFORM + Simulate a dry run on the specified platform (windows, + macosx, linux). Must be used in combination with the + --dry-run flag. + --force-update Force a Chromium and CEF update. This will trigger a + new build and distribution. + --no-update Do not update Chromium or CEF. Pass --force-build or + --force-distrib if you desire a new build or + distribution. + --no-cef-update Do not update CEF. Pass --force-build or --force- + distrib if you desire a new build or distribution. + --force-cef-update Force a CEF update. This will cause local changes in + the CEF checkout to be discarded and patch files to be + reapplied. + --no-chromium-update Do not update Chromium. + --no-depot-tools-update + Do not update depot_tools. + --fast-update Update existing Chromium/CEF checkouts for fast + incremental builds by attempting to minimize the + number of modified files. The update will fail if + there are unstaged CEF changes or if Chromium changes + are not included in a patch file. + --force-patch-update Force update of patch files. + --resave Resave patch files. + --log-chromium-changes + Create a log of the Chromium changes. + --force-build Force CEF debug and release builds. This builds + [build-target] on all platforms and chrome_sandbox on + Linux. + --no-build Do not build CEF. + --build-target=BUILDTARGET + Target name(s) to build (defaults to "cefclient"). + --build-tests Also build the test target specified via --test- + target. + --no-debug-build Don't perform the CEF debug build. + --no-release-build Don't perform the CEF release build. + --verbose-build Show all command lines while building. + --build-failure-limit=BUILDFAILURELIMIT + Keep going until N jobs fail. + --build-log-file Write build logs to file. The file will be named + "build-[branch]-[debug|release].log" in the download + directory. + --x64-build Create a 64-bit build. + --arm-build Create an ARM build. + --run-tests Run the ceftests target. + --no-debug-tests Don't run debug build tests. + --no-release-tests Don't run release build tests. + --test-target=TESTTARGET + Test target name to build (defaults to "ceftests"). + --test-prefix=TESTPREFIX + Prefix for running the test executable (e.g. `xvfb- + run` on Linux). + --test-args=TESTARGS Arguments that will be passed to the test executable. + --force-distrib Force creation of a CEF binary distribution. + --no-distrib Don't create a CEF binary distribution. + --minimal-distrib Create a minimal CEF binary distribution. + --minimal-distrib-only + Create a minimal CEF binary distribution only. + --client-distrib Create a client CEF binary distribution. + --client-distrib-only + Create a client CEF binary distribution only. + --sandbox-distrib Create a cef_sandbox static library distribution. + --sandbox-distrib-only + Create a cef_sandbox static library distribution only. + --no-distrib-docs Don't create CEF documentation. + --no-distrib-archive Don't create archives for output directories. + --clean-artifacts Clean the artifacts output directory. + --distrib-subdir=DISTRIBSUBDIR + CEF distrib dir name, child of + chromium/src/cef/binary_distrib + +""" + # Copyright (c) 2014 The Chromium Embedded Framework Authors. All rights # reserved. Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file. @@ -945,9 +1070,14 @@ if (options.nochromiumupdate and options.forceupdate) or \ (options.nodistrib and options.forcedistrib) or \ ((options.forceclean or options.forcecleandeps) and options.fastupdate) or \ (options.chromiumcheckout and options.chromiumchannel): - print "Invalid combination of options." - parser.print_help(sys.stderr) - sys.exit() + # -- CEF Python modification below + if (options.nocefupdate and options.forceupdate): + pass + else: + print "Invalid combination of options." + parser.print_help(sys.stderr) + sys.exit() + # -- if (options.noreleasebuild and \ (options.minimaldistrib or options.minimaldistribonly or \ @@ -1494,9 +1624,16 @@ if not options.nobuild and (chromium_checkout_changed or \ command = 'ninja ' if options.verbosebuild: command += '-v ' + + # -- CEF Python modification below + assert os.environ['CEFPYTHON_NINJA_JOBS'] + command += '-j' + os.environ['CEFPYTHON_NINJA_JOBS'] + ' ' + # -- + if options.buildfailurelimit != 1: command += '-k %d ' % options.buildfailurelimit command += '-C ' + target = ' ' + options.buildtarget if options.buildtests: target += ' ' + options.testtarget diff --git automate-git.py.patch automate-git.py.patch index c999df7..4dcd59f 100644 --- automate-git.py.patch +++ automate-git.py.patch @@ -1,128 +0,0 @@ -diff --git automate-git.py automate-git.py -index d5e75ae..9b3db23 100644 ---- automate-git.py -+++ automate-git.py -@@ -1,3 +1,92 @@ -+""" See automate.py. This script is for internal usage only, don't -+call it directly. This is a modified copy of automate-git.py from -+upstream CEF. -+ -+Some modifications were applied for CEF Python specific use case. -+There is a patch file with the same name as this script that contains -+differences from the original file. -+ -+------------------------------------------------------------------------------- -+ -+Usage: automate-git.py [options] -+ -+ This utility implements automation for the download, update, build and -+distribution of CEF. -+ -+Options: -+ -h, --help show this help message and exit -+ --download-dir=DIR Download directory with no spaces [required]. -+ --depot-tools-dir=DIR -+ Download directory for depot_tools. -+ --depot-tools-archive=DEPOTTOOLSARCHIVE -+ Zip archive file that contains a single top-level -+ depot_tools directory. -+ --branch=BRANCH Branch of CEF to build (trunk, 1916, ...). This will -+ be used to name the CEF download directory and to -+ identify the correct URL if --url is not specified. -+ The default value is trunk. -+ --url=URL CEF download URL. If not specified the default URL -+ will be used. -+ --chromium-url=CHROMIUMURL -+ Chromium download URL. If not specified the default -+ URL will be used. -+ --checkout=CHECKOUT Version of CEF to checkout. If not specified the most -+ recent remote version of the branch will be used. -+ --chromium-checkout=CHROMIUMCHECKOUT -+ Version of Chromium to checkout (Git branch/hash/tag). -+ This overrides the value specified by CEF in -+ CHROMIUM_BUILD_COMPATIBILITY.txt. -+ --force-config Force creation of a new gclient config file. -+ --force-clean Force a clean checkout of Chromium and CEF. This will -+ trigger a new update, build and distribution. -+ --force-clean-deps Force a clean checkout of Chromium dependencies. Used -+ in combination with --force-clean. -+ --dry-run Output commands without executing them. -+ --dry-run-platform=DRYRUNPLATFORM -+ Simulate a dry run on the specified platform (windows, -+ macosx, linux). Must be used in combination with the -+ --dry-run flag. -+ --force-update Force a Chromium and CEF update. This will trigger a -+ new build and distribution. -+ --no-update Do not update Chromium or CEF. Pass --force-build or -+ --force-distrib if you desire a new build or -+ distribution. -+ --no-cef-update Do not update CEF. Pass --force-build or --force- -+ distrib if you desire a new build or distribution. -+ --no-chromium-update Do not update Chromium. -+ --no-depot-tools-update -+ Do not update depot_tools. -+ --force-build Force CEF debug and release builds. This builds -+ [build-target] on all platforms and chrome_sandbox on -+ Linux. -+ --no-build Do not build CEF. -+ --build-target=BUILDTARGET -+ Target name(s) to build (defaults to "cefclient"). -+ --build-tests Also build the cef_unittests target. -+ --no-debug-build Don't perform the CEF debug build. -+ --no-release-build Don't perform the CEF release build. -+ --verbose-build Show all command lines while building. -+ --build-log-file Write build logs to file. The file will be named -+ "build-[branch]-[debug|release].log" in the download -+ directory. -+ --x64-build Create a 64-bit build. -+ --arm-build Create an ARM build. -+ --force-distrib Force creation of a CEF binary distribution. -+ --no-distrib Don't create a CEF binary distribution. -+ --minimal-distrib Create a minimal CEF binary distribution. -+ --minimal-distrib-only -+ Create a minimal CEF binary distribution only. -+ --client-distrib Create a client CEF binary distribution. -+ --client-distrib-only -+ Create a client CEF binary distribution only. -+ --no-distrib-docs Don't create CEF documentation. -+ --no-distrib-archive Don't create archives for output directories. -+ --clean-artifacts Clean the artifacts output directory. -+ --distrib-subdir=DISTRIBSUBDIR -+ CEF distrib dir name, child of -+ chromium/src/cef/binary_distrib -+""" -+ - # Copyright (c) 2014 The Chromium Embedded Framework Authors. All rights - # reserved. Use of this source code is governed by a BSD-style license that - # can be found in the LICENSE file. -@@ -457,9 +546,14 @@ if (options.nochromiumupdate and options.forceupdate) or \ - (options.nocefupdate and options.forceupdate) or \ - (options.nobuild and options.forcebuild) or \ - (options.nodistrib and options.forcedistrib): -- print "Invalid combination of options." -- parser.print_help(sys.stderr) -- sys.exit() -+ # -- CEF Python modification below -+ if (options.nocefupdate and options.forceupdate): -+ pass -+ else: -+ print "Invalid combination of options." -+ parser.print_help(sys.stderr) -+ sys.exit() -+ # -- - - if (options.noreleasebuild and \ - (options.minimaldistrib or options.minimaldistribonly or \ -@@ -945,6 +1039,12 @@ if not options.nobuild and (chromium_checkout_changed or \ - command = 'ninja -C ' - if options.verbosebuild: - command = 'ninja -v -C' -+ -+ # -- CEF Python modification below -+ assert os.environ['CEFPYTHON_NINJA_JOBS'] -+ command = 'ninja -v -j' + os.environ['CEFPYTHON_NINJA_JOBS'] + ' -C' -+ # -- -+ - target = ' ' + options.buildtarget - if options.buildtests: - target = target + ' cef_unittests'
X Tutup