Skip to content
This repository was archived by the owner on Jan 14, 2023. It is now read-only.

Commit 62f865d

Browse files
authored
Add Bazel build for message_generation (#66)
This also allows other Bazel projects (rosjava_core in particular) to depend on this as an external repository. It uses https://github.com/johnynek/bazel-deps to describe the Maven dependencies. As a result, 3rdparty/ contains autogenerated files, and the other files contain a hand-written description of the BUILD. I will add documentation for the Bazel build to rosjava_core.
1 parent 2421241 commit 62f865d

File tree

18 files changed

+484
-0
lines changed

18 files changed

+484
-0
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ bin
77
*.iml
88
.idea
99
local.properties
10+
bazel-*

3rdparty/BUILD

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Do not edit. bazel-deps autogenerates this file from dependencies.yaml.
2+
java_library(
3+
name = "jsr305",
4+
exports = [
5+
"//external:jar/com/google/code/findbugs/jsr305"
6+
],
7+
visibility = [
8+
"//visibility:public"
9+
]
10+
)
11+
12+

3rdparty/jvm/com/google/guava/BUILD

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Do not edit. bazel-deps autogenerates this file from dependencies.yaml.
2+
java_library(
3+
name = "guava",
4+
exports = [
5+
"//external:jar/com/google/guava/guava"
6+
],
7+
runtime_deps = [
8+
"//3rdparty/jvm/com/google/code/findbugs:jsr305"
9+
],
10+
visibility = [
11+
"//visibility:public"
12+
]
13+
)
14+
15+

3rdparty/jvm/commons_pool/BUILD

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Do not edit. bazel-deps autogenerates this file from dependencies.yaml.
2+
java_library(
3+
name = "commons_pool",
4+
exports = [
5+
"//external:jar/commons_pool/commons_pool"
6+
],
7+
visibility = [
8+
"//visibility:public"
9+
]
10+
)
11+
12+

3rdparty/jvm/dnsjava/BUILD

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Do not edit. bazel-deps autogenerates this file from dependencies.yaml.
2+
java_library(
3+
name = "dnsjava",
4+
exports = [
5+
"//external:jar/dnsjava/dnsjava"
6+
],
7+
runtime_deps = [
8+
"//3rdparty/jvm/junit:junit"
9+
],
10+
visibility = [
11+
"//visibility:public"
12+
]
13+
)
14+
15+

3rdparty/jvm/io/netty/BUILD

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Do not edit. bazel-deps autogenerates this file from dependencies.yaml.
2+
java_library(
3+
name = "netty",
4+
exports = [
5+
"//external:jar/io/netty/netty"
6+
],
7+
visibility = [
8+
"//visibility:public"
9+
]
10+
)
11+
12+

3rdparty/jvm/junit/BUILD

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Do not edit. bazel-deps autogenerates this file from dependencies.yaml.
2+
java_library(
3+
name = "junit",
4+
exports = [
5+
"//external:jar/junit/junit"
6+
],
7+
visibility = [
8+
"//visibility:public"
9+
]
10+
)
11+
12+

3rdparty/jvm/org/apache/commons/BUILD

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Do not edit. bazel-deps autogenerates this file from dependencies.yaml.
2+
java_library(
3+
name = "com_springsource_org_apache_commons_codec",
4+
exports = [
5+
"//external:jar/org/apache/commons/com_springsource_org_apache_commons_codec"
6+
],
7+
visibility = [
8+
"//visibility:public"
9+
]
10+
)
11+
12+
13+
14+
java_library(
15+
name = "com_springsource_org_apache_commons_httpclient",
16+
exports = [
17+
"//external:jar/org/apache/commons/com_springsource_org_apache_commons_httpclient"
18+
],
19+
runtime_deps = [
20+
":com_springsource_org_apache_commons_codec",
21+
":com_springsource_org_apache_commons_logging"
22+
],
23+
visibility = [
24+
"//visibility:public"
25+
]
26+
)
27+
28+
29+
30+
java_library(
31+
name = "com_springsource_org_apache_commons_io",
32+
exports = [
33+
"//external:jar/org/apache/commons/com_springsource_org_apache_commons_io"
34+
],
35+
visibility = [
36+
"//visibility:public"
37+
]
38+
)
39+
40+
41+
42+
java_library(
43+
name = "com_springsource_org_apache_commons_lang",
44+
exports = [
45+
"//external:jar/org/apache/commons/com_springsource_org_apache_commons_lang"
46+
],
47+
visibility = [
48+
"//visibility:public"
49+
]
50+
)
51+
52+
53+
54+
java_library(
55+
name = "com_springsource_org_apache_commons_logging",
56+
exports = [
57+
"//external:jar/org/apache/commons/com_springsource_org_apache_commons_logging"
58+
],
59+
visibility = [
60+
"//visibility:public"
61+
]
62+
)
63+
64+
65+
66+
java_library(
67+
name = "com_springsource_org_apache_commons_net",
68+
exports = [
69+
"//external:jar/org/apache/commons/com_springsource_org_apache_commons_net"
70+
],
71+
visibility = [
72+
"//visibility:public"
73+
]
74+
)
75+
76+
+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Do not edit. bazel-deps autogenerates this file from dependencies.yaml.
2+
java_library(
3+
name = "ws_commons_util",
4+
exports = [
5+
"//external:jar/org/apache/ws/commons/ws_commons_util"
6+
],
7+
runtime_deps = [
8+
"//3rdparty/jvm/junit:junit",
9+
"//3rdparty/jvm/xml_apis:xml_apis"
10+
],
11+
visibility = [
12+
"//visibility:public"
13+
]
14+
)
15+
16+

3rdparty/jvm/org/mockito/BUILD

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Do not edit. bazel-deps autogenerates this file from dependencies.yaml.
2+
java_library(
3+
name = "mockito_all",
4+
exports = [
5+
"//external:jar/org/mockito/mockito_all"
6+
],
7+
visibility = [
8+
"//visibility:public"
9+
]
10+
)
11+
12+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Do not edit. bazel-deps autogenerates this file from dependencies.yaml.
2+
java_library(
3+
name = "gradle_plugins",
4+
exports = [
5+
"//external:jar/org/ros/rosjava_bootstrap/gradle_plugins"
6+
],
7+
visibility = [
8+
"//visibility:public"
9+
]
10+
)
11+
12+
13+
14+
java_library(
15+
name = "message_generation",
16+
exports = [
17+
"//external:jar/org/ros/rosjava_bootstrap/message_generation"
18+
],
19+
runtime_deps = [
20+
"//3rdparty/jvm/com/google/guava:guava",
21+
"//3rdparty/jvm/commons_pool:commons_pool",
22+
"//3rdparty/jvm/io/netty:netty",
23+
"//3rdparty/jvm/org/apache/commons:com_springsource_org_apache_commons_codec",
24+
"//3rdparty/jvm/org/apache/commons:com_springsource_org_apache_commons_io",
25+
"//3rdparty/jvm/org/apache/commons:com_springsource_org_apache_commons_lang",
26+
":gradle_plugins"
27+
],
28+
visibility = [
29+
"//visibility:public"
30+
]
31+
)
32+
33+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Do not edit. bazel-deps autogenerates this file from dependencies.yaml.
2+
java_library(
3+
name = "rosgraph_msgs",
4+
exports = [
5+
"//external:jar/org/ros/rosjava_messages/rosgraph_msgs"
6+
],
7+
runtime_deps = [
8+
"//3rdparty/jvm/org/ros/rosjava_bootstrap:message_generation",
9+
":std_msgs"
10+
],
11+
visibility = [
12+
"//visibility:public"
13+
]
14+
)
15+
16+
17+
18+
java_library(
19+
name = "std_msgs",
20+
exports = [
21+
"//external:jar/org/ros/rosjava_messages/std_msgs"
22+
],
23+
runtime_deps = [
24+
"//3rdparty/jvm/org/ros/rosjava_bootstrap:message_generation"
25+
],
26+
visibility = [
27+
"//visibility:public"
28+
]
29+
)
30+
31+

3rdparty/jvm/xml_apis/BUILD

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Do not edit. bazel-deps autogenerates this file from dependencies.yaml.
2+
java_library(
3+
name = "xml_apis",
4+
exports = [
5+
"//external:jar/xml_apis/xml_apis"
6+
],
7+
visibility = [
8+
"//visibility:public"
9+
]
10+
)
11+
12+

3rdparty/workspace.bzl

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Do not edit. bazel-deps autogenerates this file from dependencies.yaml.
2+
3+
def declare_maven(hash):
4+
native.maven_jar(
5+
name = hash["name"],
6+
artifact = hash["artifact"],
7+
sha1 = hash["sha1"],
8+
repository = hash["repository"]
9+
)
10+
native.bind(
11+
name = hash["bind"],
12+
actual = hash["actual"]
13+
)
14+
15+
def maven_dependencies(callback = declare_maven):
16+
callback({"artifact": "com.google.code.findbugs:jsr305:1.3.9", "lang": "java", "sha1": "40719ea6961c0cb6afaeb6a921eaa1f6afd4cfdf", "repository": "https://jcenter.bintray.com/", "name": "com_google_code_findbugs_jsr305", "actual": "@com_google_code_findbugs_jsr305//jar", "bind": "jar/com/google/code/findbugs/jsr305"})
17+
callback({"artifact": "com.google.guava:guava:12.0", "lang": "java", "sha1": "5bc66dd95b79db1e437eb08adba124a3e4088dc0", "repository": "https://jcenter.bintray.com/", "name": "com_google_guava_guava", "actual": "@com_google_guava_guava//jar", "bind": "jar/com/google/guava/guava"})
18+
callback({"artifact": "commons-pool:commons-pool:1.6", "lang": "java", "sha1": "4572d589699f09d866a226a14b7f4323c6d8f040", "repository": "https://jcenter.bintray.com/", "name": "commons_pool_commons_pool", "actual": "@commons_pool_commons_pool//jar", "bind": "jar/commons_pool/commons_pool"})
19+
callback({"artifact": "dnsjava:dnsjava:2.1.1", "lang": "java", "sha1": "5708df81cf6dbff545695f0be6380b7bbc85accc", "repository": "https://jcenter.bintray.com/", "name": "dnsjava_dnsjava", "actual": "@dnsjava_dnsjava//jar", "bind": "jar/dnsjava/dnsjava"})
20+
callback({"artifact": "io.netty:netty:3.5.13.Final", "lang": "java", "sha1": "389edea561995909d5df3e70fb2c49954ac79a54", "repository": "https://jcenter.bintray.com/", "name": "io_netty_netty", "actual": "@io_netty_netty//jar", "bind": "jar/io/netty/netty"})
21+
# duplicates in junit:junit fixed to 4.8.2
22+
# - org.apache.ws.commons:ws-commons-util:1.0.1 wanted version 3.8.1
23+
# - dnsjava:dnsjava:2.1.1 wanted version 3.8.2
24+
callback({"artifact": "junit:junit:4.8.2", "lang": "java", "sha1": "c94f54227b08100974c36170dcb53329435fe5ad", "repository": "https://jcenter.bintray.com/", "name": "junit_junit", "actual": "@junit_junit//jar", "bind": "jar/junit/junit"})
25+
callback({"artifact": "org.apache.commons:com.springsource.org.apache.commons.codec:1.3.0", "lang": "java", "sha1": "f8690570eb0913d750262bb4223eed30b0d619ed", "repository": "https://jcenter.bintray.com/", "name": "org_apache_commons_com_springsource_org_apache_commons_codec", "actual": "@org_apache_commons_com_springsource_org_apache_commons_codec//jar", "bind": "jar/org/apache/commons/com_springsource_org_apache_commons_codec"})
26+
callback({"artifact": "org.apache.commons:com.springsource.org.apache.commons.httpclient:3.1.0", "lang": "java", "sha1": "c493a925a091ac3d8f449d9265fe12482dabb2a7", "repository": "https://jcenter.bintray.com/", "name": "org_apache_commons_com_springsource_org_apache_commons_httpclient", "actual": "@org_apache_commons_com_springsource_org_apache_commons_httpclient//jar", "bind": "jar/org/apache/commons/com_springsource_org_apache_commons_httpclient"})
27+
callback({"artifact": "org.apache.commons:com.springsource.org.apache.commons.io:1.4.0", "lang": "java", "sha1": "51097cd000ec88214ff181c9f059947de1cf4a35", "repository": "https://jcenter.bintray.com/", "name": "org_apache_commons_com_springsource_org_apache_commons_io", "actual": "@org_apache_commons_com_springsource_org_apache_commons_io//jar", "bind": "jar/org/apache/commons/com_springsource_org_apache_commons_io"})
28+
callback({"artifact": "org.apache.commons:com.springsource.org.apache.commons.lang:2.4.0", "lang": "java", "sha1": "686e3713650c8e3a5d98723b4d3e239586bf9822", "repository": "https://jcenter.bintray.com/", "name": "org_apache_commons_com_springsource_org_apache_commons_lang", "actual": "@org_apache_commons_com_springsource_org_apache_commons_lang//jar", "bind": "jar/org/apache/commons/com_springsource_org_apache_commons_lang"})
29+
callback({"artifact": "org.apache.commons:com.springsource.org.apache.commons.logging:1.1.1", "lang": "java", "sha1": "7657caf2c78e1d79c74d36f2ae128a115f7cc180", "repository": "https://jcenter.bintray.com/", "name": "org_apache_commons_com_springsource_org_apache_commons_logging", "actual": "@org_apache_commons_com_springsource_org_apache_commons_logging//jar", "bind": "jar/org/apache/commons/com_springsource_org_apache_commons_logging"})
30+
callback({"artifact": "org.apache.commons:com.springsource.org.apache.commons.net:2.0.0", "lang": "java", "sha1": "03e78766072ff5a5cf3f5431d973c430c94ec612", "repository": "https://jcenter.bintray.com/", "name": "org_apache_commons_com_springsource_org_apache_commons_net", "actual": "@org_apache_commons_com_springsource_org_apache_commons_net//jar", "bind": "jar/org/apache/commons/com_springsource_org_apache_commons_net"})
31+
callback({"artifact": "org.apache.ws.commons:ws-commons-util:1.0.1", "lang": "java", "sha1": "126e80ff798fece634bc94e61f8be8a8da00be60", "repository": "https://jcenter.bintray.com/", "name": "org_apache_ws_commons_ws_commons_util", "actual": "@org_apache_ws_commons_ws_commons_util//jar", "bind": "jar/org/apache/ws/commons/ws_commons_util"})
32+
callback({"artifact": "org.mockito:mockito-all:1.8.5", "lang": "java", "sha1": "a927d8ae3b8d22eb745a74f94e59ce3882f2b524", "repository": "https://jcenter.bintray.com/", "name": "org_mockito_mockito_all", "actual": "@org_mockito_mockito_all//jar", "bind": "jar/org/mockito/mockito_all"})
33+
callback({"artifact": "org.ros.rosjava_bootstrap:gradle_plugins:0.3.0", "lang": "java", "sha1": "9915d897f3b5049e99b268068978a1bca0ae7b5d", "repository": "https://github.com/rosjava/rosjava_mvn_repo/raw/master", "name": "org_ros_rosjava_bootstrap_gradle_plugins", "actual": "@org_ros_rosjava_bootstrap_gradle_plugins//jar", "bind": "jar/org/ros/rosjava_bootstrap/gradle_plugins"})
34+
callback({"artifact": "org.ros.rosjava_bootstrap:message_generation:0.3.0", "lang": "java", "sha1": "5141e448f0ea6a2d6f539219d4fc9b296ff07ca4", "repository": "https://github.com/rosjava/rosjava_mvn_repo/raw/master", "name": "org_ros_rosjava_bootstrap_message_generation", "actual": "@org_ros_rosjava_bootstrap_message_generation//jar", "bind": "jar/org/ros/rosjava_bootstrap/message_generation"})
35+
callback({"artifact": "org.ros.rosjava_messages:rosgraph_msgs:1.11.2", "lang": "java", "sha1": "adb731dd5181976b23c217872f61c724a3af70fe", "repository": "https://github.com/rosjava/rosjava_mvn_repo/raw/master", "name": "org_ros_rosjava_messages_rosgraph_msgs", "actual": "@org_ros_rosjava_messages_rosgraph_msgs//jar", "bind": "jar/org/ros/rosjava_messages/rosgraph_msgs"})
36+
callback({"artifact": "org.ros.rosjava_messages:std_msgs:0.5.11", "lang": "java", "sha1": "a0191f0506dfecfc471eb199a119691717801c0e", "repository": "https://github.com/rosjava/rosjava_mvn_repo/raw/master", "name": "org_ros_rosjava_messages_std_msgs", "actual": "@org_ros_rosjava_messages_std_msgs//jar", "bind": "jar/org/ros/rosjava_messages/std_msgs"})
37+
callback({"artifact": "xml-apis:xml-apis:1.0.b2", "lang": "java", "sha1": "3136ca936f64c9d68529f048c2618bd356bf85c9", "repository": "https://jcenter.bintray.com/", "name": "xml_apis_xml_apis", "actual": "@xml_apis_xml_apis//jar", "bind": "jar/xml_apis/xml_apis"})

WORKSPACE

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
workspace(name = "com_github_rosjava_rosjava_bootstrap")
2+
3+
load("//3rdparty:workspace.bzl", "maven_dependencies")
4+
5+
maven_dependencies()

dependencies.yaml

+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# If you edit this file, follow these instructions to generate the output
2+
# files:
3+
#
4+
# cd ..
5+
# git clone https://github.com/johnynek/bazel-deps
6+
# cd bazel-deps
7+
# bazel build src/scala/com/github/johnynek/bazel_deps:parseproject_deploy.jar
8+
# cd ../rosjava_bootstrap
9+
# ../bazel-deps/gen_maven_deps.sh generate -r $PWD -s 3rdparty/workspace.bzl -d dependencies.yaml
10+
11+
options:
12+
languages: [ "java" ]
13+
resolvers:
14+
- id: "jcenter"
15+
type: "default"
16+
url: https://jcenter.bintray.com/
17+
- id: "rosjava_mvn_repo"
18+
type: "default"
19+
url: https://github.com/rosjava/rosjava_mvn_repo/raw/master
20+
resolverCache: bazel_output_base
21+
transitivity: runtime_deps
22+
versionConflictPolicy: highest
23+
buildHeader:
24+
- "# Do not edit. bazel-deps autogenerates this file from dependencies.yaml."
25+
26+
dependencies:
27+
commons-pool:
28+
commons-pool:
29+
lang: java
30+
version: "1.6"
31+
com.google.guava:
32+
guava:
33+
lang: java
34+
version: "12.0"
35+
dnsjava:
36+
dnsjava:
37+
lang: java
38+
version: "2.1.1"
39+
io.netty:
40+
netty:
41+
lang: java
42+
version: "3.5.13.Final"
43+
junit:
44+
junit:
45+
lang: java
46+
version: "4.8.2"
47+
org.apache.commons:
48+
com.springsource.org.apache.commons.codec:
49+
lang: java
50+
version: "1.3.0"
51+
com.springsource.org.apache.commons.httpclient:
52+
lang: java
53+
version: "3.1.0"
54+
com.springsource.org.apache.commons.io:
55+
lang: java
56+
version: "1.4.0"
57+
com.springsource.org.apache.commons.lang:
58+
lang: java
59+
version: "2.4.0"
60+
com.springsource.org.apache.commons.logging:
61+
lang: java
62+
version: "1.1.1"
63+
com.springsource.org.apache.commons.net:
64+
lang: java
65+
version: "2.0.0"
66+
org.apache.ws.commons:
67+
ws-commons-util:
68+
lang: java
69+
version: "1.0.1"
70+
org.mockito:
71+
mockito-all:
72+
lang: java
73+
version: "1.8.5"
74+
org.ros.rosjava_messages:
75+
rosgraph_msgs:
76+
lang: java
77+
version: "1.11.2"
78+
std_msgs:
79+
lang: java
80+
version: "0.5.11"

0 commit comments

Comments
 (0)