premake/modules/vstudio/vs2005_csproj.lua
2020-01-05 19:59:51 +00:00

105 lines
2.7 KiB
Lua

--
-- vs2005_csproj.lua
-- Generate a Visual Studio 2005+ C# project.
-- Copyright (c) Jason Perkins and the Premake project
--
local p = premake
p.vstudio.cs2005 = {}
local vstudio = p.vstudio
local cs2005 = p.vstudio.cs2005
local dotnetbase = p.vstudio.dotnetbase
local project = p.project
local config = p.config
local fileconfig = p.fileconfig
local dotnet = p.tools.dotnet
cs2005.elements = {}
cs2005.elements.project = function (prj)
if dotnetbase.isNewFormatProject(prj) then
return {
dotnetbase.projectElement,
dotnetbase.projectProperties,
dotnetbase.configurations,
dotnetbase.applicationIcon,
dotnetbase.references
}
else
return {
dotnetbase.xmlDeclaration,
dotnetbase.projectElement,
dotnetbase.commonProperties,
dotnetbase.projectProperties,
dotnetbase.configurations,
dotnetbase.applicationIcon,
dotnetbase.references
}
end
end
cs2005.elements.projectProperties = function (cfg)
if dotnetbase.isNewFormatProject(cfg) then
return {
dotnetbase.outputType,
dotnetbase.appDesignerFolder,
dotnetbase.rootNamespace,
dotnetbase.assemblyName,
dotnetbase.netcore.targetFramework,
dotnetbase.fileAlignment,
dotnetbase.bindingRedirects,
dotnetbase.netcore.useWpf,
dotnetbase.csversion,
dotnetbase.netcore.enableDefaultCompileItems,
}
else
return {
dotnetbase.configurationCondition,
dotnetbase.platformCondition,
dotnetbase.productVersion,
dotnetbase.schemaVersion,
dotnetbase.projectGuid,
dotnetbase.outputType,
dotnetbase.appDesignerFolder,
dotnetbase.rootNamespace,
dotnetbase.assemblyName,
dotnetbase.targetFrameworkVersion,
dotnetbase.targetFrameworkProfile,
dotnetbase.fileAlignment,
dotnetbase.bindingRedirects,
dotnetbase.projectTypeGuids,
dotnetbase.csversion,
}
end
end
cs2005.elements.configuration = function ()
return {
dotnetbase.propertyGroup,
dotnetbase.debugProps,
dotnetbase.outputProps,
dotnetbase.compilerProps,
dotnetbase.NoWarn
}
end
function cs2005.generate(prj)
dotnetbase.prepare(cs2005)
dotnetbase.generate(prj)
end
function cs2005.targets(prj)
if not dotnetbase.isNewFormatProject(prj) then
local bin = iif(_ACTION <= "vs2010", "MSBuildBinPath", "MSBuildToolsPath")
_p(1,'<Import Project="$(%s)\\Microsoft.CSharp.targets" />', bin)
_p(1,'<!-- To modify your build process, add your task inside one of the targets below and uncomment it.')
_p(1,' Other similar extension points exist, see Microsoft.Common.targets.')
_p(1,'<Target Name="BeforeBuild">')
_p(1,'</Target>')
_p(1,'<Target Name="AfterBuild">')
_p(1,'</Target>')
_p(1,'-->')
end
end