1228f9247SSergey Makeevif not _ACTION then 2228f9247SSergey Makeev _ACTION="vs2010" 3228f9247SSergey Makeevend 4228f9247SSergey Makeev 5d5e144daSbombombyisPOSIX = false 6228f9247SSergey MakeevisVisualStudio = false 7228f9247SSergey Makeev 8228f9247SSergey Makeevif _ACTION == "vs2002" or _ACTION == "vs2003" or _ACTION == "vs2005" or _ACTION == "vs2008" or _ACTION == "vs2010" then 9228f9247SSergey Makeev isVisualStudio = true 10228f9247SSergey Makeevend 1153fd86e4SSergey Makeev 129c581545SSergey Makeevif _ACTION == "codeblocks" or _ACTION == "gmake" 13d5e144daSbombombythen 14d5e144daSbombomby isPosix = true 15d5e144daSbombombyend 16d5e144daSbombomby 1753fd86e4SSergey Makeevsolution "TaskScheduler" 1853fd86e4SSergey Makeev 1953fd86e4SSergey Makeev language "C++" 2053fd86e4SSergey Makeev 2153fd86e4SSergey Makeev location ( "Build/" .. _ACTION ) 2253fd86e4SSergey Makeev flags {"NoManifest", "ExtraWarnings", "StaticRuntime", "NoMinimalRebuild", "FloatFast", "EnableSSE2" } 2353fd86e4SSergey Makeev optimization_flags = { "OptimizeSpeed" } 2453fd86e4SSergey Makeev targetdir("Bin") 2553fd86e4SSergey Makeev 2653fd86e4SSergey Makeev local config_list = { 2753fd86e4SSergey Makeev "Release", 2853fd86e4SSergey Makeev "Debug", 298112dedfSSergey Makeev "Instrumented_Release", 308112dedfSSergey Makeev "Instrumented_Debug" 3153fd86e4SSergey Makeev } 3253fd86e4SSergey Makeev local platform_list = { 3353fd86e4SSergey Makeev "x32", 3453fd86e4SSergey Makeev "x64" 3553fd86e4SSergey Makeev } 3653fd86e4SSergey Makeev 3753fd86e4SSergey Makeev configurations(config_list) 3853fd86e4SSergey Makeev platforms(platform_list) 3953fd86e4SSergey Makeev 4053fd86e4SSergey Makeev 4153fd86e4SSergey Makeev-- CONFIGURATIONS 4253fd86e4SSergey Makeev 438112dedfSSergey Makeevconfiguration "Instrumented_Release" 448112dedfSSergey Makeev defines { "NDEBUG", "MT_INSTRUMENTED_BUILD" } 458112dedfSSergey Makeev flags { "Symbols", optimization_flags } 468112dedfSSergey Makeev 478112dedfSSergey Makeevconfiguration "Instrumented_Debug" 488112dedfSSergey Makeev defines { "_DEBUG", "MT_INSTRUMENTED_BUILD" } 498112dedfSSergey Makeev flags { "Symbols" } 508112dedfSSergey Makeev 516d35225cSSergey Makeevconfiguration "Release" 5253fd86e4SSergey Makeev defines { "NDEBUG" } 5353fd86e4SSergey Makeev flags { "Symbols", optimization_flags } 5453fd86e4SSergey Makeev 556d35225cSSergey Makeevconfiguration "Debug" 5653fd86e4SSergey Makeev defines { "_DEBUG" } 5753fd86e4SSergey Makeev flags { "Symbols" } 5853fd86e4SSergey Makeev 5953fd86e4SSergey Makeevconfiguration "x32" 60228f9247SSergey Makeevif isVisualStudio then 6133e9cadaSSergey Makeev buildoptions { "/wd4127" } 62228f9247SSergey Makeevelse 639f22f926SSergey Makeev buildoptions { "-std=c++11" } 64228f9247SSergey Makeevend 6553fd86e4SSergey Makeev 6653fd86e4SSergey Makeevconfiguration "x64" 67228f9247SSergey Makeevif isVisualStudio then 6833e9cadaSSergey Makeev buildoptions { "/wd4127" } 69228f9247SSergey Makeevelse 709f22f926SSergey Makeev buildoptions { "-std=c++11" } 71228f9247SSergey Makeevend 7253fd86e4SSergey Makeev 7353fd86e4SSergey Makeev 7453fd86e4SSergey Makeev-- give each configuration/platform a unique output directory 7553fd86e4SSergey Makeev 7653fd86e4SSergey Makeevfor _, config in ipairs(config_list) do 7753fd86e4SSergey Makeev for _, plat in ipairs(platform_list) do 7853fd86e4SSergey Makeev configuration { config, plat } 79*a3f9d5daSSergey Makeev objdir ( "Build/" .. _ACTION .. "/tmp/" .. config .. "-" .. plat ) 8053fd86e4SSergey Makeev end 8153fd86e4SSergey Makeevend 8253fd86e4SSergey Makeev 8353fd86e4SSergey Makeev-- SUBPROJECTS 8453fd86e4SSergey Makeev 850bb199c0SSergey Makeevproject "Tests" 8653fd86e4SSergey Makeev flags {"NoPCH"} 8753fd86e4SSergey Makeev kind "ConsoleApp" 8853fd86e4SSergey Makeev files { 890bb199c0SSergey Makeev "Tests/**.*", 900bb199c0SSergey Makeev } 910bb199c0SSergey Makeev 920bb199c0SSergey Makeev includedirs 930bb199c0SSergey Makeev { 940bb199c0SSergey Makeev "Squish", "Scheduler/Include", "TestFramework/UnitTest++" 950bb199c0SSergey Makeev } 960bb199c0SSergey Makeev 970bb199c0SSergey Makeev if isPosix then 980bb199c0SSergey Makeev excludes { "Src/Platform/Windows/**.*" } 990bb199c0SSergey Makeev else 1000bb199c0SSergey Makeev excludes { "Src/Platform/Posix/**.*" } 1010bb199c0SSergey Makeev end 1020bb199c0SSergey Makeev 1030bb199c0SSergey Makeev links { 1040bb199c0SSergey Makeev "UnitTest++", "Squish", "TaskScheduler" 1050bb199c0SSergey Makeev } 1060bb199c0SSergey Makeev 107b53376a6SSergey Makeev if isPosix then 108b53376a6SSergey Makeev links { "pthread" } 109b53376a6SSergey Makeev end 1100bb199c0SSergey Makeev 11179ba6b05SSergey Makeev if isVisualStudio then 11279ba6b05SSergey Makeev links { "Ws2_32" } 11379ba6b05SSergey Makeev end 11479ba6b05SSergey Makeev 11579ba6b05SSergey Makeev 1160bb199c0SSergey Makeevproject "TaskScheduler" 1170bb199c0SSergey Makeev kind "StaticLib" 1180bb199c0SSergey Makeev flags {"NoPCH"} 1190bb199c0SSergey Makeev files { 12047d53e4dSSergey Makeev "Scheduler/**.*", 12153fd86e4SSergey Makeev } 12253fd86e4SSergey Makeev 1236c0290e5SSergey Makeev includedirs 1246c0290e5SSergey Makeev { 12547d53e4dSSergey Makeev "Squish", "Scheduler/Include", "TestFramework/UnitTest++" 1266c0290e5SSergey Makeev } 12771fa5439Sbombomby 12871fa5439Sbombomby if isPosix then 129ea9ac498Sbombomby excludes { "Src/Platform/Windows/**.*" } 13071fa5439Sbombomby else 13171fa5439Sbombomby excludes { "Src/Platform/Posix/**.*" } 13271fa5439Sbombomby end 1336c0290e5SSergey Makeev 1343e70a85eSbombomby 13533e9cadaSSergey Makeevproject "UnitTest++" 13633e9cadaSSergey Makeev kind "StaticLib" 13733e9cadaSSergey Makeev defines { "_CRT_SECURE_NO_WARNINGS" } 13833e9cadaSSergey Makeev files { 139ef51dd4dSSergey Makeev "TestFramework/UnitTest++/**.cpp", 140ef51dd4dSSergey Makeev "TestFramework/UnitTest++/**.h", 14133e9cadaSSergey Makeev } 14233e9cadaSSergey Makeev 143d5e144daSbombombyif isPosix then 144d5e144daSbombomby excludes { "TestFramework/UnitTest++/Win32/**.*" } 145d5e144daSbombombyelse 146d5e144daSbombomby excludes { "TestFramework/UnitTest++/Posix/**.*" } 147d5e144daSbombombyend 14833e9cadaSSergey Makeev 14933e9cadaSSergey Makeev 1506c0290e5SSergey Makeevproject "Squish" 1516c0290e5SSergey Makeev kind "StaticLib" 1526c0290e5SSergey Makeev defines { "_CRT_SECURE_NO_WARNINGS" } 1536c0290e5SSergey Makeev files { 1546c0290e5SSergey Makeev "Squish/**.*", 1556c0290e5SSergey Makeev } 1566c0290e5SSergey Makeev 1576c0290e5SSergey Makeev includedirs 1586c0290e5SSergey Makeev { 1596c0290e5SSergey Makeev "Squish" 1606c0290e5SSergey Makeev } 1616c0290e5SSergey Makeev 1626c0290e5SSergey Makeev 163