Merge pull request #1606 from withmorten/master
add RemoveUnreferencedCodeData option to disable /Zc:inline
This commit is contained in:
commit
954271148c
@ -1546,6 +1546,45 @@
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
</ClCompile>
|
||||
]]
|
||||
end
|
||||
|
||||
--
|
||||
-- If removeUnreferencedCodeData flag is set, add <RemoveUnreferencedCodeData> element
|
||||
--
|
||||
|
||||
function suite.onRemoveUnreferencedCodeDataOff()
|
||||
removeunreferencedcodedata "Off"
|
||||
prepare()
|
||||
test.capture [[
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RemoveUnreferencedCodeData>false</RemoveUnreferencedCodeData>
|
||||
]]
|
||||
end
|
||||
|
||||
function suite.onRemoveUnreferencedCodeDataOn()
|
||||
removeunreferencedcodedata "On"
|
||||
prepare()
|
||||
test.capture [[
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RemoveUnreferencedCodeData>true</RemoveUnreferencedCodeData>
|
||||
]]
|
||||
end
|
||||
|
||||
function suite.onRemoveUnreferencedCodeDataNotSpecified()
|
||||
prepare()
|
||||
test.capture [[
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
</ClCompile>
|
||||
]]
|
||||
end
|
@ -386,7 +386,8 @@
|
||||
m.languageStandard,
|
||||
m.conformanceMode,
|
||||
m.structMemberAlignment,
|
||||
m.useFullPaths
|
||||
m.useFullPaths,
|
||||
m.removeUnreferencedCodeData
|
||||
}
|
||||
|
||||
if cfg.kind == p.STATICLIB then
|
||||
@ -1515,6 +1516,16 @@
|
||||
end
|
||||
end
|
||||
|
||||
function m.removeUnreferencedCodeData(cfg)
|
||||
if cfg.removeUnreferencedCodeData ~= nil then
|
||||
if cfg.removeUnreferencedCodeData then
|
||||
m.element("RemoveUnreferencedCodeData", nil, "true")
|
||||
else
|
||||
m.element("RemoveUnreferencedCodeData", nil, "false")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function m.additionalCompileOptions(cfg, condition)
|
||||
local opts = cfg.buildoptions
|
||||
if _ACTION == "vs2015" or vstudio.isMakefile(cfg) then
|
||||
|
@ -795,6 +795,12 @@
|
||||
kind = "boolean"
|
||||
}
|
||||
|
||||
api.register {
|
||||
name = "removeunreferencedcodedata",
|
||||
scope = "config",
|
||||
kind = "boolean"
|
||||
}
|
||||
|
||||
api.register {
|
||||
name = "swiftversion",
|
||||
scope = "config",
|
||||
|
30
website/docs/removeunreferencedcodedata.md
Normal file
30
website/docs/removeunreferencedcodedata.md
Normal file
@ -0,0 +1,30 @@
|
||||
Sets the `RemoveUnreferencedCodeData` property for a configuration or all configurations within a project or workspace, adding or removing the `/Zc:inline[-]` build option.
|
||||
|
||||
[/Zc:inline (Remove unreferenced COMDAT)](https://docs.microsoft.com/en-us/cpp/build/reference/zc-inline-remove-unreferenced-comdat?view=msvc-160)
|
||||
|
||||
If this property is unset, it defaults to `true` in Visual Studio.
|
||||
|
||||
```lua
|
||||
removeunreferencedcodedata ("value")
|
||||
```
|
||||
|
||||
### Parameters ###
|
||||
|
||||
`value` one of:
|
||||
* `on` - Enables `RemoveUnreferencedCodeData`.
|
||||
* `off` - Disables `RemoveUnreferencedCodeData`.
|
||||
|
||||
### Applies To ###
|
||||
|
||||
Workspaces and projects.
|
||||
|
||||
### Availability ###
|
||||
|
||||
Premake 5.0 alpha 16 or later.
|
||||
|
||||
### Examples ###
|
||||
|
||||
```lua
|
||||
RemoveUnreferencedCodeData "Off"
|
||||
```
|
||||
|
@ -192,6 +192,7 @@ module.exports = {
|
||||
'project',
|
||||
'propertydefinition',
|
||||
'rebuildcommands',
|
||||
'removeunreferencedcodedata',
|
||||
'resdefines',
|
||||
'resincludedirs',
|
||||
'resoptions',
|
||||
|
Reference in New Issue
Block a user