sapling/lib
Jun Wu d942f5a88e hg: basic support for building hg using buck
Summary:
Adds some basic building blocks to build hg using buck.

Header files are cleaned up, so they are relative to the project root.

Some minor changes to C code are made to remove clang build
warnings.

Rust dependencies, fb-hgext C/Python dependencies (ex. cstore,
mysql-connector), and 3rd-party dependencies like python-lz4
are not built yet. But the built hg binary should be able to run
most tests just fine.

Reviewed By: wez

Differential Revision: D6814686

fbshipit-source-id: 59eefd5a3ad86db2ad1c821ed824c9f1878c93e4
2018-04-13 21:50:58 -07:00
..
cdatapack cdatapack: move to lib/ 2018-01-08 17:55:53 -08:00
clib cfastmanifest: move to hgext/extlib/ 2018-01-09 10:36:54 -08:00
linelog hg: basic support for building hg using buck 2018-04-13 21:50:58 -07:00
radixbuf fb-hgext: integrate rust libraries and extensions with setup.py 2018-01-08 15:26:24 -08:00
third-party/sha1dc sha1: add sha1detectcoll library to setup.py 2018-01-08 12:54:57 -08:00
vlqencoding fb-hgext: integrate rust libraries and extensions with setup.py 2018-01-08 15:26:24 -08:00
README.md READMEs: tweaks based on feedback 2018-01-12 12:35:52 -08:00

lib

Any native code (C/C++/Rust) that Mercurial (either core or extensions) depends on should go here. Python code, or native code that depends on Python code (e.g. #include <Python.h> or use cpython) is disallowed.

As we start to convert more of Mercurial into Rust, and write new paths entrirely in native code, we'll want to limit our dependency on Python, which is why this barrier exists.

See also hgext/extlib/README.md, mercurial/cext/README.mb.

How do I choose between lib and extlib (and cext)?

If your code is native and doesn't depend on Python (awesome!), it goes here.

Otherwise, put it in hgext/extlib (if it's only used by extensions) or mercurial/cext (if it's used by extensions or core).