summaryrefslogtreecommitdiff
path: root/gnu/packages/patches/liblinphone-jsoncpp.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/liblinphone-jsoncpp.patch')
-rw-r--r--gnu/packages/patches/liblinphone-jsoncpp.patch82
1 files changed, 82 insertions, 0 deletions
diff --git a/gnu/packages/patches/liblinphone-jsoncpp.patch b/gnu/packages/patches/liblinphone-jsoncpp.patch
new file mode 100644
index 0000000000..d012b07870
--- /dev/null
+++ b/gnu/packages/patches/liblinphone-jsoncpp.patch
@@ -0,0 +1,82 @@
+diff --git a/cmake/FindJsonCPP.cmake b/cmake/FindJsonCPP.cmake
+index 59e971a58..18260fde8 100644
+--- a/cmake/FindJsonCPP.cmake
++++ b/cmake/FindJsonCPP.cmake
+@@ -39,10 +39,11 @@
+ # JsonCPP_FOUND - The jsoncpp library has been found
+ # JsonCPP_TARGET - The name of the CMake target for the jsoncpp library
+
++if(TARGET jsoncpp_lib OR TARGET jsoncpp_static OR TARGET PkgConfig::jsoncpp)
+
+-if(TARGET jsoncpp_lib OR TARGET jsoncpp_static)
+-
+- if(TARGET jsoncpp_lib)
++ if(TARGET PkgConfig::jsoncpp)
++ set(JsonCPP_TARGET PkgConfig::jsoncpp)
++ elseif(TARGET jsoncpp_lib)
+ set(JsonCPP_TARGET jsoncpp_lib)
+ else()
+ set(JsonCPP_TARGET jsoncpp_static)
+@@ -57,24 +58,50 @@ if(TARGET jsoncpp_lib OR TARGET jsoncpp_static)
+ mark_as_advanced(JsonCPP_TARGET)
+
+ else()
+-
+- set(_OPTIONS "CONFIG")
++ find_package(PkgConfig QUIET)
++
++ set(_OPTIONS1 "CONFIG")
++ set(_OPTIONS2 "IMPORTED_TARGET") # for pkg_check_modules fallback
++
+ if(JsonCPP_FIND_REQUIRED)
+- list(APPEND _OPTIONS "REQUIRED")
+- endif()
+- if(JsonCPP_FIND_QUIETLY)
+- list(APPEND _OPTIONS "QUIET")
++ if(PKG_CONFIG_FOUND)
++ list(APPEND _OPTIONS2 "REQUIRED")
++ else()
++ list(APPEND _OPTIONS1 "REQUIRED")
++ endif()
+ endif()
+- if(JsonCPP_FIND_VERSION)
+- list(PREPEND _OPTIONS "${jsoncpp_FIND_VERSION}")
++ if(JsonCPP_FIND_QUIETLY)
++ list(APPEND _OPTIONS1 "QUIET")
++ list(APPEND _OPTIONS2 "QUIET")
+ endif()
+- if(JsonCPP_FIND_EXACT)
+- list(APPEND _OPTIONS "EXACT")
++ if(PKG_CONFIG_FOUND)
++ if(JsonCPP_FIND_VERSION)
++ if(JsonCPP_FIND_EXACT)
++ list(APPEND _OPTIONS2 "jsoncpp=${JsonCPP_FIND_VERSION}")
++ else()
++ list(APPEND _OPTIONS2 "jsoncpp>=${JsonCPP_FIND_VERSION}")
++ endif()
++ else()
++ list(APPEND _OPTIONS2 "jsoncpp")
++ endif()
++ else()
++ if(JsonCPP_FIND_VERSION)
++ list(PREPEND _OPTIONS1 "${jsoncpp_FIND_VERSION}")
++ endif()
++ if(JsonCPP_FIND_EXACT)
++ list(APPEND _OPTIONS1 "EXACT")
++ endif()
+ endif()
+
+- find_package(jsoncpp ${_OPTIONS})
++ find_package(jsoncpp ${_OPTIONS1})
++
++ if(NOT JsonCPP_FOUND)
++ pkg_check_modules(jsoncpp ${_OPTIONS2})
++ endif()
+
+- if(TARGET jsoncpp_lib)
++ if(TARGET PkgConfig::jsoncpp)
++ set(JsonCPP_TARGET jsoncpp)
++ elseif(TARGET jsoncpp_lib)
+ set(JsonCPP_TARGET jsoncpp_lib)
+ else()
+ set(JsonCPP_TARGET jsoncpp_static)