[node] allow building all ABIs at once
This commit is contained in:
121
cmake/node.cmake
121
cmake/node.cmake
@@ -1,87 +1,96 @@
|
||||
# Load Node.js
|
||||
include(cmake/NodeJS.cmake)
|
||||
nodejs_init()
|
||||
include(node_modules/@mapbox/cmake-node-module/module.cmake)
|
||||
|
||||
add_library(mbgl-loop-node STATIC
|
||||
platform/default/async_task.cpp
|
||||
platform/default/run_loop.cpp
|
||||
platform/default/timer.cpp
|
||||
add_library(mbgl-loop-node INTERFACE)
|
||||
|
||||
target_sources(mbgl-loop-node INTERFACE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/platform/default/async_task.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/platform/default/run_loop.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/platform/default/timer.cpp
|
||||
)
|
||||
|
||||
target_include_directories(mbgl-loop-node
|
||||
PRIVATE include
|
||||
PRIVATE src
|
||||
target_include_directories(mbgl-loop-node INTERFACE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
)
|
||||
|
||||
target_include_directories(mbgl-loop-node PUBLIC ${NODEJS_INCLUDE_DIRS})
|
||||
|
||||
create_source_groups(mbgl-loop-node)
|
||||
xcode_create_scheme(TARGET mbgl-loop-node)
|
||||
|
||||
add_nodejs_module(mbgl-node
|
||||
platform/node/src/node_mapbox_gl_native.cpp
|
||||
|
||||
add_node_module(mbgl-node
|
||||
INSTALL_DIR "lib"
|
||||
NAN_VERSION "2.10.0"
|
||||
EXCLUDE_NODE_ABIS 47 51 59 # Don't build old beta ABIs 5.x, 7.x, and 9.x
|
||||
)
|
||||
|
||||
# NodeJS.cmake forces C++11.
|
||||
# https://github.com/cjntaylor/node-cmake/issues/18
|
||||
set_target_properties("mbgl-node" PROPERTIES CXX_STANDARD 14)
|
||||
|
||||
target_sources(mbgl-node
|
||||
PRIVATE platform/node/src/node_logging.hpp
|
||||
PRIVATE platform/node/src/node_logging.cpp
|
||||
PRIVATE platform/node/src/node_conversion.hpp
|
||||
PRIVATE platform/node/src/node_map.hpp
|
||||
PRIVATE platform/node/src/node_map.cpp
|
||||
PRIVATE platform/node/src/node_request.hpp
|
||||
PRIVATE platform/node/src/node_request.cpp
|
||||
PRIVATE platform/node/src/node_feature.hpp
|
||||
PRIVATE platform/node/src/node_feature.cpp
|
||||
PRIVATE platform/node/src/node_thread_pool.hpp
|
||||
PRIVATE platform/node/src/node_thread_pool.cpp
|
||||
PRIVATE platform/node/src/node_expression.hpp
|
||||
PRIVATE platform/node/src/node_expression.cpp
|
||||
PRIVATE platform/node/src/util/async_queue.hpp
|
||||
target_sources(mbgl-node INTERFACE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/platform/node/src/node_mapbox_gl_native.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/platform/node/src/node_mapbox_gl_native.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/platform/node/src/node_logging.hpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/platform/node/src/node_logging.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/platform/node/src/node_conversion.hpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/platform/node/src/node_map.hpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/platform/node/src/node_map.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/platform/node/src/node_request.hpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/platform/node/src/node_request.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/platform/node/src/node_feature.hpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/platform/node/src/node_feature.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/platform/node/src/node_thread_pool.hpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/platform/node/src/node_thread_pool.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/platform/node/src/node_expression.hpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/platform/node/src/node_expression.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/platform/node/src/util/async_queue.hpp
|
||||
)
|
||||
|
||||
target_include_directories(mbgl-node
|
||||
PRIVATE platform/default
|
||||
target_include_directories(mbgl-node INTERFACE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/platform/default
|
||||
)
|
||||
|
||||
target_link_libraries(mbgl-node
|
||||
PRIVATE mbgl-core
|
||||
PRIVATE mbgl-loop-node
|
||||
target_link_libraries(mbgl-node INTERFACE
|
||||
mbgl-core
|
||||
mbgl-loop-node
|
||||
)
|
||||
|
||||
target_add_mason_package(mbgl-node PRIVATE geojson)
|
||||
target_add_mason_package(mbgl-node INTERFACE geojson)
|
||||
|
||||
add_custom_command(
|
||||
TARGET mbgl-node
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:mbgl-node> ${CMAKE_SOURCE_DIR}/lib/mapbox_gl_native.node
|
||||
)
|
||||
add_custom_target(mbgl-node.active DEPENDS mbgl-node.abi-${NodeJS_ABI})
|
||||
|
||||
mbgl_platform_node()
|
||||
|
||||
create_source_groups(mbgl-node)
|
||||
|
||||
initialize_xcode_cxx_build_settings(mbgl-node)
|
||||
foreach(ABI IN LISTS mbgl-node::abis)
|
||||
initialize_xcode_cxx_build_settings(mbgl-node.abi-${ABI})
|
||||
xcode_create_scheme(
|
||||
TARGET mbgl-node.abi-${ABI}
|
||||
NAME "mbgl-node (ABI ${ABI})"
|
||||
)
|
||||
endforeach()
|
||||
|
||||
xcode_create_scheme(
|
||||
TARGET mbgl-node
|
||||
TARGET mbgl-node.active
|
||||
TYPE library
|
||||
NAME "mbgl-node (Active ABI)"
|
||||
)
|
||||
|
||||
xcode_create_scheme(
|
||||
TARGET mbgl-node
|
||||
TARGET mbgl-node.all
|
||||
TYPE library
|
||||
NAME "mbgl-node (All ABIs)"
|
||||
)
|
||||
|
||||
xcode_create_scheme(
|
||||
TARGET mbgl-node.active
|
||||
TYPE node
|
||||
NAME "node tests"
|
||||
NAME "node tests (Active ABI)"
|
||||
ARGS
|
||||
"node_modules/.bin/tape platform/node/test/js/**/*.test.js"
|
||||
)
|
||||
|
||||
xcode_create_scheme(
|
||||
TARGET mbgl-node
|
||||
TARGET mbgl-node.active
|
||||
TYPE node
|
||||
NAME "node render tests"
|
||||
NAME "node render tests (Active ABI)"
|
||||
ARGS
|
||||
"platform/node/test/render.test.js"
|
||||
OPTIONAL_ARGS
|
||||
@@ -90,9 +99,9 @@ xcode_create_scheme(
|
||||
)
|
||||
|
||||
xcode_create_scheme(
|
||||
TARGET mbgl-node
|
||||
TARGET mbgl-node.active
|
||||
TYPE node
|
||||
NAME "node query tests"
|
||||
NAME "node query tests (Active ABI)"
|
||||
ARGS
|
||||
"platform/node/test/query.test.js"
|
||||
OPTIONAL_ARGS
|
||||
@@ -101,9 +110,9 @@ xcode_create_scheme(
|
||||
)
|
||||
|
||||
xcode_create_scheme(
|
||||
TARGET mbgl-node
|
||||
TARGET mbgl-node.active
|
||||
TYPE node
|
||||
NAME "node expression tests"
|
||||
NAME "node expression tests (Active ABI)"
|
||||
ARGS
|
||||
"platform/node/test/expression.test.js"
|
||||
OPTIONAL_ARGS
|
||||
@@ -112,9 +121,9 @@ xcode_create_scheme(
|
||||
)
|
||||
|
||||
xcode_create_scheme(
|
||||
TARGET mbgl-node
|
||||
TARGET mbgl-node.active
|
||||
TYPE node
|
||||
NAME "node-benchmark"
|
||||
NAME "node-benchmark (Active ABI)"
|
||||
ARGS
|
||||
"platform/node/test/benchmark.js"
|
||||
OPTIONAL_ARGS
|
||||
|
||||
Reference in New Issue
Block a user