summaryrefslogtreecommitdiff
path: root/platform/node/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'platform/node/CMakeLists.txt')
-rw-r--r--platform/node/CMakeLists.txt36
1 files changed, 36 insertions, 0 deletions
diff --git a/platform/node/CMakeLists.txt b/platform/node/CMakeLists.txt
new file mode 100644
index 0000000000..a601df269f
--- /dev/null
+++ b/platform/node/CMakeLists.txt
@@ -0,0 +1,36 @@
+if(NOT EXISTS ${PROJECT_SOURCE_DIR}/node_modules/@mapbox/cmake-node-module/module.cmake)
+ message("-- Not building node bindings, dependencies not found. Run 'npm update'.")
+ return()
+endif()
+
+set(NODE_MODULE_CACHE_DIR ${CMAKE_SOURCE_DIR}/build/headers)
+include(${PROJECT_SOURCE_DIR}/node_modules/@mapbox/cmake-node-module/module.cmake)
+
+add_node_module(mbgl-node
+ INSTALL_PATH ${PROJECT_SOURCE_DIR}/lib/{node_abi}/mbgl.node
+ NAN_VERSION 2.10.0
+
+ # Build only for ABI 64.
+ # See https://nodejs.org/en/download/releases/ for mapping of Node version to ABI number.
+ EXCLUDE_NODE_ABIS 46 47 48 51 59 67 72
+)
+
+target_sources(mbgl-node INTERFACE
+ ${CMAKE_CURRENT_LIST_DIR}/src/node_conversion.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/node_expression.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/node_expression.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/node_feature.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/node_feature.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/node_logging.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/node_logging.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/node_map.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/node_map.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/node_mapbox_gl_native.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/node_request.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/node_request.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/util/async_queue.hpp
+)
+
+target_link_libraries(mbgl-node INTERFACE
+ Mapbox::Map
+)