mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
- Add support for loading localized strings from locale .pak files (issue #357).
- Add support for loading DevTools resources from chrome.pak via the chrome-devtools scheme (issue #358). - Add tools_gyp.patch to fix a bug in GYP. git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@295 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
@@ -169,42 +169,50 @@ if sys.platform == 'win32':
|
||||
# transfer cefclient files
|
||||
transfer_gypi_files(cef_dir, cef_paths['cefclient_sources_win'], \
|
||||
'tests/cefclient/', cefclient_dir, options.quiet)
|
||||
|
||||
|
||||
# transfer build/Debug files
|
||||
dst_dir = os.path.join(output_dir, 'Debug')
|
||||
make_dir(dst_dir, options.quiet)
|
||||
copy_files(os.path.join(cef_dir, 'Debug/*.dll'), dst_dir, options.quiet)
|
||||
copy_files(os.path.join(script_dir, 'distrib/win/*.dll'), dst_dir, options.quiet)
|
||||
|
||||
copy_file(os.path.join(cef_dir, 'Debug/cefclient.exe'), dst_dir, options.quiet)
|
||||
copy_file(os.path.join(cef_dir, 'Debug/chrome.pak'), dst_dir, options.quiet)
|
||||
copy_dir(os.path.join(cef_dir, 'Debug/locales'), os.path.join(dst_dir, 'locales'), \
|
||||
options.quiet)
|
||||
|
||||
# transfer build/Release files
|
||||
dst_dir = os.path.join(output_dir, 'Release')
|
||||
make_dir(dst_dir, options.quiet)
|
||||
copy_files(os.path.join(cef_dir, 'Release/*.dll'), dst_dir, options.quiet)
|
||||
copy_files(os.path.join(script_dir, 'distrib/win/*.dll'), dst_dir, options.quiet)
|
||||
|
||||
copy_file(os.path.join(cef_dir, 'Release/cefclient.exe'), dst_dir, options.quiet)
|
||||
copy_file(os.path.join(cef_dir, 'Release/chrome.pak'), dst_dir, options.quiet)
|
||||
copy_dir(os.path.join(cef_dir, 'Release/locales'), os.path.join(dst_dir, 'locales'), \
|
||||
options.quiet)
|
||||
|
||||
# transfer lib/Debug files
|
||||
dst_dir = os.path.join(output_dir, 'lib/Debug')
|
||||
make_dir(dst_dir, options.quiet)
|
||||
copy_file(os.path.join(cef_dir, 'Debug/lib/libcef.lib'), dst_dir, options.quiet)
|
||||
|
||||
|
||||
# transfer lib/Release files
|
||||
dst_dir = os.path.join(output_dir, 'lib/Release')
|
||||
make_dir(dst_dir, options.quiet)
|
||||
copy_file(os.path.join(cef_dir, 'Release/lib/libcef.lib'), dst_dir, options.quiet)
|
||||
|
||||
|
||||
# generate doc files
|
||||
os.popen('make_cppdocs.bat '+cef_rev)
|
||||
|
||||
|
||||
# transfer docs files
|
||||
dst_dir = os.path.join(output_dir, 'docs')
|
||||
src_dir = os.path.join(cef_dir, 'docs')
|
||||
if path_exists(dst_dir):
|
||||
copy_dir(src_dir, dst_dir, options.quiet)
|
||||
|
||||
|
||||
# transfer additional files, if any
|
||||
transfer_files(cef_dir, script_dir, os.path.join(script_dir, 'distrib/win/transfer.cfg'), \
|
||||
output_dir, options.quiet)
|
||||
|
||||
|
||||
# generate the project files
|
||||
generate_msvs_projects('2005');
|
||||
generate_msvs_projects('2008');
|
||||
|
180
tools/repack_locales.py
Normal file
180
tools/repack_locales.py
Normal file
@@ -0,0 +1,180 @@
|
||||
#!/usr/bin/env python
|
||||
# Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
"""Helper script to repack paks for a list of locales.
|
||||
|
||||
Gyp doesn't have any built-in looping capability, so this just provides a way to
|
||||
loop over a list of locales when repacking pak files, thus avoiding a
|
||||
proliferation of mostly duplicate, cut-n-paste gyp actions.
|
||||
"""
|
||||
|
||||
import getopt
|
||||
import os
|
||||
import sys
|
||||
|
||||
sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..',
|
||||
'tools', 'grit'))
|
||||
from grit.format import data_pack
|
||||
|
||||
# Some build paths defined by gyp.
|
||||
GRIT_DIR = None
|
||||
SHARE_INT_DIR = None
|
||||
INT_DIR = None
|
||||
|
||||
|
||||
class Usage(Exception):
|
||||
def __init__(self, msg):
|
||||
self.msg = msg
|
||||
|
||||
|
||||
def calc_output(locale):
|
||||
"""Determine the file that will be generated for the given locale."""
|
||||
#e.g. '<(INTERMEDIATE_DIR)/repack/da.pak',
|
||||
# For Fake Bidi, generate it at a fixed path so that tests can safely
|
||||
# reference it.
|
||||
if locale == 'fake-bidi':
|
||||
return '%s/%s.pak' % (INT_DIR, locale)
|
||||
if sys.platform in ('darwin',):
|
||||
# For Cocoa to find the locale at runtime, it needs to use '_' instead
|
||||
# of '-' (http://crbug.com/20441). Also, 'en-US' should be represented
|
||||
# simply as 'en' (http://crbug.com/19165, http://crbug.com/25578).
|
||||
if locale == 'en-US':
|
||||
locale = 'en'
|
||||
return '%s/repack/%s.lproj/locale.pak' % (INT_DIR, locale.replace('-', '_'))
|
||||
else:
|
||||
return os.path.join(INT_DIR, 'repack', locale + '.pak')
|
||||
|
||||
|
||||
def calc_inputs(locale):
|
||||
"""Determine the files that need processing for the given locale."""
|
||||
inputs = []
|
||||
|
||||
#e.g. '<(grit_out_dir)/generated_resources_da.pak'
|
||||
#inputs.append(os.path.join(GRIT_DIR, 'generated_resources_%s.pak' % locale))
|
||||
|
||||
#e.g. '<(grit_out_dir)/locale_settings_da.pak'
|
||||
#inputs.append(os.path.join(GRIT_DIR, 'locale_settings_%s.pak' % locale))
|
||||
|
||||
#e.g. '<(grit_out_dir)/platform_locale_settings_da.pak'
|
||||
#inputs.append(os.path.join(GRIT_DIR,
|
||||
# 'platform_locale_settings_%s.pak' % locale))
|
||||
|
||||
#e.g. '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_strings_da.pak'
|
||||
inputs.append(os.path.join(SHARE_INT_DIR, 'webkit',
|
||||
'webkit_strings_%s.pak' % locale))
|
||||
|
||||
#e.g. '<(SHARED_INTERMEDIATE_DIR)/ui/ui_strings_da.pak',
|
||||
inputs.append(os.path.join(SHARE_INT_DIR, 'ui', 'ui_strings',
|
||||
'ui_strings_%s.pak' % locale))
|
||||
|
||||
#e.g. '<(SHARED_INTERMEDIATE_DIR)/ui/app_locale_settings_da.pak',
|
||||
inputs.append(os.path.join(SHARE_INT_DIR, 'ui', 'app_locale_settings',
|
||||
'app_locale_settings_%s.pak' % locale))
|
||||
|
||||
return inputs
|
||||
|
||||
|
||||
def list_outputs(locales):
|
||||
"""Returns the names of files that will be generated for the given locales.
|
||||
|
||||
This is to provide gyp the list of output files, so build targets can
|
||||
properly track what needs to be built.
|
||||
"""
|
||||
outputs = []
|
||||
for locale in locales:
|
||||
outputs.append(calc_output(locale))
|
||||
# Quote each element so filename spaces don't mess up gyp's attempt to parse
|
||||
# it into a list.
|
||||
return " ".join(['"%s"' % x for x in outputs])
|
||||
|
||||
|
||||
def list_inputs(locales):
|
||||
"""Returns the names of files that will be processed for the given locales.
|
||||
|
||||
This is to provide gyp the list of input files, so build targets can properly
|
||||
track their prerequisites.
|
||||
"""
|
||||
inputs = []
|
||||
for locale in locales:
|
||||
inputs += calc_inputs(locale)
|
||||
# Quote each element so filename spaces don't mess up gyp's attempt to parse
|
||||
# it into a list.
|
||||
return " ".join(['"%s"' % x for x in inputs])
|
||||
|
||||
|
||||
def repack_locales(locales):
|
||||
""" Loop over and repack the given locales."""
|
||||
for locale in locales:
|
||||
inputs = []
|
||||
inputs += calc_inputs(locale)
|
||||
output = calc_output(locale)
|
||||
data_pack.DataPack.RePack(output, inputs)
|
||||
|
||||
|
||||
def DoMain(argv):
|
||||
global GRIT_DIR
|
||||
global SHARE_INT_DIR
|
||||
global INT_DIR
|
||||
|
||||
short_options = 'iog:s:x:b:h'
|
||||
long_options = 'help'
|
||||
|
||||
print_inputs = False
|
||||
print_outputs = False
|
||||
usage_msg = ''
|
||||
|
||||
helpstr = """\
|
||||
Usage: %s [-h] [-i | -o] -g <DIR> -x <DIR> -s <DIR> <locale> [...]
|
||||
-h, --help Print this help, then exit.
|
||||
-i Print the expected input file list, then exit.
|
||||
-o Print the expected output file list, then exit.
|
||||
-g DIR GRIT build files output directory.
|
||||
-x DIR Intermediate build files output directory.
|
||||
-s DIR Shared intermediate build files output directory.
|
||||
locale [...] One or more locales to repack.""" % (
|
||||
os.path.basename(__file__))
|
||||
|
||||
try:
|
||||
opts, locales = getopt.getopt(argv, short_options, long_options)
|
||||
except getopt.GetoptError, msg:
|
||||
raise Usage(str(msg))
|
||||
|
||||
if not locales:
|
||||
usage_msg = 'Please specificy at least one locale to process.\n'
|
||||
|
||||
for o, a in opts:
|
||||
if o in ('-i'):
|
||||
print_inputs = True
|
||||
elif o in ('-o'):
|
||||
print_outputs = True
|
||||
elif o in ('-g'):
|
||||
GRIT_DIR = a
|
||||
elif o in ('-s'):
|
||||
SHARE_INT_DIR = a
|
||||
elif o in ('-x'):
|
||||
INT_DIR = a
|
||||
elif o in ('-h', '--help'):
|
||||
raise Usage(helpstr)
|
||||
|
||||
if not (GRIT_DIR and INT_DIR and SHARE_INT_DIR):
|
||||
usage_msg += 'Please specify all of "-g" and "-x" and "-s".\n'
|
||||
if print_inputs and print_outputs:
|
||||
usage_msg += 'Please specify only one of "-i" or "-o".\n'
|
||||
|
||||
if usage_msg:
|
||||
raise Usage(usage_msg)
|
||||
|
||||
if print_inputs:
|
||||
return list_inputs(locales)
|
||||
|
||||
if print_outputs:
|
||||
return list_outputs(locales)
|
||||
|
||||
return repack_locales(locales)
|
||||
|
||||
if __name__ == '__main__':
|
||||
results = DoMain(sys.argv[1:])
|
||||
if results:
|
||||
print results
|
Reference in New Issue
Block a user