Przeglądaj źródła

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>
tags/v4.7.0.201704051617-r
David Ostrovsky 7 lat temu
rodzic
commit
e92a0c3adc

+ 6
- 0
.gitignore Wyświetl plik

@@ -4,3 +4,9 @@
/buck-out
/target
infer-out
bazel-bin
bazel-genfiles
bazel-jgit
bazel-out
bazel-testlogs
*~

+ 19
- 0
BUILD Wyświetl plik

@@ -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'],
)

+ 97
- 0
WORKSPACE Wyświetl plik

@@ -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',
)

+ 15
- 0
org.eclipse.jgit.archive/BUILD Wyświetl plik

@@ -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',
],
)

+ 12
- 0
org.eclipse.jgit.http.server/BUILD Wyświetl plik

@@ -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',
],
)

+ 12
- 0
org.eclipse.jgit.junit/BUILD Wyświetl plik

@@ -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',
],
)

+ 29
- 0
org.eclipse.jgit/BUILD Wyświetl plik

@@ -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
tools/BUILD Wyświetl plik


+ 17
- 0
tools/bazlets.bzl Wyświetl plik

@@ -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,
)

Ładowanie…
Anuluj
Zapisz