mirror of
https://github.com/scratchfoundation/bgfx.git
synced 2024-11-28 18:45:54 -05:00
251 lines
5.2 KiB
Lua
251 lines
5.2 KiB
Lua
--
|
|
-- Copyright 2010-2011 Branimir Karadzic. All rights reserved.
|
|
-- License: http://www.opensource.org/licenses/BSD-2-Clause
|
|
--
|
|
|
|
solution "bgfx"
|
|
configurations {
|
|
"Debug",
|
|
"Release",
|
|
}
|
|
|
|
platforms {
|
|
"x32",
|
|
"x64",
|
|
"Xbox360",
|
|
}
|
|
|
|
language "C++"
|
|
|
|
newoption {
|
|
trigger = "gcc",
|
|
value = "GCC",
|
|
description = "Choose GCC flavor",
|
|
allowed = {
|
|
{ "mingw", "MinGW" },
|
|
}
|
|
}
|
|
|
|
-- Avoid error when invoking premake4 --help.
|
|
if (_ACTION == nil) then return end
|
|
|
|
ROOT_DIR = (path.getabsolute("..") .. "/")
|
|
BUILD_DIR = (ROOT_DIR .. ".build/")
|
|
THIRD_PARTY_DIR = (ROOT_DIR .. "3rdparty/")
|
|
|
|
local XEDK = os.getenv("XEDK")
|
|
if not XEDK then XEDK = "<you must install XBOX SDK>" end
|
|
|
|
location (BUILD_DIR .. "projects/" .. _ACTION)
|
|
|
|
if _ACTION == "gmake" then
|
|
|
|
if "linux" ~= os.get() and nil == _OPTIONS["gcc"] then
|
|
print("GCC flavor must be specified!")
|
|
os.exit(1)
|
|
end
|
|
|
|
if "mingw" == _OPTIONS["gcc"] then
|
|
premake.gcc.cc = "$(MINGW)/bin/mingw32-gcc"
|
|
premake.gcc.cxx = "$(MINGW)/bin/mingw32-g++"
|
|
premake.gcc.ar = "$(MINGW)/bin/ar"
|
|
end
|
|
end
|
|
|
|
flags {
|
|
"StaticRuntime",
|
|
"NoMinimalRebuild",
|
|
"NoPCH",
|
|
"NativeWChar",
|
|
-- "ExtraWarnings",
|
|
"NoRTTI",
|
|
"NoExceptions",
|
|
"Symbols",
|
|
}
|
|
|
|
includedirs {
|
|
ROOT_DIR .. "../_bx/include",
|
|
}
|
|
|
|
configuration "Debug"
|
|
defines {
|
|
"BGFX_BUILD_DEBUG=1",
|
|
}
|
|
targetsuffix "Debug"
|
|
|
|
configuration "Release"
|
|
defines {
|
|
"BGFX_BUILD_RELEASE=1",
|
|
}
|
|
targetsuffix "Release"
|
|
|
|
configuration { "vs*" }
|
|
defines {
|
|
"_HAS_EXCEPTIONS=0",
|
|
"_HAS_ITERATOR_DEBUGGING=0",
|
|
"_SCL_SECURE=0",
|
|
"_CRT_SECURE_NO_WARNINGS",
|
|
"_CRT_SECURE_NO_DEPRECATE",
|
|
"__STDC_LIMIT_MACROS",
|
|
"__STDC_FORMAT_MACROS",
|
|
"__STDC_CONSTANT_MACROS",
|
|
}
|
|
|
|
configuration { "x32", "vs*" }
|
|
defines { "WIN32" }
|
|
targetdir (BUILD_DIR .. "win32_" .. _ACTION .. "/bin")
|
|
objdir (BUILD_DIR .. "win32_" .. _ACTION .. "/obj")
|
|
includedirs { THIRD_PARTY_DIR .. "compiler/msvc" }
|
|
|
|
configuration { "x64", "vs*" }
|
|
defines { "WIN32" }
|
|
targetdir (BUILD_DIR .. "win64_" .. _ACTION .. "/bin")
|
|
objdir (BUILD_DIR .. "win64_" .. _ACTION .. "/obj")
|
|
includedirs { THIRD_PARTY_DIR .. "compiler/msvc" }
|
|
|
|
configuration { "x32", "mingw" }
|
|
defines { "WIN32" }
|
|
targetdir (BUILD_DIR .. "win32_mingw" .. "/bin")
|
|
objdir (BUILD_DIR .. "win32_mingw" .. "/obj")
|
|
includedirs { THIRD_PARTY_DIR .. "compiler/mingw" }
|
|
|
|
configuration { "x64", "mingw" }
|
|
defines { "WIN32" }
|
|
targetdir (BUILD_DIR .. "win64_mingw" .. "/bin")
|
|
objdir (BUILD_DIR .. "win64_mingw" .. "/obj")
|
|
includedirs { THIRD_PARTY_DIR .. "compiler/mingw" }
|
|
|
|
configuration { "x32", "linux" }
|
|
targetdir (BUILD_DIR .. "linux32" .. "/bin")
|
|
objdir (BUILD_DIR .. "linux32" .. "/obj")
|
|
|
|
configuration { "x64", "linux" }
|
|
targetdir (BUILD_DIR .. "linux64" .. "/bin")
|
|
objdir (BUILD_DIR .. "linux64" .. "/obj")
|
|
|
|
configuration { "Xbox360" }
|
|
defines { "_XBOX", "NOMINMAX" }
|
|
targetdir (BUILD_DIR .. "xbox360" .. "/bin")
|
|
objdir (BUILD_DIR .. "xbox360" .. "/obj")
|
|
includedirs { THIRD_PARTY_DIR .. "compiler/msvc" }
|
|
|
|
configuration {} -- reset configuration
|
|
|
|
project "bgfx"
|
|
uuid "f4c51860-ebf4-11e0-9572-0800200c9a66"
|
|
kind "StaticLib"
|
|
|
|
includedirs {
|
|
"../include",
|
|
ROOT_DIR .. "../bx/include",
|
|
THIRD_PARTY_DIR .. "glew-1.5.4/include",
|
|
}
|
|
|
|
files {
|
|
"../include/**.h",
|
|
"../src/**.cpp",
|
|
"../src/**.h",
|
|
}
|
|
|
|
project "shaderc"
|
|
uuid "f3cd2e90-52a4-11e1-b86c-0800200c9a66"
|
|
kind "ConsoleApp"
|
|
|
|
local GLSL_OPTIMIZER = (THIRD_PARTY_DIR .. "glsl-optimizer/")
|
|
|
|
configuration { "vs*" }
|
|
includedirs { GLSL_OPTIMIZER .. "src/glsl/msvc" }
|
|
|
|
configuration {}
|
|
|
|
includedirs {
|
|
ROOT_DIR .. "../bx/include",
|
|
|
|
THIRD_PARTY_DIR .. "fcpp",
|
|
|
|
GLSL_OPTIMIZER .. "include",
|
|
GLSL_OPTIMIZER .. "include/c99",
|
|
GLSL_OPTIMIZER .. "src/mesa",
|
|
GLSL_OPTIMIZER .. "src/mapi",
|
|
GLSL_OPTIMIZER .. "src/glsl",
|
|
}
|
|
|
|
files {
|
|
ROOT_DIR .. "tools/shaderc.cpp",
|
|
THIRD_PARTY_DIR .. "fcpp/**.h",
|
|
THIRD_PARTY_DIR .. "fcpp/cpp1.c",
|
|
THIRD_PARTY_DIR .. "fcpp/cpp2.c",
|
|
THIRD_PARTY_DIR .. "fcpp/cpp3.c",
|
|
THIRD_PARTY_DIR .. "fcpp/cpp4.c",
|
|
THIRD_PARTY_DIR .. "fcpp/cpp5.c",
|
|
THIRD_PARTY_DIR .. "fcpp/cpp6.c",
|
|
THIRD_PARTY_DIR .. "fcpp/cpp6.c",
|
|
|
|
GLSL_OPTIMIZER .. "src/mesa/**.c",
|
|
GLSL_OPTIMIZER .. "src/glsl/**.cpp",
|
|
GLSL_OPTIMIZER .. "src/mesa/**.h",
|
|
GLSL_OPTIMIZER .. "src/glsl/**.c",
|
|
GLSL_OPTIMIZER .. "src/glsl/**.cpp",
|
|
GLSL_OPTIMIZER .. "src/glsl/**.h",
|
|
}
|
|
|
|
excludes {
|
|
GLSL_OPTIMIZER .. "src/glsl/glcpp/glcpp.c",
|
|
GLSL_OPTIMIZER .. "src/glsl/glcpp/tests/**",
|
|
GLSL_OPTIMIZER .. "src/glsl/main.cpp",
|
|
GLSL_OPTIMIZER .. "src/glsl/builtin_stubs.cpp",
|
|
}
|
|
|
|
links {
|
|
"d3dx9",
|
|
}
|
|
|
|
project "ddsdump"
|
|
uuid "838801ee-7bc3-11e1-9f19-eae7d36e7d26"
|
|
kind "ConsoleApp"
|
|
|
|
includedirs {
|
|
ROOT_DIR .. "../bx/include",
|
|
ROOT_DIR .. "include",
|
|
ROOT_DIR .. "src",
|
|
}
|
|
|
|
files {
|
|
ROOT_DIR .. "src/dds.*",
|
|
ROOT_DIR .. "tools/ddsdump.cpp",
|
|
}
|
|
|
|
links {
|
|
"bgfx",
|
|
}
|
|
|
|
project "makedisttex"
|
|
uuid "b0561b30-91bb-11e1-b06e-023ad46e7d26"
|
|
kind "ConsoleApp"
|
|
|
|
includedirs {
|
|
ROOT_DIR .. "../bx/include",
|
|
THIRD_PARTY_DIR .. "edtaa3",
|
|
THIRD_PARTY_DIR .. "stb_image",
|
|
}
|
|
|
|
files {
|
|
THIRD_PARTY_DIR .. "edtaa3/**",
|
|
ROOT_DIR .. "tools/makedisttex.cpp",
|
|
}
|
|
|
|
project "helloworld"
|
|
uuid "ff2c8450-ebf4-11e0-9572-0800200c9a66"
|
|
kind "ConsoleApp"
|
|
|
|
includedirs {
|
|
ROOT_DIR .. "include",
|
|
}
|
|
|
|
files {
|
|
ROOT_DIR .. "examples/helloworld/**",
|
|
}
|
|
|
|
links {
|
|
"bgfx",
|
|
}
|