Merge pull request #1534 from nickclark2016/issues/1526

Added Ability to Disable JMC in Visual Studio
This commit is contained in:
starkos 2020-10-16 12:23:50 -04:00 committed by GitHub
commit c6580ff1ce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 66 additions and 3 deletions

View File

@ -97,6 +97,8 @@ return {
-- Visual Studio 2013+ C/C++ Shared Items projects -- Visual Studio 2013+ C/C++ Shared Items projects
"vc2013/test_vcxitems.lua", "vc2013/test_vcxitems.lua",
-- Visual Studio 2019+ C/C++ Clang Projects -- Visual Studio 2019+ C/C++ Projects
"vc2019/test_compile_settings.lua",
"vc2019/test_link.lua",
"vc2019/test_toolset_settings.lua" "vc2019/test_toolset_settings.lua"
} }

View File

@ -0,0 +1,41 @@
--
-- tests/actions/vstudio/vc2010/test_compile_settings.lua
-- Validate compiler settings in Visual Studio 2019 C/C++ projects.
-- Copyright (c) 2011-2020 Jason Perkins and the Premake project
--
local p = premake
local suite = test.declare("vstudio_vs2019_compile_settings")
local vc2010 = p.vstudio.vc2010
local project = p.project
--
-- Setup
--
local wks, prj
function suite.setup()
p.action.set("vs2019")
wks, prj = test.createWorkspace()
end
local function prepare(platform)
local cfg = test.getconfig(prj, "Debug", platform)
vc2010.clCompile(cfg)
end
--
-- Check ClCompile for SupportJustMyCode
--
function suite.SupportJustMyCode()
justmycode "Off"
prepare()
test.capture [[
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SupportJustMyCode>false</SupportJustMyCode>
]]
end

View File

@ -5,7 +5,7 @@
-- --
local p = premake local p = premake
local suite = test.declare("vstudio_vs2019_compile_settings") local suite = test.declare("vstudio_vs2019_link")
local vc2010 = p.vstudio.vc2010 local vc2010 = p.vstudio.vc2010
local project = p.project local project = p.project

View File

@ -5,7 +5,7 @@
-- --
local p = premake local p = premake
local suite = test.declare("vstudio_vs2019_compile_settings") local suite = test.declare("vstudio_vs2019_toolset_settings")
local vc2010 = p.vstudio.vc2010 local vc2010 = p.vstudio.vc2010
local project = p.project local project = p.project

View File

@ -365,6 +365,7 @@
m.optimization, m.optimization,
m.functionLevelLinking, m.functionLevelLinking,
m.intrinsicFunctions, m.intrinsicFunctions,
m.justMyCodeDebugging,
m.minimalRebuild, m.minimalRebuild,
m.omitFramePointers, m.omitFramePointers,
m.stringPooling, m.stringPooling,
@ -2122,6 +2123,13 @@
end end
end end
function m.justMyCodeDebugging(cfg)
local jmc = cfg.justmycode
if _ACTION >= "vs2017" and jmc == "Off" then
m.element("SupportJustMyCode", nil, "false")
end
end
function m.keyword(prj) function m.keyword(prj)
-- try to determine what kind of targets we're building here -- try to determine what kind of targets we're building here

View File

@ -1411,6 +1411,15 @@
kind = "boolean" kind = "boolean"
} }
api.register {
name = "justmycode",
scope = "project",
kind = "string",
allowed = {
"Off"
}
}
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- --
-- Field name aliases for backward compatibility -- Field name aliases for backward compatibility

View File

@ -105,6 +105,9 @@
}, },
omitframepointer = { omitframepointer = {
On = "/Oy" On = "/Oy"
},
justmycode = {
Off = "false"
} }
} }