cmake_minimum_required(VERSION 4.2.1)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
project(engine)

include_directories(include)
set(SOURCES
	src/main.cpp
	src/graphics.cpp
	src/renderer.cpp
	src/data.cpp
	src/scheduler.cpp
)

include(FetchContent)
FetchContent_Declare(SFML
	GIT_REPOSITORY https://github.com/SFML/SFML.git
	GIT_TAG 3.0.2
	GIT_SHALLOW ON
	EXCLUDE_FROM_ALL
	SYSTEM)
FetchContent_MakeAvailable(SFML)

if(APPLE)
	message(STATUS "Detected macOS: installing range-v3")

	include(FetchContent)
	FetchContent_Declare(
		range-v3
		GIT_REPOSITORY https://github.com/ericniebler/range-v3.git
		GIT_TAG 0.12.0
		GIT_SHALLOW ON
	)
	FetchContent_MakeAvailable(range-v3)

	include_directories(${range-v3_SOURCE_DIR}/include)
endif()

add_executable(engine ${SOURCES})
target_link_libraries(engine
	PRIVATE
	SFML::Graphics
	SFML::Window
	SFML::System
)
