Files
sdk-cpp/src/premake5.lua
2023-12-03 16:38:19 -03:00

206 lines
3.5 KiB
Lua

--- @diagnostic disable: undefined-global
project "tribufu_cpp"
location "."
language "C++"
cppdialect "C++20"
targetdir("../bin/%{cfg.platform:gsub('-', '/')}")
objdir("../target/%{cfg.buildcfg}/obj/%{prj.name}/%{cfg.platform:gsub('-', '/')}")
files
{
"./**.cpp",
"./**.h",
"../include/tribufu/**.h",
}
vpaths
{
["Sources"] = { "./**.cpp" },
["Headers"] = { "./**.h", "../include/tribufu/**.h" },
}
includedirs
{
"../include",
"../vendor/*/include",
}
libdirs
{
"../bin/%{cfg.platform:gsub('-', '/')}",
"../vendor/*/lib/%{cfg.platform:gsub('-', '/')}",
}
-- Profile
filter { "configurations:debug" }
runtime "Debug"
symbols "On"
defines
{
"DEBUG",
"TRACE",
"TRIBUFU_DEBUG",
"TRIBUFU_TRACE",
}
filter { "configurations:release" }
runtime "Release"
optimize "On"
defines
{
"RELEASE",
"TRIBUFU_RELEASE",
}
-- Platform
filter { "platforms:windows-*" }
kind "SharedLib"
system "windows"
systemversion "latest"
staticruntime "On"
toolset "msc"
defines
{
"TRIBUFU_WINDOWS",
"TRIBUFU_DESKTOP",
"TRIBUFU_DYNAMIC",
"TRIBUFU_LIBRARY",
}
links
{
"hv.lib"
}
prelinkcommands
{
}
filter { "platforms:mac-*" }
kind "SharedLib"
system "macosx"
systemversion "10.15"
toolset "clang"
defines
{
"TRIBUFU_MAC",
"TRIBUFU_APPLE",
"TRIBUFU_DESKTOP",
"TRIBUFU_DYNAMIC",
"TRIBUFU_LIBRARY",
}
links
{
}
prelinkcommands
{
}
filter { "platforms:linux-*" }
kind "SharedLib"
system "linux"
toolset "gcc"
defines
{
"TRIBUFU_LINUX",
"TRIBUFU_UNIX",
"TRIBUFU_DESKTOP",
"TRIBUFU_DYNAMIC",
"TRIBUFU_LIBRARY",
}
links
{
}
prelinkcommands
{
}
filter { "platforms:android-*" }
kind "SharedLib"
system "android"
toolset "clang"
defines
{
"TRIBUFU_ANDROID",
"TRIBUFU_UNIX",
"TRIBUFU_MOBILE",
"TRIBUFU_DYNAMIC",
"TRIBUFU_LIBRARY",
}
links
{
}
prelinkcommands
{
}
filter { "platforms:ios-*" }
kind "StaticLib"
system "ios"
systemversion "13.0"
toolset "clang"
defines
{
"TRIBUFU_IOS",
"TRIBUFU_APPLE",
"TRIBUFU_MOBILE",
"TRIBUFU_MONOLITHIC",
"TRIBUFU_LIBRARY",
}
links
{
}
-- Architecture
filter { "platforms:*-i686" }
architecture "x32"
defines
{
"TRIBUFU_I686",
"TRIBUFU_32BITS",
}
filter { "platforms:*-x86_64" }
architecture "x64"
defines
{
"TRIBUFU_X8664",
"TRIBUFU_64BITS",
}
filter { "platforms:*-aarch64" }
architecture "ARM64"
defines
{
"TRIBUFU_AARCH64",
"TRIBUFU_64BITS",
}