1+ @ [if DEVELSPACE]@
2+ # location of scripts in develspace
3+ set (GENJAVA_BIN_DIR " @(CMAKE_CURRENT_SOURCE_DIR)/scripts" )
4+ @ [else ]@
5+ # location of scripts in installspace
6+ set (GENJAVA_BIN_DIR " ${GENJAVA_DIR}/../../../@(CATKIN_PACKAGE_BIN_DESTINATION)" )
7+ @ [end if ]@
8+
9+ set (GENMSG_JAVA_BIN ${GENJAVA_BIN_DIR}/ genmsg_java .py )
10+ set (GENSRV_JAVA_BIN ${GENJAVA_BIN_DIR}/ gensrv_java .py )
11+
12+ # Generate .msg->.h for py
13+ # The generated .h files should be added ALL_GEN_OUTPUT_FILES_py
14+ macro (_generate_msg_java ARG_PKG ARG_MSG ARG_IFLAGS ARG_MSG_DEPS ARG_GEN_OUTPUT_DIR)
15+
16+ message (STATUS " GEN_MSG_JAVA..........._generate_msg_java" )
17+ message (STATUS " ARG_PKG..............${ARG_PKG}" )
18+ message (STATUS " ARG_MSG..............${ARG_MSG}" )
19+ message (STATUS " ARG_IFLAGS...........${ARG_IFLAGS}" )
20+ message (STATUS " ARG_MSG_DEPS.........${ARG_MSG_DEPS}" )
21+ message (STATUS " ARG_GEN_OUTPUT_DIR...${ARG_GEN_OUTPUT_DIR}" )
22+
23+ # Append msg to output dir
24+ # set(GEN_OUTPUT_DIR "${ARG_GEN_OUTPUT_DIR}/msg")
25+ # file(MAKE_DIRECTORY ${GEN_OUTPUT_DIR})
26+ # Create input and output filenames
27+ # get_filename_component(MSG_SHORT_NAME ${ARG_MSG} NAME_WE)
28+ #
29+ # set(MSG_GENERATED_NAME _${MSG_SHORT_NAME}.py)
30+ # set(GEN_OUTPUT_FILE ${GEN_OUTPUT_DIR}/${MSG_GENERATED_NAME})
31+ #
32+ # add_custom_command(OUTPUT ${GEN_OUTPUT_FILE}
33+ # DEPENDS ${GENMSG_PY_BIN} ${ARG_MSG} ${ARG_MSG_DEPS}
34+ # COMMAND ${CATKIN_ENV} ${PYTHON_EXECUTABLE} ${GENMSG_PY_BIN} ${ARG_MSG}
35+ # ${ARG_IFLAGS}
36+ # -p ${ARG_PKG}
37+ # -o ${GEN_OUTPUT_DIR}
38+ # COMMENT "Generating Python from MSG ${ARG_PKG}/${MSG_SHORT_NAME}"
39+ # )
40+ #
41+ # list(APPEND ALL_GEN_OUTPUT_FILES_py ${GEN_OUTPUT_FILE})
42+
43+ endmacro ()
44+
45+ # todo, these macros are practically equal. Check for input file extension instead
46+ macro (_generate_srv_java ARG_PKG ARG_SRV ARG_IFLAGS ARG_MSG_DEPS ARG_GEN_OUTPUT_DIR)
47+
48+ message (STATUS " GEN_SRV_JAVA..........._generate_srv_java" )
49+ # Append msg to output dir
50+ # set(GEN_OUTPUT_DIR "${ARG_GEN_OUTPUT_DIR}/srv")
51+ # file(MAKE_DIRECTORY ${GEN_OUTPUT_DIR})
52+ #
53+ # Create input and output filenames
54+ # get_filename_component(SRV_SHORT_NAME ${ARG_SRV} NAME_WE)
55+ #
56+ # set(SRV_GENERATED_NAME _${SRV_SHORT_NAME}.py)
57+ # set(GEN_OUTPUT_FILE ${GEN_OUTPUT_DIR}/${SRV_GENERATED_NAME})
58+ #
59+ # add_custom_command(OUTPUT ${GEN_OUTPUT_FILE}
60+ # DEPENDS ${GENSRV_PY_BIN} ${ARG_SRV} ${ARG_MSG_DEPS}
61+ # COMMAND ${CATKIN_ENV} ${PYTHON_EXECUTABLE} ${GENSRV_PY_BIN} ${ARG_SRV}
62+ # ${ARG_IFLAGS}
63+ # -p ${ARG_PKG}
64+ # -o ${GEN_OUTPUT_DIR}
65+ # COMMENT "Generating Python code from SRV ${ARG_PKG}/${SRV_SHORT_NAME}"
66+ # )
67+ #
68+ # list(APPEND ALL_GEN_OUTPUT_FILES_py ${GEN_OUTPUT_FILE})
69+
70+ endmacro ()
71+
72+ macro (_generate_module_java ARG_PKG ARG_GEN_OUTPUT_DIR ARG_GENERATED_FILES)
73+
74+ message (STATUS " GEN_MODULE_PY..........._generate_module_py" )
75+ # generate empty __init__ to make parent folder of msg/srv a python module
76+ if (NOT EXISTS ${ARG_GEN_OUTPUT_DIR}/ __init__ .py )
77+ file (WRITE ${ARG_GEN_OUTPUT_DIR}/ __init__ .py " " )
78+ endif ()
79+
80+ # Append msg to output dir
81+ foreach (type " msg" " srv" )
82+ set (GEN_OUTPUT_DIR " ${ARG_GEN_OUTPUT_DIR}/${type}" )
83+ set (GEN_OUTPUT_FILE ${GEN_OUTPUT_DIR}/ __init__ .py )
84+
85+ if (IS_DIRECTORY ${GEN_OUTPUT_DIR})
86+ add_custom_command (OUTPUT ${GEN_OUTPUT_FILE}
87+ DEPENDS ${GENMSG_PY_BIN} ${ARG_GENERATED_FILES}
88+ COMMAND ${CATKIN_ENV} ${PYTHON_EXECUTABLE} ${GENMSG_PY_BIN}
89+ - o ${GEN_OUTPUT_DIR}
90+ -- initpy
91+ COMMENT " Generating Python ${type} __init__.py for ${ARG_PKG}" )
92+ list (APPEND ALL_GEN_OUTPUT_FILES_py ${GEN_OUTPUT_FILE})
93+ endif ()
94+
95+ endforeach ()
96+
97+ endmacro ()
98+
99+ if (NOT EXISTS @ (PROJECT_NAME)_SOURCE_DIR)
100+ set (GENJAVA_INSTALL_DIR ${PYTHON_INSTALL_DIR})
101+ endif ()
0 commit comments