From c671b5109a5806206b610f26b73cdba967f8930c Mon Sep 17 00:00:00 2001
From: Elliu <elliu@hashi.re>
Date: Sat, 2 Sep 2023 12:53:06 +0200
Subject: [PATCH] BUILD: fix compilation on clang (openmp)

Search for openmp in find_package, to prevent fail at linkage if llvm
openmp is missing from system
Add explicit template specialization for QPair
---
 CMakeLists.txt         | 2 ++
 src/Lib/JsonBuilder.hh | 4 ++--
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 017fdb35..ea0c5bac 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -43,6 +43,7 @@ find_library(AVUTIL_LIBRARY     avutil      4.0 REQUIRED)
 find_library(SWRESAMPLE_LIBRARY swresample      REQUIRED)
 find_library(AVFORMAT_LIBRARY   avformat        REQUIRED)
 find_library(MPV_LIBRARY        mpv             REQUIRED)
+find_package(                   OpenMP          REQUIRED)
 
 # Grab all files
 file(GLOB_RECURSE Vivy_SRC CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cc")
@@ -70,6 +71,7 @@ target_link_libraries(Vivy PRIVATE ${AVUTIL_LIBRARY})
 target_link_libraries(Vivy PRIVATE ${SWRESAMPLE_LIBRARY})
 target_link_libraries(Vivy PRIVATE ${AVFORMAT_LIBRARY})
 target_link_libraries(Vivy PRIVATE ${MPV_LIBRARY})
+target_link_libraries(Vivy PRIVATE OpenMP::OpenMP_CXX)
 
 # Headers related things
 include("${CMAKE_CURRENT_SOURCE_DIR}/PreCompiledHeaders.cmake")
diff --git a/src/Lib/JsonBuilder.hh b/src/Lib/JsonBuilder.hh
index 6afa2936..103187e0 100644
--- a/src/Lib/JsonBuilder.hh
+++ b/src/Lib/JsonBuilder.hh
@@ -21,9 +21,9 @@ struct JsonBuilder final {
     getSubDocumentJson(const QString &name, std::shared_ptr<T> subDocPtr) noexcept
     {
         if (subDocPtr == nullptr)
-            return QPair{ name, QJsonValue() };
+            return QPair<QString, QJsonValue>{ name, QJsonValue() };
         else
-            return QPair{ name, subDocPtr->getProperties().object() };
+            return QPair<QString, QJsonValue>{ name, subDocPtr->getProperties().object() };
     }
 
 private:
-- 
GitLab