You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by Roger Meier <ro...@bufferoverflow.ch> on 2014/11/24 21:36:16 UTC

[DISCUSS] CMake for Apache Thrift

Hi all

The Apache Thrift compiler is optionally using CMake already and we had
very good experience by using CMake also for the cpp library to get it up
and running on Linux-ARM, Linux-x86, Windows CE and Windows.

I like to propose CMake as an additional build system for Apache Thrift.

Goal: Extend Apache Thrift's *make cross* approach to the build system.

Due to growing field of operating system support, a proper executable
and library detection mechanism running on as much platforms as possible
becomes required. The other aspect is simplify the release process and
package generation process.

As nice side benefit of CMake is the generation of development environment
specific solution files(VisualStudio, Eclipse, Xcode, etc. ).
=> No solution files within source tree.

see https://issues.apache.org/jira/browse/THRIFT-2850

What are your thoughts?

all the best!
-roger




Re: [DISCUSS] CMake for Apache Thrift

Posted by Konrad Grochowski <hc...@minions.org.pl>.
Hey,

Sounds great - although I prefer scons-type of tools, everything more 
flexible/portable than autotools is good :)
If we assume that cmake will replace automake completely (so we won't 
support two building systems at once, like with compiler right now) than 
a huge +1 from me.

Best,
Konrad

W dniu 2014-11-24 o 21:36, Roger Meier pisze:
> Hi all
>
> The Apache Thrift compiler is optionally using CMake already and we had
> very good experience by using CMake also for the cpp library to get it up
> and running on Linux-ARM, Linux-x86, Windows CE and Windows.
>
> I like to propose CMake as an additional build system for Apache Thrift.
>
> Goal: Extend Apache Thrift's *make cross* approach to the build system.
>
> Due to growing field of operating system support, a proper executable
> and library detection mechanism running on as much platforms as possible
> becomes required. The other aspect is simplify the release process and
> package generation process.
>
> As nice side benefit of CMake is the generation of development 
> environment
> specific solution files(VisualStudio, Eclipse, Xcode, etc. ).
> => No solution files within source tree.
>
> see https://issues.apache.org/jira/browse/THRIFT-2850
>
> What are your thoughts?
>
> all the best!
> -roger
>
>
>


Re: [DISCUSS] CMake for Apache Thrift

Posted by Roger Meier <ro...@bufferoverflow.ch>.
yes, as soon as we have reached full CMake build autotools can be removed.

However, I guess we need a few months to get it up and running.
So autoconf and CMake will be there for a while.

We will prepare a pull request, during the next two weeks.
-roger

Quoting Henrique Mendonça <hm...@gmail.com>:

> Hey guys,
>
> I think Roger also meant to only have one build system. Probably only
> having both while we port everything to cmake, but only one will be
> officially supported at a time.
>
> Not sure how much work is involved for the non-C libraries, wasn't facebook
> also using cmake? can we get anything from there?
>
> +1
> Henrique
>
> On 25 November 2014 at 21:25, Sergei Nikulov <se...@gmail.com>
> wrote:
>
>> 2014-11-24 23:36 GMT+03:00 Roger Meier <ro...@bufferoverflow.ch>:
>>
>> > Hi all
>> >
>> > The Apache Thrift compiler is optionally using CMake already and we had
>> > very good experience by using CMake also for the cpp library to get it up
>> > and running on Linux-ARM, Linux-x86, Windows CE and Windows.
>> >
>> > I like to propose CMake as an additional build system for Apache Thrift.
>> >
>> > Goal: Extend Apache Thrift's *make cross* approach to the build system.
>> >
>> > Due to growing field of operating system support, a proper executable
>> > and library detection mechanism running on as much platforms as possible
>> > becomes required. The other aspect is simplify the release process and
>> > package generation process.
>> >
>> > As nice side benefit of CMake is the generation of development
>> environment
>> > specific solution files(VisualStudio, Eclipse, Xcode, etc. ).
>> > => No solution files within source tree.
>> >
>> > see https://issues.apache.org/jira/browse/THRIFT-2850
>> >
>> > What are your thoughts?
>> >
>>
>> +1
>> Look forward to see it in Apache thrift mainline.
>> The main problem I see is to keep both build systems (autotools & cmake) in
>> sync.
>>
>> >
>> > all the best!
>> > -roger
>> >
>> >
>>
>> --
>> Best Regards,
>> Sergei Nikulov
>>



