gnu: gnucash: Disable the stress-options-test using a phase.
[jackhill/guix/guix.git] / gnu / packages / patches / monero-use-system-miniupnpc.patch
1 This reverts commit 1e20d705e7c64d2b17c031f345057d1e8850fafa, so that it's possible to use our own
2 miniupnpc, instead of a git submodule.
3 ---
4 CMakeLists.txt | 8 ++++++++
5 external/CMakeLists.txt | 41 +++++++++++++++++++++++++++++++----------
6 src/p2p/net_node.inl | 13 ++++++++++---
7 3 files changed, 49 insertions(+), 13 deletions(-)
8
9 diff --git a/CMakeLists.txt b/CMakeLists.txt
10 index 3b93988e..ef948885 100644
11 --- a/CMakeLists.txt
12 +++ b/CMakeLists.txt
13 @@ -430,6 +430,14 @@ include_directories("${CMAKE_CURRENT_BINARY_DIR}/translations")
14
15 add_subdirectory(external)
16
17 +# Final setup for miniupnpc
18 +if(UPNP_STATIC OR IOS)
19 + add_definitions("-DUPNP_STATIC")
20 +else()
21 + add_definitions("-DUPNP_DYNAMIC")
22 + include_directories(${UPNP_INCLUDE})
23 +endif()
24 +
25 # Final setup for libunbound
26 include_directories(${UNBOUND_INCLUDE})
27 link_directories(${UNBOUND_LIBRARY_DIRS})
28 diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
29 index 1fc4d64c..b4f712ee 100644
30 --- a/external/CMakeLists.txt
31 +++ b/external/CMakeLists.txt
32 @@ -34,21 +34,42 @@
33 # We always compile if we are building statically to reduce static dependency issues...
34 # ...except for FreeBSD, because FreeBSD is a special case that doesn't play well with
35 # others.
36 +if(NOT IOS)
37 + find_package(Miniupnpc QUIET)
38 +endif()
39
40 -find_package(Miniupnpc REQUIRED)
41 +# If we have the correct shared version and we're not building static, use it
42 +if(STATIC OR IOS)
43 + set(USE_SHARED_MINIUPNPC false)
44 +elseif(MINIUPNP_FOUND AND MINIUPNPC_VERSION_1_7_OR_HIGHER)
45 + set(USE_SHARED_MINIUPNPC true)
46 +endif()
47
48 -message(STATUS "Using in-tree miniupnpc")
49 +if(USE_SHARED_MINIUPNPC)
50 + message(STATUS "Using shared miniupnpc found at ${MINIUPNP_INCLUDE_DIR}")
51
52 -add_subdirectory(miniupnp/miniupnpc)
53 + set(UPNP_STATIC false PARENT_SCOPE)
54 + set(UPNP_INCLUDE ${MINIUPNP_INCLUDE_DIR} PARENT_SCOPE)
55 + set(UPNP_LIBRARIES ${MINIUPNP_LIBRARY} PARENT_SCOPE)
56 +else()
57 + if(STATIC)
58 + message(STATUS "Using miniupnpc from local source tree for static build")
59 + else()
60 + message(STATUS "Using miniupnpc from local source tree (/external/miniupnp/miniupnpc)")
61 + endif()
62
63 -set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external")
64 -if(MSVC)
65 - set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -wd4244 -wd4267")
66 -elseif(NOT MSVC)
67 - set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-undef -Wno-unused-result -Wno-unused-value")
68 -endif()
69 + add_subdirectory(miniupnp/miniupnpc)
70 +
71 + set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external")
72 + if(MSVC)
73 + set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -wd4244 -wd4267")
74 + elseif(NOT MSVC)
75 + set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-undef -Wno-unused-result -Wno-unused-value")
76 + endif()
77
78 -set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE)
79 + set(UPNP_STATIC true PARENT_SCOPE)
80 + set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE)
81 +endif()
82
83 find_package(Unbound)
84
85 diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl
86 index 9b21705e..76340a22 100644
87 --- a/src/p2p/net_node.inl
88 +++ b/src/p2p/net_node.inl
89 @@ -49,9 +49,16 @@
90 #include "storages/levin_abstract_invoke2.h"
91 #include "cryptonote_core/cryptonote_core.h"
92
93 -#include <miniupnp/miniupnpc/miniupnpc.h>
94 -#include <miniupnp/miniupnpc/upnpcommands.h>
95 -#include <miniupnp/miniupnpc/upnperrors.h>
96 +// We have to look for miniupnpc headers in different places, dependent on if its compiled or external
97 +#ifdef UPNP_STATIC
98 + #include <miniupnp/miniupnpc/miniupnpc.h>
99 + #include <miniupnp/miniupnpc/upnpcommands.h>
100 + #include <miniupnp/miniupnpc/upnperrors.h>
101 +#else
102 + #include "miniupnpc.h"
103 + #include "upnpcommands.h"
104 + #include "upnperrors.h"
105 +#endif
106
107 #undef MONERO_DEFAULT_LOG_CATEGORY
108 #define MONERO_DEFAULT_LOG_CATEGORY "net.p2p"
109 --
110 2.16.2
111