Browse Source

Merge commit '16381923fb7b9087ce559fb1cd3594469ac6788b'

* commit '16381923fb7b9087ce559fb1cd3594469ac6788b':
  configure: Check whether MSVC requires using the C89-to-C99 converter

Merged-by: Michael Niedermayer <michaelni@gmx.at>
Michael Niedermayer 11 years ago
parent
commit
a7663ad9cf
1 changed files with 14 additions and 1 deletions
  1. 14 1
      configure

+ 14 - 1
configure

@@ -2623,7 +2623,20 @@ case "$toolchain" in
         target_exec_args="--error-exitcode=1 --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp"
     ;;
     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 ffmpeg, 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"