Re: [DISCUSS] CMake for Apache Thrift

Posted by Henrique Mendonça <hm...@gmail.com>.
Hey guys,

I think Roger also meant to only have one build system. Probably only
having both while we port everything to cmake, but only one will be
officially supported at a time.

Not sure how much work is involved for the non-C libraries, wasn't facebook
also using cmake? can we get anything from there?

+1
Henrique

On 25 November 2014 at 21:25, Sergei Nikulov <se...@gmail.com>
wrote:

> 2014-11-24 23:36 GMT+03:00 Roger Meier <ro...@bufferoverflow.ch>:
>
> > Hi all
> >
> > The Apache Thrift compiler is optionally using CMake already and we had
> > very good experience by using CMake also for the cpp library to get it up
> > and running on Linux-ARM, Linux-x86, Windows CE and Windows.
> >
> > I like to propose CMake as an additional build system for Apache Thrift.
> >
> > Goal: Extend Apache Thrift's *make cross* approach to the build system.
> >
> > Due to growing field of operating system support, a proper executable
> > and library detection mechanism running on as much platforms as possible
> > becomes required. The other aspect is simplify the release process and
> > package generation process.
> >
> > As nice side benefit of CMake is the generation of development
> environment
> > specific solution files(VisualStudio, Eclipse, Xcode, etc. ).
> > => No solution files within source tree.
> >
> > see https://issues.apache.org/jira/browse/THRIFT-2850
> >
> > What are your thoughts?
> >
>
> +1
> Look forward to see it in Apache thrift mainline.
> The main problem I see is to keep both build systems (autotools & cmake) in
> sync.
>
> >
> > all the best!
> > -roger
> >
> >
>
> --
> Best Regards,
> Sergei Nikulov
>

Re: [DISCUSS] CMake for Apache Thrift

Posted by Sergei Nikulov <se...@gmail.com>.
2014-11-24 23:36 GMT+03:00 Roger Meier <ro...@bufferoverflow.ch>:

> Hi all
>
> The Apache Thrift compiler is optionally using CMake already and we had
> very good experience by using CMake also for the cpp library to get it up
> and running on Linux-ARM, Linux-x86, Windows CE and Windows.
>
> I like to propose CMake as an additional build system for Apache Thrift.
>
> Goal: Extend Apache Thrift's *make cross* approach to the build system.
>
> Due to growing field of operating system support, a proper executable
> and library detection mechanism running on as much platforms as possible
> becomes required. The other aspect is simplify the release process and
> package generation process.
>
> As nice side benefit of CMake is the generation of development environment
> specific solution files(VisualStudio, Eclipse, Xcode, etc. ).
> => No solution files within source tree.
>
> see https://issues.apache.org/jira/browse/THRIFT-2850
>
> What are your thoughts?
>

+1
Look forward to see it in Apache thrift mainline.
The main problem I see is to keep both build systems (autotools & cmake) in
sync.

>
> all the best!
> -roger
>
>

-- 
Best Regards,
Sergei Nikulov

Re: [DISCUSS] CMake for Apache Thrift

Posted by Jake Farrell <jf...@apache.org>.
Having the release artifacts contained within one system makes it a lot
easier to package and sign everything. I would like to not introduce more
hurdles and avoid having to jump between multiple systems to generate the
final release candidate

-Jake

On Mon, Nov 24, 2014 at 6:59 PM, Konrad Grochowski <hc...@minions.org.pl>
wrote:

