cmake_minimum_required(VERSION 3.11)
project("RedScarfEngine"
    VERSION 0.0.1
    DESCRIPTION "Vulkan based 3D engine"
    LANGUAGES CXX)


# make sure c++ 20 is set
set(CMAKE_CXX_STANDARD 20)# turn on the dynamic depends for ninja
# set(CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP 1)
# Enable C++ modules
# set(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API "3c375311-a3c9-4396-a187-3227ef642046")

# if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
#   include(gcc_modules.cmake)
# endif()

# string(CONCAT CMAKE_EXPERIMENTAL_CXX_SCANDEP_SOURCE
#   "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> <SOURCE>"
#   " -MT <DYNDEP_FILE> -MD -MF <DEP_FILE>"
#   " ${flags_to_scan_deps} -fdep-file=<DYNDEP_FILE> -fdep-output=<OBJECT>"
#   )

# set(CMAKE_EXPERIMENTAL_CXX_MODULE_MAP_FORMAT "gcc")
# set(CMAKE_EXPERIMENTAL_CXX_MODULE_MAP_FLAG
#   "${compiler_flags_for_module_map} -fmodule-mapper=<MODULE_MAP_FILE>")


set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror")


add_subdirectory(red_scarf_engine)
add_subdirectory(utilities)
add_subdirectory(graphics)