cmake_minimum_required(VERSION 3.24)

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/CMake")

project(RenderFramework C CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_C_STANDARD 11)

if(MSVC_VERSION GREATER 1500)
	include(ProcessorCount)
	ProcessorCount(N)
	if(NOT N EQUAL 0)
		set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP${N}" CACHE STRING "" FORCE)
		set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj /MP${N}" CACHE STRING "" FORCE)
		set(CMAKE_CSharp_FLAGS "${CMAKE_CSharp_FLAGS} /m:${N}" CACHE STRING "" FORCE)
	endif()
endif()

add_subdirectory(Dependencies/LFramework)
add_subdirectory(Dependencies/LMath)


set(ENABLE_GLSLANG_BINARIES OFF)
set(ALLOW_EXTERNAL_SPIRV_TOOLS ON)
set(ENABLE_EXCEPTIONS ON)
find_package(Vulkan REQUIRED)

set(SPIRV_TOOLS_BUILD_STATIC ON)
set(SPIRV_SKIP_EXECUTABLES 1)

add_subdirectory(Dependencies/SPIRV-Headers)
add_subdirectory(Dependencies/SPIRV-Tools)
#
add_subdirectory(Dependencies/glslang)

add_subdirectory(Src)
add_subdirectory(Examples/GameEditor)

