163 lines
3.4 KiB
Lua
163 lines
3.4 KiB
Lua
require "ecc/ecc"
|
|
require "ninja/ninja"
|
|
|
|
workspace "snake"
|
|
architecture "x64"
|
|
|
|
configurations
|
|
{
|
|
"Debug",
|
|
"Release"
|
|
}
|
|
|
|
prebuildcommands {
|
|
"git clone https://github.com/SFML/SFML.git vendor/SFML",
|
|
"cd vendor/SFML && git checkout 3.0.2",
|
|
}
|
|
|
|
filter "action:vs*"
|
|
prebuildcommands
|
|
{
|
|
"cd vendor/SFML && cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0 -DSFML_BUILD_AUDIO=1 -DSFML_BUILD_GRAPHICS=1 -DSFML_BUILD_WINDOW=1 -DSFML_USE_STATIC_STD_LIBS=1 -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=./lib"
|
|
}
|
|
project_dir = "$(SolutionDir)"
|
|
|
|
filter "action:gmake"
|
|
prebuildcommands
|
|
{
|
|
"cd vendor/SFML && cmake -S . -B build -G \"Unix Makefiles\" -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0 -DSFML_BUILD_AUDIO=1 -DSFML_BUILD_GRAPHICS=1 -DSFML_BUILD_WINDOW=1",
|
|
"cd vendor/SFML && cmake --build build"
|
|
}
|
|
project_dir = "%{wks.location}/"
|
|
|
|
|
|
filter "action:premake-ninja"
|
|
prebuildcommands
|
|
{
|
|
"cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0 -DSFML_BUILD_AUDIO=1 -DSFML_BUILD_GRAPHICS=1 -DSFML_BUILD_WINDOW=1",
|
|
"cmake --build build"
|
|
}
|
|
project_dir = "%{wks.location}/"
|
|
filter""
|
|
|
|
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"
|
|
include_dir = project_dir .. "include"
|
|
|
|
language "C++"
|
|
cppdialect "C++20"
|
|
systemversion "latest"
|
|
kind "WindowedApp"
|
|
targetname "snake"
|
|
targetdir (bindir)
|
|
objdir (intdir)
|
|
debugdir (project_dir)
|
|
includedirs
|
|
{
|
|
"src",
|
|
include_dir,
|
|
sfmldir .. "/include",
|
|
imguidir
|
|
}
|
|
|
|
libdirs (sfmldir .. "/build/lib")
|
|
|
|
files
|
|
{
|
|
"src/**.cpp",
|
|
"include/**.h",
|
|
"include/**.hpp",
|
|
"vendor/imgui/imgui.cpp",
|
|
"vendor/imgui/imgui_draw.cpp",
|
|
"vendor/imgui/imgui_tables.cpp",
|
|
"vendor/imgui/imgui_widgets.cpp",
|
|
"vendor/imgui/imgui-SFML.cpp"
|
|
}
|
|
|
|
--windows specific settings--
|
|
filter{"system:windows"}
|
|
defines {"PLATFORM_WINDOWS", "SFML_STATIC"}
|
|
staticruntime "on"
|
|
|
|
filter {"system:windows", "configurations:debug"}
|
|
defines{"_DEBUG", "_CONSOLE"}
|
|
links
|
|
{
|
|
"sfml-main-d",
|
|
"sfml-graphics-s-d",
|
|
"sfml-window-s-d",
|
|
"opengl32",
|
|
"gdi32",
|
|
"freetyped",
|
|
"sfml-audio-s-d",
|
|
"flacd",
|
|
"vorbisfiled",
|
|
"vorbisd",
|
|
"oggd",
|
|
"sfml-system-s-d",
|
|
"winmm"
|
|
}
|
|
|
|
filter {"system:windows", "configurations:release"}
|
|
defines{"NDEBUG"}
|
|
links
|
|
{
|
|
"sfml-main",
|
|
"sfml-graphics-s",
|
|
"sfml-window-s",
|
|
"opengl32",
|
|
"gdi32",
|
|
"freetype",
|
|
"sfml-audio-s",
|
|
"flac",
|
|
"vorbisfile",
|
|
"vorbis",
|
|
"ogg",
|
|
"sfml-system-s",
|
|
"winmm"
|
|
}
|
|
|
|
|
|
--linux specific settings--
|
|
filter {"system:linux"}
|
|
defines {"PLATFORM_LINUX"}
|
|
|
|
links
|
|
{
|
|
"sfml-graphics-s",
|
|
"sfml-window-s",
|
|
"sfml-audio-s",
|
|
"sfml-system-s",
|
|
"Xi",
|
|
"Xrandr",
|
|
"Xcursor",
|
|
"freetype",
|
|
"X11",
|
|
"udev",
|
|
"FLAC",
|
|
"ogg",
|
|
"vorbis",
|
|
"vorbisenc",
|
|
"vorbisfile",
|
|
"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" |