xref: /TaskScheduler/premake4.lua (revision ea9ac498)
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
12d5e144daSbombombyif _ACTION == "codeblocks"
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",
2953fd86e4SSergey Makeev	}
3053fd86e4SSergey Makeev	local platform_list = {
3153fd86e4SSergey Makeev		"x32",
3253fd86e4SSergey Makeev		"x64"
3353fd86e4SSergey Makeev	}
3453fd86e4SSergey Makeev
3553fd86e4SSergey Makeev	configurations(config_list)
3653fd86e4SSergey Makeev	platforms(platform_list)
3753fd86e4SSergey Makeev
3853fd86e4SSergey Makeev
3953fd86e4SSergey Makeev-- CONFIGURATIONS
4053fd86e4SSergey Makeev
416d35225cSSergey Makeevconfiguration "Release"
4253fd86e4SSergey Makeev	defines { "NDEBUG" }
4353fd86e4SSergey Makeev	flags { "Symbols", optimization_flags }
4453fd86e4SSergey Makeev
456d35225cSSergey Makeevconfiguration "Debug"
4653fd86e4SSergey Makeev	defines { "_DEBUG" }
4753fd86e4SSergey Makeev	flags { "Symbols" }
4853fd86e4SSergey Makeev
4953fd86e4SSergey Makeevconfiguration "x32"
5053fd86e4SSergey Makeev	libdirs { "$(DXSDK_DIR)/Lib/x86" }
51228f9247SSergey Makeevif isVisualStudio then
5233e9cadaSSergey Makeev        buildoptions { "/wd4127"  }
53228f9247SSergey Makeevelse
549f22f926SSergey Makeev	buildoptions { "-std=c++11" }
55228f9247SSergey Makeevend
5653fd86e4SSergey Makeev
5753fd86e4SSergey Makeevconfiguration "x64"
5853fd86e4SSergey Makeev	libdirs { "$(DXSDK_DIR)/Lib/x64" }
59228f9247SSergey Makeevif isVisualStudio then
6033e9cadaSSergey Makeev        buildoptions { "/wd4127"  }
61228f9247SSergey Makeevelse
629f22f926SSergey Makeev	buildoptions { "-std=c++11" }
63228f9247SSergey Makeevend
6453fd86e4SSergey Makeev
6553fd86e4SSergey Makeev
6653fd86e4SSergey Makeev--  give each configuration/platform a unique output directory
6753fd86e4SSergey Makeev
6853fd86e4SSergey Makeevfor _, config in ipairs(config_list) do
6953fd86e4SSergey Makeev	for _, plat in ipairs(platform_list) do
7053fd86e4SSergey Makeev		configuration { config, plat }
7153fd86e4SSergey Makeev		objdir    ( "build/" .. _ACTION .. "/tmp/"  .. config  .. "-" .. plat )
7253fd86e4SSergey Makeev	end
7353fd86e4SSergey Makeevend
7453fd86e4SSergey Makeev
7553fd86e4SSergey Makeev-- SUBPROJECTS
7653fd86e4SSergey Makeev
7753fd86e4SSergey Makeevproject "TaskScheduler"
7853fd86e4SSergey Makeev 	flags {"NoPCH"}
7953fd86e4SSergey Makeev 	kind "ConsoleApp"
8053fd86e4SSergey Makeev 	files {
8153fd86e4SSergey Makeev 		"Src/**.*",
8253fd86e4SSergey Makeev 	}
8353fd86e4SSergey Makeev
846c0290e5SSergey Makeev	includedirs
856c0290e5SSergey Makeev	{
866c0290e5SSergey Makeev		"Squish"
876c0290e5SSergey Makeev	}
8871fa5439Sbombomby
8971fa5439Sbombomby	if isPosix then
90*ea9ac498Sbombomby	excludes { "Src/Platform/Windows/**.*" }
9171fa5439Sbombomby	else
9271fa5439Sbombomby	excludes { "Src/Platform/Posix/**.*" }
9371fa5439Sbombomby	end
946c0290e5SSergey Makeev
9553fd86e4SSergey Makeev	links {
966c0290e5SSergey Makeev		"UnitTest++", "Squish"
9753fd86e4SSergey Makeev	}
9833e9cadaSSergey Makeev
993e70a85eSbombomby	if isPosix then
1003e70a85eSbombomby	links { "pthread" }
1013e70a85eSbombomby	end
1023e70a85eSbombomby
1033e70a85eSbombomby
1043e70a85eSbombomby
10533e9cadaSSergey Makeev
10633e9cadaSSergey Makeevproject "UnitTest++"
10733e9cadaSSergey Makeev	kind "StaticLib"
10833e9cadaSSergey Makeev	defines { "_CRT_SECURE_NO_WARNINGS" }
10933e9cadaSSergey Makeev	files {
11033e9cadaSSergey Makeev		"TestFramework/UnitTest++/**.*",
11133e9cadaSSergey Makeev	}
11233e9cadaSSergey Makeev
113d5e144daSbombombyif isPosix then
114d5e144daSbombomby	excludes { "TestFramework/UnitTest++/Win32/**.*" }
115d5e144daSbombombyelse
116d5e144daSbombomby	excludes { "TestFramework/UnitTest++/Posix/**.*" }
117d5e144daSbombombyend
11833e9cadaSSergey Makeev
11933e9cadaSSergey Makeev
1206c0290e5SSergey Makeevproject "Squish"
1216c0290e5SSergey Makeev	kind "StaticLib"
1226c0290e5SSergey Makeev	defines { "_CRT_SECURE_NO_WARNINGS" }
1236c0290e5SSergey Makeev	files {
1246c0290e5SSergey Makeev		"Squish/**.*",
1256c0290e5SSergey Makeev	}
1266c0290e5SSergey Makeev
1276c0290e5SSergey Makeev	includedirs
1286c0290e5SSergey Makeev	{
1296c0290e5SSergey Makeev		"Squish"
1306c0290e5SSergey Makeev	}
1316c0290e5SSergey Makeev
1326c0290e5SSergey Makeev
133