summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2013-11-30 04:08:01 +0100
committerJay Berkenbilt <ejb@ql.org>2013-11-30 21:58:32 +0100
commit88c29873e56e69c83aa0d0798188cd792368059b (patch)
treeea8b1dfccea05098cd2eadd96d111e3a112b343a
parentb75b19589db35cbeeb43c147a24bfcda91fe008f (diff)
downloadqpdf-88c29873e56e69c83aa0d0798188cd792368059b.tar.zst
Add /FS flag (msvc) for parallel builds
-rw-r--r--ChangeLog3
-rw-r--r--configure.ac20
-rw-r--r--make/msvc.mk2
3 files changed, 22 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index a6788b35..888f359f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2013-11-29 Jay Berkenbilt <ejb@ql.org>
+ * Add /FS to msvc builds to allow parallel builds to work with
+ Visual C++ 2013.
+
* Add missing #include <algorithm> in some files that use std::min
and std::max.
diff --git a/configure.ac b/configure.ac
index af54b6ce..683b239f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -200,7 +200,7 @@ if test "$BUILDRULES" = "msvc"; then
dnl deprecated. Removing these warnings helps people who want to
dnl write applications based on qpdf that can be Windows 8
dnl certified.
- try_flags="/w14996"
+ try_flags="-w14996"
else
try_flags="-Wall"
fi
@@ -234,7 +234,23 @@ if test "$BUILDRULES" != "msvc"; then
fi
if test "$BUILDRULES" = "msvc"; then
- try_flags="/WX"
+ try_flags=-FS
+ AC_MSG_CHECKING(for whether $CC supports $try_flags)
+ oCFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS $try_flags"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[int a = 1; int b = a; a = b;]])],
+ [qpdf_USE_FS=1],[qpdf_USE_FS=0])
+ if test "$qpdf_USE_FS" = "1"; then
+ AC_MSG_RESULT(yes)
+ CXXFLAGS="$CXXFLAGS $try_flags"
+ else
+ AC_MSG_RESULT(no)
+ CFLAGS=$oCFLAGS
+ fi
+fi
+
+if test "$BUILDRULES" = "msvc"; then
+ try_flags="-WX"
else
try_flags="-Werror"
fi
diff --git a/make/msvc.mk b/make/msvc.mk
index 5e3bb570..bef53957 100644
--- a/make/msvc.mk
+++ b/make/msvc.mk
@@ -27,7 +27,7 @@ clean::
# 1 2
# Usage: $(call compile,src,includes)
define compile
- cl /nologo /Zi /Gy /EHsc /MD /TP /GR $(CPPFLAGS) $(CXXFLAGS) \
+ cl /nologo /O2 /Zi /Gy /EHsc /MD /TP /GR $(CPPFLAGS) $(CXXFLAGS) \
$(foreach I,$(2),-I$(I)) \
/c $(1) /Fo$(call src_to_obj,$(1))
endef