file(GLOB_RECURSE LYNX_LIBRARY_NAPI_NATIVE_MODULE_SOURCES CONFIGURE_DEPENDS
  "${CMAKE_CURRENT_SOURCE_DIR}/*.cc"
)

set(LYNX_LIBRARY_NAPI_NATIVE_MODULE_TARGET __ADDON_TARGET_NAME__NapiNativeModules)

add_library(${LYNX_LIBRARY_NAPI_NATIVE_MODULE_TARGET} OBJECT
  ${LYNX_LIBRARY_NAPI_NATIVE_MODULE_SOURCES}
)

target_include_directories(${LYNX_LIBRARY_NAPI_NATIVE_MODULE_TARGET} PRIVATE
  "${CMAKE_CURRENT_SOURCE_DIR}/../.."
  "${LYNX_WEAK_NODE_API_HEADERS_DIR}"
  "${LYNX_EXTENSION_HEADERS_DIR}/include"
)

if(LYNX_LIBRARY_NODE_API_WEAK_SUFFIX)
  target_compile_definitions(${LYNX_LIBRARY_NAPI_NATIVE_MODULE_TARGET} PRIVATE
    USE_WEAK_SUFFIX_NAPI=1
  )
endif()

if(LYNX_LIBRARY_USE_PRIMJS_NAPI_MODULE)
  target_compile_definitions(${LYNX_LIBRARY_NAPI_NATIVE_MODULE_TARGET} PRIVATE
    LYNX_LIBRARY_USE_PRIMJS_NAPI_MODULE=1
  )
endif()

if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
  set(
    LYNX_LIBRARY_NAPI_NATIVE_MODULE_TARGET
    "${LYNX_LIBRARY_NAPI_NATIVE_MODULE_TARGET}"
    PARENT_SCOPE
  )
endif()
