png支持
This commit is contained in:
+26
-1
@@ -5,6 +5,7 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
add_library(boundard STATIC
|
||||
src/boundard.cpp
|
||||
src/game.cpp
|
||||
src/scene.cpp
|
||||
src/render.cpp
|
||||
src/config.cpp
|
||||
src/engine.cpp
|
||||
@@ -14,9 +15,33 @@ target_compile_features(boundard PUBLIC cxx_std_17)
|
||||
|
||||
find_package(glfw3 REQUIRED)
|
||||
find_package(Vulkan REQUIRED)
|
||||
find_package(PNG REQUIRED)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(JSONCPP REQUIRED IMPORTED_TARGET jsoncpp)
|
||||
target_link_libraries(boundard PUBLIC glfw Vulkan::Vulkan PkgConfig::JSONCPP)
|
||||
find_program(GLSLC_EXECUTABLE glslc REQUIRED)
|
||||
|
||||
set(BOUNDARD_SHADER_DIR "${CMAKE_CURRENT_BINARY_DIR}/shaders")
|
||||
set(BOUNDARD_SHADER_SOURCES
|
||||
shaders/textured_quad.vert
|
||||
shaders/textured_quad.frag
|
||||
)
|
||||
set(BOUNDARD_SHADER_BINARIES)
|
||||
foreach(shader IN LISTS BOUNDARD_SHADER_SOURCES)
|
||||
get_filename_component(shader_name "${shader}" NAME)
|
||||
set(shader_output "${BOUNDARD_SHADER_DIR}/${shader_name}.spv")
|
||||
add_custom_command(
|
||||
OUTPUT "${shader_output}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${BOUNDARD_SHADER_DIR}"
|
||||
COMMAND ${GLSLC_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/${shader}" -o "${shader_output}"
|
||||
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${shader}"
|
||||
VERBATIM
|
||||
)
|
||||
list(APPEND BOUNDARD_SHADER_BINARIES "${shader_output}")
|
||||
endforeach()
|
||||
add_custom_target(boundard_shaders DEPENDS ${BOUNDARD_SHADER_BINARIES})
|
||||
add_dependencies(boundard boundard_shaders)
|
||||
target_compile_definitions(boundard PRIVATE BOUNDARD_SHADER_DIR="${BOUNDARD_SHADER_DIR}")
|
||||
target_link_libraries(boundard PUBLIC glfw Vulkan::Vulkan PNG::PNG PkgConfig::JSONCPP)
|
||||
|
||||
add_executable(square_example examples/square/main.cpp)
|
||||
target_link_libraries(square_example PRIVATE boundard)
|
||||
|
||||
Reference in New Issue
Block a user