1228f9247SSergey Makeevif not _ACTION then 2228f9247SSergey Makeev _ACTION="vs2010" 3228f9247SSergey Makeevend 4228f9247SSergey Makeev 5*f27fe1eeSadminisPosix = false 6228f9247SSergey MakeevisVisualStudio = false 7*f27fe1eeSadminisOSX = false 8228f9247SSergey Makeev 9228f9247SSergey Makeevif _ACTION == "vs2002" or _ACTION == "vs2003" or _ACTION == "vs2005" or _ACTION == "vs2008" or _ACTION == "vs2010" then 10228f9247SSergey Makeev isVisualStudio = true 11228f9247SSergey Makeevend 1253fd86e4SSergey Makeev 139c581545SSergey Makeevif _ACTION == "codeblocks" or _ACTION == "gmake" 14d5e144daSbombombythen 15d5e144daSbombomby isPosix = true 16d5e144daSbombombyend 17d5e144daSbombomby 18*f27fe1eeSadminif _ACTION == "xcode3" 19*f27fe1eeSadminthen 20*f27fe1eeSadmin isOSX = true 21*f27fe1eeSadminend 22*f27fe1eeSadmin 23*f27fe1eeSadmin 24*f27fe1eeSadmin 2553fd86e4SSergey Makeevsolution "TaskScheduler" 2653fd86e4SSergey Makeev 2753fd86e4SSergey Makeev language "C++" 2853fd86e4SSergey Makeev 2953fd86e4SSergey Makeev location ( "Build/" .. _ACTION ) 3053fd86e4SSergey Makeev flags {"NoManifest", "ExtraWarnings", "StaticRuntime", "NoMinimalRebuild", "FloatFast", "EnableSSE2" } 3153fd86e4SSergey Makeev optimization_flags = { "OptimizeSpeed" } 3253fd86e4SSergey Makeev targetdir("Bin") 3316889716SSergey Makeev 34*f27fe1eeSadminif isOSX then 35*f27fe1eeSadmin defines { "_XOPEN_SOURCE=600" } 36*f27fe1eeSadminend 37*f27fe1eeSadmin 3816889716SSergey Makeevif isVisualStudio then 3925869a1eSSergey Makeev debugdir ("Bin") 4016889716SSergey Makeevend 4116889716SSergey Makeev 4253fd86e4SSergey Makeev 4353fd86e4SSergey Makeev local config_list = { 4453fd86e4SSergey Makeev "Release", 4553fd86e4SSergey Makeev "Debug", 468112dedfSSergey Makeev "Instrumented_Release", 478112dedfSSergey Makeev "Instrumented_Debug" 4853fd86e4SSergey Makeev } 4953fd86e4SSergey Makeev local platform_list = { 5053fd86e4SSergey Makeev "x32", 5153fd86e4SSergey Makeev "x64" 5253fd86e4SSergey Makeev } 5353fd86e4SSergey Makeev 5453fd86e4SSergey Makeev configurations(config_list) 5553fd86e4SSergey Makeev platforms(platform_list) 5653fd86e4SSergey Makeev 5753fd86e4SSergey Makeev 5853fd86e4SSergey Makeev-- CONFIGURATIONS 5953fd86e4SSergey Makeev 608112dedfSSergey Makeevconfiguration "Instrumented_Release" 618112dedfSSergey Makeev defines { "NDEBUG", "MT_INSTRUMENTED_BUILD" } 628112dedfSSergey Makeev flags { "Symbols", optimization_flags } 638112dedfSSergey Makeev 648112dedfSSergey Makeevconfiguration "Instrumented_Debug" 6531bebe6fSSergey Makeev defines { "_DEBUG", "MT_INSTRUMENTED_BUILD", "_CRTDBG_MAP_ALLOC" } 668112dedfSSergey Makeev flags { "Symbols" } 678112dedfSSergey Makeev 686d35225cSSergey Makeevconfiguration "Release" 6953fd86e4SSergey Makeev defines { "NDEBUG" } 7053fd86e4SSergey Makeev flags { "Symbols", optimization_flags } 7153fd86e4SSergey Makeev 726d35225cSSergey Makeevconfiguration "Debug" 7331bebe6fSSergey Makeev defines { "_DEBUG", "_CRTDBG_MAP_ALLOC"} 7453fd86e4SSergey Makeev flags { "Symbols" } 7553fd86e4SSergey Makeev 7653fd86e4SSergey Makeevconfiguration "x32" 77228f9247SSergey Makeevif isVisualStudio then 7833e9cadaSSergey Makeev buildoptions { "/wd4127" } 79228f9247SSergey Makeevelse 809f22f926SSergey Makeev buildoptions { "-std=c++11" } 816a5e1429SSergey Makeev linkoptions { "-rdynamic" } 82228f9247SSergey Makeevend 8353fd86e4SSergey Makeev 8453fd86e4SSergey Makeevconfiguration "x64" 85228f9247SSergey Makeevif isVisualStudio then 8633e9cadaSSergey Makeev buildoptions { "/wd4127" } 87228f9247SSergey Makeevelse 889f22f926SSergey Makeev buildoptions { "-std=c++11" } 896a5e1429SSergey Makeev linkoptions { "-rdynamic" } 90228f9247SSergey Makeevend 9153fd86e4SSergey Makeev 9253fd86e4SSergey Makeev 9353fd86e4SSergey Makeev-- give each configuration/platform a unique output directory 9453fd86e4SSergey Makeev 9553fd86e4SSergey Makeevfor _, config in ipairs(config_list) do 9653fd86e4SSergey Makeev for _, plat in ipairs(platform_list) do 9753fd86e4SSergey Makeev configuration { config, plat } 98a3f9d5daSSergey Makeev objdir ( "Build/" .. _ACTION .. "/tmp/" .. config .. "-" .. plat ) 9953fd86e4SSergey Makeev end 10053fd86e4SSergey Makeevend 10153fd86e4SSergey Makeev 1029b5ce562SSergey Makeevos.mkdir("./Bin") 10325869a1eSSergey Makeevos.copyfile("./Scheduler/Profiler/filesaver.min.js", "./Bin/filesaver.min.js") 10425869a1eSSergey Makeevos.copyfile("./Scheduler/Profiler/jquery.min.js", "./Bin/jquery.min.js") 10525869a1eSSergey Makeevos.copyfile("./Scheduler/Profiler/jquery.mousewheel.min.js", "./Bin/jquery.mousewheel.min.js") 10625869a1eSSergey Makeevos.copyfile("./Scheduler/Profiler/w2ui.min.js", "./Bin/w2ui.min.js") 10725869a1eSSergey Makeev 10825869a1eSSergey Makeevos.copyfile("./Scheduler/Profiler/Profiler.html", "./Bin/Profiler.html") 10925869a1eSSergey Makeev 11025869a1eSSergey Makeevos.copyfile("./Scheduler/Profiler/w2ui-dark.min.css", "./Bin/w2ui-dark.min.css") 11125869a1eSSergey Makeev 11253fd86e4SSergey Makeev-- SUBPROJECTS 11353fd86e4SSergey Makeev 11425869a1eSSergey Makeev 11525869a1eSSergey Makeevproject "UnitTest++" 11625869a1eSSergey Makeev kind "StaticLib" 11725869a1eSSergey Makeev defines { "_CRT_SECURE_NO_WARNINGS" } 11825869a1eSSergey Makeev files { 11925869a1eSSergey Makeev "TestFramework/UnitTest++/**.cpp", 12025869a1eSSergey Makeev "TestFramework/UnitTest++/**.h", 12125869a1eSSergey Makeev } 12225869a1eSSergey Makeev 123*f27fe1eeSadminif isPosix or isOSX then 12425869a1eSSergey Makeev excludes { "TestFramework/UnitTest++/Win32/**.*" } 12525869a1eSSergey Makeevelse 12625869a1eSSergey Makeev excludes { "TestFramework/UnitTest++/Posix/**.*" } 12725869a1eSSergey Makeevend 12825869a1eSSergey Makeev 12925869a1eSSergey Makeev 13025869a1eSSergey Makeevproject "Squish" 13125869a1eSSergey Makeev kind "StaticLib" 13225869a1eSSergey Makeev defines { "_CRT_SECURE_NO_WARNINGS" } 13325869a1eSSergey Makeev files { 13425869a1eSSergey Makeev "Squish/**.*", 13525869a1eSSergey Makeev } 13625869a1eSSergey Makeev 13725869a1eSSergey Makeev includedirs 13825869a1eSSergey Makeev { 13925869a1eSSergey Makeev "Squish" 14025869a1eSSergey Makeev } 14125869a1eSSergey Makeev 14225869a1eSSergey Makeev 14325869a1eSSergey Makeevproject "TaskScheduler" 14425869a1eSSergey Makeev kind "StaticLib" 14525869a1eSSergey Makeev flags {"NoPCH"} 14625869a1eSSergey Makeev files { 14725869a1eSSergey Makeev "Scheduler/**.*", 14825869a1eSSergey Makeev } 14925869a1eSSergey Makeev 15025869a1eSSergey Makeev includedirs 15125869a1eSSergey Makeev { 15225869a1eSSergey Makeev "Squish", "Scheduler/Include", "TestFramework/UnitTest++" 15325869a1eSSergey Makeev } 15425869a1eSSergey Makeev 155*f27fe1eeSadmin if isPosix or isOSX then 15625869a1eSSergey Makeev excludes { "Src/Platform/Windows/**.*" } 15725869a1eSSergey Makeev else 15825869a1eSSergey Makeev excludes { "Src/Platform/Posix/**.*" } 15925869a1eSSergey Makeev end 16025869a1eSSergey Makeev 1610bb199c0SSergey Makeevproject "Tests" 16253fd86e4SSergey Makeev flags {"NoPCH"} 16353fd86e4SSergey Makeev kind "ConsoleApp" 16453fd86e4SSergey Makeev files { 1650bb199c0SSergey Makeev "Tests/**.*", 1660bb199c0SSergey Makeev } 1670bb199c0SSergey Makeev 1680bb199c0SSergey Makeev includedirs 1690bb199c0SSergey Makeev { 1700bb199c0SSergey Makeev "Squish", "Scheduler/Include", "TestFramework/UnitTest++" 1710bb199c0SSergey Makeev } 1720bb199c0SSergey Makeev 173*f27fe1eeSadmin if isPosix or isOSX then 1740bb199c0SSergey Makeev excludes { "Src/Platform/Windows/**.*" } 1750bb199c0SSergey Makeev else 1760bb199c0SSergey Makeev excludes { "Src/Platform/Posix/**.*" } 1770bb199c0SSergey Makeev end 1780bb199c0SSergey Makeev 1790bb199c0SSergey Makeev links { 1800bb199c0SSergey Makeev "UnitTest++", "Squish", "TaskScheduler" 1810bb199c0SSergey Makeev } 1820bb199c0SSergey Makeev 183*f27fe1eeSadmin 184*f27fe1eeSadmin if isPosix or isOSX then 185b53376a6SSergey Makeev links { "pthread" } 186b53376a6SSergey Makeev end 1870bb199c0SSergey Makeev 18879ba6b05SSergey Makeev if isVisualStudio then 18979ba6b05SSergey Makeev links { "Ws2_32" } 19079ba6b05SSergey Makeev end 19179ba6b05SSergey Makeev 19279ba6b05SSergey Makeev 193