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

Gonzalo Aguilar edited comment on THRIFT-4037 at 2/10/17 2:42 PM:
------------------------------------------------------------------

I understand that all move is to support Windows because the proper lack of 
tools to build, that are Makes and shell...
Since windows doesn't have until very recent a decent shell scripting it's 
normal that autoconf doesn't fit for windows users.
We were talking internally about autoconf, not everyone likes it. We are 
evaluating about moving from autoconf but today it makes sense for us.

Suppose you move everything to CMake. What will you do with the dependencies? 
Because for example c_glib build requires glib that's currently built with 
autoconf. And as I said it's building flawlessly in all architectures for linux 
and android. 
So in the case you build everything with CMake it doesn't make sense because at 
least, glib requires autoconf. I must say that also openssl is built with it 
and maybe many others.

So what's the win? Okay you can build thrift with Visual Studio XXX but you 
cannot build the dependencies.

Autotools is a good choice because it only requires Makefiles and shell. And 
this is a great option. It's true that m4 sucks but's there for a long time.

So if you think CMake is the solution we will go for it. But I feel autoconf 
pretty comfortable. Maybe because not a windows developer. Anyway Windows 
developers don't use Makefiles they just like Visual Studio. 

For Mac the support is in so no changes requires. 

So the title of the task should be something like "Change the build system 
because my Windows doesn't support it" 


was (Author: gad):
I understand that all move is to support Windows because the proper lack of 
tools to build, that are Makes and shell...
Since windows doesn't have until very recent a decent shell scripting it's 
normal that autoconf doesn't fit for windows users.

> [CMake] As a developer, I want to use a single build system for thrift to 
> make development easier
> -------------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-4037
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4037
>             Project: Thrift
>          Issue Type: Epic
>          Components: Build Process
>    Affects Versions: 0.10.0
>         Environment: All
>            Reporter: James E. King, III
>            Assignee: James E. King, III
>            Priority: Critical
>
> h1. Background
> The thrift project currently carries two build systems.  The original build 
> system is based on autoconf and is used to build a complete deliverable 
> including extensive cross-language testing.
> The other build system was introduced a few years ago, with roots tracing 
> back to THRIFT-797.  CMake allows thrift to build natively on multiple 
> platforms - unix and windows.  Autoconf is no longer under active development 
> with the last release in 2012, and it does not allow for native windows 
> builds using native tools that are used by a majority of consumers.
> Maintaining two build systems for a project incurs a lot of overhead.  Every 
> change that touches the build system needs to be done twice, in two 
> completely different ways.  We need twice as many CI jobs to verify that all 
> of the builds are working, whereas with a single cmake build environment we 
> could likely use a single CI build job per platform that does everything 
> using the docker image on linux and appveyor on windows.
> h1. Proposal
> We should officially deprecate autoconf in favor of cmake, and continue (more 
> aggressively) the effort to make the cmake build environment as functional as 
> the autoconf build environment.  During this transition, folks will be 
> required to make changes to both build systems (which are proven out mostly 
> through the Travis CI build jobs; only CMake is used on AppVeyor).
> h1. Acceptance Criteria
> # autoconf build environment is removed



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to