• Y
    Generate python protobufs for paddle.v2.framework · e2ea1f42
    Yu Yang 提交于
    Python should be able to manipulate Protobuf message because:
    
    1. Python's `create_op_creation_methods` take the `OpProto` array to
       generate all `op_creation_methods` in RunTime.
    
    2. All `op_creation_methods` will create an `OpDesc` and pass it to
       Paddle C++ method `CreateOp` and return the Op handle.
    
    Here is the list of what is added in this commit:
    
    * Add `protobuf_generate_python` if it is not defined.
      * Before cmake 3.4, `protobuf_generate_python` is not defined. Just
        copy the implementation of that function in `protobuf.cmake`
    * Add `py_proto_compile` function in `cmake/generic.cmake`.
      * It follows bazel's API interface.
        * https://github.com/pubref/rules_protobuf#rules
    * Add an empty package named `paddle.v2.framework`, all python code of
      `paddle::framework` will be in that package.
    * Generate protobuf's python module `__init__.py` by `touch` while
      compiling.
    * Change setup.py.in, make `paddle.v2.framework.proto` uses the
      generated protobuf pythons.
    e2ea1f42
generic.cmake 13.0 KB