Skip to content

Commit 9094590

Browse files
committed
added cached wrapper to generate nodejs bindings for swig < 4.0.0
1 parent 09827c3 commit 9094590

File tree

2 files changed

+2813
-3
lines changed

2 files changed

+2813
-3
lines changed

CMakeLists.txt

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -341,14 +341,22 @@ if(SWIG_FOUND)
341341
if (NODEJS_INCLUDE_DIRS)
342342
message("Bindings for node.js will be generated")
343343
message("Using NODEJS_INCLUDE_DIRS=${NODEJS_INCLUDE_DIRS}")
344-
set(CMAKE_SWIG_FLAGS -module infoLoggerForNodejs -v8)
345-
swig_add_library(infoLoggerForNodejs LANGUAGE javascript SOURCES src/infoLogger.i ${INFOLOGGER_LIB_OBJECTS})
344+
if (${SWIG_VERSION} VERSION_LESS "4.0.0")
345+
message("SWIG>=4.0.0 needed to generate node.js wrapper, reusing cached one")
346+
set(SWIG_MODULE_infoLoggerForNodejs_REAL_NAME infoLoggerForNodejs)
347+
add_library (infoLoggerForNodejs SHARED src/infoLoggerJAVASCRIPT_wrap.cxx ${INFOLOGGER_LIB_OBJECTS})
348+
target_include_directories(${SWIG_MODULE_infoLoggerForNodejs_REAL_NAME} PRIVATE ${INFOLOGGER_INCLUDE_DIRS} ${NODEJS_INCLUDE_DIRS})
349+
set_target_properties(${SWIG_MODULE_infoLoggerForNodejs_REAL_NAME} PROPERTIES PREFIX "")
350+
else()
351+
set(CMAKE_SWIG_FLAGS -module infoLoggerForNodejs -v8)
352+
swig_add_library(infoLoggerForNodejs LANGUAGE javascript SOURCES src/infoLogger.i ${INFOLOGGER_LIB_OBJECTS})
353+
endif()
346354
target_include_directories(${SWIG_MODULE_infoLoggerForNodejs_REAL_NAME} PRIVATE ${INFOLOGGER_INCLUDE_DIRS} ${NODEJS_INCLUDE_DIRS})
347355
target_compile_definitions(${SWIG_MODULE_infoLoggerForNodejs_REAL_NAME} PRIVATE -DBUILDING_NODE_EXTENSION)
348356
set_target_properties(${SWIG_MODULE_infoLoggerForNodejs_REAL_NAME} PROPERTIES OUTPUT_NAME infoLogger SUFFIX ".node")
349357
install(TARGETS ${SWIG_MODULE_infoLoggerForNodejs_REAL_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR})
350358
endif()
351-
359+
352360
endif()
353361

354362

0 commit comments

Comments
 (0)