facebook / facebook/rocksdb

Should drop Support for Make, and just use CMake

Open
#9,731 0 comments 8 reactions 0 assignees View on GitHub
Build design discussion
Dominant language
C++
Stars
32.1k
Forks
6.9k
Avg merge
32m
Merged PRs (30d)
1

Description

Maintaining two build systems (Make and CMake) is getting to be difficult. Files, tests, configurations are added to one and not the other. The "build_platform" script must be maintained and the contents matched for CMake. Support for plugins and third-party code is difficult using Makefiles (variables with well-known names and hope for the best) whereas CMake has better tools for isolating and detecting packages. CMake is a more modern build system and I think it can support everything that Make can do and more.

A quick survey of existing FB open source projects (CacheLib, Folly, Wangle, Velox,) and others (GTEST, GFLAGS) show that they either do not support Make (and use CMake instead) or provide Makefiles that are wrappers around CMake.

The proposal here is to drop support for Makefiles and use only CMake instead. If there is any gap, the CMake code will be expanded to include the Make functionality. The Makefiles will instead become wrappers around CMake scripts (or deleted entirely).

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.