bgfx/scripts/genie.lua

324 lines
6.1 KiB
Lua
Raw Normal View History

2012-04-03 23:30:07 -04:00
--
2015-01-02 17:43:11 -05:00
-- Copyright 2010-2015 Branimir Karadzic. All rights reserved.
2012-04-03 23:30:07 -04:00
-- License: http://www.opensource.org/licenses/BSD-2-Clause
--
2014-05-04 18:43:14 -04:00
newoption {
trigger = "with-tools",
description = "Enable building tools.",
}
2014-08-22 22:29:54 -04:00
newoption {
trigger = "with-shared-lib",
description = "Enable building shared library.",
}
newoption {
trigger = "with-sdl",
description = "Enable SDL entry.",
}
2014-10-20 00:29:27 -04:00
newoption {
trigger = "with-ovr",
description = "Enable OculusVR integration.",
}
2012-04-03 23:30:07 -04:00
solution "bgfx"
configurations {
"Debug",
"Release",
}
if _ACTION == "xcode4" then
platforms {
"Universal",
}
else
platforms {
"x32",
"x64",
-- "Xbox360",
"Native", -- for targets where bitness is not specified
2012-04-03 23:30:07 -04:00
}
end
2012-04-03 23:30:07 -04:00
language "C++"
2014-09-15 23:50:35 -04:00
startproject "example-00-helloworld"
2012-04-03 23:30:07 -04:00
2012-06-01 22:55:56 -04:00
BGFX_DIR = (path.getabsolute("..") .. "/")
local BGFX_BUILD_DIR = (BGFX_DIR .. ".build/")
local BGFX_THIRD_PARTY_DIR = (BGFX_DIR .. "3rdparty/")
2012-12-08 18:24:51 -05:00
BX_DIR = (BGFX_DIR .. "../bx/")
2012-09-16 20:36:08 -04:00
2013-02-27 00:27:31 -05:00
defines {
"BX_CONFIG_ENABLE_MSVC_LEVEL4_WARNINGS=1"
}
2014-09-11 00:04:42 -04:00
dofile (BX_DIR .. "scripts/toolchain.lua")
if not toolchain(BGFX_BUILD_DIR, BGFX_THIRD_PARTY_DIR) then
return -- no action specified
end
2012-04-03 23:30:07 -04:00
2012-06-02 00:56:20 -04:00
function copyLib()
end
if _OPTIONS["with-sdl"] then
if os.is("windows") then
if not os.getenv("SDL2_DIR") then
print("Set SDL2_DIR enviroment variable.")
end
end
end
2014-09-11 02:01:22 -04:00
function exampleProject(_name)
2013-01-26 19:30:02 -05:00
project ("example-" .. _name)
2014-09-11 02:01:22 -04:00
uuid (os.uuid("example-" .. _name))
2013-01-26 19:30:02 -05:00
kind "WindowedApp"
configuration {}
-- don't output debugdir for winphone builds
2014-11-15 15:09:38 -05:00
if "winphone81" ~= _OPTIONS["vs"] then
debugdir (BGFX_DIR .. "examples/runtime/")
end
2013-01-26 19:30:02 -05:00
includedirs {
BX_DIR .. "include",
BGFX_DIR .. "include",
2013-04-25 00:01:11 -04:00
BGFX_DIR .. "3rdparty",
BGFX_DIR .. "examples/common",
2013-01-26 19:30:02 -05:00
}
files {
BGFX_DIR .. "examples/" .. _name .. "/**.cpp",
BGFX_DIR .. "examples/" .. _name .. "/**.h",
}
links {
"bgfx",
"example-common",
2013-01-26 19:30:02 -05:00
}
if _OPTIONS["with-sdl"] then
defines { "ENTRY_CONFIG_USE_SDL=1" }
links { "SDL2" }
configuration { "x32", "windows" }
libdirs { "$(SDL2_DIR)/lib/x86" }
configuration { "x64", "windows" }
libdirs { "$(SDL2_DIR)/lib/x64" }
configuration {}
end
2014-10-20 00:29:27 -04:00
if _OPTIONS["with-ovr"] then
links {
"winmm",
"ws2_32",
}
configuration { "x32" }
libdirs { "$(OVR_DIR)/LibOVR/Lib/Win32/" .. _ACTION }
2014-10-29 18:50:41 -04:00
configuration { "x64" }
2014-10-20 00:29:27 -04:00
libdirs { "$(OVR_DIR)/LibOVR/Lib/x64/" .. _ACTION }
configuration { "x32", "Debug" }
links { "libovrd" }
configuration { "x32", "Release" }
links { "libovr" }
configuration { "x64", "Debug" }
links { "libovr64d" }
configuration { "x64", "Release" }
links { "libovr64" }
configuration {}
end
configuration { "vs*" }
linkoptions {
"/ignore:4199", -- LNK4199: /DELAYLOAD:*.dll ignored; no imports found from *.dll
}
links { -- this is needed only for testing with GLES2/3 on Windows with VS2008
"DelayImp",
}
2014-09-09 15:24:17 -04:00
configuration { "vs201*" }
linkoptions { -- this is needed only for testing with GLES2/3 on Windows with VS201x
"/DELAYLOAD:\"libEGL.dll\"",
"/DELAYLOAD:\"libGLESv2.dll\"",
}
configuration { "mingw*" }
targetextension ".exe"
2014-10-18 18:44:45 -04:00
configuration { "vs20* or mingw*" }
2014-10-16 02:21:46 -04:00
links {
"gdi32",
"psapi",
}
configuration { "winphone8*"}
removelinks {
"DelayImp",
"gdi32",
"psapi"
}
links {
"d3d11",
"dxgi"
}
linkoptions {
"/ignore:4264" -- LNK4264: archiving object file compiled with /ZW into a static library; note that when authoring Windows Runtime types it is not recommended to link with a static library that contains Windows Runtime metadata
}
-- WinRT targets need their own output directories are build files stomp over each other
targetdir (BGFX_BUILD_DIR .. "arm_" .. _ACTION .. "/bin/" .. _name)
objdir (BGFX_BUILD_DIR .. "arm_" .. _ACTION .. "/obj/" .. _name)
2014-10-18 02:17:29 -04:00
configuration { "mingw-clang" }
kind "ConsoleApp"
2013-04-17 02:12:03 -04:00
configuration { "android*" }
2013-12-02 22:46:25 -05:00
kind "ConsoleApp"
2013-04-17 02:12:03 -04:00
targetextension ".so"
2013-12-02 22:46:25 -05:00
linkoptions {
"-shared",
}
2013-04-17 02:12:03 -04:00
links {
"EGL",
"GLESv2",
}
2014-10-20 00:29:27 -04:00
configuration { "nacl*" }
2013-05-18 18:28:35 -04:00
kind "ConsoleApp"
2013-01-26 19:30:02 -05:00
targetextension ".nexe"
links {
"ppapi",
"ppapi_gles2",
"pthread",
}
2013-05-18 18:28:35 -04:00
configuration { "pnacl" }
kind "ConsoleApp"
targetextension ".pexe"
links {
"ppapi",
"ppapi_gles2",
"pthread",
}
2014-03-16 15:38:43 -04:00
configuration { "asmjs" }
kind "ConsoleApp"
targetextension ".bc"
2013-11-20 00:38:06 -05:00
configuration { "linux-*" }
2013-01-26 19:30:02 -05:00
links {
2013-04-29 22:35:33 -04:00
"X11",
2013-01-26 19:30:02 -05:00
"GL",
"pthread",
}
2014-08-24 20:41:41 -04:00
configuration { "rpi" }
links {
"X11",
"GLESv2",
"EGL",
"bcm_host",
2014-08-24 23:39:35 -04:00
"vcos",
"vchiq_arm",
2014-08-24 20:41:41 -04:00
"pthread",
}
2013-04-13 02:43:46 -04:00
configuration { "osx" }
2013-01-26 19:30:02 -05:00
files {
2013-10-20 00:22:52 -04:00
BGFX_DIR .. "examples/common/**.mm",
2013-01-26 19:30:02 -05:00
}
links {
"Cocoa.framework",
"OpenGL.framework",
}
2013-07-21 17:44:53 -04:00
configuration { "ios*" }
kind "ConsoleApp"
2013-07-14 16:14:48 -04:00
files {
BGFX_DIR .. "examples/common/**.mm",
}
2013-07-13 01:27:46 -04:00
linkoptions {
"-framework CoreFoundation",
"-framework Foundation",
"-framework OpenGLES",
2013-07-21 17:44:53 -04:00
"-framework UIKit",
"-framework QuartzCore",
2013-07-13 01:27:46 -04:00
}
configuration { "xcode4", "ios" }
kind "WindowedApp"
files {
BGFX_DIR .. "examples/runtime/iOS-Info.plist"
}
configuration { "qnx*" }
targetextension ""
links {
"EGL",
"GLESv2",
}
configuration {}
strip()
2013-01-26 19:30:02 -05:00
end
2012-06-01 22:55:56 -04:00
dofile "bgfx.lua"
2014-12-06 15:52:14 -05:00
group "examples"
dofile "example-common.lua"
2014-12-06 15:52:14 -05:00
group "libs"
2014-09-11 02:01:22 -04:00
bgfxProject("", "StaticLib", {})
2014-12-06 15:52:14 -05:00
group "examples"
2014-09-11 02:01:22 -04:00
exampleProject("00-helloworld")
exampleProject("01-cubes")
exampleProject("02-metaballs")
exampleProject("03-raymarch")
exampleProject("04-mesh")
exampleProject("05-instancing")
exampleProject("06-bump")
exampleProject("07-callback")
exampleProject("08-update")
exampleProject("09-hdr")
exampleProject("10-font")
exampleProject("11-fontsdf")
exampleProject("12-lod")
exampleProject("13-stencil")
exampleProject("14-shadowvolumes")
exampleProject("15-shadowmaps-simple")
exampleProject("16-shadowmaps")
exampleProject("17-drawstress")
exampleProject("18-ibl")
exampleProject("19-oit")
exampleProject("20-nanovg")
exampleProject("21-deferred")
exampleProject("22-windows")
2014-11-15 19:19:43 -05:00
exampleProject("23-vectordisplay")
2014-12-20 00:09:58 -05:00
exampleProject("24-nbody")
2014-08-22 22:29:54 -04:00
if _OPTIONS["with-shared-lib"] then
2014-12-06 15:52:14 -05:00
group "libs"
2014-09-11 02:01:22 -04:00
bgfxProject("-shared-lib", "SharedLib", {})
2014-08-22 22:29:54 -04:00
end
2014-05-04 18:43:14 -04:00
if _OPTIONS["with-tools"] then
2014-12-06 15:52:14 -05:00
group "tools"
2014-05-04 18:43:14 -04:00
dofile "makedisttex.lua"
dofile "shaderc.lua"
dofile "texturec.lua"
dofile "geometryc.lua"
end