# 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. BROWSERS = [ 'chrome', 'firefox', 'gecko1_8', 'safari', 'msie', 'ie8', 'ie9', ] ALIASES = { 'chrome': 'safari', 'firefox': 'gecko1_8', 'msie': 'ie9', } MODULE = 'com.google.gerrit.GerritGwtUI' def gwt_user_agent_permutations( name, module_name, modules, style = 'PRETTY', optimize = 0, draft_compile = True, module_deps = [], deps = [], browsers = BROWSERS, visibility = []): from multiprocessing import cpu_count for ua in browsers: impl = ua if ua in ALIASES: impl = ALIASES[ua] xml = ''.join([ "" % module_name, "" % modules[0], "" % impl, "", "", ]) 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, )