7b11d6ad30
In I24790e84 I activated Closure Compiler tool chain to minify JS code. In retrospective, it was wrong, of course, to unconditionally activate the obfuscation, even in developer mode. As the consequence, devs have hard time to troubleshoot Codemirror integration problems. Not to mention, that the minifcation takes tons of time and not needed on dev build. Also note, that every single language mode file is compiled. In Ia9964735 I already disabled cast checking only in release mode. Use the same differentiation and disable Codemirror obfuscation in non release build. Test Plan: 1. `buck build gerrit` should include non obfuscated Codemirror code 2. `buck build release` should include obfuscated Codemirror code Change-Id: I05d925c94a3c0368366e9d3ad109cf84492810fc
141 lines
3.7 KiB
Plaintext
141 lines
3.7 KiB
Plaintext
# Copyright (C) 2013 The Android Open Source Project
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
from multiprocessing import cpu_count
|
|
|
|
BROWSERS = [
|
|
'chrome',
|
|
'firefox',
|
|
'gecko1_8',
|
|
'safari',
|
|
'msie', 'ie8', 'ie9',
|
|
]
|
|
ALIASES = {
|
|
'chrome': 'safari',
|
|
'firefox': 'gecko1_8',
|
|
'msie': 'ie9',
|
|
}
|
|
MODULE = 'com.google.gerrit.GerritGwtUI'
|
|
CPU_COUNT = cpu_count()
|
|
|
|
def gwt_genrule(module, deps, suffix = ""):
|
|
dbg = 'ui_dbg' + suffix
|
|
opt = 'ui_opt' + suffix
|
|
soyc = 'ui_soyc' + suffix
|
|
module_dep = ':ui_module' + suffix
|
|
args = GWT_COMPILER_ARGS_RELEASE_MODE if suffix == "_r" else GWT_COMPILER_ARGS
|
|
|
|
genrule(
|
|
name = 'ui_optdbg' + suffix,
|
|
cmd = 'cd $TMP;' +
|
|
'unzip -q $(location :%s);' % dbg +
|
|
'mv' +
|
|
' gerrit_ui/gerrit_ui.nocache.js' +
|
|
' gerrit_ui/dbg_gerrit_ui.nocache.js;' +
|
|
'unzip -qo $(location :%s);' % opt +
|
|
'mkdir -p \$(dirname $OUT);' +
|
|
'zip -qr $OUT .',
|
|
out = 'ui_optdbg' + suffix + '.zip',
|
|
visibility = ['PUBLIC'],
|
|
)
|
|
|
|
gwt_binary(
|
|
name = opt,
|
|
modules = [module],
|
|
module_deps = [module_dep],
|
|
deps = deps + ([':' + dbg] if CPU_COUNT < 8 else []),
|
|
local_workers = CPU_COUNT,
|
|
strict = True,
|
|
experimental_args = args,
|
|
vm_args = GWT_JVM_ARGS,
|
|
)
|
|
|
|
gwt_binary(
|
|
name = dbg,
|
|
modules = [module],
|
|
style = 'PRETTY',
|
|
optimize = 0,
|
|
module_deps = [module_dep],
|
|
deps = deps,
|
|
local_workers = CPU_COUNT,
|
|
strict = True,
|
|
experimental_args = args,
|
|
vm_args = GWT_JVM_ARGS,
|
|
visibility = ['PUBLIC'],
|
|
)
|
|
|
|
gwt_binary(
|
|
name = soyc,
|
|
modules = [module],
|
|
module_deps = [module_dep],
|
|
deps = deps + [':' + dbg],
|
|
local_workers = CPU_COUNT,
|
|
strict = True,
|
|
experimental_args = args + ['-compileReport'],
|
|
vm_args = GWT_JVM_ARGS,
|
|
)
|
|
|
|
def gwt_user_agent_permutations(
|
|
name,
|
|
module_name,
|
|
modules,
|
|
style = 'PRETTY',
|
|
optimize = 0,
|
|
draft_compile = True,
|
|
module_deps = [],
|
|
deps = [],
|
|
browsers = BROWSERS,
|
|
visibility = []):
|
|
for ua in browsers:
|
|
impl = ua
|
|
if ua in ALIASES:
|
|
impl = ALIASES[ua]
|
|
xml = ''.join([
|
|
"<module rename-to='%s'>" % module_name,
|
|
"<inherits name='%s'/>" % modules[0],
|
|
"<set-property name='user.agent' value='%s'/>" % impl,
|
|
"<set-property name='locale' value='default'/>",
|
|
"</module>",
|
|
])
|
|
gwt = '%s_%s.gwt.xml' % (modules[0].replace('.', '/'), ua)
|
|
gwt_name = '%s_%s' % (name, ua)
|
|
jar = '%s.gwtxml.jar' % (gwt_name)
|
|
|
|
genrule(
|
|
name = '%s_gwtxml_gen' % gwt_name,
|
|
cmd = 'cd $TMP;' +
|
|
('mkdir -p \$(dirname %s);' % gwt) +
|
|
('echo "%s">%s;' % (xml, gwt)) +
|
|
'zip -qr $OUT .',
|
|
out = jar,
|
|
)
|
|
prebuilt_jar(
|
|
name = '%s_gwtxml_lib' % gwt_name,
|
|
binary_jar = ':%s_gwtxml_gen' % gwt_name,
|
|
gwt_jar = ':%s_gwtxml_gen' % gwt_name,
|
|
)
|
|
gwt_binary(
|
|
name = gwt_name,
|
|
modules = [modules[0] + '_' + ua],
|
|
style = style,
|
|
optimize = optimize,
|
|
draft_compile = draft_compile,
|
|
module_deps = module_deps + [':%s_gwtxml_lib' % gwt_name],
|
|
deps = deps,
|
|
local_workers = CPU_COUNT,
|
|
strict = True,
|
|
experimental_args = GWT_COMPILER_ARGS,
|
|
vm_args = GWT_JVM_ARGS,
|
|
visibility = visibility,
|
|
)
|