cmakefile: add vulkan build

This commit is contained in:
Denis Pauk 2024-12-20 13:00:30 +02:00
parent ea94f56f18
commit c3d7def63d

View file

@ -71,6 +71,7 @@ option(GL4_RENDERER "Build the GL4 renderer" ON)
option(GLES1_RENDERER "Build the GLES1 renderer" OFF) option(GLES1_RENDERER "Build the GLES1 renderer" OFF)
option(GLES3_RENDERER "Build the GLES3 renderer" ON) option(GLES3_RENDERER "Build the GLES3 renderer" ON)
option(SOFT_RENDERER "Build the software renderer" ON) option(SOFT_RENDERER "Build the software renderer" ON)
option(VK_RENDERER "Build the Vulkan renderer" ON)
set(SYSTEMDIR "" CACHE STRING "Override the system default directory") set(SYSTEMDIR "" CACHE STRING "Override the system default directory")
@ -838,6 +839,57 @@ set(SOFT-Header
${COMMON_SRC_DIR}/header/shared.h ${COMMON_SRC_DIR}/header/shared.h
) )
set(VK-Source
${REF_SRC_DIR}/vk/vk_buffer.c
${REF_SRC_DIR}/vk/vk_cmd.c
${REF_SRC_DIR}/vk/vk_common.c
${REF_SRC_DIR}/vk/vk_device.c
${REF_SRC_DIR}/vk/vk_draw.c
${REF_SRC_DIR}/vk/vk_image.c
${REF_SRC_DIR}/vk/vk_light.c
${REF_SRC_DIR}/vk/vk_lightmap.c
${REF_SRC_DIR}/vk/vk_main.c
${REF_SRC_DIR}/vk/vk_mesh.c
${REF_SRC_DIR}/vk/vk_misc.c
${REF_SRC_DIR}/vk/vk_model.c
${REF_SRC_DIR}/vk/vk_pipeline.c
${REF_SRC_DIR}/vk/vk_shaders.c
${REF_SRC_DIR}/vk/vk_surf.c
${REF_SRC_DIR}/vk/vk_swapchain.c
${REF_SRC_DIR}/vk/vk_util.c
${REF_SRC_DIR}/vk/vk_validation.c
${REF_SRC_DIR}/vk/vk_warp.c
${REF_SRC_DIR}/vk/volk/volk.c
${REF_SRC_DIR}/files/light.c
${REF_SRC_DIR}/files/maps.c
${REF_SRC_DIR}/files/mesh.c
${REF_SRC_DIR}/files/models.c
${REF_SRC_DIR}/files/models_md5.c
${REF_SRC_DIR}/files/models_mdr.c
${REF_SRC_DIR}/files/stb.c
${REF_SRC_DIR}/files/surf.c
${REF_SRC_DIR}/files/wal.c
${REF_SRC_DIR}/files/warp.c
${REF_SRC_DIR}/files/pvs.c
${COMMON_SRC_DIR}/shared/utils.c
${COMMON_SRC_DIR}/shared/shared.c
${COMMON_SRC_DIR}/cmodels.c
${COMMON_SRC_DIR}/md4.c
)
set(VK-Header
${REF_SRC_DIR}/ref_shared.h
${REF_SRC_DIR}/files/stb_image.h
${REF_SRC_DIR}/files/stb_image_resize.h
${REF_SRC_DIR}/vk/header/local.h
${REF_SRC_DIR}/vk/header/model.h
${REF_SRC_DIR}/vk/header/qvk.h
${REF_SRC_DIR}/vk/header/shaders.h
${REF_SRC_DIR}/vk/header/util.h
${REF_SRC_DIR}/vk/volk/volk.h
${COMMON_SRC_DIR}/header/shared.h
)
# Main Quake 2 executable # Main Quake 2 executable
if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
@ -1002,6 +1054,23 @@ endif()
endif() endif()
if(${VK_RENDERER})
# Build the vk renderer dynamic library
add_library(ref_vk MODULE ${VK-Source} ${VK-Header} ${REF-Platform-Specific-Source})
set_target_properties(ref_vk PROPERTIES
PREFIX ""
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/release
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/release
SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX}
)
target_link_libraries(ref_vk ${yquake2LinkerFlags} ${yquake2SDLLinkerFlags})
if(SDL3_SUPPORT)
target_link_libraries(ref_vk SDL3::SDL3)
endif()
endif()
if(${GLES1_RENDERER}) if(${GLES1_RENDERER})
# Build the GLES1 dynamic library # Build the GLES1 dynamic library