set(INPUT_FILE "${CMAKE_SOURCE_DIR}/version")
file(READ ${INPUT_FILE} AGVC_SDK_JAVA_VERSION)
set (CMAKE_CXX_STANDARD 17)

set(AGVC_SDK_JAVA_DIR ${CMAKE_CURRENT_LIST_DIR}/agvc_sdk_java)

add_executable(java_generator java_generator.cpp)

configure_file(${CMAKE_CURRENT_LIST_DIR}/pom.xml.in ${AGVC_SDK_JAVA_DIR}/pom.xml @ONLY)

file(MAKE_DIRECTORY ${AGVC_SDK_JAVA_DIR}/src/main/java/cn/aubo_robotics/agvc_sdk)

set(GENERATE_JAVA_DIR ${AGVC_SDK_JAVA_DIR}/src/main/java/cn/aubo_robotics/agvc_sdk)

# file(MAKE_DIRECTORY ${GENERATE_JAVA_DIR}/aubo)
file(MAKE_DIRECTORY ${GENERATE_JAVA_DIR}/constants)
file(MAKE_DIRECTORY ${GENERATE_JAVA_DIR}/entity)
file(MAKE_DIRECTORY ${GENERATE_JAVA_DIR}/enums)
file(MAKE_DIRECTORY ${GENERATE_JAVA_DIR}/execptions)

# 需要复制的文件的目录
file(GLOB JAVA_FILE
    "${CMAKE_CURRENT_LIST_DIR}/README.md")
file(GLOB JAVA_SOURCE_RPC
    "${CMAKE_CURRENT_LIST_DIR}/agvc_sdk/*")
file(GLOB_RECURSE JAVA_SOURCE_CONST
    "${CMAKE_CURRENT_LIST_DIR}/agvc_sdk/constants/*")
file(GLOB JAVA_SOURCE_EXCEPTIONS
    "${CMAKE_CURRENT_LIST_DIR}/agvc/execptions/*")

add_custom_target(agvc_sdk_java ALL
    COMMAND ${CMAKE_COMMAND} -E copy ${JAVA_FILE} ${AGVC_SDK_JAVA_DIR}
    COMMAND ${CMAKE_COMMAND} -E copy ${JAVA_SOURCE_RPC} ${GENERATE_JAVA_DIR}
    COMMAND ${CMAKE_COMMAND} -E copy ${JAVA_SOURCE_CONST} ${GENERATE_JAVA_DIR}/constants/
    COMMAND ${CMAKE_COMMAND} -E copy ${JAVA_SOURCE_EXCEPTIONS} ${GENERATE_JAVA_DIR}/execptions/
    COMMAND java_generator
    WORKING_DIRECTORY ${AGVC_SDK_JAVA_DIR}
    COMMENT "Run generated java_generator in ${AGVC_SDK_JAVA_DIR}"
)
