Previously, `target_include_directories(mbgl-loop-uv PUBLIC ${NODEJS_INCLUDE_DIRS})` always applied. Compiles were working by accident because node is always installed in CI. Instead, split and inline loop-uv.cmake contents: linux uses `target_add_mason_package(mbgl-loop-uv PUBLIC libuv)`, node uses `target_include_directories(mbgl-loop-node PUBLIC ${NODEJS_INCLUDE_DIRS})`.
124 lines
2.7 KiB
CMake
124 lines
2.7 KiB
CMake
# Load Node.js
|
|
include(cmake/NodeJS.cmake)
|
|
nodejs_init()
|
|
|
|
add_library(mbgl-loop-node STATIC
|
|
platform/default/async_task.cpp
|
|
platform/default/run_loop.cpp
|
|
platform/default/timer.cpp
|
|
)
|
|
|
|
target_include_directories(mbgl-loop-node
|
|
PRIVATE include
|
|
PRIVATE 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
|
|
)
|
|
|
|
# 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_include_directories(mbgl-node
|
|
PRIVATE platform/default
|
|
)
|
|
|
|
target_link_libraries(mbgl-node
|
|
PRIVATE mbgl-core
|
|
PRIVATE mbgl-loop-node
|
|
)
|
|
|
|
target_add_mason_package(mbgl-node PRIVATE 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
|
|
)
|
|
|
|
mbgl_platform_node()
|
|
|
|
create_source_groups(mbgl-node)
|
|
|
|
initialize_xcode_cxx_build_settings(mbgl-node)
|
|
|
|
xcode_create_scheme(
|
|
TARGET mbgl-node
|
|
)
|
|
|
|
xcode_create_scheme(
|
|
TARGET mbgl-node
|
|
TYPE node
|
|
NAME "node tests"
|
|
ARGS
|
|
"node_modules/.bin/tape platform/node/test/js/**/*.test.js"
|
|
)
|
|
|
|
xcode_create_scheme(
|
|
TARGET mbgl-node
|
|
TYPE node
|
|
NAME "node render tests"
|
|
ARGS
|
|
"platform/node/test/render.test.js"
|
|
OPTIONAL_ARGS
|
|
"group"
|
|
"test"
|
|
)
|
|
|
|
xcode_create_scheme(
|
|
TARGET mbgl-node
|
|
TYPE node
|
|
NAME "node query tests"
|
|
ARGS
|
|
"platform/node/test/query.test.js"
|
|
OPTIONAL_ARGS
|
|
"group"
|
|
"test"
|
|
)
|
|
|
|
xcode_create_scheme(
|
|
TARGET mbgl-node
|
|
TYPE node
|
|
NAME "node expression tests"
|
|
ARGS
|
|
"platform/node/test/expression.test.js"
|
|
OPTIONAL_ARGS
|
|
"group"
|
|
"test"
|
|
)
|
|
|
|
xcode_create_scheme(
|
|
TARGET mbgl-node
|
|
TYPE node
|
|
NAME "node-benchmark"
|
|
ARGS
|
|
"platform/node/test/benchmark.js"
|
|
OPTIONAL_ARGS
|
|
"group"
|
|
"test"
|
|
)
|