premake/modules/vstudio/_preload.lua
2022-01-03 08:31:44 -08:00

190 lines
3.1 KiB
Lua

--
-- _preload.lua
-- Define the makefile action(s).
-- Copyright (c) Jason Perkins and the Premake project
--
local p = premake
local project = p.project
-- initialize module.
p.modules.vstudio = p.modules.vstudio or {}
p.modules.vstudio._VERSION = p._VERSION
p.vstudio = p.modules.vstudio
-- load actions.
include("vs2005.lua")
include("vs2008.lua")
include("vs2010.lua")
include("vs2012.lua")
include("vs2013.lua")
include("vs2015.lua")
include("vs2017.lua")
include("vs2019.lua")
include("vs2022.lua")
-- Initialize Specific API
p.api.addAllowed("debugger", "VisualStudioLocal")
p.api.addAllowed("debugger", "VisualStudioRemote")
p.api.addAllowed("debugger", "VisualStudioWebBrowser")
p.api.addAllowed("debugger", "VisualStudioWebService")
p.api.register {
name = "shaderoptions",
scope = "config",
kind = "list:string",
tokens = true,
pathVars = true,
}
p.api.register {
name = "shaderdefines",
scope = "config",
kind = "list:string",
tokens = true,
}
p.api.register {
name = "shaderincludedirs",
scope = "config",
kind = "list:directory",
tokens = true,
pathVars = true,
}
p.api.register {
name = "shadertype",
scope = "config",
kind = "string",
allowed = {
"Effect",
"Vertex",
"Pixel",
"Geometry",
"Hull",
"Domain",
"Compute",
"Mesh",
"Amplification",
"Texture",
"RootSignature",
}
}
p.api.register {
name = "shadermodel",
scope = "config",
kind = "string",
allowed = {
"2.0",
"3.0",
"4.0_level_9_1",
"4.0_level_9_3",
"4.0",
"4.1",
"5.0",
"5.1",
"rootsig_1.0",
"rootsig_1.1",
"6.0",
"6.1",
"6.2",
"6.3",
"6.4",
"6.5"
}
}
p.api.register {
name = "shaderentry",
scope = "config",
kind = "string",
tokens = true,
}
p.api.register {
name = "shadervariablename",
scope = "config",
kind = "string",
tokens = true,
}
p.api.register {
name = "shaderheaderfileoutput",
scope = "config",
kind = "string",
tokens = true,
}
p.api.register {
name = "shaderobjectfileoutput",
scope = "config",
kind = "string",
tokens = true,
}
p.api.register {
name = "shaderassembler",
scope = "config",
kind = "string",
allowed = {
"NoListing",
"AssemblyCode",
"AssemblyCodeAndHex",
}
}
p.api.register {
name = "shaderassembleroutput",
scope = "config",
kind = "string",
tokens = true,
}
p.api.register {
name = "externalanglebrackets",
scope = "config",
kind = "string",
allowed = {
"On",
"Off",
},
}
p.api.register { -- DEPRECATED 2019-10-21
name = "debuggerflavor",
scope = "config",
kind = "string",
allowed = {
"Local",
"Remote",
"WebBrowser",
"WebService"
}
}
p.api.deprecateField("debuggerflavor", 'Use `debugger` instead.',
function(value)
debugger('VisualStudio' .. value)
end)
--
-- Decide when the full module should be loaded.
--
return function(cfg)
return
_ACTION == "vs2005" or
_ACTION == "vs2008" or
_ACTION == "vs2010" or
_ACTION == "vs2012" or
_ACTION == "vs2013" or
_ACTION == "vs2015" or
_ACTION == "vs2017" or
_ACTION == "vs2019" or
_ACTION == "vs2022" or
false;
end