snake/premake5.lua

94 lines
2.1 KiB
Lua

require "ecc/ecc"
require "ninja/ninja"
local ogg = require("vendor/ogg/build-ogg")
local sfml = require("vendor/sfml/build-sfml")
local flac = require("vendor/flac/build-flac")
local vorbis = require("vendor/vorbis/build-vorbis")
local freetype = require("vendor/freetype/build-freetype")
local imguisfml = require("vendor/imgui-sfml/build-imgui-sfml")
workspace "snake"
architecture "x64"
startproject"snake"
staticruntime"off"
location "build"
configurations{"Debug", "Release"}
filter"system:linux"
pic"On" -- fix warning when statically linking <relocation against ... in read-only section .text>
filter""
output_dir = "%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}"
intdir = "../intermediate-files/"
bindir = "../bin/" .. output_dir
liboutdir = "../lib/" .. output_dir
externalwarnings "Off"
filter "configurations:debug"
defines {"LOG_ENABLE", "GAME_DEBUG"}
symbols "on"
runtime "Debug"
warnings "Extra"
filter "configurations:release"
defines {"GAME_RELEASE"}
optimize "Speed"
inlining "Auto"
symbols "off"
runtime "Release"
filter""
group"Dependencies"
ogg.generateproject(liboutdir, intdir)
sfml.generateproject(liboutdir, intdir)
flac.generateproject(liboutdir, intdir)
vorbis.generateproject(liboutdir, intdir)
freetype.generateproject(liboutdir, intdir)
imguisfml.generateproject(liboutdir, intdir)
group""
project "snake"
language "C++"
cppdialect "C++20"
systemversion "latest"
kind "WindowedApp"
targetname "snake"
targetdir (bindir)
objdir (intdir)
debugdir (path.getabsolute(path.getdirectory(_SCRIPT)))
imguisfml.link()
sfml.link()
includedirs
{
"src",
"include",
}
files
{
"src/**.cpp",
"include/**.h",
"include/**.hpp",
}
--windows specific settings--
filter{"system:windows"}
defines {"PLATFORM_WINDOWS"}
filter {"system:windows", "configurations:debug"}
defines{"_DEBUG", "_CONSOLE"}
filter {"system:windows", "configurations:release"}
defines{"NDEBUG"}
--linux specific settings--
filter {"system:linux"}
defines {"PLATFORM_LINUX"}