Shaders are compiled by CMake
This commit is contained in:
parent
09d92231e2
commit
73fcd0be6b
@ -4,6 +4,34 @@ file(GLOB_RECURSE GRAPHICS_SOURCES CONFIGURE_DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp
|
||||
)
|
||||
|
||||
set(SHADER_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/shaders)
|
||||
set(SHADER_OUT_DIR ${CMAKE_BINARY_DIR}/shaders)
|
||||
|
||||
file(GLOB_RECURSE SHADERS
|
||||
${SHADER_SRC_DIR}/*.vert
|
||||
${SHADER_SRC_DIR}/*.frag
|
||||
)
|
||||
|
||||
find_program(GLSLC glslc REQUIRED)
|
||||
set(SPIRV_SHADERS)
|
||||
|
||||
foreach(SHADER ${SHADERS})
|
||||
get_filename_component(FILE_NAME ${SHADER} NAME)
|
||||
set(SPIRV_FILE ${SHADER_OUT_DIR}/${FILE_NAME}.spv)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${SPIRV_FILE}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${SHADER_OUT_DIR}
|
||||
COMMAND ${GLSLC} ${SHADER} -o ${SPIRV_FILE}
|
||||
DEPENDS ${SHADER}
|
||||
COMMENT "Compiling ${FILE_NAME} with glslc"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
list(APPEND SPIRV_SHADERS ${SPIRV_FILE})
|
||||
endforeach()
|
||||
|
||||
add_custom_target(Shaders ALL DEPENDS ${SPIRV_SHADERS})
|
||||
add_library(deerith_graphics ${GRAPHICS_SOURCES})
|
||||
|
||||
target_include_directories(deerith_graphics
|
||||
@ -18,6 +46,8 @@ find_package(glfw3 REQUIRED)
|
||||
find_package(glm REQUIRED)
|
||||
find_package(fmt REQUIRED)
|
||||
|
||||
add_dependencies(deerith_graphics Shaders)
|
||||
|
||||
target_link_libraries(deerith_graphics
|
||||
PUBLIC
|
||||
deerith::core
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user