| # 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. |
| # |
| # If a dependent library is undergoing active development it must be |
| # recompiled and the change must be reflected in the Buck build process. For |
| # example testing Gerrit against changed JGit snapshot version. After building |
| # JGit library, the artifacts are created in local Maven build directory. |
| # |
| # To shorten that workflow and take the installation of the artifacts to the |
| # local Maven repository and fetching it again from there out of the picture, |
| # `local_jar()` method is used: |
| # |
| # Example: |
| # |
| # local_jar( |
| # name = 'jgit', |
| # jar = '/home/<user>/projects/jgit/org.eclipse.jgit/target/org.eclipse.jgit-3.3.0-SNAPSHOT.jar', |
| # src_jar = '/home/<user>/projects/jgit/org.eclipse.jgit/target/org.eclipse.jgit-3.3.0-SNAPSHOT-sources.jar', |
| # deps = [':ewah'] |
| # ) |
| # |
| def local_jar( |
| name, |
| jar, |
| src_jar = None, |
| deps = [], |
| visibility = ['PUBLIC']): |
| binjar = name + '.jar' |
| srcjar = name + '-src.jar' |
| genrule( |
| name = name + '__local_bin', |
| cmd = 'ln -s %s $OUT' % jar, |
| out = binjar) |
| if src_jar: |
| genrule( |
| name = name + '__local_src', |
| cmd = 'ln -s %s $OUT' % src_jar, |
| out = srcjar) |
| prebuilt_jar( |
| name = name + '_src', |
| binary_jar = ':' + name + '__local_src', |
| visibility = visibility, |
| ) |
| else: |
| srcjar = None |
| |
| prebuilt_jar( |
| name = name, |
| deps = deps, |
| binary_jar = ':' + name + '__local_bin', |
| source_jar = ':' + name + '__local_src' if srcjar else None, |
| visibility = visibility, |
| ) |