[ 
https://issues.apache.org/jira/browse/PROTON-2100?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16921367#comment-16921367
 ] 

Jiri Daněk commented on PROTON-2100:
------------------------------------

I've tried Bazel, for ActiveMQ Artemis. Back in the time before the AIO JNI 
library was split out of the project.

Afaik the main problems with it are:

1) Tooling. There probably isn't that much experience regarding building 
RPM/DEB packages with Bazel. Although the fact that TensorFlow and other 
popular projects adopted Bazel is/will change that, slowly.
2) Dependencies. As I remember, discovering native dependencies with Bazel is 
painful. Paths to shared libs change between systems. Proton has some optional 
dependencies. In the Artemis project above I had to do [1] and then [2]. Is 
there support for pkg-config in Bazel already?
3) Makes build depend on java. Bazel itself is fairly large, ~50 MB. Must be 
installed on Travis.

Benefits:

1) BUILD file language. That is a plus, for me, actually. It is a restricted 
version of Python.
2) Test isolation. Tests are run in a sandbox, which can include network 
sandbox based on cgroups/namespaces. No more port clashes. We could possibly 
have this with CMake as well (reuse what bazel does, it is fairly 
self-contained). Bazel just brings it out of the box.

[1] 
https://github.com/jdanekrh/activemq-artemis/blob/97fcde8f5d437ab75982304d0722a479140b3ae8/WORKSPACE#L31-L71
[2] 
https://github.com/jdanekrh/activemq-artemis/blob/97fcde8f5d437ab75982304d0722a479140b3ae8/artemis-native/BUILD#L20-L51

Btw, for discussions, project mailing list is probably better place.

> Switch from CMake to Bazel?
> ---------------------------
>
>                 Key: PROTON-2100
>                 URL: https://issues.apache.org/jira/browse/PROTON-2100
>             Project: Qpid Proton
>          Issue Type: Wish
>          Components: proton-c
>            Reporter: Omer Katz
>            Priority: Major
>
> Bazel is a modern build system for polygot repositories like qpid-proton.
> Using it should simplify how we build and package our bindings and c library.
> This issue is an opportunity to discuss if we want to switch and if so, how.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to