summaryrefslogtreecommitdiff
path: root/gnu/packages/patches/dolphin-emu-unbundle-tinygltf.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/dolphin-emu-unbundle-tinygltf.patch')
-rw-r--r--gnu/packages/patches/dolphin-emu-unbundle-tinygltf.patch80
1 files changed, 80 insertions, 0 deletions
diff --git a/gnu/packages/patches/dolphin-emu-unbundle-tinygltf.patch b/gnu/packages/patches/dolphin-emu-unbundle-tinygltf.patch
new file mode 100644
index 0000000000..1c91823785
--- /dev/null
+++ b/gnu/packages/patches/dolphin-emu-unbundle-tinygltf.patch
@@ -0,0 +1,80 @@
+Upstream-status: https://github.com/dolphin-emu/dolphin/pull/13824
+
+diff --git a/CMake/DolphinLibraryTools.cmake b/CMake/DolphinLibraryTools.cmake
+index 4c395a8ef9..efa0d6a9e2 100644
+--- a/CMake/DolphinLibraryTools.cmake
++++ b/CMake/DolphinLibraryTools.cmake
+@@ -1,14 +1,3 @@
+-# like add_library(new ALIAS old) but avoids add_library cannot create ALIAS target "new" because target "old" is imported but not globally visible. on older cmake
+-# This can be replaced with a direct alias call once our minimum is cmake 3.18
+-function(dolphin_alias_library new old)
+- string(REPLACE "::" "" library_no_namespace ${old})
+- if (NOT TARGET _alias_${library_no_namespace})
+- add_library(_alias_${library_no_namespace} INTERFACE)
+- target_link_libraries(_alias_${library_no_namespace} INTERFACE ${old})
+- endif()
+- add_library(${new} ALIAS _alias_${library_no_namespace})
+-endfunction()
+-
+ # Makes an imported target if it doesn't exist. Useful for when find scripts from older versions of cmake don't make the targets you need
+ function(dolphin_make_imported_target_if_missing target lib)
+ if(${lib}_FOUND AND NOT TARGET ${target})
+@@ -85,7 +74,7 @@ function(dolphin_find_optional_system_library_pkgconfig library search alias bun
+ endif()
+ if(${library}_FOUND)
+ message(STATUS "Using system ${library}")
+- dolphin_alias_library(${alias} PkgConfig::${library})
++ add_library(${alias} ALIAS PkgConfig::${library})
+ set(${library}_TYPE "System" PARENT_SCOPE)
+ else()
+ dolphin_add_bundled_library(${library} ${use_system} ${bundled_path})
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c277e2a10a..67b72179f3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ ########################################
+ # General setup
+ #
+-cmake_minimum_required(VERSION 3.13)
++cmake_minimum_required(VERSION 3.18)
+
+ cmake_policy(SET CMP0079 NEW) # let target_link_libraries() link to a target defined in a different directory
+ cmake_policy(SET CMP0080 OLD) # allow using BundleUtilities at configure time
+@@ -657,7 +657,11 @@ add_subdirectory(Externals/glslang)
+ if(WIN32 OR APPLE)
+ add_subdirectory(Externals/spirv_cross)
+ endif()
+-add_subdirectory(Externals/tinygltf)
++
++dolphin_find_optional_system_library(TinyGLTF Externals/tinygltf)
++if(NOT DEFINED tinygltf)
++ add_library(tinygltf ALIAS tinygltf::tinygltf) # using system library
++endif()
+
+ if(ENABLE_VULKAN)
+ add_definitions(-DHAS_VULKAN)
+diff --git a/Externals/tinygltf/CMakeLists.txt b/Externals/tinygltf/CMakeLists.txt
+index 0d86268bbe..9e6a99c6f8 100644
+--- a/Externals/tinygltf/CMakeLists.txt
++++ b/Externals/tinygltf/CMakeLists.txt
+@@ -7,5 +7,5 @@ if (NOT MSVC)
+ endif()
+ target_sources(tinygltf PRIVATE
+ tinygltf/tiny_gltf.cc)
+-target_include_directories(tinygltf INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
++target_include_directories(tinygltf INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/tinygltf)
+ dolphin_disable_warnings(tinygltf)
+diff --git a/Source/Core/VideoCommon/Assets/MeshAsset.cpp b/Source/Core/VideoCommon/Assets/MeshAsset.cpp
+index bde8c8aab6..13eb2b4448 100644
+--- a/Source/Core/VideoCommon/Assets/MeshAsset.cpp
++++ b/Source/Core/VideoCommon/Assets/MeshAsset.cpp
+@@ -7,7 +7,7 @@
+ #include <array>
+ #include <utility>
+
+-#include <tinygltf/tiny_gltf.h>
++#include <tiny_gltf.h>
+
+ #include "Common/IOFile.h"
+ #include "Common/Logging/Log.h"