From 37c60d82c84c5b6abbd2450d3423b037b98e36f1 Mon Sep 17 00:00:00 2001
From: James Zern <jzern@google.com>
Date: Sat, 8 Mar 2014 12:52:33 -0800
Subject: [PATCH] gen_msvs_vcxproj.sh: add --enable-werror option

translates to TreatWarningAsError (/WX)
setting this via the CL environment variable is not possible due to the
/WX- default which is used on the command line

Change-Id: I0b42a9d3ca9eba6af82c25b8e434baa2fcb00156
---
 build/make/gen_msvs_vcxproj.sh | 7 ++++++-
 configure                      | 1 +
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/build/make/gen_msvs_vcxproj.sh b/build/make/gen_msvs_vcxproj.sh
index 4558aa1c17..7c8871ba20 100755
--- a/build/make/gen_msvs_vcxproj.sh
+++ b/build/make/gen_msvs_vcxproj.sh
@@ -28,6 +28,7 @@ Options:
     --lib                       Generate a project for creating a static library
     --dll                       Generate a project for creating a dll
     --static-crt                Use the static C runtime (/MT)
+    --enable-werror             Treat warnings as errors (/WX)
     --target=isa-os-cc          Target specifier (required)
     --out=filename              Write output to a file [stdout]
     --name=project_name         Name of the project (required)
@@ -233,6 +234,8 @@ for opt in "$@"; do
         ;;
         --static-crt) use_static_runtime=true
         ;;
+        --enable-werror) werror=true
+        ;;
         --ver=*)
             vs_ver="$optval"
             case "$optval" in
@@ -492,7 +495,9 @@ generate_vcxproj() {
             tag_content PreprocessorDefinitions "WIN32;$debug;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE$extradefines;%(PreprocessorDefinitions)"
             tag_content RuntimeLibrary $runtime
             tag_content WarningLevel Level3
-            # DebugInformationFormat
+            if ${werror:-false}; then
+                tag_content TreatWarningAsError true
+            fi
             close_tag ClCompile
             case "$proj_kind" in
             exe)
diff --git a/configure b/configure
index d2f17b048d..170bd8dff6 100755
--- a/configure
+++ b/configure
@@ -689,6 +689,7 @@ process_toolchain() {
              10|11|12)
                  VCPROJ_SFX=vcxproj
                  gen_vcproj_cmd=${source_path}/build/make/gen_msvs_vcxproj.sh
+                 enabled werror && gen_vcproj_cmd="${gen_vcproj_cmd} --enable-werror"
                  ;;
              esac
              all_targets="${all_targets} solution"
-- 
GitLab