set (VDIRECT_ADDON_DIR
    ${CMAKE_CURRENT_SOURCE_DIR}/build/${ADDON_DIR_NAME}
    CACHE INTERNAL ""
)


configure_file(
    ${CMAKE_CURRENT_SOURCE_DIR}/binding.gyp.template
    ${CMAKE_CURRENT_SOURCE_DIR}/binding.gyp
)


add_custom_target(
    vdirect_configure
    DEPENDS
        install_modules
        vdirect_nodejs
        ${CMAKE_CURRENT_SOURCE_DIR}/binding.gyp
        ${CMAKE_CURRENT_SOURCE_DIR}/addon.cc
        ${CMAKE_CURRENT_SOURCE_DIR}/module.cc
        ${CMAKE_CURRENT_SOURCE_DIR}/package.json
        ${CMAKE_CURRENT_SOURCE_DIR}/wrapper.js
        ${CMAKE_SOURCE_DIR}/vdirect/include/internal/module.h
)

add_custom_command(
    TARGET
        vdirect_configure
    COMMAND
        ${NODEJS} ${NODE_GYP} configure ${MODE} -v
    WORKING_DIRECTORY
        ${CMAKE_CURRENT_SOURCE_DIR}
    COMMENT
        "Running ${NODEJS} ${NODE_GYP} configure ${MODE} -v"
)

add_custom_target(
    vdirect_create_addon ALL
    DEPENDS
        vdirect_configure
)

add_custom_command(
    TARGET
        vdirect_create_addon
    COMMAND
        ${NODEJS} ${NODE_GYP} build ${MODE} -v
    WORKING_DIRECTORY
        ${CMAKE_CURRENT_SOURCE_DIR}
    COMMENT
        "Running ${NODEJS} ${NODE_GYP} build ${MODE} -v"
)

install(
    FILES
        ${VDIRECT_ADDON_DIR}/vdirect.node
    PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE
                            GROUP_READ GROUP_EXECUTE
                            WORLD_READ WORLD_EXECUTE
    DESTINATION
        "${CMAKE_INSTALL_LIBDIR}"
)

install(
    FILES
        ${VDIRECT_ADDON_DIR}/vdirect.node
    PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE
                            GROUP_READ GROUP_EXECUTE
                            WORLD_READ WORLD_EXECUTE
    DESTINATION
        ${CMAKE_CURRENT_SOURCE_DIR}/build
)
