Skip to content

Commit

Permalink
fix some flags conflict for vs201x project
Browse files Browse the repository at this point in the history
  • Loading branch information
waruqi committed Aug 29, 2016
1 parent 4adfc24 commit 2b15a1b
Showing 1 changed file with 36 additions and 29 deletions.
65 changes: 36 additions & 29 deletions xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua
Original file line number Diff line number Diff line change
Expand Up @@ -193,8 +193,8 @@ function _make_configurations(vcxprojfile, vsinfo, target, vcxprojdir)

-- make OutputDirectory and IntermediateDirectory
vcxprojfile:enter("<PropertyGroup Condition=\"\'%$(Configuration)|%$(Platform)\'==\'$(mode)|Win32\'\">")
vcxprojfile:print("<OutDir>%s</OutDir>", path.relative(path.absolute(config.get("buildir")), vcxprojdir))
vcxprojfile:print("<IntDir>%$(Configuration)</IntDir>")
vcxprojfile:print("<OutDir>%s\\</OutDir>", path.relative(path.absolute(config.get("buildir")), vcxprojdir))
vcxprojfile:print("<IntDir>%$(Configuration)\\</IntDir>")
if target:get("kind") == "binary" then
vcxprojfile:print("<LinkIncremental>true</LinkIncremental>")
end
Expand All @@ -204,36 +204,43 @@ end
-- make ItemDefinitionGroup
function _make_item_define_group(vcxprojfile, vsinfo, target, vcxprojdir)

-- make ItemDefinitionGroup for linker
-- enter ItemDefinitionGroup
vcxprojfile:enter("<ItemDefinitionGroup Condition=\"\'%$(Configuration)|%$(Platform)\'==\'$(mode)|Win32\'\">")

-- for linker?
if target:get("kind") == "binary" then
vcxprojfile:enter("<ItemDefinitionGroup Condition=\"\'%$(Configuration)|%$(Platform)\'==\'$(mode)|Win32\'\">")
vcxprojfile:enter("<Link>")

-- make AdditionalOptions
vcxprojfile:print("<AdditionalOptions>%s %%(AdditionalOptions)</AdditionalOptions>", _make_linkflags(target, vcxprojdir))

-- generate debug infomation?
local debug = false
for _, symbol in ipairs(target:get("symbols")) do
if symbol == "debug" then
debug = true
break
end
vcxprojfile:enter("<Link>")

-- make AdditionalOptions
vcxprojfile:print("<AdditionalOptions>%s %%(AdditionalOptions)</AdditionalOptions>", _make_linkflags(target, vcxprojdir))

-- generate debug infomation?
local debug = false
for _, symbol in ipairs(target:get("symbols")) do
if symbol == "debug" then
debug = true
break
end
vcxprojfile:print("<GenerateDebugInformation>%s</GenerateDebugInformation>", tostring(debug))

-- make SubSystem
vcxprojfile:print("<SubSystem>Console</SubSystem>")

-- make TargetMachine
vcxprojfile:print("<TargetMachine>%s</TargetMachine>", ifelse(config.arch() == "x64", "MachineX64", "MachineX86"))

vcxprojfile:leave("</Link>")
vcxprojfile:leave("</ItemDefinitionGroup>")
else
vcxprojfile:enter("<ItemDefinitionGroup>")
vcxprojfile:leave("</ItemDefinitionGroup>")
end
vcxprojfile:print("<GenerateDebugInformation>%s</GenerateDebugInformation>", tostring(debug))

-- make SubSystem
vcxprojfile:print("<SubSystem>Console</SubSystem>")

-- make TargetMachine
vcxprojfile:print("<TargetMachine>%s</TargetMachine>", ifelse(config.arch() == "x64", "MachineX64", "MachineX86"))

vcxprojfile:leave("</Link>")
end

-- for compiler?
vcxprojfile:enter("<ClCompile>")
vcxprojfile:print("<Optimization>Disabled</Optimization>") -- disable optimization default
vcxprojfile:print("<ProgramDataBaseFileName></ProgramDataBaseFileName>") -- disable pdb file default
vcxprojfile:leave("</ClCompile>")

-- leave ItemDefinitionGroup
vcxprojfile:leave("</ItemDefinitionGroup>")
end

-- make file
Expand Down

0 comments on commit 2b15a1b

Please sign in to comment.