-- Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org>
--
-- This software is provided 'as-is', without any express or implied
-- warranty.  In no event will the authors be held liable for any damages
-- arising from the use of this software.
--
-- Permission is granted to anyone to use this software for any purpose,
-- including commercial applications, and to alter it and redistribute it
-- freely.
--
-- Meta-build system using premake created and maintained by
-- Benjamin Henning <b.henning@digipen.edu>

--[[
SDL2.lua

	This file provides the project definition for the entire SDL2 library, on all
	platforms supported by the meta-build system. That includes Windows, MinGW,
	Cygwin, Mac OS X, iOS, and Linux. This project is responsible for setting up
	the source trees and the complicated dependencies required to build the
	final SDL2 library. In order to simplify this process, the library is split
	into several different segments. Each segment focuses on a different
	dependency and series of configurations which are thrown into the generated
	config header file, used to build this project.
]]

SDL_project "SDL2"
	 SDL_isos "windows|mingw" -- all other bindings should be a shared library
		SDL_kind "SharedLib"
	SDL_isos "macosx|ios" -- macosx employs a static linking
		SDL_kind "StaticLib"
	-- the way premake generates project dependencies and how that affects linkage
	-- makes it difficult to use shared libraries on Linux. Cygwin has issues
	-- binding to GetProcAddress, so a static library is an easy fix.
	SDL_isos "linux|cygwin"
		SDL_kind "StaticLib"

	SDL_language "C++"
	SDL_sourcedir "../src"
	-- primary platforms
	SDL_isos "ios"
		SDL_platforms { "iOS" }
	SDL_isnotos "ios"
		SDL_platforms { "native" }
	-- additional platforms
	SDL_isos "macosx"
		SDL_platforms { "universal" }
	SDL_isos "windows|mingw"
		SDL_defines { "_WINDOWS" }

	-- Following is the dependency tree for SDL2
	-- (no SDL_os call means platform-independent)

	-- The core and minimal of the SDL2 library. This will not quite build
	-- standalone, but it's doable with a bit of tweaking to build this using the
	-- minimal configuration header. This is a good start to adding SDL support to
	-- new platforms.
	SDL_config
	{
		["SDL_AUDIO_DRIVER_DISK"] = 1,
		["SDL_AUDIO_DRIVER_DUMMY"] = 1,
		["SDL_VIDEO_DRIVER_DUMMY"] = 1
	}
	SDL_paths
	{
		"/",
		"/atomic/",
		"/audio/",
		"/audio/disk/",
		"/audio/dummy/",
		"/cpuinfo/",
		"/dynapi/",
		"/events/",
		"/file/",
		"/haptic/",
		"/joystick/",
		"/power/",
		"/render/",
		"/render/software/",
		"/stdlib/",
		"/thread/",
		"/timer/",
		"/video/",
		"/video/dummy/"
	}

	-- SDL2 on Windows
	SDL_dependency "windows"
		SDL_os "windows|mingw"
		SDL_links { "imm32", "oleaut32", "winmm", "version" }
		-- these are the links that Visual Studio includes by default
		SDL_links { "kernel32", "user32", "gdi32", "winspool",
			"comdlg32", "advapi32", "shell32", "ole32",
			"oleaut32", "uuid", "odbc32", "odbccp32" }
		SDL_config
		{
			["SDL_LOADSO_WINDOWS"] = 1,
			["SDL_THREAD_WINDOWS"] = 1,
			["SDL_TIMER_WINDOWS"] = 1,
			["SDL_VIDEO_DRIVER_WINDOWS"] = 1,
			["SDL_POWER_WINDOWS"] = 1,
			["SDL_AUDIO_DRIVER_WINMM"] = 1,
			["SDL_FILESYSTEM_WINDOWS"] = 1
		}
		SDL_paths
		{
			"/audio/winmm/",
			"/core/windows/",
			"/libm/",
			"/loadso/windows/",
			"/power/windows/",
			"/thread/windows/",
			"/timer/windows/",
			"/video/windows/",
			"/filesystem/windows/"
		}
		SDL_files
		{
			-- these files have to be specified uniquely to avoid double
			-- and incorrect linking
			"/thread/generic/SDL_syscond.c",
			"/thread/generic/SDL_sysmutex_c.h"
		}

	-- DirectX dependency
	SDL_dependency "directx"
		SDL_os "windows|mingw"
		SDL_depfunc "DirectX"
		SDL_config
		{
			["SDL_AUDIO_DRIVER_DSOUND"] = 1,
			["SDL_AUDIO_DRIVER_XAUDIO2"] = 1,
			["SDL_JOYSTICK_DINPUT"] = 1,
			["SDL_HAPTIC_DINPUT"] = 1,
			["SDL_VIDEO_RENDER_D3D"] = 1
		}
		SDL_paths
		{
			"/audio/directsound/",
			"/audio/xaudio2/",
			"/render/direct3d/",
			-- these two depend on Xinput
			"/haptic/windows/",
			"/joystick/windows/",
		}
	-- in case DirectX was not found
	SDL_dependency "notdirectx"
		SDL_os "windows|mingw"
		SDL_notdepfunc "DirectX"
		SDL_config
		{
			-- enable dummy systems (same as disabling them)
			["SDL_HAPTIC_DUMMY"] = 1,
			["SDL_JOYSTICK_DUMMY"] = 1
		}
		SDL_paths
		{
			-- since we don't have Xinput
			"/haptic/dummy/",
			"/joystick/dummy/",
		}

	-- OpenGL dependency
	SDL_dependency "opengl"
		SDL_depfunc "OpenGL"
		SDL_config
		{
			["SDL_VIDEO_OPENGL"] = 1,
			["SDL_VIDEO_RENDER_OGL"] = 1
		}
		SDL_paths { "/render/opengl/" }
	-- WGL dependency for OpenGL on Windows
	SDL_dependency "opengl-windows"
		SDL_os "windows|mingw"
		SDL_depfunc "OpenGL"
		SDL_config { ["SDL_VIDEO_OPENGL_WGL"] = 1 }
	-- GLX dependency for OpenGL on Linux
	SDL_dependency "opengl-linux"
		SDL_os "linux"
		SDL_depfunc "OpenGL"
		SDL_config { ["SDL_VIDEO_OPENGL_GLX"] = 1 }

	-- SDL2 on Mac OS X
	SDL_dependency "macosx"
		SDL_os "macosx"
		SDL_config
		{
			["SDL_AUDIO_DRIVER_COREAUDIO"] = 1,
			["SDL_JOYSTICK_IOKIT"] = 1,
			["SDL_HAPTIC_IOKIT"] = 1,
			["SDL_LOADSO_DLOPEN"] = 1,
			["SDL_THREAD_PTHREAD"] = 1,
			["SDL_THREAD_PTHREAD_RECURSIVE_MUTEX"] = 1,
			["SDL_TIMER_UNIX"] = 1,
			["SDL_VIDEO_DRIVER_COCOA"] = 1,
			["SDL_POWER_MACOSX"] = 1,
			["SDL_FILESYSTEM_COCOA"] = 1
		}
		SDL_paths
		{
			"/audio/coreaudio/",
			"/file/cocoa/",
			"/haptic/darwin/",
			"/joystick/darwin/",
			"/loadso/dlopen/",
			"/power/macosx/",
			"/render/opengl/",
			"/thread/pthread/",
			"/timer/unix/",
			"/video/cocoa/",
			"/video/x11/",
			"/filesystem/cocoa/"
		}
		SDL_links
		{
			"CoreVideo.framework",
			"AudioToolbox.framework",
			"AudioUnit.framework",
			"Cocoa.framework",
			"CoreAudio.framework",
			"IOKit.framework",
			"Carbon.framework",
			"ForceFeedback.framework",
			"CoreFoundation.framework"
		}

	-- Linux dependency: DLOpen
	SDL_dependency "linux-dlopen"
		SDL_os "linux"
		SDL_depfunc "DLOpen"
		SDL_paths { "/loadso/dlopen/" }
		SDL_config { ["SDL_LOADSO_DLOPEN"] = 1 }
	-- Linux dependency: ALSA
	SDL_dependency "linux-alsa"
		SDL_os "linux"
		SDL_depfunc "ALSA"
		SDL_paths { "/audio/alsa/" }
		SDL_config
		{
			["SDL_AUDIO_DRIVER_ALSA"] = 1,
			["SDL_AUDIO_DRIVER_ALSA_DYNAMIC"] = '"libasound.so"'
		}
	-- Linux dependency: PulseAudio
	SDL_dependency "linux-pulseaudio"
		SDL_os "linux"
		SDL_depfunc "PulseAudio"
		SDL_paths { "/audio/pulseaudio/" }
		SDL_config
		{
			["SDL_AUDIO_DRIVER_PULSEAUDIO"] = 1,
			["SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC"] = '"libpulse-simple.so"'
		}
	-- Linux dependency: ESD
	SDL_dependency "linux-esd"
		SDL_os "linux"
		SDL_depfunc "ESD"
		SDL_paths { "/audio/esd/" }
		SDL_config
		{
			["SDL_AUDIO_DRIVER_ESD"] = 1,
			["SDL_AUDIO_DRIVER_ESD_DYNAMIC"] = '"libesd.so"'
		}
	-- Linux dependency: NAS
	SDL_dependency "linux-nas"
		SDL_os "linux"
		SDL_depfunc "NAS"
		SDL_paths { "/audio/nas/" }
		SDL_config
		{
			["SDL_AUDIO_DRIVER_NAS"] = 1,
			["SDL_AUDIO_DRIVER_NAS_DYNAMIC"] = '"libaudio.so"'
		}
	-- Linux dependency: OSS
	SDL_dependency "linux-oss"
		SDL_os "linux"
		SDL_depfunc "OSS"
		SDL_paths { "/audio/dsp/" }
		SDL_config { ["SDL_AUDIO_DRIVER_OSS"] = 1 }
	-- Linux dependency: X11
	SDL_dependency "linux-x11"
		SDL_os "linux"
		SDL_depfunc "X11"
		SDL_paths { "/video/x11/" }
		SDL_config
		{
			["SDL_VIDEO_DRIVER_X11"] = 1,
			["SDL_VIDEO_DRIVER_X11_DYNAMIC"] = '"libX11.so"',
			["SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT"] = '"libXext.so"',
			["SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR"] = '"libXcursor.so"',
			["SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA"] = '"libXinerama.so"',
			["SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2"] = '"libXi.so"',
			["SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR"] = '"libXrandr.so"',
			["SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS"] = '"libXss.so"',
			["SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE"] = '"libXxf86vm.so"',
			["SDL_VIDEO_DRIVER_X11_XCURSOR"] = 1,
			["SDL_VIDEO_DRIVER_X11_XINERAMA"] = 1,
			["SDL_VIDEO_DRIVER_X11_XINPUT2"] = 1,
			["SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH"] = 1,
			["SDL_VIDEO_DRIVER_X11_XRANDR"] = 1,
			["SDL_VIDEO_DRIVER_X11_XSCRNSAVER"] = 1,
			["SDL_VIDEO_DRIVER_X11_XSHAPE"] = 1,
			["SDL_VIDEO_DRIVER_X11_XVIDMODE"] = 1,
			["SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS"] = 1,
			["SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY"] = 1,
			["SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM"] = 1
		}
	-- SDL2 on Linux
	SDL_dependency "linux"
		SDL_os "linux"
		SDL_depfunc "DBus"
		SDL_config
		{
			["SDL_INPUT_LINUXEV"] = 1,
			["SDL_JOYSTICK_LINUX"] = 1,
			["SDL_HAPTIC_LINUX"] = 1,
			["SDL_THREAD_PTHREAD"] = 1,
			["SDL_THREAD_PTHREAD_RECURSIVE_MUTEX"] = 1,
			["SDL_TIMER_UNIX"] = 1,
			["SDL_POWER_LINUX"] = 1,
			["SDL_FILESYSTEM_UNIX"] = 1,
		}
		SDL_paths
		{
			"/haptic/linux/",
			"/joystick/linux/",
			"/power/linux/",
			"/thread/pthread/",
			"/timer/unix/",
			"/filesystem/unix/"
		}
		SDL_links
		{
			"m",
			"pthread",
			"rt"
		}

	-- SDL2 on Cygwin (not quite working yet)
	SDL_dependency "cygwin"
		SDL_os "cygwin"
		SDL_config
		{
			['SDL_JOYSTICK_DISABLED'] = 1,
			['SDL_HAPTIC_DISABLED'] = 1,
			['SDL_LOADSO_DLOPEN'] = 1,
			['SDL_THREAD_PTHREAD'] = 1,
			['SDL_THREAD_PTHREAD_RECURSIVE_MUTEX'] = 1,
			['SDL_TIMER_UNIX'] = 1,
			['SDL_FILESYSTEM_UNIX'] = 1,
			['SDL_POWER_LINUX'] = 1
		}
		SDL_paths
		{
			"/loadso/dlopen/",
			"/power/linux/",
			"/render/opengl/",
			"/thread/pthread/",
			"/timer/unix/",
			"/filesystem/unix/",
			"/libm/"
		}

	-- SDL2 on iOS
	SDL_dependency "iphoneos"
		SDL_os "ios"
		SDL_config
		{
			["SDL_AUDIO_DRIVER_COREAUDIO"] = 1,
			["SDL_JOYSTICK_DISABLED"] = 0,
			["SDL_HAPTIC_DISABLED"] = 1,
			["SDL_LOADSO_DISABLED"] = 1,
			["SDL_THREAD_PTHREAD"] = 1,
			["SDL_THREAD_PTHREAD_RECURSIVE_MUTEX"] = 1,
			["SDL_TIMER_UNIX"] = 1,
			["SDL_VIDEO_DRIVER_UIKIT"] = 1,
			["SDL_VIDEO_OPENGL_ES"] = 1,
			["SDL_VIDEO_RENDER_OGL_ES"] = 1,
			["SDL_VIDEO_RENDER_OGL_ES2"] = 1,
			["SDL_POWER_UIKIT"] = 1,
			["SDL_IPHONE_KEYBOARD"] = 1,
			["SDL_FILESYSTEM_COCOA"] = 1
		}
		SDL_paths
		{
			"/audio/coreaudio/",
			"/file/cocoa/",
			"/joystick/iphoneos/",
			"/loadso/dlopen/",
			"/power/uikit/",
			"/render/opengles/",
			"/render/opengles2/",
			"/thread/pthread/",
			"/timer/unix/",
			"/video/uikit/",
			"/filesystem/cocoa/"
		}
		SDL_links
		{
			"$(SDKROOT)/AudioToolbox.framework",
			"$(SDKROOT)/QuartzCore.framework",
			"$(SDKROOT)/OpenGLES.framework",
			"$(SDKROOT)/CoreGraphics.framework",
			"$(SDKROOT)/UIKit.framework",
			"$(SDKROOT)/Foundation.framework",
			"$(SDKROOT)/CoreAudio.framework",
			"$(SDKROOT)/CoreMotion.framework"
		}
