|
12 | 12 | # See the License for the specific language governing permissions and |
13 | 13 | # limitations under the License. |
14 | 14 |
|
15 | | -include_directories(${INCLUDE_DIRECTORIES} |
16 | | - ${PROJECT_SOURCE_DIR}/src |
17 | | - ${PROJECT_BINARY_DIR}/src) |
18 | | - |
19 | | -set(TYPE_PB_CC |
20 | | - ${CMAKE_CURRENT_BINARY_DIR}/fe_type.pb.cc) |
21 | | - |
22 | | -set(COMMON_PB_CC |
23 | | - ${CMAKE_CURRENT_BINARY_DIR}/fe_common.pb.cc |
24 | | - ) |
25 | | - |
26 | | -set(DBMS_PB_CC |
27 | | - ${CMAKE_CURRENT_BINARY_DIR}/dbms.pb.cc) |
28 | | - |
29 | | -set(TABLET_PB_CC |
30 | | - ${CMAKE_CURRENT_BINARY_DIR}/fe_tablet.pb.cc) |
31 | | - |
32 | | -set(BATCH_PB_CC |
33 | | - ${CMAKE_CURRENT_BINARY_DIR}/batch.pb.cc) |
34 | | - |
35 | | -set(PLAN_PB_CC |
36 | | - ${CMAKE_CURRENT_BINARY_DIR}/plan.pb.cc) |
37 | | - |
38 | | -add_custom_command(OUTPUT ${COMMON_PB_CC} |
39 | | - COMMAND ${Protobuf_PROTOC_EXECUTABLE} -I ${PROJECT_SOURCE_DIR}/src/proto |
40 | | - --cpp_out=${CMAKE_CURRENT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/src/proto/fe_common.proto |
41 | | - DEPENDS ${PROJECT_SOURCE_DIR}/src/proto/fe_common.proto |
42 | | - ) |
43 | | - |
44 | | -add_custom_command(OUTPUT ${TYPE_PB_CC} |
45 | | - COMMAND ${Protobuf_PROTOC_EXECUTABLE} -I ${PROJECT_SOURCE_DIR}/src/proto --cpp_out=${CMAKE_CURRENT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/src/proto/fe_type.proto |
46 | | - DEPENDS ${PROJECT_SOURCE_DIR}/src/proto/fe_type.proto |
47 | | - ) |
48 | | - |
49 | | -add_custom_command(OUTPUT ${DBMS_PB_CC} |
50 | | - COMMAND ${Protobuf_PROTOC_EXECUTABLE} -I ${PROJECT_SOURCE_DIR}/src/proto --cpp_out=${CMAKE_CURRENT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/src/proto/dbms.proto |
51 | | - DEPENDS ${PROJECT_SOURCE_DIR}/src/proto/dbms.proto |
52 | | - ) |
53 | | - |
54 | | -add_custom_command(OUTPUT ${TABLET_PB_CC} |
55 | | - COMMAND ${Protobuf_PROTOC_EXECUTABLE} -I ${PROJECT_SOURCE_DIR}/src/proto --cpp_out=${CMAKE_CURRENT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/src/proto/fe_tablet.proto |
56 | | - DEPENDS ${PROJECT_SOURCE_DIR}/src/proto/fe_tablet.proto |
57 | | - ) |
58 | | - |
59 | | -add_custom_command(OUTPUT ${BATCH_PB_CC} |
60 | | - COMMAND ${Protobuf_PROTOC_EXECUTABLE} -I ${PROJECT_SOURCE_DIR}/src/proto |
61 | | - --cpp_out=${CMAKE_CURRENT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/src/proto/batch.proto |
62 | | - DEPENDS ${PROJECT_SOURCE_DIR}/src/proto/batch.proto |
63 | | - ) |
64 | | - |
65 | | -add_custom_command(OUTPUT ${PLAN_PB_CC} |
66 | | - COMMAND ${Protobuf_PROTOC_EXECUTABLE} -I ${PROJECT_SOURCE_DIR}/src/proto --cpp_out=${CMAKE_CURRENT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/src/proto/plan.proto |
67 | | - DEPENDS ${PROJECT_SOURCE_DIR}/src/proto/plan.proto |
68 | | - ) |
69 | | - |
70 | | -set(HYBRIDSE_PROTO_SRC_FILES |
71 | | - ${TABLET_PB_CC} |
72 | | - ${DBMS_PB_CC} |
73 | | - ${COMMON_PB_CC} |
74 | | - ${TYPE_PB_CC} |
75 | | - ${BATCH_PB_CC} |
76 | | - ${PLAN_PB_CC}) |
77 | | - |
78 | | -ADD_CUSTOM_TARGET(run_gen_proto DEPENDS ${HYBRIDSE_PROTO_SRC_FILES}) |
79 | | - |
80 | | -add_library(hybridse_proto OBJECT ${HYBRIDSE_PROTO_SRC_FILES}) |
81 | | -add_dependencies(hybridse_proto run_gen_proto) |
82 | | - |
83 | | -if (SQL_JAVASDK_ENABLE) |
84 | | - add_custom_target(hybridse_proto_java ALL |
85 | | - COMMAND ${Protobuf_PROTOC_EXECUTABLE} |
86 | | - -I ${PROJECT_SOURCE_DIR}/src/proto |
87 | | - --java_out=${CMAKE_SOURCE_DIR}/java/hybridse-proto/src/main/java |
88 | | - ${PROJECT_SOURCE_DIR}/src/proto/*.proto |
89 | | - COMMENT "Generating protobuf java class into ${CMAKE_SOURCE_DIR}/java/hybridse-proto/src/main/java" |
90 | | - ) |
91 | | -endif() |
| 15 | +include_directories(${INCLUDE_DIRECTORIES} ${PROJECT_SOURCE_DIR}/src |
| 16 | + ${PROJECT_BINARY_DIR}/src) |
| 17 | + |
| 18 | +set(PROTO_CPP_FILES "") |
| 19 | +set(PROTO_FILES "") |
| 20 | +function(compile_proto proto_name java_file_suffix_path) |
| 21 | + add_custom_command( |
| 22 | + OUTPUT |
| 23 | + ${CMAKE_CURRENT_BINARY_DIR}/${proto_name}.pb.cc |
| 24 | + ${CMAKE_CURRENT_BINARY_DIR}/${proto_name}.pb.h |
| 25 | + ${CMAKE_SOURCE_DIR}/java/hybridse-proto/src/main/java/com/_4paradigm/hybridse/${java_file_suffix_path} |
| 26 | + COMMAND ${Protobuf_PROTOC_EXECUTABLE} |
| 27 | + -I ${PROJECT_SOURCE_DIR}/src/proto |
| 28 | + --cpp_out=${CMAKE_CURRENT_BINARY_DIR} |
| 29 | + --java_out=${CMAKE_SOURCE_DIR}/java/hybridse-proto/src/main/java |
| 30 | + ${PROJECT_SOURCE_DIR}/src/proto/${proto_name}.proto |
| 31 | + DEPENDS ${PROJECT_SOURCE_DIR}/src/proto/${proto_name}.proto) |
| 32 | + list(APPEND PROTO_CPP_FILES ${CMAKE_CURRENT_BINARY_DIR}/${proto_name}.pb.cc) |
| 33 | + list(APPEND PROTO_FILES |
| 34 | + ${CMAKE_CURRENT_BINARY_DIR}/${proto_name}.pb.cc |
| 35 | + ${CMAKE_CURRENT_BINARY_DIR}/${proto_name}.pb.h |
| 36 | + ${CMAKE_SOURCE_DIR}/java/hybridse-proto/src/main/java/com/_4paradigm/hybridse/${java_file_suffix_path} |
| 37 | + ) |
| 38 | + set(PROTO_CPP_FILES ${PROTO_CPP_FILES} PARENT_SCOPE) |
| 39 | + set(PROTO_FILES ${PROTO_FILES} PARENT_SCOPE) |
| 40 | +endfunction(compile_proto) |
| 41 | + |
| 42 | +compile_proto(fe_type type/TypeOuterClass.java) |
| 43 | +compile_proto(fe_common common/Common.java) |
| 44 | +compile_proto(dbms dbms/DBMS.java) |
| 45 | +compile_proto(fe_tablet tablet/Tablet.java) |
| 46 | +compile_proto(batch batch/Batch.java) |
| 47 | +compile_proto(plan batch/Plan.java) |
| 48 | + |
| 49 | +add_library(hybridse_proto OBJECT ${PROTO_CPP_FILES}) |
| 50 | +set_property( |
| 51 | + TARGET hybridse_proto |
| 52 | + APPEND |
| 53 | + PROPERTY ADDITIONAL_CLEAN_FILES ${PROTO_FILES} |
| 54 | +) |
0 commit comments