rust-cpython: start cpython crate bindings
This changeset introduces the hg-cpython crate,
that compiles as a shared library holding a whole
Python package (mercurial.rustext), with only the empty
'ancestor' submodule for now.
Such bindings will be easier and safer to develop and maintain
that those of `hg-direct-ffi`.
They don't involve C code, only unsafe Rust that's mostly isolated
within the cpython crate.
The long-term goal would be to import the provided modules, such
as rustext.ancestor with mercurial.policy.importmod, same as
we already do with cext modules.
Differential Revision: https://phab.mercurial-scm.org/D5434
[package]
name = "hg-cpython"
version = "0.1.0"
authors = ["Georges Racinet <gracinet@anybox.fr>"]
[lib]
name='rusthg'
crate-type = ["cdylib"]
[features]
default = ["python27", "python27-sys"]
python27 = ["cpython/python27-sys", "cpython/extension-module-2-7"]
[dependencies]
hg-core = { path = "../hg-core" }
libc = '*'
[dependencies.cpython]
version = "*"
default-features = false
[dependencies.python27-sys]
version = "0.2.1"
optional = true
[dependencies.python3-sys]
version = "0.2.1"
optional = true