xref: /TaskScheduler/premake4.lua (revision a3f9d5da)
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")
2553fd86e4SSergey Makeev
2653fd86e4SSergey Makeev	local config_list = {
2753fd86e4SSergey Makeev		"Release",
2853fd86e4SSergey Makeev		"Debug",
298112dedfSSergey Makeev                "Instrumented_Release",
308112dedfSSergey Makeev                "Instrumented_Debug"
3153fd86e4SSergey Makeev	}
3253fd86e4SSergey Makeev	local platform_list = {
3353fd86e4SSergey Makeev		"x32",
3453fd86e4SSergey Makeev		"x64"
3553fd86e4SSergey Makeev	}
3653fd86e4SSergey Makeev
3753fd86e4SSergey Makeev	configurations(config_list)
3853fd86e4SSergey Makeev	platforms(platform_list)
3953fd86e4SSergey Makeev
4053fd86e4SSergey Makeev
4153fd86e4SSergey Makeev-- CONFIGURATIONS
4253fd86e4SSergey Makeev
438112dedfSSergey Makeevconfiguration "Instrumented_Release"
448112dedfSSergey Makeev	defines { "NDEBUG", "MT_INSTRUMENTED_BUILD" }
458112dedfSSergey Makeev	flags { "Symbols", optimization_flags }
468112dedfSSergey Makeev
478112dedfSSergey Makeevconfiguration "Instrumented_Debug"
488112dedfSSergey Makeev	defines { "_DEBUG", "MT_INSTRUMENTED_BUILD" }
498112dedfSSergey Makeev	flags { "Symbols" }
508112dedfSSergey Makeev
516d35225cSSergey Makeevconfiguration "Release"
5253fd86e4SSergey Makeev	defines { "NDEBUG" }
5353fd86e4SSergey Makeev	flags { "Symbols", optimization_flags }
5453fd86e4SSergey Makeev
556d35225cSSergey Makeevconfiguration "Debug"
5653fd86e4SSergey Makeev	defines { "_DEBUG" }
5753fd86e4SSergey Makeev	flags { "Symbols" }
5853fd86e4SSergey Makeev
5953fd86e4SSergey Makeevconfiguration "x32"
60228f9247SSergey Makeevif isVisualStudio then
6133e9cadaSSergey Makeev        buildoptions { "/wd4127"  }
62228f9247SSergey Makeevelse
639f22f926SSergey Makeev	buildoptions { "-std=c++11" }
64228f9247SSergey Makeevend
6553fd86e4SSergey Makeev
6653fd86e4SSergey Makeevconfiguration "x64"
67228f9247SSergey Makeevif isVisualStudio then
6833e9cadaSSergey Makeev        buildoptions { "/wd4127"  }
69228f9247SSergey Makeevelse
709f22f926SSergey Makeev	buildoptions { "-std=c++11" }
71228f9247SSergey Makeevend
7253fd86e4SSergey Makeev
7353fd86e4SSergey Makeev
7453fd86e4SSergey Makeev--  give each configuration/platform a unique output directory
7553fd86e4SSergey Makeev
7653fd86e4SSergey Makeevfor _, config in ipairs(config_list) do
7753fd86e4SSergey Makeev	for _, plat in ipairs(platform_list) do
7853fd86e4SSergey Makeev		configuration { config, plat }
79*a3f9d5daSSergey Makeev		objdir    ( "Build/" .. _ACTION .. "/tmp/"  .. config  .. "-" .. plat )
8053fd86e4SSergey Makeev	end
8153fd86e4SSergey Makeevend
8253fd86e4SSergey Makeev
8353fd86e4SSergey Makeev-- SUBPROJECTS
8453fd86e4SSergey Makeev
850bb199c0SSergey Makeevproject "Tests"
8653fd86e4SSergey Makeev 	flags {"NoPCH"}
8753fd86e4SSergey Makeev 	kind "ConsoleApp"
8853fd86e4SSergey Makeev 	files {
890bb199c0SSergey Makeev 		"Tests/**.*",
900bb199c0SSergey Makeev 	}
910bb199c0SSergey Makeev
920bb199c0SSergey Makeev	includedirs
930bb199c0SSergey Makeev	{
940bb199c0SSergey Makeev		"Squish", "Scheduler/Include", "TestFramework/UnitTest++"
950bb199c0SSergey Makeev	}
960bb199c0SSergey Makeev
970bb199c0SSergey Makeev	if isPosix then
980bb199c0SSergey Makeev	excludes { "Src/Platform/Windows/**.*" }
990bb199c0SSergey Makeev	else
1000bb199c0SSergey Makeev	excludes { "Src/Platform/Posix/**.*" }
1010bb199c0SSergey Makeev	end
1020bb199c0SSergey Makeev
1030bb199c0SSergey Makeev	links {
1040bb199c0SSergey Makeev		"UnitTest++", "Squish", "TaskScheduler"
1050bb199c0SSergey Makeev	}
1060bb199c0SSergey Makeev
107b53376a6SSergey Makeev	if isPosix then
108b53376a6SSergey Makeev		links { "pthread" }
109b53376a6SSergey Makeev	end
1100bb199c0SSergey Makeev
11179ba6b05SSergey Makeev	if isVisualStudio then
11279ba6b05SSergey Makeev		links { "Ws2_32" }
11379ba6b05SSergey Makeev	end
11479ba6b05SSergey Makeev
11579ba6b05SSergey Makeev
1160bb199c0SSergey Makeevproject "TaskScheduler"
1170bb199c0SSergey Makeev        kind "StaticLib"
1180bb199c0SSergey Makeev 	flags {"NoPCH"}
1190bb199c0SSergey Makeev 	files {
12047d53e4dSSergey Makeev 		"Scheduler/**.*",
12153fd86e4SSergey Makeev 	}
12253fd86e4SSergey Makeev
1236c0290e5SSergey Makeev	includedirs
1246c0290e5SSergey Makeev	{
12547d53e4dSSergey Makeev		"Squish", "Scheduler/Include", "TestFramework/UnitTest++"
1266c0290e5SSergey Makeev	}
12771fa5439Sbombomby
12871fa5439Sbombomby	if isPosix then
129ea9ac498Sbombomby	excludes { "Src/Platform/Windows/**.*" }
13071fa5439Sbombomby	else
13171fa5439Sbombomby	excludes { "Src/Platform/Posix/**.*" }
13271fa5439Sbombomby	end
1336c0290e5SSergey Makeev
1343e70a85eSbombomby
13533e9cadaSSergey Makeevproject "UnitTest++"
13633e9cadaSSergey Makeev	kind "StaticLib"
13733e9cadaSSergey Makeev	defines { "_CRT_SECURE_NO_WARNINGS" }
13833e9cadaSSergey Makeev	files {
139ef51dd4dSSergey Makeev		"TestFramework/UnitTest++/**.cpp",
140ef51dd4dSSergey Makeev                "TestFramework/UnitTest++/**.h",
14133e9cadaSSergey Makeev	}
14233e9cadaSSergey Makeev
143d5e144daSbombombyif isPosix then
144d5e144daSbombomby	excludes { "TestFramework/UnitTest++/Win32/**.*" }
145d5e144daSbombombyelse
146d5e144daSbombomby	excludes { "TestFramework/UnitTest++/Posix/**.*" }
147d5e144daSbombombyend
14833e9cadaSSergey Makeev
14933e9cadaSSergey Makeev
1506c0290e5SSergey Makeevproject "Squish"
1516c0290e5SSergey Makeev	kind "StaticLib"
1526c0290e5SSergey Makeev	defines { "_CRT_SECURE_NO_WARNINGS" }
1536c0290e5SSergey Makeev	files {
1546c0290e5SSergey Makeev		"Squish/**.*",
1556c0290e5SSergey Makeev	}
1566c0290e5SSergey Makeev
1576c0290e5SSergey Makeev	includedirs
1586c0290e5SSergey Makeev	{
1596c0290e5SSergey Makeev		"Squish"
1606c0290e5SSergey Makeev	}
1616c0290e5SSergey Makeev
1626c0290e5SSergey Makeev
163