CMakeLists.txt 1.6 KB
Newer Older
Z
zhangjinchao01 已提交
1 2 3 4 5 6
set(proto_filenames
    DataConfig.proto
    DataFormat.proto
    ModelConfig.proto
    ParameterConfig.proto
    ParameterService.proto
7 8
    TrainerConfig.proto
    ParameterServerConfig.proto)
Z
zhangjinchao01 已提交
9 10 11 12 13 14 15 16 17 18 19 20 21

set(PROTO_GEN)
set(PROTO_GEN_PY)

foreach(filename ${proto_filenames})
    get_filename_component(base_filename ${filename} NAME_WE)
    set(CUR_PROTO_GEN
        ${CMAKE_CURRENT_BINARY_DIR}/${base_filename}.pb.h
        ${CMAKE_CURRENT_BINARY_DIR}/${base_filename}.pb.cc)
    set(PROTO_GEN
        ${PROTO_GEN}
        ${CUR_PROTO_GEN})
    add_custom_command(OUTPUT ${CUR_PROTO_GEN}
L
liaogang 已提交
22
        COMMAND env ${py_env} ${PROTOBUF_PROTOC_EXECUTABLE} 
Z
zhangjinchao01 已提交
23
                  --cpp_out ${CMAKE_CURRENT_BINARY_DIR}
24 25
          --proto_path ${PROJ_ROOT}/proto ${PROJ_ROOT}/proto/${filename}
        DEPENDS ${filename} ${external_project_dependencies})
Z
zhangjinchao01 已提交
26 27 28 29 30 31 32

    set(CUR_PROTO_GEN_PY
        ${PROJ_ROOT}/paddle/python/paddle/proto/${base_filename}_pb2.py)
    set(PROTO_GEN_PY
        ${CUR_PROTO_GEN_PY}
        ${PROTO_GEN_PY})
    add_custom_command(OUTPUT ${CUR_PROTO_GEN_PY}
L
liaogang 已提交
33
        COMMAND env ${py_env} ${PROTOBUF_PROTOC_EXECUTABLE} --python_out ${PROJ_ROOT}/python/paddle/proto
34 35
    --proto_path ${PROJ_ROOT}/proto ${PROJ_ROOT}/proto/${filename}
        DEPENDS ${filename} ${external_project_dependencies})
Z
zhangjinchao01 已提交
36 37 38 39 40 41 42 43 44
endforeach()

include_directories(${CMAKE_CURRENT_BINARY_DIR}/proto)

add_custom_target(gen_proto_cpp ALL DEPENDS ${PROTO_GEN})
add_custom_target(gen_proto_py ALL DEPENDS ${PROTO_GEN_PY})
add_library(paddle_proto STATIC
    ${PROTO_GEN})
target_include_directories(paddle_proto PUBLIC ${CMAKE_CURRENT_BINARY_DIR})