Hey folks.

For some time there has been vestigial interest in a CMake[1]-based
alternative to the autotools-based build system that Mesos currently
depends on (cf. MESOS-898[2]). In the near future we expect to start
thinking about supporting little-known platforms such as "Windows",
(where a fully cross-platform build system is table stakes).

To facilitate this, we implemented and recently committed an
experimental MVP CMake-based build system that allows us to build the
process library, as well as the tests for the process and stout
libraries. Currently we have only seriously tested that this works
Linux (specifically, we have asked CMake to compile the build spec to
a standard make/gcc combination, much like autotools), but we expect
this to anchor our thoughts on cross-platform support as we continue
to think about our real x-plat story.

The community can track completed and outstanding the work on MESOS-898[2].

In the immediate term, we're hoping the community will help us work
out the kinks by voicing their questions, concerns, proposing changes
to our plan, or even (hopefully) attempting to build on their favorite
flavor of Linux, and reporting bugs or irregularities.

Finally, to get the ball rolling, I'd like to end with some FAQs:

Q: Will autotools be deprecated soon?
A: EMPHATIC NO. The CMake-based build system is an experimental work
that we expect to inform the Mesos community's thoughts as we start to
think about more robustly expanding support other platforms. If there
are serious benefits, then the community may choose to standardize on
this solution in the future, but that is a discussion to have far down
the road.

Q: Can I use this now?
A: NO. You can use it to build the process library, the process
library tests, and the stout tests. You cannot yet use it to
completely build Mesos. That's intentional -- before we get too far
down the road, we are hoping to get some early feedback.

Q: How does CMake help the goal of cross-platform support?
A: CMake seamlessly compiles to a variety of toolchains and build
systems. This includes both Linux favorites like gcc and make, but
also more exotic options like Eclipse, or even Visual Studio and MSVC.
Additionally, CMake has fairly robust function and macro systems,
which allows us to do things like support finding or building
third-party dependencies on very heterogeneous systems

Thanks a lot, and we look forward to hearing your feedback!

[1] http://www.cmake.org/
[2] https://issues.apache.org/jira/browse/MESOS-898


-- 
Alex

Theory is the first term in the Taylor series of practice. -- Thomas M
Cover (1992)

Reply via email to