mirror of
https://github.com/cemu-project/vcpkg.git
synced 2024-11-26 20:50:36 +00:00
[hiredis] Fix feature ssl build error on windows (#12354)
* [hiredis] Fix feature ssl build error on windows * Fix feature example build error on windows
This commit is contained in:
parent
85a5acfd3c
commit
fc761ebb72
@ -1,5 +1,6 @@
|
||||
Source: hiredis
|
||||
Version: 2019-11-2-1
|
||||
Version: 2019-11-2
|
||||
Port-Version: 2
|
||||
Homepage: https://github.com/redis/hiredis
|
||||
Description: Hiredis is a minimalistic C client library for the Redis database.
|
||||
|
||||
@ -9,4 +10,4 @@ Build-Depends: openssl
|
||||
|
||||
Feature: example
|
||||
Description: Build example
|
||||
Build-Depends: libevent, pthread
|
||||
Build-Depends: libevent, pthread, libuv
|
@ -1,76 +1,107 @@
|
||||
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
|
||||
index dd3a313..0df75d5 100644
|
||||
--- a/examples/CMakeLists.txt
|
||||
+++ b/examples/CMakeLists.txt
|
||||
@@ -19,10 +19,17 @@ if (LIBEV)
|
||||
TARGET_LINK_LIBRARIES(example-libev hiredis ev)
|
||||
ENDIF()
|
||||
|
||||
-FIND_PATH(LIBEVENT event.h)
|
||||
-if (LIBEVENT)
|
||||
+FIND_PACKAGE(Libevent CONFIG REQUIRED)
|
||||
+FIND_PATH(LIBEVENT_INCLUDES evutil.h)
|
||||
+if (BUILD_SHARED_LIBS)
|
||||
+ set(LIBEVENT_LIBS ${LIBEVENT_SHARED_LIBRARIES})
|
||||
+else()
|
||||
+ set(LIBEVENT_LIBS ${LIBEVENT_STATIC_LIBRARIES})
|
||||
+endif()
|
||||
+if (UNIX)
|
||||
ADD_EXECUTABLE(example-libevent example-libevent)
|
||||
- TARGET_LINK_LIBRARIES(example-libevent hiredis event)
|
||||
+ TARGET_LINK_LIBRARIES(example-libevent hiredis ${LIBEVENT_LIBS})
|
||||
+ TARGET_INCLUDE_DIRECTORIES(example-libevent PRIVATE ${LIBEVENT_INCLUDES})
|
||||
ENDIF()
|
||||
|
||||
FIND_PATH(LIBUV uv.h)
|
||||
@@ -38,9 +45,17 @@ IF (APPLE)
|
||||
ENDIF()
|
||||
|
||||
IF (ENABLE_SSL)
|
||||
+ FIND_PACKAGE(OpenSSL REQUIRED)
|
||||
+ IF (WIN32)
|
||||
+ FIND_PACKAGE(pthreads REQUIRED)
|
||||
+ SET(THREADS_LIBS PThreads4W::PThreads4W)
|
||||
+ ELSE()
|
||||
+ FIND_PACKAGE(Threads)
|
||||
+ SET(THREADS_LIBS ${CMAKE_THREAD_LIBS_INIT})
|
||||
+ ENDIF()
|
||||
ADD_EXECUTABLE(example-ssl example-ssl.c)
|
||||
- TARGET_LINK_LIBRARIES(example-ssl hiredis hiredis_ssl)
|
||||
+ TARGET_LINK_LIBRARIES(example-ssl hiredis hiredis_ssl OpenSSL::SSL OpenSSL::Crypto ${THREADS_LIBS})
|
||||
ENDIF()
|
||||
|
||||
ADD_EXECUTABLE(example example.c)
|
||||
-TARGET_LINK_LIBRARIES(example hiredis)
|
||||
+TARGET_LINK_LIBRARIES(example hiredis ${LIBEVENT_LIBS})
|
||||
\ No newline at end of file
|
||||
diff --git a/examples/example-ssl.c b/examples/example-ssl.c
|
||||
index 81f4648..9f42923 100644
|
||||
--- a/examples/example-ssl.c
|
||||
+++ b/examples/example-ssl.c
|
||||
@@ -1,6 +1,10 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
+#ifdef _WIN32
|
||||
+#include <Winsock2.h>
|
||||
+#include <Windows.h>
|
||||
+#endif
|
||||
|
||||
#include <hiredis.h>
|
||||
#include <hiredis_ssl.h>
|
||||
diff --git a/examples/example.c b/examples/example.c
|
||||
index 0e93fc8..339e322 100644
|
||||
--- a/examples/example.c
|
||||
+++ b/examples/example.c
|
||||
@@ -1,6 +1,10 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
+#ifdef _WIN32
|
||||
+#include <Winsock2.h>
|
||||
+#include <Windows.h>
|
||||
+#endif
|
||||
|
||||
#include <hiredis.h>
|
||||
|
||||
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
|
||||
index dd3a313..8c69d3a 100644
|
||||
--- a/examples/CMakeLists.txt
|
||||
+++ b/examples/CMakeLists.txt
|
||||
@@ -19,16 +19,30 @@ if (LIBEV)
|
||||
TARGET_LINK_LIBRARIES(example-libev hiredis ev)
|
||||
ENDIF()
|
||||
|
||||
-FIND_PATH(LIBEVENT event.h)
|
||||
-if (LIBEVENT)
|
||||
+FIND_PACKAGE(Libevent CONFIG REQUIRED)
|
||||
+FIND_PATH(LIBEVENT_INCLUDES evutil.h)
|
||||
+if (BUILD_SHARED_LIBS)
|
||||
+ set(LIBEVENT_LIBS ${LIBEVENT_SHARED_LIBRARIES})
|
||||
+else()
|
||||
+ set(LIBEVENT_LIBS ${LIBEVENT_STATIC_LIBRARIES})
|
||||
+endif()
|
||||
+if (UNIX)
|
||||
ADD_EXECUTABLE(example-libevent example-libevent)
|
||||
- TARGET_LINK_LIBRARIES(example-libevent hiredis event)
|
||||
+ TARGET_LINK_LIBRARIES(example-libevent hiredis ${LIBEVENT_LIBS})
|
||||
+ TARGET_INCLUDE_DIRECTORIES(example-libevent PRIVATE ${LIBEVENT_INCLUDES})
|
||||
ENDIF()
|
||||
|
||||
+FIND_LIBRARY(UV_LIBRARY libuv)
|
||||
FIND_PATH(LIBUV uv.h)
|
||||
IF (LIBUV)
|
||||
ADD_EXECUTABLE(example-libuv example-libuv.c)
|
||||
- TARGET_LINK_LIBRARIES(example-libuv hiredis uv)
|
||||
+ if(WIN32)
|
||||
+ set(LIB_LISTS Iphlpapi.lib Psapi.lib Userenv.lib)
|
||||
+ else()
|
||||
+ set(LIB_LISTS)
|
||||
+ endif()
|
||||
+ TARGET_LINK_LIBRARIES(example-libuv hiredis ${UV_LIBRARY} ${LIB_LISTS})
|
||||
+ TARGET_INCLUDE_DIRECTORIES(example-libuv PRIVATE ${LIBUV})
|
||||
ENDIF()
|
||||
|
||||
IF (APPLE)
|
||||
@@ -38,9 +52,21 @@ IF (APPLE)
|
||||
ENDIF()
|
||||
|
||||
IF (ENABLE_SSL)
|
||||
+ FIND_PACKAGE(OpenSSL REQUIRED)
|
||||
+ IF (WIN32)
|
||||
+ FIND_PACKAGE(pthreads REQUIRED)
|
||||
+ SET(THREADS_LIBS PThreads4W::PThreads4W)
|
||||
+ ELSE()
|
||||
+ FIND_PACKAGE(Threads)
|
||||
+ SET(THREADS_LIBS ${CMAKE_THREAD_LIBS_INIT})
|
||||
+ ENDIF()
|
||||
ADD_EXECUTABLE(example-ssl example-ssl.c)
|
||||
- TARGET_LINK_LIBRARIES(example-ssl hiredis hiredis_ssl)
|
||||
+ if(WIN32)
|
||||
+ TARGET_LINK_LIBRARIES(example-ssl hiredis hiredis_ssl OpenSSL::SSL OpenSSL::Crypto ${THREADS_LIBS} crypt32.lib)
|
||||
+ else()
|
||||
+ TARGET_LINK_LIBRARIES(example-ssl hiredis hiredis_ssl OpenSSL::SSL OpenSSL::Crypto ${THREADS_LIBS})
|
||||
+ endif()
|
||||
ENDIF()
|
||||
|
||||
ADD_EXECUTABLE(example example.c)
|
||||
-TARGET_LINK_LIBRARIES(example hiredis)
|
||||
+TARGET_LINK_LIBRARIES(example hiredis ${LIBEVENT_LIBS})
|
||||
diff --git a/examples/example-libuv.c b/examples/example-libuv.c
|
||||
index a5462d4..9b7ca3e 100644
|
||||
--- a/examples/example-libuv.c
|
||||
+++ b/examples/example-libuv.c
|
||||
@@ -33,7 +33,9 @@ void disconnectCallback(const redisAsyncContext *c, int status) {
|
||||
}
|
||||
|
||||
int main (int argc, char **argv) {
|
||||
+#ifndef _WIN32
|
||||
signal(SIGPIPE, SIG_IGN);
|
||||
+#endif
|
||||
uv_loop_t* loop = uv_default_loop();
|
||||
|
||||
redisAsyncContext *c = redisAsyncConnect("127.0.0.1", 6379);
|
||||
diff --git a/examples/example-ssl.c b/examples/example-ssl.c
|
||||
index 81f4648..9f42923 100644
|
||||
--- a/examples/example-ssl.c
|
||||
+++ b/examples/example-ssl.c
|
||||
@@ -1,6 +1,10 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
+#ifdef _WIN32
|
||||
+#include <Winsock2.h>
|
||||
+#include <Windows.h>
|
||||
+#endif
|
||||
|
||||
#include <hiredis.h>
|
||||
#include <hiredis_ssl.h>
|
||||
diff --git a/examples/example.c b/examples/example.c
|
||||
index 0e93fc8..339e322 100644
|
||||
--- a/examples/example.c
|
||||
+++ b/examples/example.c
|
||||
@@ -1,6 +1,10 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
+#ifdef _WIN32
|
||||
+#include <Winsock2.h>
|
||||
+#include <Windows.h>
|
||||
+#endif
|
||||
|
||||
#include <hiredis.h>
|
||||
|
||||
|
16
ports/hiredis/fix-pthread.h-not-found-on-windows.patch
Normal file
16
ports/hiredis/fix-pthread.h-not-found-on-windows.patch
Normal file
@ -0,0 +1,16 @@
|
||||
diff --git a/ssl.c b/ssl.c
|
||||
index 78ab9e4..768f304 100644
|
||||
--- a/ssl.c
|
||||
+++ b/ssl.c
|
||||
@@ -34,7 +34,11 @@
|
||||
#include "async.h"
|
||||
|
||||
#include <assert.h>
|
||||
+#ifdef _WIN32
|
||||
+#include <windows.h>
|
||||
+#else
|
||||
#include <pthread.h>
|
||||
+#endif
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
|
@ -12,6 +12,7 @@ vcpkg_from_github(
|
||||
fix-feature-example.patch
|
||||
support-static-in-win.patch
|
||||
fix-timeval.patch
|
||||
fix-pthread.h-not-found-on-windows.patch
|
||||
)
|
||||
|
||||
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
|
||||
@ -32,4 +33,4 @@ vcpkg_copy_pdbs()
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
||||
|
||||
# Handle copyright
|
||||
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
||||
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
Loading…
Reference in New Issue
Block a user