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") 25*25869a1eSSergey Makeev debugdir ("Bin") 2653fd86e4SSergey Makeev 2753fd86e4SSergey Makeev local config_list = { 2853fd86e4SSergey Makeev "Release", 2953fd86e4SSergey Makeev "Debug", 308112dedfSSergey Makeev "Instrumented_Release", 318112dedfSSergey Makeev "Instrumented_Debug" 3253fd86e4SSergey Makeev } 3353fd86e4SSergey Makeev local platform_list = { 3453fd86e4SSergey Makeev "x32", 3553fd86e4SSergey Makeev "x64" 3653fd86e4SSergey Makeev } 3753fd86e4SSergey Makeev 3853fd86e4SSergey Makeev configurations(config_list) 3953fd86e4SSergey Makeev platforms(platform_list) 4053fd86e4SSergey Makeev 4153fd86e4SSergey Makeev 4253fd86e4SSergey Makeev-- CONFIGURATIONS 4353fd86e4SSergey Makeev 448112dedfSSergey Makeevconfiguration "Instrumented_Release" 458112dedfSSergey Makeev defines { "NDEBUG", "MT_INSTRUMENTED_BUILD" } 468112dedfSSergey Makeev flags { "Symbols", optimization_flags } 478112dedfSSergey Makeev 488112dedfSSergey Makeevconfiguration "Instrumented_Debug" 498112dedfSSergey Makeev defines { "_DEBUG", "MT_INSTRUMENTED_BUILD" } 508112dedfSSergey Makeev flags { "Symbols" } 518112dedfSSergey Makeev 526d35225cSSergey Makeevconfiguration "Release" 5353fd86e4SSergey Makeev defines { "NDEBUG" } 5453fd86e4SSergey Makeev flags { "Symbols", optimization_flags } 5553fd86e4SSergey Makeev 566d35225cSSergey Makeevconfiguration "Debug" 5753fd86e4SSergey Makeev defines { "_DEBUG" } 5853fd86e4SSergey Makeev flags { "Symbols" } 5953fd86e4SSergey Makeev 6053fd86e4SSergey Makeevconfiguration "x32" 61228f9247SSergey Makeevif isVisualStudio then 6233e9cadaSSergey Makeev buildoptions { "/wd4127" } 63228f9247SSergey Makeevelse 649f22f926SSergey Makeev buildoptions { "-std=c++11" } 65228f9247SSergey Makeevend 6653fd86e4SSergey Makeev 6753fd86e4SSergey Makeevconfiguration "x64" 68228f9247SSergey Makeevif isVisualStudio then 6933e9cadaSSergey Makeev buildoptions { "/wd4127" } 70228f9247SSergey Makeevelse 719f22f926SSergey Makeev buildoptions { "-std=c++11" } 72228f9247SSergey Makeevend 7353fd86e4SSergey Makeev 7453fd86e4SSergey Makeev 7553fd86e4SSergey Makeev-- give each configuration/platform a unique output directory 7653fd86e4SSergey Makeev 7753fd86e4SSergey Makeevfor _, config in ipairs(config_list) do 7853fd86e4SSergey Makeev for _, plat in ipairs(platform_list) do 7953fd86e4SSergey Makeev configuration { config, plat } 80a3f9d5daSSergey Makeev objdir ( "Build/" .. _ACTION .. "/tmp/" .. config .. "-" .. plat ) 8153fd86e4SSergey Makeev end 8253fd86e4SSergey Makeevend 8353fd86e4SSergey Makeev 84*25869a1eSSergey Makeev 85*25869a1eSSergey Makeevos.copyfile("./Scheduler/Profiler/filesaver.min.js", "./Bin/filesaver.min.js") 86*25869a1eSSergey Makeevos.copyfile("./Scheduler/Profiler/jquery.min.js", "./Bin/jquery.min.js") 87*25869a1eSSergey Makeevos.copyfile("./Scheduler/Profiler/jquery.mousewheel.min.js", "./Bin/jquery.mousewheel.min.js") 88*25869a1eSSergey Makeevos.copyfile("./Scheduler/Profiler/w2ui.min.js", "./Bin/w2ui.min.js") 89*25869a1eSSergey Makeev 90*25869a1eSSergey Makeevos.copyfile("./Scheduler/Profiler/Profiler.html", "./Bin/Profiler.html") 91*25869a1eSSergey Makeev 92*25869a1eSSergey Makeevos.copyfile("./Scheduler/Profiler/w2ui-dark.min.css", "./Bin/w2ui-dark.min.css") 93*25869a1eSSergey Makeev 9453fd86e4SSergey Makeev-- SUBPROJECTS 9553fd86e4SSergey Makeev 96*25869a1eSSergey Makeev 97*25869a1eSSergey Makeevproject "UnitTest++" 98*25869a1eSSergey Makeev kind "StaticLib" 99*25869a1eSSergey Makeev defines { "_CRT_SECURE_NO_WARNINGS" } 100*25869a1eSSergey Makeev files { 101*25869a1eSSergey Makeev "TestFramework/UnitTest++/**.cpp", 102*25869a1eSSergey Makeev "TestFramework/UnitTest++/**.h", 103*25869a1eSSergey Makeev } 104*25869a1eSSergey Makeev 105*25869a1eSSergey Makeevif isPosix then 106*25869a1eSSergey Makeev excludes { "TestFramework/UnitTest++/Win32/**.*" } 107*25869a1eSSergey Makeevelse 108*25869a1eSSergey Makeev excludes { "TestFramework/UnitTest++/Posix/**.*" } 109*25869a1eSSergey Makeevend 110*25869a1eSSergey Makeev 111*25869a1eSSergey Makeev 112*25869a1eSSergey Makeevproject "Squish" 113*25869a1eSSergey Makeev kind "StaticLib" 114*25869a1eSSergey Makeev defines { "_CRT_SECURE_NO_WARNINGS" } 115*25869a1eSSergey Makeev files { 116*25869a1eSSergey Makeev "Squish/**.*", 117*25869a1eSSergey Makeev } 118*25869a1eSSergey Makeev 119*25869a1eSSergey Makeev includedirs 120*25869a1eSSergey Makeev { 121*25869a1eSSergey Makeev "Squish" 122*25869a1eSSergey Makeev } 123*25869a1eSSergey Makeev 124*25869a1eSSergey Makeev 125*25869a1eSSergey Makeevproject "TaskScheduler" 126*25869a1eSSergey Makeev kind "StaticLib" 127*25869a1eSSergey Makeev flags {"NoPCH"} 128*25869a1eSSergey Makeev files { 129*25869a1eSSergey Makeev "Scheduler/**.*", 130*25869a1eSSergey Makeev } 131*25869a1eSSergey Makeev 132*25869a1eSSergey Makeev includedirs 133*25869a1eSSergey Makeev { 134*25869a1eSSergey Makeev "Squish", "Scheduler/Include", "TestFramework/UnitTest++" 135*25869a1eSSergey Makeev } 136*25869a1eSSergey Makeev 137*25869a1eSSergey Makeev if isPosix then 138*25869a1eSSergey Makeev excludes { "Src/Platform/Windows/**.*" } 139*25869a1eSSergey Makeev else 140*25869a1eSSergey Makeev excludes { "Src/Platform/Posix/**.*" } 141*25869a1eSSergey Makeev end 142*25869a1eSSergey Makeev 1430bb199c0SSergey Makeevproject "Tests" 14453fd86e4SSergey Makeev flags {"NoPCH"} 14553fd86e4SSergey Makeev kind "ConsoleApp" 14653fd86e4SSergey Makeev files { 1470bb199c0SSergey Makeev "Tests/**.*", 1480bb199c0SSergey Makeev } 1490bb199c0SSergey Makeev 1500bb199c0SSergey Makeev includedirs 1510bb199c0SSergey Makeev { 1520bb199c0SSergey Makeev "Squish", "Scheduler/Include", "TestFramework/UnitTest++" 1530bb199c0SSergey Makeev } 1540bb199c0SSergey Makeev 1550bb199c0SSergey Makeev if isPosix then 1560bb199c0SSergey Makeev excludes { "Src/Platform/Windows/**.*" } 1570bb199c0SSergey Makeev else 1580bb199c0SSergey Makeev excludes { "Src/Platform/Posix/**.*" } 1590bb199c0SSergey Makeev end 1600bb199c0SSergey Makeev 1610bb199c0SSergey Makeev links { 1620bb199c0SSergey Makeev "UnitTest++", "Squish", "TaskScheduler" 1630bb199c0SSergey Makeev } 1640bb199c0SSergey Makeev 165b53376a6SSergey Makeev if isPosix then 166b53376a6SSergey Makeev links { "pthread" } 167b53376a6SSergey Makeev end 1680bb199c0SSergey Makeev 16979ba6b05SSergey Makeev if isVisualStudio then 17079ba6b05SSergey Makeev links { "Ws2_32" } 17179ba6b05SSergey Makeev end 17279ba6b05SSergey Makeev 17379ba6b05SSergey Makeev 174