diff options
author | dev@Rose-PC.cable.virginmedia.net <dev@Rose-PC.cable.virginmedia.net> | 2011-04-29 05:07:38 +0400 |
---|---|---|
committer | dev@Rose-PC.cable.virginmedia.net <dev@Rose-PC.cable.virginmedia.net> | 2011-04-29 05:07:38 +0400 |
commit | aa85185a84552dfb148acbe925bc0cf7a8dc27a3 (patch) | |
tree | b5d982abdb3c22fc5b3da86f868dea7eda87ac47 | |
parent | b5fb32446ca74fdef8b119a7235da821ca3adab8 (diff) |
Fixes Bug 3294459: vs10 x86_64 using incorrect debug format for minimal rebuild
there is not an option for setting /Z7 OldStyle so OldStyle was removed
/ZI is not compatible with /clr or x64_64
minimal Rebuild requires /Zi in x86_64
-rw-r--r-- | CHANGES.txt | 2 | ||||
-rw-r--r-- | src/actions/vstudio/vs2010_vcxproxj.lua | 12 | ||||
-rw-r--r-- | tests/actions/vstudio/test_vs2010_flags.lua | 27 |
3 files changed, 27 insertions, 14 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index ea4fcbc..cfb2f87 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -12,7 +12,7 @@ * Bug 3157645: Full path for xcode frameworks * Bug 3232160: Environment variables are cut off * Patch 3043933 gmake incorrectly links using -l when a solution contains a .so and .a of the same name and the static lib is wanted (Jonathan Derque) - +* Bug 3294459: vs10 x86_64 using incorrect debug format for minimal rebuild (learner) ------- 4.3 diff --git a/src/actions/vstudio/vs2010_vcxproxj.lua b/src/actions/vstudio/vs2010_vcxproxj.lua index cff6deb..d00cc11 100644 --- a/src/actions/vstudio/vs2010_vcxproxj.lua +++ b/src/actions/vstudio/vs2010_vcxproxj.lua @@ -305,12 +305,14 @@ local vs10_helpers = premake.vstudio.vs10_helpers -- local debug_info = '' if cfg.flags.Symbols then - if optimisation(cfg) ~= "Disabled" or cfg.flags.NoEditAndContinue then - debug_info = "ProgramDatabase" - elseif cfg.platform ~= "x64" then - debug_info = "EditAndContinue" + if cfg.platform == "x64" + or cfg.flags.Managed + or optimisation(cfg) ~= "Disabled" + or cfg.flags.NoEditAndContinue -- then + then + debug_info = "ProgramDatabase" else - debug_info = "OldStyle" + debug_info = "EditAndContinue" end end diff --git a/tests/actions/vstudio/test_vs2010_flags.lua b/tests/actions/vstudio/test_vs2010_flags.lua index 97057e9..15c493a 100644 --- a/tests/actions/vstudio/test_vs2010_flags.lua +++ b/tests/actions/vstudio/test_vs2010_flags.lua @@ -206,13 +206,24 @@ function vs10_flags.mfc_useOfMfc_setToStatic() test.string_contains(buffer,'<UseOfMfc>Dynamic</UseOfMfc>')
end
-function vs10_flags.Symbols_DebugInformationFormat_setToEditAndContinue()
+--there is not an option for /Z7 OldStyle
+--/ZI is not compatible with /clr or x64_64
+--minimal Rebuild requires /Zi in x86_64
+
+function vs10_flags.symbols_32BitBuild_DebugInformationFormat_setToEditAndContinue()
flags{"Symbols"}
-
+ platforms{'x32'}
local buffer = get_buffer()
test.string_contains(buffer,'<DebugInformationFormat>EditAndContinue</DebugInformationFormat>')
end
+function vs10_flags.symbols_64BitBuild_DebugInformationFormat_setToProgramDatabase()
+ flags{"Symbols"}
+ platforms{"x64"}
+ local buffer = get_buffer()
+ test.string_contains(buffer,'<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>')
+end
+
function vs10_flags.symbolsAndNoEditAndContinue_DebugInformationFormat_setToProgramDatabase()
flags{"Symbols","NoEditAndContinue"}
@@ -226,16 +237,16 @@ function vs10_flags.symbolsAndRelease_DebugInformationFormat_setToProgramDatabas local buffer = get_buffer()
test.string_contains(buffer,'<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>')
end
-function vs10_flags.noSymbols_DebugInformationFormat_blockIsEmpty()
+
+function vs10_flags.symbolsManaged_DebugInformationFormat_setToProgramDatabase()
+ flags{"Symbols","Managed"}
local buffer = get_buffer()
- test.string_contains(buffer,'<DebugInformationFormat></DebugInformationFormat>')
+ test.string_contains(buffer,'<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>')
end
-function vs10_flags.symbols_64BitBuild_DebugInformationFormat_setToOldStyle()
- flags{"Symbols"}
- platforms{"x64"}
+function vs10_flags.noSymbols_DebugInformationFormat_blockIsEmpty()
local buffer = get_buffer()
- test.string_contains(buffer,'<DebugInformationFormat>OldStyle</DebugInformationFormat>')
+ test.string_contains(buffer,'<DebugInformationFormat></DebugInformationFormat>')
end
function vs10_flags.noManifest_GenerateManifest_setToFalse()
|