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") 2516889716SSergey Makeev 2616889716SSergey Makeevif isVisualStudio then 2725869a1eSSergey Makeev debugdir ("Bin") 2816889716SSergey Makeevend 2916889716SSergey Makeev 3053fd86e4SSergey Makeev 3153fd86e4SSergey Makeev local config_list = { 3253fd86e4SSergey Makeev "Release", 3353fd86e4SSergey Makeev "Debug", 348112dedfSSergey Makeev "Instrumented_Release", 358112dedfSSergey Makeev "Instrumented_Debug" 3653fd86e4SSergey Makeev } 3753fd86e4SSergey Makeev local platform_list = { 3853fd86e4SSergey Makeev "x32", 3953fd86e4SSergey Makeev "x64" 4053fd86e4SSergey Makeev } 4153fd86e4SSergey Makeev 4253fd86e4SSergey Makeev configurations(config_list) 4353fd86e4SSergey Makeev platforms(platform_list) 4453fd86e4SSergey Makeev 4553fd86e4SSergey Makeev 4653fd86e4SSergey Makeev-- CONFIGURATIONS 4753fd86e4SSergey Makeev 488112dedfSSergey Makeevconfiguration "Instrumented_Release" 498112dedfSSergey Makeev defines { "NDEBUG", "MT_INSTRUMENTED_BUILD" } 508112dedfSSergey Makeev flags { "Symbols", optimization_flags } 518112dedfSSergey Makeev 528112dedfSSergey Makeevconfiguration "Instrumented_Debug" 5331bebe6fSSergey Makeev defines { "_DEBUG", "MT_INSTRUMENTED_BUILD", "_CRTDBG_MAP_ALLOC" } 548112dedfSSergey Makeev flags { "Symbols" } 558112dedfSSergey Makeev 566d35225cSSergey Makeevconfiguration "Release" 5753fd86e4SSergey Makeev defines { "NDEBUG" } 5853fd86e4SSergey Makeev flags { "Symbols", optimization_flags } 5953fd86e4SSergey Makeev 606d35225cSSergey Makeevconfiguration "Debug" 6131bebe6fSSergey Makeev defines { "_DEBUG", "_CRTDBG_MAP_ALLOC"} 6253fd86e4SSergey Makeev flags { "Symbols" } 6353fd86e4SSergey Makeev 6453fd86e4SSergey Makeevconfiguration "x32" 65228f9247SSergey Makeevif isVisualStudio then 6633e9cadaSSergey Makeev buildoptions { "/wd4127" } 67228f9247SSergey Makeevelse 689f22f926SSergey Makeev buildoptions { "-std=c++11" } 696a5e1429SSergey Makeev linkoptions { "-rdynamic" } 70228f9247SSergey Makeevend 7153fd86e4SSergey Makeev 7253fd86e4SSergey Makeevconfiguration "x64" 73228f9247SSergey Makeevif isVisualStudio then 7433e9cadaSSergey Makeev buildoptions { "/wd4127" } 75228f9247SSergey Makeevelse 769f22f926SSergey Makeev buildoptions { "-std=c++11" } 776a5e1429SSergey Makeev linkoptions { "-rdynamic" } 78228f9247SSergey Makeevend 7953fd86e4SSergey Makeev 8053fd86e4SSergey Makeev 8153fd86e4SSergey Makeev-- give each configuration/platform a unique output directory 8253fd86e4SSergey Makeev 8353fd86e4SSergey Makeevfor _, config in ipairs(config_list) do 8453fd86e4SSergey Makeev for _, plat in ipairs(platform_list) do 8553fd86e4SSergey Makeev configuration { config, plat } 86a3f9d5daSSergey Makeev objdir ( "Build/" .. _ACTION .. "/tmp/" .. config .. "-" .. plat ) 8753fd86e4SSergey Makeev end 8853fd86e4SSergey Makeevend 8953fd86e4SSergey Makeev 90*9b5ce562SSergey Makeevos.mkdir("./Bin") 9125869a1eSSergey Makeevos.copyfile("./Scheduler/Profiler/filesaver.min.js", "./Bin/filesaver.min.js") 9225869a1eSSergey Makeevos.copyfile("./Scheduler/Profiler/jquery.min.js", "./Bin/jquery.min.js") 9325869a1eSSergey Makeevos.copyfile("./Scheduler/Profiler/jquery.mousewheel.min.js", "./Bin/jquery.mousewheel.min.js") 9425869a1eSSergey Makeevos.copyfile("./Scheduler/Profiler/w2ui.min.js", "./Bin/w2ui.min.js") 9525869a1eSSergey Makeev 9625869a1eSSergey Makeevos.copyfile("./Scheduler/Profiler/Profiler.html", "./Bin/Profiler.html") 9725869a1eSSergey Makeev 9825869a1eSSergey Makeevos.copyfile("./Scheduler/Profiler/w2ui-dark.min.css", "./Bin/w2ui-dark.min.css") 9925869a1eSSergey Makeev 10053fd86e4SSergey Makeev-- SUBPROJECTS 10153fd86e4SSergey Makeev 10225869a1eSSergey Makeev 10325869a1eSSergey Makeevproject "UnitTest++" 10425869a1eSSergey Makeev kind "StaticLib" 10525869a1eSSergey Makeev defines { "_CRT_SECURE_NO_WARNINGS" } 10625869a1eSSergey Makeev files { 10725869a1eSSergey Makeev "TestFramework/UnitTest++/**.cpp", 10825869a1eSSergey Makeev "TestFramework/UnitTest++/**.h", 10925869a1eSSergey Makeev } 11025869a1eSSergey Makeev 11125869a1eSSergey Makeevif isPosix then 11225869a1eSSergey Makeev excludes { "TestFramework/UnitTest++/Win32/**.*" } 11325869a1eSSergey Makeevelse 11425869a1eSSergey Makeev excludes { "TestFramework/UnitTest++/Posix/**.*" } 11525869a1eSSergey Makeevend 11625869a1eSSergey Makeev 11725869a1eSSergey Makeev 11825869a1eSSergey Makeevproject "Squish" 11925869a1eSSergey Makeev kind "StaticLib" 12025869a1eSSergey Makeev defines { "_CRT_SECURE_NO_WARNINGS" } 12125869a1eSSergey Makeev files { 12225869a1eSSergey Makeev "Squish/**.*", 12325869a1eSSergey Makeev } 12425869a1eSSergey Makeev 12525869a1eSSergey Makeev includedirs 12625869a1eSSergey Makeev { 12725869a1eSSergey Makeev "Squish" 12825869a1eSSergey Makeev } 12925869a1eSSergey Makeev 13025869a1eSSergey Makeev 13125869a1eSSergey Makeevproject "TaskScheduler" 13225869a1eSSergey Makeev kind "StaticLib" 13325869a1eSSergey Makeev flags {"NoPCH"} 13425869a1eSSergey Makeev files { 13525869a1eSSergey Makeev "Scheduler/**.*", 13625869a1eSSergey Makeev } 13725869a1eSSergey Makeev 13825869a1eSSergey Makeev includedirs 13925869a1eSSergey Makeev { 14025869a1eSSergey Makeev "Squish", "Scheduler/Include", "TestFramework/UnitTest++" 14125869a1eSSergey Makeev } 14225869a1eSSergey Makeev 14325869a1eSSergey Makeev if isPosix then 14425869a1eSSergey Makeev excludes { "Src/Platform/Windows/**.*" } 14525869a1eSSergey Makeev else 14625869a1eSSergey Makeev excludes { "Src/Platform/Posix/**.*" } 14725869a1eSSergey Makeev end 14825869a1eSSergey Makeev 1490bb199c0SSergey Makeevproject "Tests" 15053fd86e4SSergey Makeev flags {"NoPCH"} 15153fd86e4SSergey Makeev kind "ConsoleApp" 15253fd86e4SSergey Makeev files { 1530bb199c0SSergey Makeev "Tests/**.*", 1540bb199c0SSergey Makeev } 1550bb199c0SSergey Makeev 1560bb199c0SSergey Makeev includedirs 1570bb199c0SSergey Makeev { 1580bb199c0SSergey Makeev "Squish", "Scheduler/Include", "TestFramework/UnitTest++" 1590bb199c0SSergey Makeev } 1600bb199c0SSergey Makeev 1610bb199c0SSergey Makeev if isPosix then 1620bb199c0SSergey Makeev excludes { "Src/Platform/Windows/**.*" } 1630bb199c0SSergey Makeev else 1640bb199c0SSergey Makeev excludes { "Src/Platform/Posix/**.*" } 1650bb199c0SSergey Makeev end 1660bb199c0SSergey Makeev 1670bb199c0SSergey Makeev links { 1680bb199c0SSergey Makeev "UnitTest++", "Squish", "TaskScheduler" 1690bb199c0SSergey Makeev } 1700bb199c0SSergey Makeev 171b53376a6SSergey Makeev if isPosix then 172b53376a6SSergey Makeev links { "pthread" } 173b53376a6SSergey Makeev end 1740bb199c0SSergey Makeev 17579ba6b05SSergey Makeev if isVisualStudio then 17679ba6b05SSergey Makeev links { "Ws2_32" } 17779ba6b05SSergey Makeev end 17879ba6b05SSergey Makeev 17979ba6b05SSergey Makeev 180