From 7e49b36198ba6906dab36b7bdafb5d82e88aa6c0 Mon Sep 17 00:00:00 2001 From: Patrick Niklaus Date: Fri, 7 Apr 2017 07:18:16 +0000 Subject: [PATCH] Add script to fall back to source build --- package.json | 2 +- scripts/node_install.sh | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100755 scripts/node_install.sh diff --git a/package.json b/package.json index 55dd5d641..f21ce6565 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "test": "npm run lint && node ./node_modules/cucumber/bin/cucumber.js features/ -p verify && node ./node_modules/cucumber/bin/cucumber.js features/ -p mld", "clean": "rm -rf test/cache", "docs": "./scripts/build_api_docs.sh", - "install": "node-pre-gyp install --fallback-to-build=false", + "install": "node-pre-gyp install --fallback-to-build=false || ./scripts/node_install.sh", "nodejs-tests": "make -C test/data && ./lib/binding/osrm-datastore test/data/ch/monaco.osrm && node test/nodejs/index.js | faucet" }, "repository": { diff --git a/scripts/node_install.sh b/scripts/node_install.sh new file mode 100755 index 000000000..f8d0fb1ac --- /dev/null +++ b/scripts/node_install.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +set -e + +CMAKE_OPTIONS=${CMAKE_OPTIONS:-"-DCMAKE_BUILD_TYPE=Release -DENABLE_NODE_BINDINGS=On -DENABLE_MASON=On"} + +if [[ ! -f $(which cmake) ]]; then + echo "Needs cmake to build from source" + exit 1 +fi +if [[ ! -f $(which clang) ]]; then + echo "Needs clang to build from source" + exit 1 +fi +if [[ ! -f $(which clang++) ]]; then + echo "Needs clang++ to build from source" + exit 1 +fi + +if [[ -d build ]]; then + echo "Detected existing build directory, skipping compiling." + exit 0 +else + mkdir -p build + pushd build + CXX=clang++ CC=clang cmake .. $CMAKE_OPTIONS + popd +fi