aboutsummaryrefslogtreecommitdiff
path: root/msvc-lib-common
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-11-24 11:38:44 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-11-24 11:38:44 +0200
commit3209a9fa6e87ad4d2f9d1087a1206347df4c6214 (patch)
tree84646641225fba708abb5733ce175ceb904a0de0 /msvc-lib-common
parentd929add3baa3fac5720cf4053c42bb846d83c66b (diff)
Reorganize the script structure
Diffstat (limited to 'msvc-lib-common')
-rwxr-xr-xmsvc-lib-common99
1 files changed, 0 insertions, 99 deletions
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[@]}"