|  | # 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_HTML = '//Documentation:html' | 
|  | DOCS_LIB = '//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' % (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]) | 
|  |  | 
|  | dep = [] | 
|  | if docs: | 
|  | cmd.append('$(location %s)' % DOCS_HTML) | 
|  | dep.append(DOCS_LIB) | 
|  | cmd.extend(['--lib', DOCS_LIB]) | 
|  | if context: | 
|  | for t in context: | 
|  | cmd.append('$(location %s)' % t) | 
|  |  | 
|  | genrule( | 
|  | name = name, | 
|  | cmd = ' '.join(cmd), | 
|  | deps = libs + pgmlibs + dep, | 
|  | 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', | 
|  | '//gerrit-war:webapp_assets', | 
|  | '//gerrit-gwtui:' + ui, | 
|  | ] + context, | 
|  | docs = docs, | 
|  | visibility = visibility, | 
|  | ) |