This commit is contained in:
Piotr Krygier committed 2025-06-20 13:44:33 +02:00
1 parent e80faf80b2
commit 45be08019e
5 files changed
+15 -73

No files matched your search

+5 -40
View File
@@ -1,54 +1,19 @@
find_package(Vulkan REQUIRED)
find_package(VulkanHeaders REQUIRED)
find_package(glfw3 REQUIRED)
find_package(FreeType REQUIRED)
find_package(Vulkan COMPONENTS glslc)
find_program(glslc_executable NAMES glslc HINTS ${Vulkan_GLSLC_EXECUTABLE}/..)
find_package(freetype REQUIRED)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror")
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/shaders)
add_library(graphics SHARED)
cmake_policy(SET CMP0116 NEW)
function(compile_shader)
cmake_parse_arguments(PARSE_ARGV 1 arg "" "ENV;FORMAT" "SOURCES")
foreach(source ${arg_SOURCES})
message(${source}.${arg_FORMAT})
add_custom_command(
OUTPUT ${source}.${arg_FORMAT}
DEPENDS ${source}
COMMAND
${glslc_executable}
-o ${source}.${arg_FORMAT}
${CMAKE_CURRENT_SOURCE_DIR}/${source}
)
endforeach()
endfunction()
compile_shader(graphics
ENV opengl
FORMAT num
SOURCES
shaders/shader.vert
shaders/solid_objects.frag
shaders/on_screen_text.frag
)
add_library(graphics SHARED
shaders/shader.vert.num
shaders/solid_objects.frag.num
shaders/on_screen_text.frag.num
)
target_include_directories(graphics PRIVATE
${PROJECT_SOURCE_DIR}
${PROJECT_SOURCE_DIR}/third_party/include/
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_SOURCE_DIR}
${Vulkan_INCLUDE_DIR}
${vma_INCLUDE_DIR}
${glfw3_INCLUDE_DIR}
${stb_INCLUDE_DIR}
${FreeType_INCLUDE_DIR}
)
target_sources(graphics PRIVATE
@@ -71,7 +36,7 @@ src/descriptor_builder.c
target_link_libraries(graphics PUBLIC
utilities
${Vulkan_LIBRARIES}
vulkan-headers::vulkan-headers
glfw
${freetype}
Freetype::Freetype
)