[
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)