[ https://issues.apache.org/jira/browse/THRIFT-4037?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17759368#comment-17759368 ]
Christopher Friedt commented on THRIFT-4037: -------------------------------------------- It doesn't support every language under the sun natively, but is a "tool tool" (i.e. you can wrap existing tools in new cmake rules), which is fairly powerful, so other languages should not be terribly difficult. Cmake does support pkg-config, as well, because not all wheels need to be reinvented. {quote}Supported languages are C, CXX (i.e. C++), CSharp (i.e. C#), CUDA, OBJC (i.e. Objective-C), OBJCXX (i.e. Objective-C++), Fortran, HIP, ISPC, Swift, ASM, ASM_NASM, ASM_MARMASM, ASM_MASM, and ASM-ATT. {quote} [https://cmake.org/cmake/help/latest/command/project.html] Semi-related, fbthrift uses it too for at least C++ and Python https://github.com/facebook/fbthrift/ > [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: Major > 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)