File 0001-Vulkan-Use-find_package-to-support-system-wide-insta.patch of Package ogre
diff -Nur ogre-13.5.3/CMake/Dependencies.cmake new/CMake/Dependencies.cmake
--- ogre-13.5.3/CMake/Dependencies.cmake 2022-11-24 12:21:18.000000000 +0100
+++ new/CMake/Dependencies.cmake 2022-11-25 11:16:25.507305592 +0100
@@ -252,7 +252,8 @@
endif ()
# Find Vulkan SDK
-macro_log_feature(ENV{VULKAN_SDK} "Vulkan SDK" "Vulkan RenderSystem, glslang Plugin. Alternatively use system packages" "https://vulkan.lunarg.com/")
+find_package(Vulkan)
+macro_log_feature(Vulkan_FOUND "Vulkan SDK" "Vulkan RenderSystem, glslang Plugin. Alternatively use system packages" "https://vulkan.lunarg.com/")
# OpenEXR
find_package(OpenEXR)
diff -Nur ogre-13.5.3/CMake/Dependencies.cmake.orig new/CMake/Dependencies.cmake.orig
--- ogre-13.5.3/CMake/Dependencies.cmake.orig 1970-01-01 01:00:00.000000000 +0100
+++ new/CMake/Dependencies.cmake.orig 2022-11-24 12:21:18.000000000 +0100
@@ -0,0 +1,331 @@
+#-------------------------------------------------------------------
+# This file is part of the CMake build system for OGRE
+# (Object-oriented Graphics Rendering Engine)
+# For the latest info, see http://www.ogre3d.org/
+#
+# The contents of this file are placed in the public domain. Feel
+# free to make use of it in any way you like.
+#-------------------------------------------------------------------
+
+#######################################################################
+# Find all necessary and optional OGRE dependencies
+#######################################################################
+
+# OGRE_DEPENDENCIES_DIR can be used to specify a single base
+# folder where the required dependencies may be found.
+set(OGRE_DEPENDENCIES_DIR "${PROJECT_BINARY_DIR}/Dependencies" CACHE PATH "Path to prebuilt OGRE dependencies")
+option(OGRE_BUILD_DEPENDENCIES "automatically build Ogre Dependencies (SDL2, pugixml)" TRUE)
+
+message(STATUS "DEPENDENCIES_DIR: ${OGRE_DEPENDENCIES_DIR}")
+
+set(OGREDEPS_PATH "${OGRE_DEPENDENCIES_DIR}")
+set(OGRE_DEP_SEARCH_PATH "${OGRE_DEPENDENCIES_DIR}")
+
+if(CMAKE_CROSSCOMPILING)
+ set(CMAKE_FIND_ROOT_PATH ${OGREDEPS_PATH} "${CMAKE_FIND_ROOT_PATH}")
+
+ set(CROSS -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE})
+
+ if(ANDROID)
+ set(CROSS ${CROSS}
+ -DANDROID_NATIVE_API_LEVEL=${ANDROID_NATIVE_API_LEVEL}
+ -DANDROID_ABI=${ANDROID_ABI}
+ -DANDROID_NDK=${ANDROID_NDK})
+ endif()
+
+ if(APPLE_IOS)
+ set(CROSS ${CROSS}
+ -DIOS_PLATFORM=${IOS_PLATFORM})
+ else()
+ # this should help discovering zlib, but on ios it breaks it
+ set(CROSS ${CROSS}
+ -DCMAKE_FIND_ROOT_PATH=${CMAKE_FIND_ROOT_PATH})
+ endif()
+endif()
+
+# if we build our own deps, do it static as it generally eases distribution
+set(OGREDEPS_SHARED FALSE)
+
+set(BUILD_COMMAND_OPTS --target install --config ${CMAKE_BUILD_TYPE})
+
+set(BUILD_COMMAND_COMMON ${CMAKE_COMMAND}
+ -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+ -DCMAKE_INSTALL_PREFIX=${OGREDEPS_PATH}
+ -G ${CMAKE_GENERATOR}
+ -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}
+ -DCMAKE_GENERATOR_TOOLSET=${CMAKE_GENERATOR_TOOLSET}
+ -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
+ -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE # allow linking into a shared lib
+ ${CROSS})
+
+# Set hardcoded path guesses for various platforms
+if (UNIX AND NOT EMSCRIPTEN)
+ set(OGRE_DEP_SEARCH_PATH ${OGRE_DEP_SEARCH_PATH} /usr/local)
+ # Ubuntu 11.10 has an inconvenient path to OpenGL libraries
+ set(OGRE_DEP_SEARCH_PATH ${OGRE_DEP_SEARCH_PATH} /usr/lib/${CMAKE_SYSTEM_PROCESSOR}-linux-gnu)
+endif ()
+
+# give guesses as hints to the find_package calls
+set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${OGRE_DEP_SEARCH_PATH})
+set(CMAKE_FRAMEWORK_PATH ${CMAKE_FRAMEWORK_PATH} ${OGRE_DEP_SEARCH_PATH})
+
+if(OGRE_BUILD_DEPENDENCIES AND NOT EXISTS ${OGREDEPS_PATH})
+ message(STATUS "Building pugixml")
+ file(DOWNLOAD
+ https://github.com/zeux/pugixml/releases/download/v1.12/pugixml-1.12.tar.gz
+ ${PROJECT_BINARY_DIR}/pugixml-1.12.tar.gz)
+ execute_process(COMMAND ${CMAKE_COMMAND}
+ -E tar xf pugixml-1.12.tar.gz WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
+ execute_process(COMMAND ${BUILD_COMMAND_COMMON}
+ -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE # this will be linked into a shared lib
+ ${PROJECT_BINARY_DIR}/pugixml-1.12
+ WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/pugixml-1.12)
+ execute_process(COMMAND ${CMAKE_COMMAND}
+ --build ${PROJECT_BINARY_DIR}/pugixml-1.12 ${BUILD_COMMAND_OPTS})
+
+ #find_package(Freetype)
+ if (NOT FREETYPE_FOUND)
+ message(STATUS "Building freetype")
+ file(DOWNLOAD
+ https://download.savannah.gnu.org/releases/freetype/freetype-2.12.1.tar.gz
+ ${PROJECT_BINARY_DIR}/freetype-2.12.1.tar.gz)
+ execute_process(COMMAND ${CMAKE_COMMAND}
+ -E tar xf freetype-2.12.1.tar.gz WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
+ # patch toolchain for iOS
+ execute_process(COMMAND ${CMAKE_COMMAND} -E copy
+ ${PROJECT_SOURCE_DIR}/CMake/toolchain/ios.toolchain.xcode.cmake
+ freetype-2.12.1/builds/cmake/iOS.cmake
+ WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
+ execute_process(COMMAND ${BUILD_COMMAND_COMMON}
+ -DBUILD_SHARED_LIBS=${OGREDEPS_SHARED}
+ -DCMAKE_DISABLE_FIND_PACKAGE_PNG=TRUE # disable third-party deps
+ -DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE
+ -DCMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE
+ -DCMAKE_DISABLE_FIND_PACKAGE_BrotliDec=TRUE
+ # workaround for broken iOS toolchain in freetype
+ -DPROJECT_SOURCE_DIR=${PROJECT_BINARY_DIR}/freetype-2.12.1
+ ${PROJECT_BINARY_DIR}/freetype-2.12.1
+ WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/freetype-2.12.1/objs)
+ execute_process(COMMAND ${CMAKE_COMMAND}
+ --build ${PROJECT_BINARY_DIR}/freetype-2.12.1/objs ${BUILD_COMMAND_OPTS})
+ endif()
+
+ if(MSVC OR MINGW OR SKBUILD) # other platforms dont need this
+ message(STATUS "Building SDL2")
+ file(DOWNLOAD
+ https://libsdl.org/release/SDL2-2.0.22.tar.gz
+ ${PROJECT_BINARY_DIR}/SDL2-2.0.22.tar.gz)
+ execute_process(COMMAND ${CMAKE_COMMAND}
+ -E tar xf SDL2-2.0.22.tar.gz WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
+ execute_process(COMMAND ${CMAKE_COMMAND}
+ -E make_directory ${PROJECT_BINARY_DIR}/SDL2-build)
+ execute_process(COMMAND ${BUILD_COMMAND_COMMON}
+ -DSDL_STATIC=FALSE
+ -DCMAKE_INSTALL_LIBDIR=lib
+ ${PROJECT_BINARY_DIR}/SDL2-2.0.22
+ WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/SDL2-build)
+ execute_process(COMMAND ${CMAKE_COMMAND}
+ --build ${PROJECT_BINARY_DIR}/SDL2-build ${BUILD_COMMAND_OPTS})
+ endif()
+
+ if(MSVC OR MINGW OR SKBUILD) # other platforms dont need this
+ message(STATUS "Building zlib") # only needed for Assimp
+ file(DOWNLOAD
+ http://zlib.net/zlib-1.2.13.tar.gz
+ ${PROJECT_BINARY_DIR}/zlib-1.2.13.tar.gz
+ EXPECTED_HASH SHA256=b3a24de97a8fdbc835b9833169501030b8977031bcb54b3b3ac13740f846ab30)
+ execute_process(COMMAND ${CMAKE_COMMAND}
+ -E tar xf zlib-1.2.13.tar.gz WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
+ execute_process(COMMAND ${BUILD_COMMAND_COMMON}
+ -DBUILD_SHARED_LIBS=${OGREDEPS_SHARED}
+ ${PROJECT_BINARY_DIR}/zlib-1.2.13
+ WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/zlib-1.2.13)
+ execute_process(COMMAND ${CMAKE_COMMAND}
+ --build ${PROJECT_BINARY_DIR}/zlib-1.2.13 ${BUILD_COMMAND_OPTS})
+
+ message(STATUS "Building Assimp")
+ file(DOWNLOAD
+ https://github.com/assimp/assimp/archive/v5.2.4.tar.gz
+ ${PROJECT_BINARY_DIR}/v5.2.4.tar.gz)
+ execute_process(COMMAND ${CMAKE_COMMAND}
+ -E tar xf v5.2.4.tar.gz WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
+ execute_process(COMMAND ${BUILD_COMMAND_COMMON}
+ -DZLIB_ROOT=${OGREDEPS_PATH}
+ -DBUILD_SHARED_LIBS=OFF
+ -DASSIMP_BUILD_TESTS=OFF
+ -DASSIMP_NO_EXPORT=TRUE
+ -DASSIMP_BUILD_OGRE_IMPORTER=OFF
+ -DASSIMP_BUILD_ASSIMP_TOOLS=OFF
+ ${PROJECT_BINARY_DIR}/assimp-5.2.4
+ WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/assimp-5.2.4)
+ execute_process(COMMAND ${CMAKE_COMMAND}
+ --build ${PROJECT_BINARY_DIR}/assimp-5.2.4 ${BUILD_COMMAND_OPTS})
+ endif()
+
+ message(STATUS "Building Bullet")
+ file(DOWNLOAD
+ https://github.com/bulletphysics/bullet3/archive/refs/tags/3.24.tar.gz
+ ${PROJECT_BINARY_DIR}/3.24.tar.gz)
+ execute_process(COMMAND ${CMAKE_COMMAND}
+ -E tar xf 3.24.tar.gz WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
+ execute_process(COMMAND ${BUILD_COMMAND_COMMON}
+ -DBUILD_SHARED_LIBS=OFF
+ -DINSTALL_LIBS=ON
+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+ -DUSE_MSVC_RUNTIME_LIBRARY_DLL=ON
+ -DBUILD_PYBULLET=OFF
+ -DUSE_DOUBLE_PRECISION=OFF
+ -DBUILD_CPU_DEMOS=OFF
+ -DBUILD_BULLET2_DEMOS=OFF
+ -DBUILD_EXTRAS=OFF
+ -DBUILD_EGL=OFF
+ -DBUILD_ENET=OFF
+ -DBUILD_UNIT_TESTS=OFF
+ -DCMAKE_RELWITHDEBINFO_POSTFIX= # fixes FindBullet on MSVC
+ -DBUILD_CLSOCKET=OFF
+ ${PROJECT_BINARY_DIR}/bullet3-3.24
+ WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/bullet3-3.24)
+ execute_process(COMMAND ${CMAKE_COMMAND}
+ --build ${PROJECT_BINARY_DIR}/bullet3-3.24 ${BUILD_COMMAND_OPTS})
+ set(BULLET_ROOT ${OGREDEPS_PATH})
+endif()
+
+#######################################################################
+# Core dependencies
+#######################################################################
+
+# Find FreeImage
+find_package(FreeImage)
+macro_log_feature(FreeImage_FOUND "freeimage" "Support for commonly used graphics image formats" "http://freeimage.sourceforge.net")
+
+# Find FreeType
+find_package(Freetype)
+macro_log_feature(FREETYPE_FOUND "freetype" "Portable font engine" "http://www.freetype.org")
+
+# Find X11
+if (UNIX AND NOT APPLE AND NOT ANDROID AND NOT EMSCRIPTEN)
+ find_package(X11 REQUIRED)
+ macro_log_feature(X11_FOUND "X11" "X Window system" "http://www.x.org")
+endif ()
+
+
+#######################################################################
+# RenderSystem dependencies
+#######################################################################
+
+# Find OpenGL
+if(NOT ANDROID AND NOT EMSCRIPTEN)
+ find_package(OpenGL)
+ macro_log_feature(OPENGL_FOUND "OpenGL" "Support for the OpenGL and OpenGL 3+ render systems" "http://www.opengl.org/")
+endif()
+
+# Find OpenGL ES 2.x
+find_package(OpenGLES2)
+macro_log_feature(OPENGLES2_FOUND "OpenGL ES 2.x" "Support for the OpenGL ES 2.x render system" "http://www.khronos.org/opengles/")
+
+# Find DirectX
+if(WIN32)
+ find_package(DirectX)
+ macro_log_feature(DirectX9_FOUND "DirectX9" "Support for the DirectX render system" "http://msdn.microsoft.com/en-us/directx/")
+
+ find_package(DirectX11)
+ macro_log_feature(DirectX11_FOUND "DirectX11" "Support for the DirectX11 render system" "http://msdn.microsoft.com/en-us/directx/")
+
+ if(OGRE_CONFIG_ENABLE_QUAD_BUFFER_STEREO)
+ # Find DirectX Stereo Driver Libraries
+ find_package(NVAPI)
+ macro_log_feature(NVAPI_FOUND "NVAPI" "Support NVIDIA stereo with the DirectX render system" "https://developer.nvidia.com/nvapi")
+
+ find_package(AMDQBS)
+ macro_log_feature(AMDQBS_FOUND "AMDQBS" "Support AMD stereo with the DirectX render system" "http://developer.amd.com/tools-and-sdks/graphics-development/amd-quad-buffer-sdk/")
+ endif()
+endif()
+
+#######################################################################
+# Additional features
+#######################################################################
+
+# Find Cg
+if (NOT (APPLE_IOS OR WINDOWS_STORE OR WINDOWS_PHONE OR ANDROID OR EMSCRIPTEN))
+ find_package(Cg)
+ macro_log_feature(Cg_FOUND "cg" "C for graphics shader language" "http://developer.nvidia.com/object/cg_toolkit.html")
+endif ()
+
+# Find Vulkan SDK
+macro_log_feature(ENV{VULKAN_SDK} "Vulkan SDK" "Vulkan RenderSystem, glslang Plugin. Alternatively use system packages" "https://vulkan.lunarg.com/")
+
+# OpenEXR
+find_package(OpenEXR)
+macro_log_feature(OPENEXR_FOUND "OpenEXR" "Load High dynamic range images" "http://www.openexr.com/")
+
+# Python
+set(Python_ADDITIONAL_VERSIONS 3.4) # allows using python3 on Ubuntu 14.04
+find_package(PythonInterp)
+find_package(PythonLibs)
+macro_log_feature(PYTHONLIBS_FOUND "Python" "Language bindings to use OGRE from Python" "http://www.python.org/")
+
+# SWIG
+find_package(SWIG 3.0.8 QUIET)
+macro_log_feature(SWIG_FOUND "SWIG" "Language bindings (Python, Java, C#) for OGRE" "http://www.swig.org/")
+
+# pugixml
+find_package(pugixml QUIET)
+macro_log_feature(pugixml_FOUND "pugixml" "Needed for XMLConverter and DotScene Plugin" "https://pugixml.org/")
+
+# Find zlib
+find_package(ZLIB)
+macro_log_feature(ZLIB_FOUND "zlib" "Simple data compression library" "http://www.zlib.net")
+
+# Assimp
+find_package(assimp QUIET)
+macro_log_feature(assimp_FOUND "Assimp" "Needed for the AssimpLoader Plugin" "https://www.assimp.org/")
+
+# Bullet
+find_package(Bullet QUIET)
+macro_log_feature(BULLET_FOUND "Bullet" "Bullet physics" "https://pybullet.org")
+
+if(assimp_FOUND)
+ # workaround horribly broken assimp cmake, fixed with assimp 5.1
+ add_library(fix::assimp INTERFACE IMPORTED)
+ set_target_properties(fix::assimp PROPERTIES
+ INTERFACE_LINK_LIBRARIES "${ASSIMP_LIBRARIES};pugixml"
+ INTERFACE_LINK_DIRECTORIES "${ASSIMP_LIBRARY_DIRS}"
+ )
+ if(EXISTS "${ASSIMP_INCLUDE_DIRS}")
+ set_target_properties(fix::assimp PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${ASSIMP_INCLUDE_DIRS}")
+ endif()
+endif()
+
+#######################################################################
+# Samples dependencies
+#######################################################################
+
+# Find sdl2
+if(NOT ANDROID AND NOT EMSCRIPTEN)
+ # find script does not work in cross compilation environment
+ find_package(SDL2 QUIET)
+ macro_log_feature(SDL2_FOUND "SDL2" "Simple DirectMedia Library needed for input handling in samples" "https://www.libsdl.org/")
+ if(SDL2_FOUND AND NOT TARGET SDL2::SDL2)
+ add_library(SDL2::SDL2 INTERFACE IMPORTED)
+ set_target_properties(SDL2::SDL2 PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIRS}"
+ INTERFACE_LINK_LIBRARIES "${SDL2_LIBRARIES}"
+ )
+ endif()
+
+ find_package(QT NAMES Qt6 Qt5 COMPONENTS Core Gui QUIET CONFIG)
+ find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui QUIET CONFIG)
+
+ macro_log_feature(QT_FOUND "Qt" "optional integration with the Qt Library for window creation and input" "http://www.qt.io/")
+endif()
+
+#######################################################################
+# Tools
+#######################################################################
+
+find_package(Doxygen QUIET)
+macro_log_feature(DOXYGEN_FOUND "Doxygen" "Tool for building API documentation" "http://doxygen.org")
+
+# Find Softimage SDK
+find_package(Softimage)
+macro_log_feature(Softimage_FOUND "Softimage" "Softimage SDK needed for building XSIExporter" "")
diff -Nur ogre-13.5.3/PlugIns/GLSLang/CMakeLists.txt new/PlugIns/GLSLang/CMakeLists.txt
--- ogre-13.5.3/PlugIns/GLSLang/CMakeLists.txt 2022-11-24 12:21:18.000000000 +0100
+++ new/PlugIns/GLSLang/CMakeLists.txt 2022-11-25 11:18:09.586445470 +0100
@@ -12,11 +12,9 @@
${ANDROID_NDK}/sources/third_party/shaderc/third_party/)
target_link_libraries(Plugin_GLSLangProgramManager PUBLIC OgreMain
${ANDROID_NDK}/sources/third_party/shaderc/libs/c++_static/${ANDROID_ABI}/libshaderc.a)
-elseif(DEFINED ENV{VULKAN_SDK})
- message(STATUS "Using VULKAN_SDK: $ENV{VULKAN_SDK}")
- target_include_directories(Plugin_GLSLangProgramManager SYSTEM PRIVATE $ENV{VULKAN_SDK}/include)
- target_link_directories(Plugin_GLSLangProgramManager PUBLIC $ENV{VULKAN_SDK}/lib)
- target_link_libraries(Plugin_GLSLangProgramManager PUBLIC OgreMain shaderc_combined)
+elseif(Vulkan_FOUND)
+ target_include_directories(Plugin_GLSLangProgramManager PRIVATE ${Vulkan_INCLUDE_DIRS})
+ target_link_libraries(Plugin_GLSLangProgramManager PUBLIC OgreMain shaderc_shared PRIVATE Vulkan::Vulkan glslang SPIRV)
else()
set(GLSLANG_LIBS glslang HLSL OSDependent OGLCompiler SPIRV SPIRV-Tools-opt SPIRV-Tools)
find_library(GLSLANG_MI MachineIndependent)
@@ -31,4 +29,4 @@
generate_export_header(Plugin_GLSLangProgramManager
EXPORT_MACRO_NAME _OgreGLSLangProgramManagerExport
EXPORT_FILE_NAME ${PROJECT_BINARY_DIR}/include/OgreGLSLangProgramManagerExports.h)
-install(FILES ${HEADER_FILES} DESTINATION include/OGRE/Plugins/GLSLang)
\ Kein Zeilenumbruch am Dateiende.
+install(FILES ${HEADER_FILES} DESTINATION include/OGRE/Plugins/GLSLang)
diff -Nur ogre-13.5.3/PlugIns/GLSLang/CMakeLists.txt.orig new/PlugIns/GLSLang/CMakeLists.txt.orig
--- ogre-13.5.3/PlugIns/GLSLang/CMakeLists.txt.orig 1970-01-01 01:00:00.000000000 +0100
+++ new/PlugIns/GLSLang/CMakeLists.txt.orig 2022-11-24 12:21:18.000000000 +0100
@@ -0,0 +1,34 @@
+file(GLOB HEADER_FILES "${CMAKE_CURRENT_SOURCE_DIR}/include/*.h")
+list(APPEND HEADER_FILES ${PROJECT_BINARY_DIR}/include/OgreGLSLangProgramManagerExports.h)
+
+add_library(Plugin_GLSLangProgramManager ${OGRE_LIB_TYPE} ${HEADER_FILES} src/OgreGLSLang.cpp)
+target_include_directories(Plugin_GLSLangProgramManager PUBLIC
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
+ $<INSTALL_INTERFACE:include/OGRE/Plugins/GLSLang>)
+
+if(ANDROID)
+ target_include_directories(Plugin_GLSLangProgramManager SYSTEM PRIVATE
+ ${ANDROID_NDK}/sources/third_party/shaderc/third_party/glslang
+ ${ANDROID_NDK}/sources/third_party/shaderc/third_party/)
+ target_link_libraries(Plugin_GLSLangProgramManager PUBLIC OgreMain
+ ${ANDROID_NDK}/sources/third_party/shaderc/libs/c++_static/${ANDROID_ABI}/libshaderc.a)
+elseif(DEFINED ENV{VULKAN_SDK})
+ message(STATUS "Using VULKAN_SDK: $ENV{VULKAN_SDK}")
+ target_include_directories(Plugin_GLSLangProgramManager SYSTEM PRIVATE $ENV{VULKAN_SDK}/include)
+ target_link_directories(Plugin_GLSLangProgramManager PUBLIC $ENV{VULKAN_SDK}/lib)
+ target_link_libraries(Plugin_GLSLangProgramManager PUBLIC OgreMain shaderc_combined)
+else()
+ set(GLSLANG_LIBS glslang HLSL OSDependent OGLCompiler SPIRV SPIRV-Tools-opt SPIRV-Tools)
+ find_library(GLSLANG_MI MachineIndependent)
+ if(GLSLANG_MI)
+ set(GLSLANG_LIBS ${GLSLANG_MI} ${GLSLANG_LIBS})
+ endif()
+ target_link_libraries(Plugin_GLSLangProgramManager PUBLIC OgreMain ${GLSLANG_LIBS})
+endif()
+
+ogre_config_framework(Plugin_GLSLangProgramManager)
+ogre_config_plugin(Plugin_GLSLangProgramManager)
+generate_export_header(Plugin_GLSLangProgramManager
+ EXPORT_MACRO_NAME _OgreGLSLangProgramManagerExport
+ EXPORT_FILE_NAME ${PROJECT_BINARY_DIR}/include/OgreGLSLangProgramManagerExports.h)
+install(FILES ${HEADER_FILES} DESTINATION include/OGRE/Plugins/GLSLang)
\ Kein Zeilenumbruch am Dateiende.
diff -Nur ogre-13.5.3/PlugIns/GLSLang/CMakeLists.txt.rej new/PlugIns/GLSLang/CMakeLists.txt.rej
--- ogre-13.5.3/PlugIns/GLSLang/CMakeLists.txt.rej 1970-01-01 01:00:00.000000000 +0100
+++ new/PlugIns/GLSLang/CMakeLists.txt.rej 2022-11-25 11:16:25.507305592 +0100
@@ -0,0 +1,17 @@
+--- PlugIns/GLSLang/CMakeLists.txt 2022-08-06 22:44:00.000000000 +0200
++++ PlugIns/GLSLang/CMakeLists.txt 2022-11-25 10:17:12.220731911 +0100
+@@ -12,11 +12,9 @@
+ ${ANDROID_NDK}/sources/third_party/shaderc/third_party/)
+ target_link_libraries(Plugin_GLSLangProgramManager PUBLIC OgreMain
+ ${ANDROID_NDK}/sources/third_party/shaderc/libs/c++_static/${ANDROID_ABI}/libshaderc.a)
+-elseif(DEFINED ENV{VULKAN_SDK})
+- message(STATUS "Using VULKAN_SDK: $ENV{VULKAN_SDK}")
+- target_include_directories(Plugin_GLSLangProgramManager PRIVATE $ENV{VULKAN_SDK}/include)
+- target_link_directories(Plugin_GLSLangProgramManager PRIVATE $ENV{VULKAN_SDK}/lib)
+- target_link_libraries(Plugin_GLSLangProgramManager PUBLIC OgreMain shaderc_combined)
++elseif(Vulkan_FOUND)
++ target_include_directories(Plugin_GLSLangProgramManager PRIVATE ${Vulkan_INCLUDE_DIRS})
++ target_link_libraries(Plugin_GLSLangProgramManager PUBLIC OgreMain glslang SPIRV shaderc_shared PRIVATE Vulkan::Vulkan)
+ else()
+ set(GLSLANG_LIBS glslang HLSL OSDependent OGLCompiler SPIRV SPIRV-Tools-opt SPIRV-Tools)
+ find_library(GLSLANG_MI MachineIndependent)
diff -Nur ogre-13.5.3/RenderSystems/Vulkan/CMakeLists.txt new/RenderSystems/Vulkan/CMakeLists.txt
--- ogre-13.5.3/RenderSystems/Vulkan/CMakeLists.txt 2022-11-24 12:21:18.000000000 +0100
+++ new/RenderSystems/Vulkan/CMakeLists.txt 2022-11-25 11:16:25.507305592 +0100
@@ -19,8 +19,8 @@
add_library(RenderSystem_Vulkan ${OGRE_LIB_TYPE} ${HEADER_FILES} ${SOURCE_FILES})
if(WIN32)
- target_include_directories(RenderSystem_Vulkan PRIVATE $ENV{VULKAN_SDK}/Include)
- target_link_directories(RenderSystem_Vulkan PRIVATE $ENV{VULKAN_SDK}/Lib)
+ target_include_directories(RenderSystem_Vulkan PRIVATE ${Vulkan_INCLUDE_DIRS})
+ target_link_directories(RenderSystem_Vulkan PRIVATE ${Vulkan_LIBRARY})
set_source_files_properties("${CMAKE_CURRENT_SOURCE_DIR}/src/volk.c"
PROPERTIES COMPILE_DEFINITIONS VK_USE_PLATFORM_WIN32_KHR)
diff -Nur ogre-13.5.3/RenderSystems/Vulkan/CMakeLists.txt.orig new/RenderSystems/Vulkan/CMakeLists.txt.orig
--- ogre-13.5.3/RenderSystems/Vulkan/CMakeLists.txt.orig 1970-01-01 01:00:00.000000000 +0100
+++ new/RenderSystems/Vulkan/CMakeLists.txt.orig 2022-11-24 12:21:18.000000000 +0100
@@ -0,0 +1,59 @@
+#-------------------------------------------------------------------
+# This file is part of the CMake build system for OGRE
+# (Object-oriented Graphics Rendering Engine)
+# For the latest info, see http://www.ogre3d.org/
+#
+# The contents of this file are placed in the public domain. Feel
+# free to make use of it in any way you like.
+#-------------------------------------------------------------------
+
+# Configure Vulkan RenderSystem build
+
+file(GLOB HEADER_FILES "${CMAKE_CURRENT_SOURCE_DIR}/include/*.h")
+list(APPEND HEADER_FILES ${PROJECT_BINARY_DIR}/include/OgreVulkanExports.h)
+file(GLOB SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/src/volk.c")
+
+set( HEADER_FILES ${HEADER_FILES})
+set( SOURCE_FILES ${SOURCE_FILES})
+
+add_library(RenderSystem_Vulkan ${OGRE_LIB_TYPE} ${HEADER_FILES} ${SOURCE_FILES})
+
+if(WIN32)
+ target_include_directories(RenderSystem_Vulkan PRIVATE $ENV{VULKAN_SDK}/Include)
+ target_link_directories(RenderSystem_Vulkan PRIVATE $ENV{VULKAN_SDK}/Lib)
+
+ set_source_files_properties("${CMAKE_CURRENT_SOURCE_DIR}/src/volk.c"
+ PROPERTIES COMPILE_DEFINITIONS VK_USE_PLATFORM_WIN32_KHR)
+elseif(ANDROID)
+ set_source_files_properties("${CMAKE_CURRENT_SOURCE_DIR}/src/volk.c"
+ PROPERTIES COMPILE_DEFINITIONS VK_USE_PLATFORM_ANDROID_KHR)
+else()
+ set_source_files_properties("${CMAKE_CURRENT_SOURCE_DIR}/src/volk.c"
+ PROPERTIES COMPILE_DEFINITIONS VK_USE_PLATFORM_XLIB_KHR)
+ target_link_libraries(RenderSystem_Vulkan PRIVATE ${X11_LIBRARIES})
+endif()
+
+if(UNIX)
+ set_source_files_properties(src/vma.cpp
+ PROPERTIES COMPILE_FLAGS "-Wno-implicit-fallthrough -Wno-unused-variable -Wno-parentheses -Wno-unused-function")
+endif()
+
+#target_compile_features(RenderSystem_Vulkan PRIVATE cxx_std_17)
+target_link_libraries(RenderSystem_Vulkan PUBLIC OgreMain PRIVATE ${CMAKE_DL_LIBS})
+
+target_include_directories(RenderSystem_Vulkan PUBLIC
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>"
+ $<INSTALL_INTERFACE:include/OGRE/RenderSystems/Vulkan>)
+
+
+generate_export_header(RenderSystem_Vulkan
+ EXPORT_MACRO_NAME _OgreVulkanExport
+ EXPORT_FILE_NAME ${PROJECT_BINARY_DIR}/include/OgreVulkanExports.h)
+
+ogre_config_framework(RenderSystem_Vulkan)
+
+ogre_config_plugin(RenderSystem_Vulkan)
+install(FILES ${HEADER_FILES} DESTINATION include/OGRE/RenderSystems/Vulkan)
+install(FILES ${PLATFORM_HEADERS} DESTINATION include/OGRE/RenderSystems/Vulkan/${PLATFORM_HEADER_INSTALL})
+install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include DESTINATION include/OGRE/RenderSystems/Vulkan)