local m = {} local scriptdir = path.getabsolute(path.getdirectory(_SCRIPT)) package.path = package.path .. ";third-party/premake-scripts/?.lua" local sfml = require("build-sfml") local imgui = require("build-imgui") local imguisfml = require("build-imgui-sfml") function m.generateproject(bindir, intdir) project "snake" language "C++" cppdialect "C++20" systemversion "latest" kind "WindowedApp" targetname "snake" targetdir (bindir) debugdir (scriptdir) objdir (intdir) -- link order matters on GCC/Clang imgui.link() imguisfml.link() sfml.link() includedirs { path.join(scriptdir, "src"), path.join(scriptdir, "include"), } files { path.join(scriptdir, "src/**.cpp"), path.join(scriptdir, "include/**.h"), path.join(scriptdir, "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"} end return m