# 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. # These definitions support building a runnable version of Gerrit. DOCS_SRC = genfile('Documentation/html.zip') DOCS_LIB = '//Documentation:index_lib' DOCS_DEP = [ '//Documentation:html', '//Documentation:index_lib', ] LIBS = [ '//gerrit-war:log4j-config', '//gerrit-war:init', '//lib:postgresql', '//lib/log:impl_log4j', ] PGMLIBS = ['//gerrit-pgm:pgm'] def scan_plugins(): import os deps = [] for n in os.listdir('plugins'): if os.path.exists(os.path.join('plugins', n, 'BUCK')): deps.append('//plugins/%s:%s__plugin__compile' % (n, n)) return deps def war( name, libs = [], pgmlibs = [], context = [], visibility = [], docs = False ): cmd = ['$(exe //tools:pack_war)', '-o', '$OUT', '--tmp', '$TMP'] for l in libs: cmd.extend(['--lib', l]) for l in pgmlibs: cmd.extend(['--pgmlib', l]) src = [] dep = [] if docs: src.append(DOCS_SRC) dep.extend(DOCS_DEP) cmd.extend(['--lib', DOCS_LIB]) if context: root = get_base_path() if root: root = '/'.join(['..' for _ in root.split('/')]) + '/' for r in context: dep.append(r[:r.rindex('.')]) if r.startswith('//'): r = root + r[2:] r = r.replace(':', '/') src.append(genfile(r)) if src: cmd.append('$SRCS') genrule( name = name, cmd = ' '.join(cmd), srcs = src, deps = libs + pgmlibs + dep + ['//tools:pack_war'], out = name + '.war', visibility = visibility, ) def gerrit_war(name, ui = 'ui_optdbg', context = [], docs = False, visibility = []): war( name = name, libs = LIBS + ['//gerrit-war:version'], pgmlibs = PGMLIBS, context = [ '//gerrit-main:main_bin.jar', '//gerrit-war:webapp_assets.zip', '//gerrit-gwtui:' + ui + '.zip', ] + context, docs = docs, visibility = visibility, )