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

Christopher Friedt edited comment on THRIFT-4037 at 10/25/22 11:44 AM:
-----------------------------------------------------------------------

I've been using Thrift for quite a long time, and had no problem with the 
autotools method, but I fully support the move to CMake.

Autotools + *sh was traditionally the way to build software portably, but now 
it seems that CMake and Python is better suited to that.

In fact, Python is used extensively in the Zephyr project, but they have also 
created a number of CMake extensions as well. A really solid reference, IMHO 
(aside from the 2-stage link / ELF hacks).

[https://github.com/zephyrproject-rtos/zephyr/tree/main/cmake/]

Completely unrelated, but Jira really lacks the reaction component to issues. 
So here is a gratuitous tada 🎉


was (Author: cfriedt):
I've been using Thrift for quite a long time, and had no problem with the 
autotools method, but I fully support the move to CMake.

Autotools + *sh was traditionally the way to build software portably, but now 
it seems that CMake and Python is better suited to that.

In fact, Python is used extensively in the Zephyr project, but they have also 
created a number of CMake extensions as well. A really solid reference, IMHO 
(aside from the 2-stage link / ELF hacks).

https://github.com/zephyrproject-rtos/zephyr/tree/main/cmake/

> [CMake] 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: Wish
>          Components: Build Process
>    Affects Versions: 0.10.0
>         Environment: All
>            Reporter: James E. King III
>            Assignee: James E. King III
>            Priority: Critical
>              Labels: cmake
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> 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
> # All existing platforms, targets, and tests are converted to use cmake
> ## Including cross-compilation
> # All CI builds are converted to use cmake
> # autoconf build environment is removed



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to