-- -- tests/actions/vstudio/vc2010/test_excluded_configs.lua -- Check handling of configurations which have been excluded from the build. -- Copyright (c) 2012 Jason Perkins and the Premake project -- T.vs2010_excluded_configs = {} local suite = T.vs2010_excluded_configs local vc2010 = premake.vstudio.vc2010 -- -- Setup/teardown -- local sln, prj function suite.setup() _ACTION = "vs2010" sln = solution("MySolution") configurations { "Debug", "Release" } platforms { "Zeus", "Ares" } language "C++" prj = project("MyProject") kind "ConsoleApp" links { "MyProject2", "MyProject3" } project("MyProject2") kind "StaticLib" project("MyProject3") kind "StaticLib" removeplatforms { "Ares" } end local function prepare(platform) local cfg = premake.project.getconfig(prj, "Debug", platform) vc2010.link(cfg) end -- -- If a sibling is included in one configuration and excluded from -- another, the included configuration should link as normal. -- function suite.normalLink_onIncludedConfig() prepare("Zeus") test.capture [[ Console false mainCRTStartup ]] end function suite.normalLink_onIncludedConfig_externalTool() solution("MySolution") system "PS3" prepare("Zeus") test.capture [[ Console false mainCRTStartup ]] end -- -- If a sibling is included in one configuration and excluded from -- another, the excluded configuration should force explicit linking -- and not list the excluded library. -- function suite.explicitLink_onExcludedConfig() prepare("Ares") test.capture [[ Console false MyProject2.lib;%(AdditionalDependencies) mainCRTStartup false ]] end function suite.explicitLink_onExcludedConfig_externalTool() solution("MySolution") system "PS3" prepare("Ares") test.capture [[ Console false libMyProject2.a;%(AdditionalDependencies) mainCRTStartup false ]] end