Move the codegen into its own crate

This makes the code generatioin reusable from third party crates.
This commit is contained in:
konstin 2018-04-01 15:04:45 +02:00
parent 5a8f5034d6
commit 29fdc05b60
14 changed files with 45 additions and 14 deletions

View file

@ -0,0 +1,18 @@
[package]
name = "pyo3-derive-backend"
version = "0.2.1"
description = "Code generation for PyO3 package"
authors = ["PyO3 Project and Contributors <https://github.com/PyO3"]
homepage = "https://github.com/pyo3/pyo3"
repository = "https://github.com/pyo3/pyo3.git"
documentation = "http://pyo3.github.io/PyO3/pyo3/"
categories = ["api-bindings", "development-tools::ffi"]
license = "Apache-2.0"
[dependencies]
quote="0.3"
log="0.4"
[dependencies.syn]
version="0.11"
features=["full"]

View file

@ -0,0 +1,21 @@
// Copyright (c) 2017-present PyO3 Project and Contributors
#![recursion_limit = "1024"]
#[macro_use]
extern crate log;
#[macro_use]
extern crate quote;
extern crate syn;
extern crate proc_macro;
pub mod py_class;
pub mod py_impl;
pub mod py_proto;
pub mod py_method;
pub mod args;
pub mod defs;
pub mod func;
pub mod method;
pub mod module;
pub mod utils;

View file

@ -14,8 +14,10 @@ proc-macro = true
[dependencies] [dependencies]
quote="0.3" quote="0.3"
log="0.4"
[dependencies.syn] [dependencies.syn]
version="0.11" version="0.11"
features=["full"] features=["full"]
[dependencies.pyo3-derive-backend]
path = "../pyo3-derive-backend"

View file

@ -5,24 +5,14 @@
extern crate proc_macro; extern crate proc_macro;
extern crate syn; extern crate syn;
#[macro_use] extern crate quote; extern crate quote;
#[macro_use] extern crate log; extern crate pyo3_derive_backend;
use std::str::FromStr; use std::str::FromStr;
use proc_macro::TokenStream; use proc_macro::TokenStream;
use quote::{Tokens, ToTokens}; use quote::{Tokens, ToTokens};
use pyo3_derive_backend::*;
mod py_class;
mod py_impl;
mod py_proto;
mod py_method;
mod args;
mod defs;
mod func;
mod method;
mod module;
mod utils;
#[proc_macro_attribute] #[proc_macro_attribute]