diff --git a/Makefile b/Makefile index 224c2e4e..8d219c18 100644 --- a/Makefile +++ b/Makefile @@ -98,7 +98,12 @@ APPLICATION_VERSION_DEBIAN = $(shell echo $(APPLICATION_VERSION) | tr "-" "~") # --------------------------------------------------------------------- release/electron-$(TARGET_PLATFORM)-$(TARGET_ARCH)-dependencies/node_modules: package.json npm-shrinkwrap.json - ./scripts/unix/dependencies-npm.sh -p -r "$(TARGET_ARCH)" -v "$(ELECTRON_VERSION)" -x $(dir $@) -t electron + ./scripts/unix/dependencies-npm.sh -p \ + -r "$(TARGET_ARCH)" \ + -v "$(ELECTRON_VERSION)" \ + -x $(dir $@) \ + -t electron \ + -s "$(TARGET_PLATFORM)" release/electron-$(TARGET_PLATFORM)-$(TARGET_ARCH)-dependencies/bower_components: bower.json ./scripts/unix/dependencies-bower.sh -p -x $(dir $@) @@ -200,7 +205,11 @@ electron-develop: # is defined by the `npm-shrinkwrap.json` file, and will thus # refuse to do anything but install from scratch. rm -rf node_modules - ./scripts/unix/dependencies-npm.sh -r "$(TARGET_ARCH)" -v "$(ELECTRON_VERSION)" -t electron + ./scripts/unix/dependencies-npm.sh \ + -r "$(TARGET_ARCH)" \ + -v "$(ELECTRON_VERSION)" \ + -t electron \ + -s "$(TARGET_PLATFORM)" ./scripts/unix/dependencies-bower.sh ifeq ($(TARGET_PLATFORM),darwin) diff --git a/scripts/unix/dependencies-npm.sh b/scripts/unix/dependencies-npm.sh index aa2ce497..07077477 100755 --- a/scripts/unix/dependencies-npm.sh +++ b/scripts/unix/dependencies-npm.sh @@ -37,6 +37,7 @@ function usage() { echo " -r " echo " -v " echo " -t " + echo " -s " echo " -x " echo " -f force install" echo " -p production install" @@ -46,15 +47,17 @@ function usage() { ARGV_ARCHITECTURE="" ARGV_TARGET_VERSION="" ARGV_TARGET_PLATFORM="" +ARGV_TARGET_OPERATING_SYSTEM="" ARGV_PREFIX="" ARGV_FORCE=false ARGV_PRODUCTION=false -while getopts ":r:v:t:x:fp" option; do +while getopts ":r:v:t:s:x:fp" option; do case $option in r) ARGV_ARCHITECTURE=$OPTARG ;; v) ARGV_TARGET_VERSION=$OPTARG ;; t) ARGV_TARGET_PLATFORM=$OPTARG ;; + s) ARGV_TARGET_OPERATING_SYSTEM=$OPTARG ;; x) ARGV_PREFIX=$OPTARG ;; f) ARGV_FORCE=true ;; p) ARGV_PRODUCTION=true ;; @@ -64,11 +67,20 @@ done if [ -z "$ARGV_ARCHITECTURE" ] \ || [ -z "$ARGV_TARGET_VERSION" ] \ - || [ -z "$ARGV_TARGET_PLATFORM" ] + || [ -z "$ARGV_TARGET_PLATFORM" ] \ + || [ -z "$ARGV_TARGET_OPERATING_SYSTEM" ] then usage fi +if [ "$ARGV_TARGET_OPERATING_SYSTEM" == "win32" ]; then + + # We require Visual Studio 2013 specifically since newer versions + # lack command line build tools such as `lib.exe` and `cl.exe`. + export GYP_MSVS_VERSION=2013 + +fi + if [ "$ARGV_TARGET_PLATFORM" == "electron" ]; then # Ensure native addons are compiled with the correct headers