123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405 |
- -- 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
- {
- "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"
- }
|