> cmake can generate vcxproj files from it's CMakeLists.txt (not sure if
> that requires something specific on CMakeLists part). So Visual Projects
> could be removed from repo and generated for example as part of release.
> (Keeping them now in repo really makes at leats 3 separate build systems to
> maintain... - for compiler only).
>
> With cmake we could think about releasing thrift.exe using visual, which
> would remove dependency on mingw.
>
> -KG
>
> W dniu 2014-11-25 o 00:46, Jens Geyer pisze:
>
>>
>> Agree. Having two build systems to maintain will become a PITA quickly.
>> Everything that is easier and more reliable than autotools (I'm looking at
>> you, MinGW) gets a +1 from me. As I understand it, the Visual Studio
>> project(s) will still be available somehow, right?
>>
>> JensG
>>
>>
>> -----Ursprüngliche Nachricht----- From: Jake Farrell
>> Sent: Monday, November 24, 2014 11:04 PM
>> To: dev@thrift.apache.org
>> Subject: Re: [DISCUSS] CMake for Apache Thrift
>>
>> I do not think that we should run both autotools and cmake in parallel.
>> There are enough pieces that get missed when new client libraries or files
>> are added that make putting the releases together harder than they need to
>> be without having to make sure that its mirrored into an additional build
>> system.
>>
>> Switching to cmake has been proposed before, THRIFT-797, and at that time
>> there was little benefit to switching away from autotools. As we now
>> support a lot more clients libraries and autotools has had a tendency to
>> break backwards compatibility perhaps this might be a good time to look at
>> overhauling the build to make things easier.
>>
>> -Jake
>>
>> On Mon, Nov 24, 2014 at 3:36 PM, Roger Meier <ro...@bufferoverflow.ch>
>> wrote:
>>
>>  Hi all
>>>
>>> The Apache Thrift compiler is optionally using CMake already and we had
>>> very good experience by using CMake also for the cpp library to get it up
>>> and running on Linux-ARM, Linux-x86, Windows CE and Windows.
>>>
>>> I like to propose CMake as an additional build system for Apache Thrift.
>>>
>>> Goal: Extend Apache Thrift's *make cross* approach to the build system.
>>>
>>> Due to growing field of operating system support, a proper executable
>>> and library detection mechanism running on as much platforms as possible
>>> becomes required. The other aspect is simplify the release process and
>>> package generation process.
>>>
>>> As nice side benefit of CMake is the generation of development
>>> environment
>>> specific solution files(VisualStudio, Eclipse, Xcode, etc. ).
>>> => No solution files within source tree.
>>>
>>> see https://issues.apache.org/jira/browse/THRIFT-2850
>>>
>>> What are your thoughts?
>>>
>>> all the best!
>>> -roger
>>>
>>>
>>>
>>>
>>>
>>
>

Re: [DISCUSS] CMake for Apache Thrift

Posted by Konrad Grochowski <hc...@minions.org.pl>.
cmake can generate vcxproj files from it's CMakeLists.txt (not sure if 
that requires something specific on CMakeLists part). So Visual Projects 
could be removed from repo and generated for example as part of release. 
(Keeping them now in repo really makes at leats 3 separate build systems 
to maintain... - for compiler only).

With cmake we could think about releasing thrift.exe using visual, which 
would remove dependency on mingw.

-KG

