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