#! /usr/bin/env bash # Common rc.exe driver that expects the VC and INCLUDE variables to be set for # the specific MSVC version/configuration. 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. # # Note that the order of the cases is important. Specifically, we want, e.g., # /D before /D*. # # Note that rc.exe /? is missing some options that are documented in MSDN. # args=() while [ $# -gt 0 ]; do case ${1^^} in # Uppercase for case-insensitive comparison. # /I