xref: /TaskScheduler/premake4.lua (revision 9b5ce562)
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