[vulkan] Integrate vulkan_sdl2 into the build and installation processes

This commit is contained in:
Martin Beľa
2022-11-07 23:31:44 +01:00
parent b961b9b2d8
commit 3def04b629
2 changed files with 52 additions and 1 deletions

View File

@@ -260,6 +260,8 @@ TEST_OBJS = $(COMMON_OBJS) \
test/test_rtp.o \
test/run_tests.o
VULKAN_SHADERS="render.vert" "render.frag" "RGB10A2_conv.comp" "UYVA16_conv.comp" "UYVY8_conv.comp"
DEP_FILES_1 = $(OBJS) $(REFLECTOR_OBJS) $(TEST_OBJS) $(ULTRAGRID_OBJS)
DEP_FILES = $(patsubst %.lib,%.P,$(DEP_FILES_1:.o=.P)) # replace .o and also .lib (Windows) with .P
# -------------------------------------------------------------------------------------------------
@@ -585,6 +587,7 @@ clean:
$(COND_SILENCE)-rm -rf $(REFLECTOR_TARGET) $(REFLECTOR_OBJS)
$(COND_SILENCE)-rm -rf @LIB_OBJS@ @MODULES@ @LIB_GENERATED_HEADERS@
$(COND_SILENCE)-rm -rf $(DEP_FILES)
$(COND_SILENCE)-rm -rf bin/shaders
$(COND_SILENCE)if [ -f "gui/QT/Makefile" ]; then make -C gui/QT/ distclean; fi
distclean: clean
@@ -621,6 +624,7 @@ $(BUNDLE): $(TARGET) $(REFLECTOR_TARGET) hd-rum-multi/hd-rum
cp $(REFLECTOR_TARGET) $(BUNDLE)/Contents/MacOS/
cp -r data/MacOS-bundle-template/* $(BUNDLE)/
cp hd-rum-multi/hd-rum $(BUNDLE)/Contents/MacOS/
cp -r $(srcdir)/share/ $(BUNDLE)/Contents/share/
touch $@ # mark target as up to date
# adds libraries to the bundle
@@ -701,7 +705,12 @@ install: all
$(INSTALL) -d -m 755 $(DESTDIR)$(man1dir)
$(INSTALL) -m 644 $(srcdir)/data/uv.1 $(srcdir)/data/hd-rum-transcode.1 $(DESTDIR)$(man1dir)
if [ -n '@DLL_LIBS@' ]; then $(INSTALL) -m 644 @DLL_LIBS@ $(DESTDIR)$(bindir); fi
if [ -n "@VULKAN@" ]; then\
declare -a SHADERS=($(VULKAN_SHADERS))\
for shader in $${SHADERS[@]}; do \
$(INSTALL) -D -m 644 "$(srcdir)/share/ultragrid/vulkan_shaders/$$shader" "$(DESTDIR)$(datadir)/ultragrid/vulkan_shaders/$$shader"; \
done; \
fi
uninstall:
$(RM) $(DESTDIR)$(bindir)/uv
$(RM) $(DESTDIR)$(bindir)/hd-rum-transcode
@@ -715,5 +724,13 @@ uninstall:
$(RM) $(DESTDIR)$(datadir)/metainfo/cz.cesnet.ultragrid.appdata.xml;\
$(RM) $(DESTDIR)$(datadir)/pixmaps/ultragrid.png;\
fi
if [ -n "@VULKAN@" ]; then\
declare -a SHADERS=($(VULKAN_SHADERS))\
for shader in $${SHADERS[@]}; do \
$(RM) "$(DESTDIR)$(datadir)/ultragrid/vulkan_shaders/$$shader";\
done; \
rmdir $(DESTDIR)$(datadir)/ultragrid/vulkan_shaders;\
rmdir $(DESTDIR)$(datadir)/ultragrid;\
fi
# vim: set noexpandtab

View File

@@ -1236,6 +1236,39 @@ if test $sdl_req = yes -a $sdl = no; then
AC_MSG_ERROR([SDL requested but found any version]);
fi
# ------------------------------------------------------------------------------
# Vulkan
# ------------------------------------------------------------------------------
vulkan=no
AC_ARG_ENABLE(vulkan,
[ --disable-vulkan disable sdl2_vulkan display (default is auto]
[ Requires: sdl2 vulkan],
[vulkan_req=$enableval],
[vulkan_req=$build_default]
)
PKG_CHECK_MODULES([VULKAN], [vulkan], [found_vulkan=yes], [found_vulkan=no])
if test $vulkan_req != no; then
if test $sdl = no -o $sdl_version != 2; then
AC_MSG_ERROR([SDL2 not found]);
fi
fi
#echo $vulkan_req $sdl $sdl_version $found_vulkan
if test $vulkan_req != no -a $sdl = yes -a $sdl_version = 2 -a $found_vulkan = yes
then
VULKAN_OBJ="src/video_display/vulkan/vulkan_sdl2.o src/video_display/vulkan/vulkan_display.o src/video_display/vulkan/vulkan_context.o src/video_display/vulkan/vulkan_transfer_image.o src/video_display/vulkan/vulkan_pipelines.o"
AC_DEFINE([HAVE_VULKAN], [1], [Build with vulkan support])
VULKAN_LIBS="$VULKAN_LIBS $SDL_LIB"
ADD_MODULE("display_vulkan_sdl2", "$VULKAN_OBJ", "$VULKAN_LIBS")
VULKAN=vulkanEnabled
AC_SUBST(VULKAN)
vulkan=yes
fi
# ------------------------------------------------------------------------------
# GLM (OpenGL math library)
# ------------------------------------------------------------------------------
@@ -3547,6 +3580,7 @@ RESULT=`add_column "$RESULT" "Screen capture" $screen_cap $?`
RESULT=`add_column "$RESULT" "SDL (ver. $sdl_version)" $sdl $?`
RESULT=`add_column "$RESULT" "SW video mix" $swmix $?`
RESULT=`add_column "$RESULT" "V4L2" $v4l2 $?`
RESULT=`add_column "$RESULT" "VULKAN_SDL2" $vulkan $?`
RESULT=`add_column "$RESULT" "XIMEA" $ximea $?`
RESULT=`end_section "$RESULT"`