cmake_minimum_required(VERSION 3.16)

set(PROTO_COMPILER "protoc")
set(PROTO_C_COMPILER "protoc-c")
set(C_OUT_PATH "${CMAKE_CURRENT_LIST_DIR}/proto-c")
set(PY_OUT_PATH "${CMAKE_CURRENT_LIST_DIR}/python")
set(PROTOCOMM_INCL_PATH "${IDF_PATH}/components/protocomm/proto")

add_custom_target(c_proto
                  COMMAND $ {PROTO_C_COMPILER} --c_out = $ {C_OUT_PATH} -I . - I ${PROTOCOMM_INCL_PATH} ${PROTO_SRCS}
                  VERBATIM
                  WORKING_DIRECTORY $ {CMAKE_CURRENT_LIST_DIR}
                  )

add_custom_target(python_proto
                  COMMAND $ {PROTO_COMPILER} --python_out = $ {PY_OUT_PATH} -I . - I ${PROTOCOMM_INCL_PATH} ${PROTO_SRCS}
                  VERBATIM
                  WORKING_DIRECTORY $ {CMAKE_CURRENT_LIST_DIR}
                  )

add_custom_target(proto ALL
                  DEPENDS c_proto python_proto
                  VERBATIM
                  WORKING_DIRECTORY $ {CMAKE_CURRENT_LIST_DIR}
                 )
