From bd2efd7628e62c9766e359b9ccbbd50284e3a685 Mon Sep 17 00:00:00 2001 From: freemountain Date: Fri, 3 Feb 2017 15:45:07 +0100 Subject: [PATCH] fix npm pkg install --- .travis.yml | 15 ++++++++++++--- configure | 28 +++++++++++++++++++++++----- qbs/imports/QNodeNpmPkg.qbs | 3 ++- qbs_wrapper | 21 +++++++++++++++++++++ test.sh | 17 +++++++++++++++++ 5 files changed, 75 insertions(+), 9 deletions(-) create mode 100755 qbs_wrapper create mode 100755 test.sh diff --git a/.travis.yml b/.travis.yml index ecfbc03..70bd199 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,13 +4,22 @@ language: generic os: - osx - linux -script: - - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install qt5 p7zip; fi +before_install: + - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install qt5 p7zip qbs; fi - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew link --force qt5; fi - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo add-apt-repository -y ppa:beineri/opt-qt57-trusty; fi + - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test; fi + - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get update; fi - - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get -y install qt57declarative qt57quickcontrols qt57quickcontrols2 qt57graphicaleffects qt57tools qt57svg mesa-common-dev libglu1-mesa-dev; fi + - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get -y install qt57declarative qt57quickcontrols qt57quickcontrols2 qt57graphicaleffects qt57tools qt57svg mesa-common-dev libglu1-mesa-dev qt57qbs gcc-5 g++-5; fi - if [ "$TRAVIS_OS_NAME" == "linux" ]; then export PATH=/opt/qt57/bin:$PATH; fi + + - if [ "$TRAVIS_OS_NAME" == "osx" ]; then ./qbs_wrapper setup-toolchains /usr/bin/clang clang; fi + - if [ "$TRAVIS_OS_NAME" == "osx" ]; then ./qbs_wrapper setup-qt /usr/local/opt/qt5/bin/qmake qt5; fi + - if [ "$TRAVIS_OS_NAME" == "osx" ]; then ./qbs_wrapper config profiles.qt5.baseProfile clang; fi + - if [ "$TRAVIS_OS_NAME" == "osx" ]; then ./qbs_wrapper config defaultProfile qt5; fi + +script: - make bootstrap - make test - mkdir build && cd build && qmake .. && make && make clean diff --git a/configure b/configure index 6f10906..71100ef 100755 --- a/configure +++ b/configure @@ -3,16 +3,34 @@ set -e set -o xtrace PROJECT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -OS="linux" + pushd . > /dev/null cd "$PROJECT_PATH" git submodule update --init --recursive -mkdir -p "$PROJECT_PATH/build/tools/qbs" -cd "$PROJECT_PATH/build/tools/qbs" -qmake -r "$PROJECT_PATH/tools/qbs/qbs.pro" -make + + +build_qbs=true +if qbs_loc="$(type -p "qbs")" || [ -z "$qbs_loc" ]; then + version="$(qbs --version)" + echo "found qbs version: $version" + a=( ${version//./ } ) + major=${a[0]} + minor=${a[1]} + echo "qbs major: $major and minor: $minor" + if [ "$major" -ge "1" ] && [ "$minor" -ge "6" ]; then + build_qbs=false + fi +fi + +if $build_qbs; then + echo "build qbs..." + mkdir -p "$PROJECT_PATH/build/tools/qbs" + cd "$PROJECT_PATH/build/tools/qbs" + qmake -r "$PROJECT_PATH/tools/qbs/qbs.pro" + make +fi if [[ "$OSTYPE" == "linux-gnu" ]]; then BIN_PATH="$PROJECT_PATH/build/tools/" diff --git a/qbs/imports/QNodeNpmPkg.qbs b/qbs/imports/QNodeNpmPkg.qbs index 0be6bfb..2a327ee 100644 --- a/qbs/imports/QNodeNpmPkg.qbs +++ b/qbs/imports/QNodeNpmPkg.qbs @@ -166,7 +166,8 @@ Rule { }; var commands = [cmd]; - if(input.fileName === "package.json") commands.push(npmInstall) + var basePath = FileInfo.path(input.filePath); + if(input.fileName === "package.json" && basePath === product.sourceDirectory) commands.push(npmInstall) return commands; } diff --git a/qbs_wrapper b/qbs_wrapper new file mode 100755 index 0000000..7a176f2 --- /dev/null +++ b/qbs_wrapper @@ -0,0 +1,21 @@ +#!/bin/bash +set -e + +PROJECT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +use_system_qbs=false +if qbs_loc="$(type -p "qbs")" || [ -z "$qbs_loc" ]; then + version="$(qbs --version)" + a=( ${version//./ } ) + major=${a[0]} + minor=${a[1]} + if [ "$major" -ge "1" ] && [ "$minor" -ge "6" ]; then + use_system_qbs=true + fi +fi + +if $use_system_qbs; then + qbs "$@" +else + "$PROJECT_PATH/build/tools/qbs/bin/qbs" "$@" +fi diff --git a/test.sh b/test.sh new file mode 100755 index 0000000..5314b1d --- /dev/null +++ b/test.sh @@ -0,0 +1,17 @@ +#!/bin/bash +set -e +set -o xtrace + +build_qbs=true +if qbs_loc="$(type -p "qbs")" || [ -z "$qbs_loc" ]; then + version="$(qbs --version)" + echo "found qbs version: $version" + a=( ${version//./ } ) + major=${a[0]} + minor=${a[1]} + echo "qbs major: $major and minor: $minor" + if [ "$major" -ge "1" ] && [ "$minor" -ge "6" ]; then + build_qbs=false + fi +fi +echo "build qbs: $build_qbs"