build system update

This commit is contained in:
Joseph Aquino 2025-12-28 12:11:41 -05:00
parent 969f820419
commit 78e0fe182f
3 changed files with 59 additions and 43 deletions

View File

@ -1,2 +1,4 @@
ECHO OFF
ECHO Project files will be written to ./build
.\vendor\premake5\premake5.exe vs2022 .\vendor\premake5\premake5.exe vs2022
PAUSE PAUSE

View File

@ -7,6 +7,8 @@ local vorbis = require("vendor/vorbis/build-vorbis")
local freetype = require("vendor/freetype/build-freetype") local freetype = require("vendor/freetype/build-freetype")
local imguisfml = require("vendor/imgui-sfml/build-imgui-sfml") local imguisfml = require("vendor/imgui-sfml/build-imgui-sfml")
local snake = require("project")
workspace "snake" workspace "snake"
architecture "x64" architecture "x64"
startproject"snake" startproject"snake"
@ -22,9 +24,9 @@ workspace "snake"
output_dir = "%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}" output_dir = "%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}"
intdir = "../intermediate-files/" intdir = "intermediate-files/"
bindir = "../bin/" .. output_dir bindir = "bin/" .. output_dir
liboutdir = "../lib/" .. output_dir liboutdir = "lib/" .. output_dir
externalwarnings "Off" externalwarnings "Off"
@ -51,43 +53,4 @@ workspace "snake"
imguisfml.generateproject(liboutdir, intdir) imguisfml.generateproject(liboutdir, intdir)
group"" group""
project "snake" snake.generateproject(bindir, intdir)
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"}

51
project.lua Normal file
View File

@ -0,0 +1,51 @@
local m = {}
local scriptdir = path.getabsolute(path.getdirectory(_SCRIPT))
local sfml = require("../vendor/sfml/build-sfml")
local imguisfml = require("../vendor/imgui-sfml/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
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