From 3209a9fa6e87ad4d2f9d1087a1206347df4c6214 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 24 Nov 2016 11:38:44 +0200 Subject: Reorganize the script structure --- msvc-lib-common | 99 --------------------------------------------------------- 1 file changed, 99 deletions(-) delete mode 100755 msvc-lib-common (limited to 'msvc-lib-common') diff --git a/msvc-lib-common b/msvc-lib-common deleted file mode 100755 index e533829..0000000 --- a/msvc-lib-common +++ /dev/null @@ -1,99 +0,0 @@ -#! /usr/bin/env bash - -# Common lib.exe driver that expects the VCBIN and LIB variables to be set for -# the specific MSVC version/configuration. -# -# It's not clear/documented why we need LIB or what the /LIBPATH option is -# for. Perhaps for link-time code generation (/LTCG). -# - -trap "{ exit 1; }" ERR -set -o errtrace # Trap in functions. - -function info () { echo "$*" 1>&2; } -function error () { info "$*"; exit 1; } - -source $(dirname $(realpath ${BASH_SOURCE[0]}))/msvc-common - -# Translate absolute paths from POSIX to Windows. Use bash array to store -# arguments in case they contain spaces. -# -# This needs to be done for both certain option values and arguments. -# Arguments are tricky in that unless we recognize every option, and option -# may look a lot like an absolute POSIX path (e.g., /nologo). The heuristics -# that we are going to use here is that if the argument starts with / and -# contains at least one more /, then we consider it an argument. Otherwise -- -# an options. We will also explicitly recognize certain options which may -# not fit this scheme well. -# -args=() - -while [ $# -gt 0 ]; do - case ${1^^} in # Uppercase for case-insensitive comparison. - - # /DEF[:filename] - # /OUT:filename - # - [/-]DEF:* | \ - [/-]OUT:*) - args=("${args[@]}" "$(split_translate 5 $1)") - shift - ;; - - # /LIST[:filename] - # /NAME:filename - # - [/-]LIST:* | \ - [/-]NAME:*) - args=("${args[@]}" "$(split_translate 6 $1)") - shift - ;; - - # /LIBPATH:dir - # - [/-]LIBPATH:*) - args=("${args[@]}" "$(split_translate 9 $1)") - shift - ;; - - # Handle other options with separate values. This makes sure we don't try - # to path-translate them. - # - - # Aren't any. - - # Handle other options with combined values that could possibly be - # interpreted as paths, for example /EXTRACT:foo/bar.obj. - # - [/-]EXPORT:* | \ - [/-]EXTRACT:* | \ - [/-]INCLUDE:* | \ - [/-]REMOVE:*) - args=("${args[@]}" "$1") - shift - ;; - - # Option or argument. - # - *) - # If contains at least two slashes, treat it as a path. - # - if [[ "$1" == /*/* ]]; then - args=("${args[@]}" "$(translate $1)") - else - args=("${args[@]}" "$1") - fi - shift - ;; - esac -done - -export LIB - -# link.exe may need to run other tools (/LTCG). -# -export WINEPATH="$VCBIN;$VCDLL;$SDKBIN" - -# lib.exe always sends diagnostics to stdout. -# -msvc_exec 1 "$VCBIN\\lib.exe" "${args[@]}" -- cgit v1.1