summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xconfigure15
1 files changed, 14 insertions, 1 deletions
diff --git a/configure b/configure
index 664fe94531..84ee548eba 100755
--- a/configure
+++ b/configure
@@ -2279,7 +2279,20 @@ case "$toolchain" in
target_exec_args="--track-origins=yes --leak-check=full"
;;
msvc)
- cc_default="c99wrap cl"
+ # Check whether the current MSVC version needs the C99 converter.
+ # From MSVC 2013 (compiler major version 18) onwards, it does actually
+ # support enough of C99 to build libav, but we still need to use
+ # c99wrap for passing command line parameters with a space (for
+ # avoiding msys path mangling/conversion issues). Default to the new
+ # behaviour if the regexp was unable to match anything, since this
+ # successfully parses the version number of existing supported
+ # versions that require the converter (MSVC 2010 and 2012).
+ cl_major_ver=$(cl 2>&1 | sed -n 's/.*Version \([[:digit:]]\{1,\}\)\..*/\1/p')
+ if [ -z "$cl_major_ver" ] || [ $cl_major_ver -ge 18 ]; then
+ cc_default="c99wrap -noconv cl"
+ else
+ cc_default="c99wrap cl"
+ fi
ld_default="c99wrap link"
nm_default="dumpbin -symbols"
ar_default="lib"