The GWT compiler can output a report (or "story of your compile"), describing the size of the JavaScript and which source classes contributed to the overall download size. This is useful for optimizing code splits in Dispatcher, and generally understanding the impact of linking code together. Only the "Split Point Report" is created. The "Compiler Metrics" are not output. The report is very slow to create, so it is not done by default. Change-Id: I6ce86d65ee5f3e4bdba573d1f777ccc59767341d
		
			
				
	
	
		
			134 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			134 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
include_defs('//gerrit-gwtui/gwt.defs')
 | 
						|
include_defs('//tools/gwt-constants.defs')
 | 
						|
from multiprocessing import cpu_count
 | 
						|
 | 
						|
DEPS = GWT_COMMON_DEPS + [
 | 
						|
  '//gerrit-gwtexpui:CSS',
 | 
						|
  '//lib:gwtjsonrpc',
 | 
						|
]
 | 
						|
 | 
						|
genrule(
 | 
						|
  name = 'ui_optdbg',
 | 
						|
  cmd = 'cd $TMP;' +
 | 
						|
    'unzip -q $(location :ui_dbg);' +
 | 
						|
    'mv' +
 | 
						|
    ' gerrit_ui/gerrit_ui.nocache.js' +
 | 
						|
    ' gerrit_ui/dbg_gerrit_ui.nocache.js;' +
 | 
						|
    'unzip -qo $(location :ui_opt);' +
 | 
						|
    'mkdir -p \$(dirname $OUT);' +
 | 
						|
    'zip -qr $OUT .',
 | 
						|
  deps = [
 | 
						|
    ':ui_dbg',
 | 
						|
    ':ui_opt',
 | 
						|
  ],
 | 
						|
  out = 'ui_optdbg.zip',
 | 
						|
  visibility = ['PUBLIC'],
 | 
						|
)
 | 
						|
 | 
						|
gwt_binary(
 | 
						|
  name = 'ui_opt',
 | 
						|
  modules = [MODULE],
 | 
						|
  module_deps = [':ui_module'],
 | 
						|
  deps = DEPS + [':ui_dbg'],
 | 
						|
  local_workers = cpu_count(),
 | 
						|
  strict = True,
 | 
						|
  experimental_args = GWT_COMPILER_ARGS,
 | 
						|
  vm_args = GWT_JVM_ARGS,
 | 
						|
)
 | 
						|
 | 
						|
gwt_binary(
 | 
						|
  name = 'ui_soyc',
 | 
						|
  modules = [MODULE],
 | 
						|
  module_deps = [':ui_module'],
 | 
						|
  deps = DEPS + [':ui_dbg'],
 | 
						|
  local_workers = cpu_count(),
 | 
						|
  strict = True,
 | 
						|
  experimental_args = GWT_COMPILER_ARGS + ['-compileReport'],
 | 
						|
  vm_args = GWT_JVM_ARGS,
 | 
						|
)
 | 
						|
 | 
						|
gwt_binary(
 | 
						|
  name = 'ui_dbg',
 | 
						|
  modules = [MODULE],
 | 
						|
  style = 'PRETTY',
 | 
						|
  optimize = 0,
 | 
						|
  module_deps = [':ui_module'],
 | 
						|
  deps = DEPS,
 | 
						|
  local_workers = cpu_count(),
 | 
						|
  strict = True,
 | 
						|
  experimental_args = GWT_COMPILER_ARGS,
 | 
						|
  vm_args = GWT_JVM_ARGS,
 | 
						|
  visibility = ['//:eclipse'],
 | 
						|
)
 | 
						|
 | 
						|
gwt_user_agent_permutations(
 | 
						|
  name = 'ui',
 | 
						|
  module_name = 'gerrit_ui',
 | 
						|
  modules = [MODULE],
 | 
						|
  module_deps = [':ui_module'],
 | 
						|
  deps = DEPS,
 | 
						|
  visibility = ['//:'],
 | 
						|
)
 | 
						|
 | 
						|
gwt_module(
 | 
						|
  name = 'ui_module',
 | 
						|
  srcs = glob(['src/main/java/**/*.java']),
 | 
						|
  gwt_xml = 'src/main/java/%s.gwt.xml' % MODULE.replace('.', '/'),
 | 
						|
  resources = glob(['src/main/java/**/*']),
 | 
						|
  deps = [
 | 
						|
    ':freebie_application_icon_set',
 | 
						|
    '//gerrit-gwtui-common:diffy_logo',
 | 
						|
    '//gerrit-gwtexpui:Clippy',
 | 
						|
    '//gerrit-gwtexpui:GlobalKey',
 | 
						|
    '//gerrit-gwtexpui:Progress',
 | 
						|
    '//gerrit-gwtexpui:SafeHtml',
 | 
						|
    '//gerrit-gwtexpui:UserAgent',
 | 
						|
    '//gerrit-gwtui-common:client',
 | 
						|
    '//gerrit-common:client',
 | 
						|
    '//gerrit-extension-api:client',
 | 
						|
    '//gerrit-patch-jgit:client',
 | 
						|
    '//gerrit-prettify:client',
 | 
						|
    '//gerrit-reviewdb:client',
 | 
						|
    '//gerrit-gwtexpui:CSS',
 | 
						|
    '//lib:gwtjsonrpc',
 | 
						|
    '//lib:gwtjsonrpc_src',
 | 
						|
    '//lib:gwtorm',
 | 
						|
    '//lib/codemirror:codemirror',
 | 
						|
    '//lib/gwt:user',
 | 
						|
    '//lib/jgit:jgit',
 | 
						|
  ],
 | 
						|
  visibility = [
 | 
						|
    '//tools/eclipse:classpath',
 | 
						|
    '//Documentation:licenses.txt',
 | 
						|
  ],
 | 
						|
)
 | 
						|
 | 
						|
java_library(
 | 
						|
  name = 'freebie_application_icon_set',
 | 
						|
  deps = [
 | 
						|
    '//lib:LICENSE-freebie_application_icon_set',
 | 
						|
    '//lib:LICENSE-CC-BY3.0',
 | 
						|
  ],
 | 
						|
)
 | 
						|
 | 
						|
java_test(
 | 
						|
  name = 'ui_tests',
 | 
						|
  srcs = glob(['src/test/java/**/*.java']),
 | 
						|
  resources = glob(['src/test/resources/**/*']) + [
 | 
						|
    'src/main/java/com/google/gerrit/GerritGwtUI.gwt.xml',
 | 
						|
  ],
 | 
						|
  deps = [
 | 
						|
    ':ui_module',
 | 
						|
    '//gerrit-common:client',
 | 
						|
    '//gerrit-extension-api:client',
 | 
						|
    '//lib:junit',
 | 
						|
    '//lib/gwt:dev',
 | 
						|
    '//lib/gwt:user',
 | 
						|
    '//lib/gwt:gwt-test-utils',
 | 
						|
    '//lib/jgit:jgit',
 | 
						|
  ],
 | 
						|
  source_under_test = [':ui_module'],
 | 
						|
  vm_args = ['-Xmx512m'],
 | 
						|
  visibility = ['//tools/eclipse:classpath'],
 | 
						|
)
 |