W dniu 2014-11-25 o 00:46, Jens Geyer pisze:
>
> Agree. Having two build systems to maintain will become a PITA 
> quickly. Everything that is easier and more reliable than autotools 
> (I'm looking at you, MinGW) gets a +1 from me. As I understand it, the 
> Visual Studio project(s) will still be available somehow, right?
>
> JensG
>
>
> -----Ursprüngliche Nachricht----- From: Jake Farrell
> Sent: Monday, November 24, 2014 11:04 PM
> To: dev@thrift.apache.org
> Subject: Re: [DISCUSS] CMake for Apache Thrift
>
> I do not think that we should run both autotools and cmake in parallel.
> There are enough pieces that get missed when new client libraries or 
> files
> are added that make putting the releases together harder than they 
> need to
> be without having to make sure that its mirrored into an additional build
> system.
>
> Switching to cmake has been proposed before, THRIFT-797, and at that time
> there was little benefit to switching away from autotools. As we now
> support a lot more clients libraries and autotools has had a tendency to
> break backwards compatibility perhaps this might be a good time to 
> look at
> overhauling the build to make things easier.
>
> -Jake
>
> On Mon, Nov 24, 2014 at 3:36 PM, Roger Meier <ro...@bufferoverflow.ch>
> wrote:
>
>> Hi all
>>
>> The Apache Thrift compiler is optionally using CMake already and we had
>> very good experience by using CMake also for the cpp library to get 
>> it up
>> and running on Linux-ARM, Linux-x86, Windows CE and Windows.
>>
>> I like to propose CMake as an additional build system for Apache Thrift.
>>
>> Goal: Extend Apache Thrift's *make cross* approach to the build system.
>>
>> Due to growing field of operating system support, a proper executable
>> and library detection mechanism running on as much platforms as possible
>> becomes required. The other aspect is simplify the release process and
>> package generation process.
>>
>> As nice side benefit of CMake is the generation of development 
>> environment
>> specific solution files(VisualStudio, Eclipse, Xcode, etc. ).
>> => No solution files within source tree.
>>
>> see https://issues.apache.org/jira/browse/THRIFT-2850
>>
>> What are your thoughts?
>>
>> all the best!
>> -roger
>>
>>
>>
>>
>


Re: [DISCUSS] CMake for Apache Thrift

Posted by Jens Geyer <je...@hotmail.com>.
Agree. Having two build systems to maintain will become a PITA quickly. 
Everything that is easier and more reliable than autotools (I'm looking at 
you, MinGW) gets a +1 from me. As I understand it, the Visual Studio 
project(s) will still be available somehow, right?

JensG


-----Ursprüngliche Nachricht----- 
From: Jake Farrell
Sent: Monday, November 24, 2014 11:04 PM
To: dev@thrift.apache.org
Subject: Re: [DISCUSS] CMake for Apache Thrift

I do not think that we should run both autotools and cmake in parallel.
There are enough pieces that get missed when new client libraries or files
are added that make putting the releases together harder than they need to
be without having to make sure that its mirrored into an additional build
system.

Switching to cmake has been proposed before, THRIFT-797, and at that time
there was little benefit to switching away from autotools. As we now
support a lot more clients libraries and autotools has had a tendency to
break backwards compatibility perhaps this might be a good time to look at
overhauling the build to make things easier.

-Jake

On Mon, Nov 24, 2014 at 3:36 PM, Roger Meier <ro...@bufferoverflow.ch>
wrote:

> Hi all
>
> The Apache Thrift compiler is optionally using CMake already and we had
> very good experience by using CMake also for the cpp library to get it up
> and running on Linux-ARM, Linux-x86, Windows CE and Windows.
>
> I like to propose CMake as an additional build system for Apache Thrift.
>
> Goal: Extend Apache Thrift's *make cross* approach to the build system.
>
> Due to growing field of operating system support, a proper executable
> and library detection mechanism running on as much platforms as possible
> becomes required. The other aspect is simplify the release process and
> package generation process.
>
> As nice side benefit of CMake is the generation of development environment
> specific solution files(VisualStudio, Eclipse, Xcode, etc. ).
> => No solution files within source tree.
>
> see https://issues.apache.org/jira/browse/THRIFT-2850
>
> What are your thoughts?
>
> all the best!
> -roger
>
>
>
> 


Re: [DISCUSS] CMake for Apache Thrift

Posted by Jake Farrell <jf...@apache.org>.
I do not think that we should run both autotools and cmake in parallel.
There are enough pieces that get missed when new client libraries or files
are added that make putting the releases together harder than they need to
be without having to make sure that its mirrored into an additional build
system.

Switching to cmake has been proposed before, THRIFT-797, and at that time
there was little benefit to switching away from autotools. As we now
support a lot more clients libraries and autotools has had a tendency to
break backwards compatibility perhaps this might be a good time to look at
overhauling the build to make things easier.

-Jake

On Mon, Nov 24, 2014 at 3:36 PM, Roger Meier <ro...@bufferoverflow.ch>
wrote:

> Hi all
>
> The Apache Thrift compiler is optionally using CMake already and we had
> very good experience by using CMake also for the cpp library to get it up
> and running on Linux-ARM, Linux-x86, Windows CE and Windows.
>
> I like to propose CMake as an additional build system for Apache Thrift.
>
> Goal: Extend Apache Thrift's *make cross* approach to the build system.
>
> Due to growing field of operating system support, a proper executable
> and library detection mechanism running on as much platforms as possible
> becomes required. The other aspect is simplify the release process and
> package generation process.
>
> As nice side benefit of CMake is the generation of development environment
> specific solution files(VisualStudio, Eclipse, Xcode, etc. ).
> => No solution files within source tree.
>
> see https://issues.apache.org/jira/browse/THRIFT-2850
>
> What are your thoughts?
>
> all the best!
> -roger
>
>
>
>