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 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"}