diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index 23e88183db..93842721e8 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -3632,18 +3632,27 @@ bool cmVisualStudio10TargetGenerator::ComputeClOptions(
if (!clOptions.HasFlag("BasicRuntimeChecks")) {
clOptions.AddFlag("BasicRuntimeChecks", "Default");
}
+ if (!clOptions.HasFlag("ForceConformanceInForLoopScope")) {
+ clOptions.AddFlag("ForceConformanceInForLoopScope", "");
+ }
if (!clOptions.HasFlag("MinimalRebuild")) {
clOptions.AddFlag("MinimalRebuild", "");
}
if (!clOptions.HasFlag("Optimization")) {
clOptions.AddFlag("Optimization", "");
}
+ if (!clOptions.HasFlag("RemoveUnreferencedCodeData")) {
+ clOptions.AddFlag("RemoveUnreferencedCodeData", "");
+ }
if (!clOptions.HasFlag("RuntimeLibrary")) {
clOptions.AddFlag("RuntimeLibrary", "");
}
if (!clOptions.HasFlag("SupportJustMyCode")) {
clOptions.AddFlag("SupportJustMyCode", "");
}
+ if (!clOptions.HasFlag("TreatWChar_tAsBuiltInType")) {
+ clOptions.AddFlag("TreatWChar_tAsBuiltInType", "");
+ }
}
this->ClOptions[configName] = std::move(pOptions);
diff --git a/Tests/RunCMake/VS10Project/RunCMakeTest.cmake b/Tests/RunCMake/VS10Project/RunCMakeTest.cmake
index 232e637e13..72b1c78b29 100644
--- a/Tests/RunCMake/VS10Project/RunCMakeTest.cmake
+++ b/Tests/RunCMake/VS10Project/RunCMakeTest.cmake
@@ -34,6 +34,7 @@ run_cmake(VsCSharpReferenceProps)
run_cmake(VsCSharpWithoutSources)
run_cmake(VsCSharpDeployFiles)
run_cmake(VSCSharpDefines)
+run_cmake(VsDefaultFlags)
run_cmake(VsSdkDirectories)
run_cmake(VsGlobals)
run_cmake(VsProjectImport)
diff --git a/Tests/RunCMake/VS10Project/VsDefaultFlags-check.cmake b/Tests/RunCMake/VS10Project/VsDefaultFlags-check.cmake
new file mode 100644
index 0000000000..724d63ccd5
--- /dev/null
+++ b/Tests/RunCMake/VS10Project/VsDefaultFlags-check.cmake
@@ -0,0 +1,41 @@
+macro(VsDefaultFlags_check tgt)
+ set(vcProjectFile "${RunCMake_TEST_BINARY_DIR}/${tgt}.vcxproj")
+ if(NOT EXISTS "${vcProjectFile}")
+ set(RunCMake_TEST_FAILED "Project file ${tgt}.vcxproj does not exist.")
+ return()
+ endif()
+
+ set(HAVE_ForceConformanceInForLoopScope 0)
+ set(HAVE_RemoveUnreferencedCodeData 0)
+ set(HAVE_TreatWChar_tAsBuiltInType 0)
+
+ file(STRINGS "${vcProjectFile}" lines)
+ foreach(line IN LISTS lines)
+ if(line MATCHES "^ *")
+ set(HAVE_ForceConformanceInForLoopScope 1)
+ endif()
+ if(line MATCHES "^ *")
+ set(HAVE_RemoveUnreferencedCodeData 1)
+ endif()
+ if(line MATCHES "^ *")
+ set(HAVE_TreatWChar_tAsBuiltInType 1)
+ endif()
+ endforeach()
+
+ if(NOT HAVE_ForceConformanceInForLoopScope)
+ set(RunCMake_TEST_FAILED "Project file ${tgt}.vcxproj does not have a property.")
+ return()
+ endif()
+
+ if(NOT HAVE_RemoveUnreferencedCodeData)
+ set(RunCMake_TEST_FAILED "Project file ${tgt}.vcxproj does not have a property.")
+ return()
+ endif()
+
+ if(NOT HAVE_TreatWChar_tAsBuiltInType)
+ set(RunCMake_TEST_FAILED "Project file ${tgt}.vcxproj does not have a property.")
+ return()
+ endif()
+endmacro()
+
+VsDefaultFlags_check(empty)
diff --git a/Tests/RunCMake/VS10Project/VsDefaultFlags.cmake b/Tests/RunCMake/VS10Project/VsDefaultFlags.cmake
new file mode 100644
index 0000000000..a0094385db
--- /dev/null
+++ b/Tests/RunCMake/VS10Project/VsDefaultFlags.cmake
@@ -0,0 +1,2 @@
+enable_language(C)
+add_library(empty empty.c)