xref: /TaskScheduler/premake4.lua (revision 228f9247)
1*228f9247SSergey Makeevif not _ACTION then
2*228f9247SSergey Makeev	_ACTION="vs2010"
3*228f9247SSergey Makeevend
4*228f9247SSergey Makeev
5*228f9247SSergey MakeevisVisualStudio = false
6*228f9247SSergey Makeev
7*228f9247SSergey Makeevif _ACTION == "vs2002" or _ACTION == "vs2003" or _ACTION == "vs2005" or _ACTION == "vs2008" or _ACTION == "vs2010" then
8*228f9247SSergey Makeev	isVisualStudio = true
9*228f9247SSergey Makeevend
1053fd86e4SSergey Makeev
1153fd86e4SSergey Makeevsolution "TaskScheduler"
1253fd86e4SSergey Makeev
1353fd86e4SSergey Makeev	language "C++"
1453fd86e4SSergey Makeev
1553fd86e4SSergey Makeev	location ( "Build/" .. _ACTION )
1653fd86e4SSergey Makeev	flags {"NoManifest", "ExtraWarnings", "StaticRuntime", "NoMinimalRebuild", "FloatFast", "EnableSSE2" }
1753fd86e4SSergey Makeev	optimization_flags = { "OptimizeSpeed" }
1853fd86e4SSergey Makeev	targetdir("Bin")
1953fd86e4SSergey Makeev
2053fd86e4SSergey Makeev	local config_list = {
2153fd86e4SSergey Makeev		"Release",
2253fd86e4SSergey Makeev		"Debug",
2353fd86e4SSergey Makeev	}
2453fd86e4SSergey Makeev	local platform_list = {
2553fd86e4SSergey Makeev		"x32",
2653fd86e4SSergey Makeev		"x64"
2753fd86e4SSergey Makeev	}
2853fd86e4SSergey Makeev
2953fd86e4SSergey Makeev	configurations(config_list)
3053fd86e4SSergey Makeev	platforms(platform_list)
3153fd86e4SSergey Makeev
3253fd86e4SSergey Makeev
3353fd86e4SSergey Makeev-- CONFIGURATIONS
3453fd86e4SSergey Makeev
356d35225cSSergey Makeevconfiguration "Release"
3653fd86e4SSergey Makeev	defines { "NDEBUG" }
3753fd86e4SSergey Makeev	flags { "Symbols", optimization_flags }
3853fd86e4SSergey Makeev
396d35225cSSergey Makeevconfiguration "Debug"
4053fd86e4SSergey Makeev	defines { "_DEBUG" }
4153fd86e4SSergey Makeev	flags { "Symbols" }
4253fd86e4SSergey Makeev
4353fd86e4SSergey Makeevconfiguration "x32"
4453fd86e4SSergey Makeev	libdirs { "$(DXSDK_DIR)/Lib/x86" }
45*228f9247SSergey Makeevif isVisualStudio then
4633e9cadaSSergey Makeev        buildoptions { "/wd4127"  }
47*228f9247SSergey Makeevelse
48*228f9247SSergey Makeev	buildoptions { "-std=c++11 }
49*228f9247SSergey Makeevend
5053fd86e4SSergey Makeev
5153fd86e4SSergey Makeevconfiguration "x64"
5253fd86e4SSergey Makeev	libdirs { "$(DXSDK_DIR)/Lib/x64" }
53*228f9247SSergey Makeevif isVisualStudio then
5433e9cadaSSergey Makeev        buildoptions { "/wd4127"  }
55*228f9247SSergey Makeevelse
56*228f9247SSergey Makeev	buildoptions { "-std=c++11 }
57*228f9247SSergey Makeevend
5853fd86e4SSergey Makeev
5953fd86e4SSergey Makeev
6053fd86e4SSergey Makeev--  give each configuration/platform a unique output directory
6153fd86e4SSergey Makeev
6253fd86e4SSergey Makeevfor _, config in ipairs(config_list) do
6353fd86e4SSergey Makeev	for _, plat in ipairs(platform_list) do
6453fd86e4SSergey Makeev		configuration { config, plat }
6553fd86e4SSergey Makeev		objdir    ( "build/" .. _ACTION .. "/tmp/"  .. config  .. "-" .. plat )
6653fd86e4SSergey Makeev	end
6753fd86e4SSergey Makeevend
6853fd86e4SSergey Makeev
6953fd86e4SSergey Makeev-- SUBPROJECTS
7053fd86e4SSergey Makeev
7153fd86e4SSergey Makeevproject "TaskScheduler"
7253fd86e4SSergey Makeev 	flags {"NoPCH"}
7353fd86e4SSergey Makeev 	kind "ConsoleApp"
7453fd86e4SSergey Makeev 	files {
7553fd86e4SSergey Makeev 		"Src/**.*",
7653fd86e4SSergey Makeev 	}
7753fd86e4SSergey Makeev
786c0290e5SSergey Makeev	includedirs
796c0290e5SSergey Makeev	{
806c0290e5SSergey Makeev		"Squish"
816c0290e5SSergey Makeev	}
826c0290e5SSergey Makeev
8353fd86e4SSergey Makeev	links {
846c0290e5SSergey Makeev		"UnitTest++", "Squish"
8553fd86e4SSergey Makeev	}
8633e9cadaSSergey Makeev
8733e9cadaSSergey Makeev
8833e9cadaSSergey Makeevproject "UnitTest++"
8933e9cadaSSergey Makeev	kind "StaticLib"
9033e9cadaSSergey Makeev	defines { "_CRT_SECURE_NO_WARNINGS" }
9133e9cadaSSergey Makeev	files {
9233e9cadaSSergey Makeev		"TestFramework/UnitTest++/**.*",
9333e9cadaSSergey Makeev	}
9433e9cadaSSergey Makeev
9533e9cadaSSergey Makeev	excludes {
9633e9cadaSSergey Makeev		"TestFramework/UnitTest++/Posix/**.*"
9733e9cadaSSergey Makeev	}
9833e9cadaSSergey Makeev
9933e9cadaSSergey Makeev
1006c0290e5SSergey Makeevproject "Squish"
1016c0290e5SSergey Makeev	kind "StaticLib"
1026c0290e5SSergey Makeev	defines { "_CRT_SECURE_NO_WARNINGS" }
1036c0290e5SSergey Makeev	files {
1046c0290e5SSergey Makeev		"Squish/**.*",
1056c0290e5SSergey Makeev	}
1066c0290e5SSergey Makeev
1076c0290e5SSergey Makeev	includedirs
1086c0290e5SSergey Makeev	{
1096c0290e5SSergey Makeev		"Squish"
1106c0290e5SSergey Makeev	}
1116c0290e5SSergey Makeev
1126c0290e5SSergey Makeev
113