Re: Should we make the jump to cmake?

Alpert, Reed <reed.alpert@...>



CMake is fine for us, Tick42 uses it now so we have it integrated into our build systems.

Most important is making it easy to change a build feature and do it on one place.


Are there other O/S for OpenMAMA – Apple?






From: openmama-dev-bounces@... [mailto:openmama-dev-bounces@...] On Behalf Of Dmitri Fedorov
Sent: Monday, October 17, 2016 12:00 PM
To: Glenn McClements
Cc: openmama-dev@...
Subject: Re: [Openmama-dev] Should we make the jump to cmake?


Hi Glenn

My choice is autotools for Linux and MSBuild (VS-project files) on Windows.

I don't see any advantage of using cmake over autotools and I don't understand why need a cross-platform builds when there are only two of them - Linux and Windows.


Dmitri Fedorov

Software Architect

Ottawa, ON Canada


Solace accepts no liability for the content of this email, or for the consequences of any actions taken on the basis of the information provided, unless that information is subsequently confirmed in writing. Any views or opinions presented in this email are solely those of the author and do not necessarily represent those of Solace Systems.


On Mon, Oct 17, 2016 at 11:14 AM, Glenn McClements <gmcclements@...> wrote:

Sending on behalf of Frank (mail issues):



Hi Folks,


I have been giving quite a bit of consideration recently to making life easier for setting up new development environments for 3 developer types across all languages (particularly targeting windows as a development platform):


·         Users of OpenMAMA

·         Developers of OpenMAMA bridges

·         OpenMAMA contributors


I found myself getting repeatedly frustrated with the build system. It’s inflexibility makes many things awkward, and I found my options limited because of having to support all of the build systems we have available (particularly handling build directory structures of third party libraries on windows). Today we have scons for linux, scons for windows (yes – they are fairly separate for some reason), and Visual Studio project files for Windows IDE developers so any time you make a change, you really need to consider all 3.


Today in our build infrastructure, we use Scons which is grand, but we already have a lot of things that you have to hack together for scons, but which you actually get out of the box with Cmake like toolchain discovery.


I have started playing with it on a small scale and I think it is a really good fit for OpenMAMA because it:


·         Generates project files for you so you don’t need to check them into source control – they’ll all get generated from the same definition files

·         They have some library discovery mechanisms built in

·         They have install rules that make sense on both linux and windows

·         It can be used to generate .msi installer executables in conjunction with Wix (!)

·         Allows easy integration with external project types (I’m thinking specifically for C# for this one – mono and visual studio both use msbuild)

·         Takes care of DESTDIR and SONAME functionality which has been requested by package-creators in the past (i.e. for rpm / dpkg)

·         Single build system would simplify CI by not requiring changes in both scons and visual studio on windows

·         It has native IDE integration with many platforms and looks like it might even be on its way for Visual Studio


Interestingly, both libevent and qpid proton use cmake, as does almost every other cross-platform C/C++ project that I have stumbled across in the last number of months. With that in mind, I propose that we move our build system to Cmake and end this fun of having to update 3 different built system files every time a new source code file is added.


Any opinions either pro or against are welcome. Also if anyone is key to pitch in with the implementation, please chime in!








SVP Engineering, Europe



Adelaide Exchange Building, 2nd Floor, 24-26 Adelaide Street, Belfast, BT2 8GD | @vela_tt



The information contained in this message may be privileged and confidential and protected from disclosure. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by replying to this message and deleting it from your computer. Thank you. Vela Trading Technologies LLC

Openmama-dev mailing list


This communication is for informational purposes only. It is not intended as an offer or solicitation for the purchase or sale of any financial instrument or as an official confirmation of any transaction. All market prices, data and other information are not warranted as to completeness or accuracy and are subject to change without notice. Any comments or statements made herein do not necessarily reflect those of JPMorgan Chase & Co., its subsidiaries and affiliates (collectively, "JPMC"). This transmission may contain information that is proprietary, privileged, confidential and/or exempt from disclosure under applicable law. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, or use of the information contained herein (including any reliance thereon) is STRICTLY PROHIBITED. If you received this transmission in error, please immediately contact the sender and destroy the material in its entirety, whether in electronic or hard copy format. Although this transmission and any attachments are believed to be free of any virus or other defect that might affect any computer system into which it is received and opened, it is the responsibility of the recipient to ensure that it is virus free and no responsibility is accepted by JPMC for any loss or damage arising in any way from its use. Please note that any electronic communication that is conducted within or through JPMC's systems is subject to interception, monitoring, review, retention and external production in accordance with JPMC's policy and local laws, rules and regulations; may be stored or otherwise processed in countries other than the country in which you are located; and will be treated in accordance with JPMC policies and applicable laws and regulations. Please refer to for disclosures relating to European legal entities.

Join to automatically receive all group messages.