From 98e4932a434617725d8f2a1ebfb45f8514fb65cd Mon Sep 17 00:00:00 2001 From: Sara Gerretsen Date: Mon, 22 Sep 2025 20:50:48 +0200 Subject: [PATCH] feat: replaced premake5 with CMake to vendor SDL3 --- CMakeLists.txt | 25 +++++++++++++++++++++++++ justfile | 6 +++--- premake5.lua | 27 --------------------------- 3 files changed, 28 insertions(+), 30 deletions(-) create mode 100644 CMakeLists.txt delete mode 100644 premake5.lua diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..96a3c22 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,25 @@ +cmake_minimum_required(VERSION 3.21) +project(GameOfLife) + +set(CMAKE_BINARY_DIR "${CMAKE_SOURCE_DIR}/bin") +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") + +set(CMAKE_CXX_STANDARD 23) +set(CMAKE_C_STANDARD 23) + +file(GLOB_RECURSE source_files . src/**.cpp src/**.c vendor/renderer/**.c) +include_directories(vendor/) + +add_subdirectory(vendor/SDL3/ EXCLUDE_FROM_ALL) +set(SDLTTF_VENDORED ON) +add_subdirectory(vendor/SDL3_ttf/ EXCLUDE_FROM_ALL) + +add_executable(GameOfLife ${source_files}) +target_link_libraries(GameOfLife PRIVATE SDL3_ttf::SDL3_ttf SDL3::SDL3) + +add_custom_target(copy_assets + COMMAND ${CMAKE_COMMAND} -E + copy_directory ${CMAKE_SOURCE_DIR}/assets/ ${CMAKE_BINARY_DIR}/assets +) +add_dependencies(GameOfLife copy_assets) diff --git a/justfile b/justfile index 43f3da6..f254652 100644 --- a/justfile +++ b/justfile @@ -1,13 +1,13 @@ build: # BUILDING - bear -- make + bear -- cmake --build build run: - bin/DiceGui + cd bin/ && DiceGui configure: # CONFIGURING WITH PREMAKE - premake5 gmake + cmake -S. -Bbuild clean: rm -r bin/** diff --git a/premake5.lua b/premake5.lua deleted file mode 100644 index 39cfbd4..0000000 --- a/premake5.lua +++ /dev/null @@ -1,27 +0,0 @@ -workspace "GameOfLife" - configurations { "debug", "release" } - location "." - -project "GameOfLife" - kind "ConsoleApp" - language "C++" - cppdialect "c++23" - cdialect "c23" - location "build/" - files { "src/**.cpp", "src/**.c", "vendor/**.cpp", "vendor/**.c" } - includedirs { "include/", "vendor/" } - links { "m", "stdc++", "SDL3", "SDL3_ttf", "SDL3_image" } - buildoptions { "-Wall" } - targetdir "bin/" - postbuildcommands { - "{RMDIR} %{cfg.targetdir}/assets", - "{COPYDIR} %{wks.location}/assets/ %{cfg.targetdir}/assets/" - } - filter "configurations:debug" - defines { "DEBUG" } - symbols "On" - optimize "Off" - filter "configurations:release" - defines { "NDEBUG" } - optimize "On" - symbols "Off"