-
Notifications
You must be signed in to change notification settings - Fork 3.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merges node-osrm into repo. #3768
Conversation
ba29a24
to
6e130b6
Compare
test/bindings/node/data/Makefile
Outdated
@@ -0,0 +1,32 @@ | |||
OSRM_RELEASE:=$(shell node -e "console.log(require('../../../../package.json').osrm_release)") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should replace the test data for test/data
in the root directory with berlin from these tests and then reuse it here instead of having an own test dataset.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, requires changing all coordinates from locations in Monaco to Berlin - I agree having multiple datasets is ugly.
src/bindings/node/node_osrm.cpp
Outdated
@@ -0,0 +1,507 @@ | |||
#include "osrm/engine_config.hpp" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nitpick: I would prefer a less deep filesystem structure like: src/node
instead of src/bindings/node
purely because I don't like typing so much :-)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was me being sneaky and opening up the door for more bindings :)
Also give https://github.com/junegunn/fzf a try (or ctrl+p)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah but you can also have src/python
if you want that. I don't think we will have namespace conflicts 😉
|
||
"nan": "^2.1.0", | ||
"node-cmake": "^1.2.1", | ||
"node-pre-gyp": "~0.6.30" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This package.json needs an install
and preinstall
target like here:
https://github.com/Project-OSRM/node-osrm/blob/master/package.json#L45-L47
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It does, a few lines below https://github.com/Project-OSRM/osrm-backend/blob/merge-node-osrm/package.json#L37-L38
b2ac9dc
to
09a7273
Compare
@daniel-j-h Hm, would it be possible to bundle the cmake script directly? That is what the v2 docs recommend as well: https://github.com/cjntaylor/node-cmake |
09a7273
to
69d6a10
Compare
Yes, can do. Vendoring in the cmake dir. |
e71cc1b
to
15d1474
Compare
Merged node-osrm tests into backend; the Monaco dataset is gone now. Important: I kept the s3 files for backwards compat. and uploaded the Berlin ones and made them public. Had to adapt all tests, but now it works. The Tile plugin is especially fragile in that regard, and caused some pain. In the end I got it working (e.g. with range checks for sizes). The tile in Berlin does not seem to have strings in it for street names - any insights here @danpat? Should all tiles have the street names in them for streets they display? Refs. |
Having LTO builds enabled for this repo.'s release / production builds is a blocker for merging this PR: #3770 Also this is mostly done with the exception of
|
node-pre-gyp does not publish packages to npm, that is a manual step you would need to do. To just test binary builds try the following:
|
@daniel-j-h yes - there should be street name attributes for any visible street on the tile: We're not rendering those labels on the debug frontend though - are you sure they're missing from the tiles? |
15d1474
to
720f8f3
Compare
What is blocking here? I would like to get this merged in time to integrate the algorithm selection in |
bfb7b00
to
5af45d4
Compare
fcf7520
to
9ae8ca3
Compare
cf61099
to
4b31624
Compare
Here's an update:
Otherwise building the binaries is hooked up now via node-pre-gyp. |
You can either exclude the bindings from the header check or make the compile unit for it a fake node module.
Did you try rebasing on master? |
Good catch - seems like the build and publish scripts were triggering a second build. I guarded them now behind the |
05d9274
to
483abf6
Compare
.travis.yml
Outdated
@@ -173,7 +173,7 @@ install: | |||
- export OSRM_BUILD_DIR="$(pwd)/build-osrm" | |||
- mkdir ${OSRM_BUILD_DIR} && pushd ${OSRM_BUILD_DIR} | |||
- export CC=${CCOMPILER} CXX=${CXXCOMPILER} | |||
- cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DENABLE_MASON=${ENABLE_MASON:-OFF} -DENABLE_ASSERTIONS=${ENABLE_ASSERTIONS:-OFF} -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS:-OFF} -DENABLE_COVERAGE=${ENABLE_COVERAGE:-OFF} -DENABLE_SANITIZER=${ENABLE_SANITIZER:-OFF} -DBUILD_TOOLS=ON -DENABLE_CCACHE=ON | |||
- cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DENABLE_MASON=${ENABLE_MASON:-OFF} -DENABLE_ASSERTIONS=${ENABLE_ASSERTIONS:-OFF} -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS:-OFF} -DENABLE_COVERAGE=${ENABLE_COVERAGE:-OFF} -DENABLE_SANITIZER=${ENABLE_SANITIZER:-OFF} -DBUILD_TOOLS=ON -DENABLE_CCACHE=ON -DENABLE_NODE_BINDINGS=${ENABLE_NODE_BINDINGS} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Needs to be -DENABLE_NODE_BINDINGS=${ENABLE_NODE_BINDINGS:-OFF}
.
483abf6
to
1050953
Compare
1284f5d
to
886dca3
Compare
Fixed the windows install and data preparation and disabled the ASAN option for the GCC build for now. We need to switch the dataset back to Monaco, Berlin is too big for CI (contracting it takes ages in debug mode and makes our builds time out). Hopefully this will work and we can merge this to unblock #3846. |
c2a959f
to
cfa4e5f
Compare
Build with cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_NODE_BINDINGS=On -DENABLE_MASON=On
cfa4e5f
to
1603ebe
Compare
Travis green! Beware, we are not yet running the NodeJs tests (tests need to be adapted to Monaco now that I changed it back from the Berlin dataset), and we have to enable coverage again. |
is there any chance to get for win32? Otherwise npm testing should be commented in |
Hrm I'm not sure why |
Merging node-osrm NodeJS bindings into the repository. Can be built with
Structured as follows
src/bindings/node
- recursive CMakeLists.txt and binding impl.include/bindings/node
- binding headersWhat's still missing
npm install
for node-cmake - should cmake do this on the fly?