snake/premake5.lua

125 lines
2.6 KiB
Lua

require "ecc/ecc"
require "ninja/ninja"
workspace "snake"
architecture "x64"
startproject"snake"
configurations
{
"Release",
"Debug"
}
defines
{
--"__STDC_LIMIT_MACROS=1" -- flac may or may not need this on modern computers
}
filter"system:linux"
pic"On" -- fix warning when statically linking <relocation against ... in read-only section .text>
filter""
local project_dir = "./"
if _ACTION and _ACTION:match("vs") then
project_dir = "$(SolutionDir)"
else
project_dir = "%{wks.location}/"
end
output_dir = "%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}"
intdir = project_dir .. "intermediate-files/" .. output_dir
bindir = project_dir .. "bin/" .. output_dir
libout = "lib/" .. output_dir
group "Dependencies"
include ("vendor/ogg/build-ogg.lua")
include ("vendor/vorbis/build-vorbis.lua")
include ("vendor/flac/build-flac.lua")
include ("vendor/freetype/build-freetype.lua")
include ("vendor/sfml/build-sfml.lua")
include("vendor/imgui-sfml/build-imgui-sfml.lua")
filter""
group""
project "snake"
output_dir = "%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}"
intdir = project_dir .. "intermediate-files/" .. output_dir
bindir = project_dir .. "bin/" .. output_dir
sfmldir = project_dir .. "vendor/sfml"
imguidir = project_dir .. "vendor/imgui-sfml"
include_dir = project_dir .. "include"
language "C++"
cppdialect "C++20"
systemversion "latest"
kind "WindowedApp"
targetname "snake"
targetdir (bindir)
objdir (intdir)
debugdir (project_dir)
links {"imgui-sfml", "sfml", "vorbis", "flac", "ogg", "freetype"}
includedirs
{
"src",
include_dir,
sfmldir .. "/include",
imguidir
}
files
{
"src/**.cpp",
"include/**.h",
"include/**.hpp",
}
--windows specific settings--
filter{"system:windows"}
defines {"PLATFORM_WINDOWS", "SFML_STATIC", "IMGUI_SFML_STATIC_LIB"}
staticruntime "off"
links
{
"legacy_stdio_definitions",
"opengl32",
"gdi32",
"winmm",
"ws2_32"
}
filter {"system:windows", "configurations:debug"}
defines{"_DEBUG", "_CONSOLE"}
filter {"system:windows", "configurations:release"}
defines{"NDEBUG"}
--linux specific settings--
filter {"system:linux"}
defines {"PLATFORM_LINUX"}
links
{
"Xi",
"Xrandr",
"Xcursor",
"X11",
"udev",
"pthread",
"OpenGL",
}
--config settings--
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"