Files
bgfx/scripts/texturev.lua
2026-06-14 06:49:15 +00:00

234 lines
5.1 KiB
Lua

--
-- Copyright 2010-2026 Branimir Karadzic. All rights reserved.
-- License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
--
group "tools/texturev"
project "l-smash"
kind "StaticLib"
removeflags { "FatalWarnings" }
includedirs {
path.join(MODULE_DIR, "3rdparty/l-smash"),
}
files {
path.join(MODULE_DIR, "3rdparty/l-smash/**.c"),
path.join(MODULE_DIR, "3rdparty/l-smash/**.h"),
}
configuration { "vs*" }
buildoptions {
"/wd4005", -- warning C4005: '_CRT_SECURE_NO_WARNINGS': macro redefinition
"/wd4018", -- warning C4018: '<=': signed/unsigned mismatch
"/wd4100", -- warning C4100: 'class': unreferenced parameter
"/wd4116", -- warning C4116: unnamed type definition in parentheses
"/wd4125", -- warning C4125: decimal digit terminates octal escape sequence
"/wd4133", -- warning C4133: '=': incompatible types - from 'lsmash_brand_type *' to 'uint32_t *'
"/wd4210", -- warning C4210: nonstandard extension used: function given file scope
"/wd4244", -- warning C4244: 'initializing': conversion from 'uint64_t' to 'uint32_t', possible loss of data
"/wd4245", -- warning C4245: '=': conversion from 'int' to 'uint32_t', signed/unsigned mismatch
"/wd4267", -- warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
"/wd4389", -- warning C4389: '!=': signed/unsigned mismatch
"/wd4701", -- warning C4701: potentially uninitialized local variable 'src_movie_timescale' used
}
configuration { "*-gcc or *-clang" }
buildoptions {
"-Wno-empty-body",
"-Wno-implicit-fallthrough",
"-Wno-missing-field-initializers",
"-Wno-pragmas",
"-Wno-sign-compare",
"-Wno-type-limits",
"-Wno-undef",
"-Wno-unused-function",
"-Wno-unused-parameter",
}
configuration { "mingw*" }
buildoptions {
"-Wno-maybe-uninitialized",
"-Wno-stringop-overflow",
}
project "texturev"
uuid (os.uuid("texturev") )
kind "ConsoleApp"
configuration {}
includedirs {
path.join(BIMG_DIR, "include"),
path.join(BGFX_DIR, "include"),
path.join(BGFX_DIR, "3rdparty"),
path.join(BGFX_DIR, "examples/common"),
path.join(MODULE_DIR, "include"),
path.join(MODULE_DIR, "3rdparty"),
}
files {
path.join(MODULE_DIR, "tools/texturev/**"),
}
links {
"l-smash",
"example-common",
"bimg_decode",
"bimg",
"bgfx",
}
using_bx()
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
if _OPTIONS["with-glfw"] then
defines { "ENTRY_CONFIG_USE_GLFW=1" }
links { "glfw3" }
configuration { "osx*" }
linkoptions {
"-framework CoreVideo",
}
configuration {}
end
if _OPTIONS["with-libheif"] then
links {
"heif",
}
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",
}
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"
configuration { "vs20* or mingw*" }
links {
"comdlg32",
"gdi32",
"psapi",
}
configuration { "winstore*" }
removelinks {
"DelayImp",
"gdi32",
"psapi"
}
links {
"d3d11",
"d3d12",
"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 (path.join(BGFX_BUILD_DIR, "arm_" .. _ACTION, "bin", _name))
objdir (path.join(BGFX_BUILD_DIR, "arm_" .. _ACTION, "obj", _name))
configuration { "mingw-clang" }
kind "ConsoleApp"
configuration { "android*" }
kind "ConsoleApp"
targetextension ".so"
linkoptions {
"-shared",
}
links {
"EGL",
"GLESv2",
}
configuration { "wasm*" }
kind "ConsoleApp"
configuration { "linux-* or freebsd" }
links {
"X11",
"GL",
"pthread",
}
configuration { "rpi" }
links {
"X11",
"GLESv2",
"EGL",
"bcm_host",
"vcos",
"vchiq_arm",
"pthread",
}
configuration { "osx*" }
linkoptions {
"-framework Cocoa",
"-framework IOKit",
"-framework Metal",
"-framework OpenGL",
"-framework QuartzCore",
"-weak_framework VideoToolbox",
"-weak_framework CoreMedia",
"-weak_framework CoreVideo",
}
configuration { "ios*" }
kind "ConsoleApp"
linkoptions {
"-framework CoreFoundation",
"-framework Foundation",
"-framework IOKit",
"-framework OpenGLES",
"-framework QuartzCore",
"-framework UIKit",
}
configuration { "xcode*", "ios" }
kind "WindowedApp"
configuration { "qnx*" }
targetextension ""
links {
"EGL",
"GLESv2",
}
configuration {}
strip()
group "tools"