cmake_minimum_required(VERSION 3.0)
set(CMAKE_CXX_STANDARD 17)

project(scriptx-node-addon)

# important for node.js
# https://github.com/cmake-js/cmake-js/issues/37
add_definitions(-DBUILDING_NODE_EXTENSION)

# config ScriptX
set(SCRIPTX_BACKEND V8 CACHE STRING "" FORCE)
include(${CMAKE_CURRENT_LIST_DIR}/../../CMakeLists.txt)
target_include_directories(ScriptX PUBLIC ${CMAKE_JS_INC})
target_compile_options(ScriptX PUBLIC -fPIC)

add_library(${PROJECT_NAME} SHARED ${CMAKE_JS_SRC})
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_JS_INC})
target_sources(${PROJECT_NAME} PRIVATE
        src/addon.cc
        )
target_compile_options(${PROJECT_NAME} PUBLIC -fPIC)
set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node")
target_link_libraries(${PROJECT_NAME} ${CMAKE_JS_LIB} ScriptX)

# Include N-API wrappers
#execute_process(COMMAND node -p "require('node-addon-api').include"
#        WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
#        OUTPUT_VARIABLE NODE_ADDON_API_DIR
#        )
#string(REGEX REPLACE "[\r\n\"]" "" NODE_ADDON_API_DIR ${NODE_ADDON_API_DIR})
#
#target_include_directories(${PROJECT_NAME} PRIVATE ${NODE_ADDON_API_DIR})
#
# define NPI_VERSION
#add_definitions(-DNAPI_VERSION=3)