Improve development workflow with built libchromiumcontent
- Add `--debug_libchromiumcontent` to build libchromiumcontent for debugging (shared library build). - By default, only invoke `gclient sync` the first time to checkout chromium source tree. Add `--force_update_libchromiumcontent` switch to force updating. - Document new options. The goal is to allow faster edit/compile cycles when debugging/making changes to libchromiumcontent.
This commit is contained in:
parent
b81aab9eae
commit
d6fbf5f1bb
7 changed files with 144 additions and 25 deletions
|
@ -11,6 +11,9 @@ from lib.util import electron_gyp, import_vs_env
|
|||
|
||||
CONFIGURATIONS = ['Release', 'Debug']
|
||||
SOURCE_ROOT = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
|
||||
LIBCC_SOURCE_ROOT = os.path.join(SOURCE_ROOT, 'vendor', 'libchromiumcontent')
|
||||
LIBCC_DIST_MAIN = os.path.join(LIBCC_SOURCE_ROOT, 'dist', 'main')
|
||||
GCLIENT_DONE = os.path.join(SOURCE_ROOT, '.gclient_done')
|
||||
|
||||
|
||||
def main():
|
||||
|
@ -24,6 +27,19 @@ def main():
|
|||
ninja += '.exe'
|
||||
|
||||
args = parse_args()
|
||||
if args.libcc:
|
||||
if ('D' not in args.configuration
|
||||
or not os.path.exists(GCLIENT_DONE)
|
||||
or not os.path.exists(os.path.join(LIBCC_DIST_MAIN, 'build.ninja'))):
|
||||
sys.stderr.write('--libcc should only be used when '
|
||||
'libchromiumcontent was built with bootstrap.py -d '
|
||||
'--debug_libchromiumcontent' + os.linesep)
|
||||
sys.exit(1)
|
||||
script = os.path.join(LIBCC_SOURCE_ROOT, 'script', 'build')
|
||||
subprocess.check_call([sys.executable, script, '-D', '-t',
|
||||
get_target_arch()])
|
||||
subprocess.check_call([ninja, '-C', LIBCC_DIST_MAIN])
|
||||
|
||||
for config in args.configuration:
|
||||
build_path = os.path.join('out', config[0])
|
||||
ret = subprocess.call([ninja, '-C', build_path, args.target])
|
||||
|
@ -42,6 +58,13 @@ def parse_args():
|
|||
help='Build specified target',
|
||||
default=electron_gyp()['project_name%'],
|
||||
required=False)
|
||||
parser.add_argument('--libcc',
|
||||
help=(
|
||||
'Build libchromiumcontent first. Should be used only '
|
||||
'when libchromiumcontent as built with boostrap.py '
|
||||
'-d --debug_libchromiumcontent.'
|
||||
),
|
||||
action='store_true', default=False)
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue