Implement initial framework of Bazel build
The initial implementation only builds the packages consumed by Gerrit Code Review. Test build and execution is not implemented. We prefer to consume maven_jar custom rule from bazlets repository, for the same reasons as in the Gerrit project: * Caching artifacts across different clones and projects * Exposing source classifiers and neverlink artifact TEST PLAN: $ bazel build :all $ unzip -t bazel-genfiles/all.zip Archive: bazel-genfiles/all.zip testing: libjgit-archive.jar OK testing: libjgit-servlet.jar OK testing: libjgit.jar OK testing: libjunit.jar OK No errors detected in compressed data of bazel-genfiles/all.zip. Change-Id: Ia837ce95d9829fe2515f37b7a04a71a4598672a0 Signed-off-by: David Ostrovsky <david@ostrovsky.org> Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
This commit is contained in:
parent
b667c182cb
commit
e92a0c3adc
|
@ -4,3 +4,9 @@
|
||||||
/buck-out
|
/buck-out
|
||||||
/target
|
/target
|
||||||
infer-out
|
infer-out
|
||||||
|
bazel-bin
|
||||||
|
bazel-genfiles
|
||||||
|
bazel-jgit
|
||||||
|
bazel-out
|
||||||
|
bazel-testlogs
|
||||||
|
*~
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
package(default_visibility = ['//visibility:public'])
|
||||||
|
|
||||||
|
genrule(
|
||||||
|
name = 'all',
|
||||||
|
srcs = [
|
||||||
|
'//org.eclipse.jgit:jgit',
|
||||||
|
'//org.eclipse.jgit.archive:jgit-archive',
|
||||||
|
'//org.eclipse.jgit.http.server:jgit-servlet',
|
||||||
|
'//org.eclipse.jgit.junit:junit',
|
||||||
|
],
|
||||||
|
cmd = ' && '.join([
|
||||||
|
'p=$$PWD',
|
||||||
|
't=$$(mktemp -d || mktemp -d -t bazel-tmp)',
|
||||||
|
'cp $(SRCS) $$t',
|
||||||
|
'cd $$t',
|
||||||
|
'zip -qr $$p/$@ .',
|
||||||
|
]),
|
||||||
|
outs = ['all.zip'],
|
||||||
|
)
|
|
@ -0,0 +1,97 @@
|
||||||
|
workspace(name="jgit")
|
||||||
|
|
||||||
|
load("//tools:bazlets.bzl", "load_bazlets")
|
||||||
|
load_bazlets(commit = "3afbeab55ece585dbfc7a980bf7214b24ddbbe86")
|
||||||
|
load("@com_googlesource_gerrit_bazlets//tools:maven_jar.bzl",
|
||||||
|
"maven_jar"
|
||||||
|
)
|
||||||
|
|
||||||
|
maven_jar(
|
||||||
|
name = 'jsch',
|
||||||
|
artifact = 'com.jcraft:jsch:0.1.53',
|
||||||
|
sha1 = '658b682d5c817b27ae795637dfec047c63d29935',
|
||||||
|
)
|
||||||
|
|
||||||
|
maven_jar(
|
||||||
|
name = 'javaewah',
|
||||||
|
artifact = 'com.googlecode.javaewah:JavaEWAH:1.1.6',
|
||||||
|
sha1 = '94ad16d728b374d65bd897625f3fbb3da223a2b6',
|
||||||
|
)
|
||||||
|
|
||||||
|
maven_jar(
|
||||||
|
name = 'httpclient',
|
||||||
|
artifact = 'org.apache.httpcomponents:httpclient:4.3.6',
|
||||||
|
sha1 = '4c47155e3e6c9a41a28db36680b828ced53b8af4',
|
||||||
|
)
|
||||||
|
|
||||||
|
maven_jar(
|
||||||
|
name = 'httpcore',
|
||||||
|
artifact = 'org.apache.httpcomponents:httpcore:4.3.3',
|
||||||
|
sha1 = 'f91b7a4aadc5cf486df6e4634748d7dd7a73f06d',
|
||||||
|
)
|
||||||
|
|
||||||
|
maven_jar(
|
||||||
|
name = 'commons_logging',
|
||||||
|
artifact = 'commons-logging:commons-logging:1.1.3',
|
||||||
|
sha1 = 'f6f66e966c70a83ffbdb6f17a0919eaf7c8aca7f',
|
||||||
|
)
|
||||||
|
|
||||||
|
maven_jar(
|
||||||
|
name = 'log_api',
|
||||||
|
artifact = 'org.slf4j:slf4j-api:1.7.2',
|
||||||
|
sha1 = '0081d61b7f33ebeab314e07de0cc596f8e858d97',
|
||||||
|
)
|
||||||
|
|
||||||
|
maven_jar(
|
||||||
|
name = 'slf4j_simple',
|
||||||
|
artifact = 'org.slf4j:slf4j-simple:1.7.2',
|
||||||
|
sha1 = '760055906d7353ba4f7ce1b8908bc6b2e91f39fa',
|
||||||
|
)
|
||||||
|
|
||||||
|
maven_jar(
|
||||||
|
name = 'servlet_api_3_1',
|
||||||
|
artifact = 'javax.servlet:javax.servlet-api:3.1.0',
|
||||||
|
sha1 = '3cd63d075497751784b2fa84be59432f4905bf7c',
|
||||||
|
)
|
||||||
|
|
||||||
|
maven_jar(
|
||||||
|
name = 'commons_compress',
|
||||||
|
artifact = 'org.apache.commons:commons-compress:1.6',
|
||||||
|
sha1 = 'c7d9b580aff9e9f1998361f16578e63e5c064699',
|
||||||
|
)
|
||||||
|
|
||||||
|
maven_jar(
|
||||||
|
name = 'tukaani_xz',
|
||||||
|
artifact = 'org.tukaani:xz:1.3',
|
||||||
|
sha1 = '66db21c8484120cb6a51b5b3ea47b6f383942bec',
|
||||||
|
)
|
||||||
|
|
||||||
|
maven_jar(
|
||||||
|
name = 'args4j',
|
||||||
|
artifact = 'args4j:args4j:2.0.15',
|
||||||
|
sha1 = '139441471327b9cc6d56436cb2a31e60eb6ed2ba',
|
||||||
|
)
|
||||||
|
|
||||||
|
maven_jar(
|
||||||
|
name = 'junit',
|
||||||
|
artifact = 'junit:junit:4.11',
|
||||||
|
sha1 = '4e031bb61df09069aeb2bffb4019e7a5034a4ee0',
|
||||||
|
)
|
||||||
|
|
||||||
|
maven_jar(
|
||||||
|
name = 'hamcrest_library',
|
||||||
|
artifact = 'org.hamcrest:hamcrest-library:1.3',
|
||||||
|
sha1 = '4785a3c21320980282f9f33d0d1264a69040538f',
|
||||||
|
)
|
||||||
|
|
||||||
|
maven_jar(
|
||||||
|
name = 'hamcrest_core',
|
||||||
|
artifact = 'org.hamcrest:hamcrest-core:1.3',
|
||||||
|
sha1 = '42a25dc3219429f0e5d060061f71acb49bf010a0',
|
||||||
|
)
|
||||||
|
|
||||||
|
maven_jar(
|
||||||
|
name = 'gson',
|
||||||
|
artifact = 'com.google.code.gson:gson:2.2.4',
|
||||||
|
sha1 = 'a60a5e993c98c864010053cb901b7eab25306568',
|
||||||
|
)
|
|
@ -0,0 +1,15 @@
|
||||||
|
package(default_visibility = ['//visibility:public'])
|
||||||
|
|
||||||
|
java_library(
|
||||||
|
name = 'jgit-archive',
|
||||||
|
srcs = glob(
|
||||||
|
['src/**'],
|
||||||
|
exclude = ['src/org/eclipse/jgit/archive/FormatActivator.java'],
|
||||||
|
),
|
||||||
|
resources = glob(['resources/**']),
|
||||||
|
resource_strip_prefix = 'org.eclipse.jgit.archive/resources',
|
||||||
|
deps = [ # We want these deps to be provided_deps
|
||||||
|
'//org.eclipse.jgit:jgit',
|
||||||
|
'@commons_compress//jar',
|
||||||
|
],
|
||||||
|
)
|
|
@ -0,0 +1,12 @@
|
||||||
|
package(default_visibility = ['//visibility:public'])
|
||||||
|
|
||||||
|
java_library(
|
||||||
|
name = 'jgit-servlet',
|
||||||
|
srcs = glob(['src/**']),
|
||||||
|
resources = glob(['resources/**']),
|
||||||
|
resource_strip_prefix = 'org.eclipse.jgit.http.server/resources',
|
||||||
|
deps = [ # We want these deps to be provided_deps
|
||||||
|
'//org.eclipse.jgit:jgit',
|
||||||
|
'@servlet_api_3_1//jar',
|
||||||
|
],
|
||||||
|
)
|
|
@ -0,0 +1,12 @@
|
||||||
|
package(default_visibility = ['//visibility:public'])
|
||||||
|
|
||||||
|
java_library(
|
||||||
|
name = 'junit',
|
||||||
|
srcs = glob(['src/**']),
|
||||||
|
resources = glob(['resources/**']),
|
||||||
|
resource_strip_prefix = 'org.eclipse.jgit.junit/resources',
|
||||||
|
deps = [ # We want these deps to be provided_deps
|
||||||
|
'//org.eclipse.jgit:jgit',
|
||||||
|
'@junit//jar',
|
||||||
|
],
|
||||||
|
)
|
|
@ -0,0 +1,29 @@
|
||||||
|
package(default_visibility = ['//visibility:public'])
|
||||||
|
|
||||||
|
INSECURE_CIPHER_FACTORY = [
|
||||||
|
'src/org/eclipse/jgit/transport/InsecureCipherFactory.java',
|
||||||
|
]
|
||||||
|
|
||||||
|
SRCS = glob(['src/**'], exclude=INSECURE_CIPHER_FACTORY)
|
||||||
|
RESOURCES = glob(['resources/**'])
|
||||||
|
|
||||||
|
java_library(
|
||||||
|
name = 'jgit',
|
||||||
|
srcs = SRCS,
|
||||||
|
resources = RESOURCES,
|
||||||
|
resource_strip_prefix = 'org.eclipse.jgit/resources',
|
||||||
|
deps = [
|
||||||
|
':insecure_cipher_factory',
|
||||||
|
'@javaewah//jar',
|
||||||
|
'@jsch//jar',
|
||||||
|
'@httpclient//jar',
|
||||||
|
'@servlet_api_3_1//jar',
|
||||||
|
'@log_api//jar',
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
java_library(
|
||||||
|
name = 'insecure_cipher_factory',
|
||||||
|
srcs = INSECURE_CIPHER_FACTORY,
|
||||||
|
javacopts = ['-Xep:InsecureCipherMode:OFF'],
|
||||||
|
)
|
|
@ -0,0 +1,17 @@
|
||||||
|
NAME = "com_googlesource_gerrit_bazlets"
|
||||||
|
|
||||||
|
def load_bazlets(
|
||||||
|
commit,
|
||||||
|
local_path = None
|
||||||
|
):
|
||||||
|
if not local_path:
|
||||||
|
native.git_repository(
|
||||||
|
name = NAME,
|
||||||
|
remote = "https://gerrit.googlesource.com/bazlets",
|
||||||
|
commit = commit,
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
native.local_repository(
|
||||||
|
name = NAME,
|
||||||
|
path = local_path,
|
||||||
|
)
|
Loading…
Reference in New Issue