mirror of
https://github.com/OpenMW/openmw.git
synced 2025-02-23 11:09:42 +00:00
Merge pull request #2854 from OpenMW/cherry-pick-e0b35232
Merge branch 'ninja' into 'master'
This commit is contained in:
commit
8d01897942
3 changed files with 236 additions and 19 deletions
26
CI/ActivateMSVC.ps1
Normal file
26
CI/ActivateMSVC.ps1
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
& "${env:COMSPEC}" /c ActivateMSVC.bat "&&" set | ForEach-Object {
|
||||||
|
$name, $value = $_ -split '=', 2
|
||||||
|
Set-Content env:\"$name" $value
|
||||||
|
}
|
||||||
|
|
||||||
|
$MissingTools = $false
|
||||||
|
$tools = "cl", "link", "rc", "mt", "awooga"
|
||||||
|
$descriptions = "MSVC Compiler", "MSVC Linker", "MS Windows Resource Compiler", "MS Windows Manifest Tool", "A made up command"
|
||||||
|
for ($i = 0; $i -lt $tools.Length; $i++) {
|
||||||
|
$present = $true
|
||||||
|
try {
|
||||||
|
Get-Command $tools[$i] *>&1 | Out-Null
|
||||||
|
$present = $present -and $?
|
||||||
|
} catch {
|
||||||
|
$present = $false
|
||||||
|
}
|
||||||
|
if (!$present) {
|
||||||
|
Write-Warning "$($tools[$i]) ($($descriptions[$i])) missing."
|
||||||
|
$MissingTools = $true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($MissingTools) {
|
||||||
|
Write-Error "Some build tools were unavailable after activating MSVC in the shell. It's likely that your Visual Studio $MSVC_DISPLAY_YEAR installation needs repairing."
|
||||||
|
exit 1
|
||||||
|
}
|
76
CI/activate_msvc.sh
Normal file
76
CI/activate_msvc.sh
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
|
||||||
|
echo "Error: Script not sourced."
|
||||||
|
echo "You must source this script for it to work, i.e. "
|
||||||
|
echo "source ./activate_msvc.sh"
|
||||||
|
echo "or"
|
||||||
|
echo ". ./activate_msvc.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
command -v unixPathAsWindows >/dev/null 2>&1 || function unixPathAsWindows {
|
||||||
|
if command -v cygpath >/dev/null 2>&1; then
|
||||||
|
cygpath -w $1
|
||||||
|
else
|
||||||
|
echo "$1" | sed "s,^/\([^/]\)/,\\1:/," | sed "s,/,\\\\,g"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function windowsSystemPathAsUnix {
|
||||||
|
if command -v cygpath >/dev/null 2>&1; then
|
||||||
|
cygpath -u -p $1
|
||||||
|
else
|
||||||
|
IFS=';' read -r -a paths <<< "$1"
|
||||||
|
declare -a convertedPaths
|
||||||
|
for entry in paths; do
|
||||||
|
convertedPaths+=(windowsPathAsUnix $entry)
|
||||||
|
done
|
||||||
|
convertedPath=printf ":%s" ${convertedPaths[@]}
|
||||||
|
echo ${convertedPath:1}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# capture CMD environment so we know what's been changed
|
||||||
|
declare -A originalCmdEnv
|
||||||
|
originalIFS="$IFS"
|
||||||
|
IFS=$'\n\r'
|
||||||
|
for pair in $(cmd //c "set"); do
|
||||||
|
IFS='=' read -r -a separatedPair <<< "${pair}"
|
||||||
|
originalCmdEnv["${separatedPair[0]}"]="${separatedPair[1]}"
|
||||||
|
done
|
||||||
|
|
||||||
|
# capture CMD environment in a shell with MSVC activated
|
||||||
|
cmdEnv="$(cmd //c "$(unixPathAsWindows "$(dirname "${BASH_SOURCE[0]}")")\ActivateMSVC.bat" "&&" set)"
|
||||||
|
|
||||||
|
declare -A cmdEnvChanges
|
||||||
|
for pair in $cmdEnv; do
|
||||||
|
if [ -n "$pair" ]; then
|
||||||
|
IFS='=' read -r -a separatedPair <<< "${pair}"
|
||||||
|
key="${separatedPair[0]}"
|
||||||
|
value="${separatedPair[1]}"
|
||||||
|
if ! [ ${originalCmdEnv[$key]+_} ] || [ "${originalCmdEnv[$key]}" != "$value" ]; then
|
||||||
|
if [ $key != 'PATH' ] && [ $key != 'path' ] && [ $key != 'Path' ]; then
|
||||||
|
export "$key=$value"
|
||||||
|
else
|
||||||
|
export PATH=$(windowsSystemPathAsUnix $value)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
MISSINGTOOLS=0
|
||||||
|
|
||||||
|
command -v cl >/dev/null 2>&1 || { echo "Error: cl (MSVC Compiler) missing."; MISSINGTOOLS=1; }
|
||||||
|
command -v link >/dev/null 2>&1 || { echo "Error: link (MSVC Linker) missing."; MISSINGTOOLS=1; }
|
||||||
|
command -v rc >/dev/null 2>&1 || { echo "Error: rc (MS Windows Resource Compiler) missing."; MISSINGTOOLS=1; }
|
||||||
|
command -v mt >/dev/null 2>&1 || { echo "Error: mt (MS Windows Manifest Tool) missing."; MISSINGTOOLS=1; }
|
||||||
|
|
||||||
|
if [ $MISSINGTOOLS -ne 0 ]; then
|
||||||
|
echo "Some build tools were unavailable after activating MSVC in the shell. It's likely that your Visual Studio $MSVC_DISPLAY_YEAR installation needs repairing."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
IFS="$originalIFS"
|
|
@ -1,6 +1,14 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# set -x # turn-on for debugging
|
# set -x # turn-on for debugging
|
||||||
|
|
||||||
|
function wrappedExit {
|
||||||
|
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
|
||||||
|
exit $1
|
||||||
|
else
|
||||||
|
return $1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
MISSINGTOOLS=0
|
MISSINGTOOLS=0
|
||||||
|
|
||||||
command -v 7z >/dev/null 2>&1 || { echo "Error: 7z (7zip) is not on the path."; MISSINGTOOLS=1; }
|
command -v 7z >/dev/null 2>&1 || { echo "Error: 7z (7zip) is not on the path."; MISSINGTOOLS=1; }
|
||||||
|
@ -8,19 +16,35 @@ command -v cmake >/dev/null 2>&1 || { echo "Error: cmake (CMake) is not on the p
|
||||||
command -v python >/dev/null 2>&1 || { echo "Warning: Python is not on the path, automatic Qt installation impossible."; }
|
command -v python >/dev/null 2>&1 || { echo "Warning: Python is not on the path, automatic Qt installation impossible."; }
|
||||||
|
|
||||||
if [ $MISSINGTOOLS -ne 0 ]; then
|
if [ $MISSINGTOOLS -ne 0 ]; then
|
||||||
exit 1
|
wrappedExit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
WORKINGDIR="$(pwd)"
|
WORKINGDIR="$(pwd)"
|
||||||
case "$WORKINGDIR" in
|
case "$WORKINGDIR" in
|
||||||
*[[:space:]]*)
|
*[[:space:]]*)
|
||||||
echo "Error: Working directory contains spaces."
|
echo "Error: Working directory contains spaces."
|
||||||
exit 1
|
wrappedExit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
|
function windowsPathAsUnix {
|
||||||
|
if command -v cygpath >/dev/null 2>&1; then
|
||||||
|
cygpath -u $1
|
||||||
|
else
|
||||||
|
echo "$1" | sed "s,\\\\,/,g" | sed "s,\(.\):,/\\1,"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function unixPathAsWindows {
|
||||||
|
if command -v cygpath >/dev/null 2>&1; then
|
||||||
|
cygpath -w $1
|
||||||
|
else
|
||||||
|
echo "$1" | sed "s,^/\([^/]\)/,\\1:/," | sed "s,/,\\\\,g"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
APPVEYOR=${APPVEYOR:-}
|
APPVEYOR=${APPVEYOR:-}
|
||||||
CI=${CI:-}
|
CI=${CI:-}
|
||||||
STEP=${STEP:-}
|
STEP=${STEP:-}
|
||||||
|
@ -33,6 +57,7 @@ KEEP=""
|
||||||
UNITY_BUILD=""
|
UNITY_BUILD=""
|
||||||
VS_VERSION=""
|
VS_VERSION=""
|
||||||
NMAKE=""
|
NMAKE=""
|
||||||
|
NINJA=""
|
||||||
PDBS=""
|
PDBS=""
|
||||||
PLATFORM=""
|
PLATFORM=""
|
||||||
CONFIGURATION=""
|
CONFIGURATION=""
|
||||||
|
@ -43,6 +68,9 @@ BULLET_DOUBLE=""
|
||||||
BULLET_DBL=""
|
BULLET_DBL=""
|
||||||
BULLET_DBL_DISPLAY="Single precision"
|
BULLET_DBL_DISPLAY="Single precision"
|
||||||
|
|
||||||
|
ACTIVATE_MSVC=""
|
||||||
|
SINGLE_CONFIG=""
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
ARGSTR=$1
|
ARGSTR=$1
|
||||||
shift
|
shift
|
||||||
|
@ -50,7 +78,7 @@ while [ $# -gt 0 ]; do
|
||||||
if [ ${ARGSTR:0:1} != "-" ]; then
|
if [ ${ARGSTR:0:1} != "-" ]; then
|
||||||
echo "Unknown argument $ARGSTR"
|
echo "Unknown argument $ARGSTR"
|
||||||
echo "Try '$0 -h'"
|
echo "Try '$0 -h'"
|
||||||
exit 1
|
wrappedExit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for (( i=1; i<${#ARGSTR}; i++ )); do
|
for (( i=1; i<${#ARGSTR}; i++ )); do
|
||||||
|
@ -81,6 +109,9 @@ while [ $# -gt 0 ]; do
|
||||||
n )
|
n )
|
||||||
NMAKE=true ;;
|
NMAKE=true ;;
|
||||||
|
|
||||||
|
N )
|
||||||
|
NINJA=true ;;
|
||||||
|
|
||||||
p )
|
p )
|
||||||
PLATFORM=$1
|
PLATFORM=$1
|
||||||
shift ;;
|
shift ;;
|
||||||
|
@ -124,7 +155,9 @@ Options:
|
||||||
-v <2013/2015/2017/2019>
|
-v <2013/2015/2017/2019>
|
||||||
Choose the Visual Studio version to use.
|
Choose the Visual Studio version to use.
|
||||||
-n
|
-n
|
||||||
Produce NMake makefiles instead of a Visual Studio solution.
|
Produce NMake makefiles instead of a Visual Studio solution. Cannout be used with -N.
|
||||||
|
-N
|
||||||
|
Produce Ninja (multi-config if CMake is new enough to support it) files instead of a Visual Studio solution. Cannot be used with -n..
|
||||||
-P
|
-P
|
||||||
Download debug symbols where available
|
Download debug symbols where available
|
||||||
-V
|
-V
|
||||||
|
@ -132,19 +165,23 @@ Options:
|
||||||
-i
|
-i
|
||||||
CMake install prefix
|
CMake install prefix
|
||||||
EOF
|
EOF
|
||||||
exit 0
|
wrappedExit 0
|
||||||
;;
|
;;
|
||||||
|
|
||||||
* )
|
* )
|
||||||
echo "Unknown argument $ARG."
|
echo "Unknown argument $ARG."
|
||||||
echo "Try '$0 -h'"
|
echo "Try '$0 -h'"
|
||||||
exit 1 ;;
|
wrappedExit 1 ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ -n "$NMAKE" ]; then
|
if [ -n "$NMAKE" ] || [ -n "$NINJA" ]; then
|
||||||
command -v nmake -? >/dev/null 2>&1 || { echo "Error: nmake (NMake) is not on the path. Make sure you have the necessary environment variables set for command-line C++ development (for example, by starting from a Developer Command Prompt)."; exit 1; }
|
if [ -n "$NMAKE" ] && [ -n "$NINJA" ]; then
|
||||||
|
echo "Cannout run in NMake and Ninja mode at the same time."
|
||||||
|
wrappedExit 1
|
||||||
|
fi
|
||||||
|
ACTIVATE_MSVC=true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z $VERBOSE ]; then
|
if [ -z $VERBOSE ]; then
|
||||||
|
@ -154,7 +191,7 @@ fi
|
||||||
if [ -z $APPVEYOR ]; then
|
if [ -z $APPVEYOR ]; then
|
||||||
echo "Running prebuild outside of Appveyor."
|
echo "Running prebuild outside of Appveyor."
|
||||||
|
|
||||||
DIR=$(echo "$0" | sed "s,\\\\,/,g" | sed "s,\(.\):,/\\1,")
|
DIR=$(windowsPathAsUnix "${BASH_SOURCE[0]}")
|
||||||
cd $(dirname "$DIR")/..
|
cd $(dirname "$DIR")/..
|
||||||
else
|
else
|
||||||
echo "Running prebuild in Appveyor."
|
echo "Running prebuild in Appveyor."
|
||||||
|
@ -333,7 +370,7 @@ case $PLATFORM in
|
||||||
|
|
||||||
* )
|
* )
|
||||||
echo "Unknown platform $PLATFORM."
|
echo "Unknown platform $PLATFORM."
|
||||||
exit 1
|
wrappedExit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -360,9 +397,18 @@ fi
|
||||||
|
|
||||||
if [ -n "$NMAKE" ]; then
|
if [ -n "$NMAKE" ]; then
|
||||||
GENERATOR="NMake Makefiles"
|
GENERATOR="NMake Makefiles"
|
||||||
|
SINGLE_CONFIG=true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $MSVC_REAL_VER -ge 16 ]; then
|
if [ -n "$NINJA" ]; then
|
||||||
|
GENERATOR="Ninja Multi-Config"
|
||||||
|
if ! cmake -E capabilities | grep -F "$GENERATOR" > /dev/null; then
|
||||||
|
SINGLE_CONFIG=true
|
||||||
|
GENERATOR="Ninja"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $MSVC_REAL_VER -ge 16 ] && [ -z "$NMAKE" ] && [ -z "$NINJA" ]; then
|
||||||
if [ $BITS -eq 64 ]; then
|
if [ $BITS -eq 64 ]; then
|
||||||
add_cmake_opts "-G\"$GENERATOR\" -A x64"
|
add_cmake_opts "-G\"$GENERATOR\" -A x64"
|
||||||
else
|
else
|
||||||
|
@ -372,7 +418,7 @@ else
|
||||||
add_cmake_opts "-G\"$GENERATOR\""
|
add_cmake_opts "-G\"$GENERATOR\""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$NMAKE" ]; then
|
if [ -n "$SINGLE_CONFIG" ]; then
|
||||||
add_cmake_opts "-DCMAKE_BUILD_TYPE=${BUILD_CONFIG}"
|
add_cmake_opts "-DCMAKE_BUILD_TYPE=${BUILD_CONFIG}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -482,7 +528,13 @@ cd .. #/..
|
||||||
BUILD_DIR="MSVC${MSVC_DISPLAY_YEAR}_${BITS}"
|
BUILD_DIR="MSVC${MSVC_DISPLAY_YEAR}_${BITS}"
|
||||||
|
|
||||||
if [ -n "$NMAKE" ]; then
|
if [ -n "$NMAKE" ]; then
|
||||||
BUILD_DIR="${BUILD_DIR}_NMake_${BUILD_CONFIG}"
|
BUILD_DIR="${BUILD_DIR}_NMake"
|
||||||
|
elif [ -n "$NINJA" ]; then
|
||||||
|
BUILD_DIR="${BUILD_DIR}_Ninja"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$SINGLE_CONFIG" ]; then
|
||||||
|
BUILD_DIR="${BUILD_DIR}_${BUILD_CONFIG}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z $KEEP ]; then
|
if [ -z $KEEP ]; then
|
||||||
|
@ -520,10 +572,10 @@ fi
|
||||||
# We work around this by installing to root of the current working drive and then move it to our deps
|
# We work around this by installing to root of the current working drive and then move it to our deps
|
||||||
# get the current working drive's root, we'll install to that temporarily
|
# get the current working drive's root, we'll install to that temporarily
|
||||||
CWD_DRIVE_ROOT="$(powershell -command '(get-location).Drive.Root')Boost_temp"
|
CWD_DRIVE_ROOT="$(powershell -command '(get-location).Drive.Root')Boost_temp"
|
||||||
CWD_DRIVE_ROOT_BASH=$(echo "$CWD_DRIVE_ROOT" | sed "s,\\\\,/,g" | sed "s,\(.\):,/\\1,")
|
CWD_DRIVE_ROOT_BASH=$(windowsPathAsUnix "$CWD_DRIVE_ROOT")
|
||||||
if [ -d CWD_DRIVE_ROOT_BASH ]; then
|
if [ -d CWD_DRIVE_ROOT_BASH ]; then
|
||||||
printf "Cannot continue, ${CWD_DRIVE_ROOT_BASH} aka ${CWD_DRIVE_ROOT} already exists. Please remove before re-running. ";
|
printf "Cannot continue, ${CWD_DRIVE_ROOT_BASH} aka ${CWD_DRIVE_ROOT} already exists. Please remove before re-running. ";
|
||||||
exit 1;
|
wrappedExit 1;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -d ${BOOST_SDK} ] && grep "BOOST_VERSION ${BOOST_VER_SDK}" Boost/boost/version.hpp > /dev/null; then
|
if [ -d ${BOOST_SDK} ] && grep "BOOST_VERSION ${BOOST_VER_SDK}" Boost/boost/version.hpp > /dev/null; then
|
||||||
|
@ -748,7 +800,7 @@ fi
|
||||||
else
|
else
|
||||||
SUFFIX=""
|
SUFFIX=""
|
||||||
fi
|
fi
|
||||||
DIR=$(echo "${QT_SDK}" | sed "s,\\\\,/,g" | sed "s,\(.\):,/\\1,")
|
DIR=$(windowsPathAsUnix "${QT_SDK}")
|
||||||
add_runtime_dlls "${DIR}/bin/Qt5"{Core,Gui,Network,OpenGL,Widgets}${SUFFIX}.dll
|
add_runtime_dlls "${DIR}/bin/Qt5"{Core,Gui,Network,OpenGL,Widgets}${SUFFIX}.dll
|
||||||
add_qt_platform_dlls "${DIR}/plugins/platforms/qwindows${SUFFIX}.dll"
|
add_qt_platform_dlls "${DIR}/plugins/platforms/qwindows${SUFFIX}.dll"
|
||||||
echo Done.
|
echo Done.
|
||||||
|
@ -859,14 +911,15 @@ fi
|
||||||
#if [ -z $CI ]; then
|
#if [ -z $CI ]; then
|
||||||
echo "- Copying Runtime DLLs..."
|
echo "- Copying Runtime DLLs..."
|
||||||
DLL_PREFIX=""
|
DLL_PREFIX=""
|
||||||
if [ -z $NMAKE ]; then
|
if [ -z $SINGLE_CONFIG ]; then
|
||||||
mkdir -p $BUILD_CONFIG
|
mkdir -p $BUILD_CONFIG
|
||||||
DLL_PREFIX="$BUILD_CONFIG/"
|
DLL_PREFIX="$BUILD_CONFIG/"
|
||||||
fi
|
fi
|
||||||
for DLL in $RUNTIME_DLLS; do
|
for DLL in $RUNTIME_DLLS; do
|
||||||
TARGET="$(basename "$DLL")"
|
TARGET="$(basename "$DLL")"
|
||||||
if [[ "$DLL" == *":"* ]]; then
|
if [[ "$DLL" == *":"* ]]; then
|
||||||
IFS=':'; SPLIT=( ${DLL} ); unset IFS
|
originalIFS="$IFS"
|
||||||
|
IFS=':'; SPLIT=( ${DLL} ); IFS=$originalIFS
|
||||||
DLL=${SPLIT[0]}
|
DLL=${SPLIT[0]}
|
||||||
TARGET=${SPLIT[1]}
|
TARGET=${SPLIT[1]}
|
||||||
fi
|
fi
|
||||||
|
@ -889,6 +942,42 @@ fi
|
||||||
done
|
done
|
||||||
echo
|
echo
|
||||||
#fi
|
#fi
|
||||||
|
|
||||||
|
if ! [ -z $ACTIVATE_MSVC ]; then
|
||||||
|
echo -n "- Activating MSVC in the current shell... "
|
||||||
|
command -v vswhere >/dev/null 2>&1 || { echo "Error: vswhere is not on the path."; wrappedExit 1; }
|
||||||
|
|
||||||
|
MSVC_INSTALLATION_PATH=$(vswhere -legacy -version "[$MSVC_VER,$(awk "BEGIN { print $MSVC_REAL_VER + 1; exit }"))" -property installationPath)
|
||||||
|
if [ $MSVC_REAL_VER -ge 15 ]; then
|
||||||
|
echo "@\"${MSVC_INSTALLATION_PATH}\Common7\Tools\VsDevCmd.bat\" -no_logo -arch=$([ $BITS -eq 64 ] && echo "amd64" || echo "x86") -host_arch=$([ $(uname -m) == 'x86_64' ] && echo "amd64" || echo "x86")" > ActivateMSVC.bat
|
||||||
|
else
|
||||||
|
if [ $(uname -m) == 'x86_64' ]; then
|
||||||
|
if [ $BITS -eq 64 ]; then
|
||||||
|
compiler=amd64
|
||||||
|
else
|
||||||
|
compiler=amd64_x86
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ $BITS -eq 64 ]; then
|
||||||
|
compiler=x86_amd64
|
||||||
|
else
|
||||||
|
compiler=x86
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
echo "@\"${MSVC_INSTALLATION_PATH}\VC\vcvarsall.bat\" $compiler" > ActivateMSVC.bat
|
||||||
|
fi
|
||||||
|
|
||||||
|
cp "../CI/activate_msvc.sh" .
|
||||||
|
sed -i "s/\$MSVC_DISPLAY_YEAR/$MSVC_DISPLAY_YEAR/g" activate_msvc.sh
|
||||||
|
source ./activate_msvc.sh
|
||||||
|
|
||||||
|
cp "../CI/ActivateMSVC.ps1" .
|
||||||
|
sed -i "s/\$MSVC_DISPLAY_YEAR/$MSVC_DISPLAY_YEAR/g" ActivateMSVC.ps1
|
||||||
|
|
||||||
|
echo "done."
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -z $VERBOSE ]; then
|
if [ -z $VERBOSE ]; then
|
||||||
printf -- "- Configuring... "
|
printf -- "- Configuring... "
|
||||||
else
|
else
|
||||||
|
@ -899,8 +988,34 @@ RET=$?
|
||||||
if [ -z $VERBOSE ]; then
|
if [ -z $VERBOSE ]; then
|
||||||
if [ $RET -eq 0 ]; then
|
if [ $RET -eq 0 ]; then
|
||||||
echo Done.
|
echo Done.
|
||||||
|
if [ -n $ACTIVATE_MSVC ]; then
|
||||||
|
echo
|
||||||
|
echo "Note: you must manually activate MSVC for the shell in which you want to do the build."
|
||||||
|
echo
|
||||||
|
echo "Some scripts have been created in the build directory to do so in an existing shell."
|
||||||
|
echo "Bash: source activate_msvc.sh"
|
||||||
|
echo "CMD: ActivateMSVC.bat"
|
||||||
|
echo "PowerShell: ActivateMSVC.ps1"
|
||||||
|
echo
|
||||||
|
echo "You may find options to launch a Development/Native Tools/Cross Tools shell in your start menu or Visual Studio."
|
||||||
|
echo
|
||||||
|
if [ $(uname -m) == 'x86_64' ]; then
|
||||||
|
if [ $BITS -eq 64 ]; then
|
||||||
|
inheritEnvironments=msvc_x64_x64
|
||||||
|
else
|
||||||
|
inheritEnvironments=msvc_x64
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ $BITS -eq 64 ]; then
|
||||||
|
inheritEnvironments=msvc_x86_x64
|
||||||
|
else
|
||||||
|
inheritEnvironments=msvc_x86
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
echo "In Visual Studio 15.3 (2017 Update 3) or later, try setting '\"inheritEnvironments\": [ \"$inheritEnvironments\" ]' in CMakeSettings.json to build in the IDE."
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
echo Failed.
|
echo Failed.
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
exit $RET
|
wrappedExit $RET
|
||||||
|
|
Loading…
Reference in a new issue