aboutsummaryrefslogtreecommitdiff
path: root/ports/mongo-c-driver/fix-uwp.patch
blob: 59d67c6be619e7caf5fd5c2ea60203066f757231 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5beb610..7e74ff7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -55,6 +55,7 @@
 
 include(MaintainerFlags)
 
+if ((NOT ENABLE_STATIC STREQUAL ON) AND (NOT ENABLE_STATIC STREQUAL AUTO))
 # The input variable BSON_ROOT_DIR is respected for backwards compatibility,
 # but you should use the standard CMAKE_PREFIX_PATH instead.
 message (STATUS "Searching for libbson CMake packages")
@@ -67,12 +68,14 @@
 message ("--   libbson found version \"${BSON_VERSION}\"")
 message ("--   libbson include path \"${BSON_INCLUDE_DIRS}\"")
 message ("--   libbson libraries \"${BSON_LIBRARIES}\"")
+endif ()
 
 if (ENABLE_STATIC STREQUAL ON OR ENABLE_STATIC STREQUAL AUTO)
    find_package (libbson-static-1.0
       "${MONGOC_MAJOR_VERSION}.${MONGOC_MINOR_VERSION}.${MONGOC_MICRO_VERSION}"
       HINTS
-      ${BSON_ROOT_DIR})
+      ${BSON_ROOT_DIR}
+      REQUIRED)
 
    if (ENABLE_STATIC STREQUAL ON AND NOT BSON_STATIC_LIBRARY)
       message (FATAL_ERROR "Static libbson not found. Pass -DENABLE_STATIC=OFF")
@@ -627,6 +630,7 @@
    set (LIBS ${LIBS} ws2_32)
 endif()
 
+if (NOT MONGOC_ENABLE_STATIC)
 add_library(mongoc_shared SHARED ${SOURCES} ${HEADERS})
 set_target_properties(mongoc_shared PROPERTIES CMAKE_CXX_VISIBILITY_PRESET hidden)
 target_link_libraries (mongoc_shared ${LIBS} ${BSON_LIBRARIES})
@@ -638,6 +642,7 @@
 # This hack sets up standard symlink, libmongoc-1.0.so -> libmongoc-1.0.0.so
 set_target_properties(mongoc_shared PROPERTIES VERSION 0 SOVERSION ${MONGOC_MAJOR_VERSION})
 set_target_properties(mongoc_shared PROPERTIES OUTPUT_NAME "mongoc-${MONGOC_API_VERSION}" PREFIX "lib")
+endif ()
 
 if (MONGOC_ENABLE_STATIC)
    add_library(mongoc_static STATIC ${SOURCES} ${HEADERS})
@@ -804,6 +809,7 @@
 file(COPY ${SOURCE_DIR}/tests/x509gen DESTINATION ${PROJECT_BINARY_DIR}/tests)
 file(COPY ${SOURCE_DIR}/tests/release_files DESTINATION ${PROJECT_BINARY_DIR}/tests)
 
+if (NOT MONGOC_ENABLE_STATIC)
 install(
   TARGETS mongoc_shared ${EXAMPLES}
   LIBRARY DESTINATION lib
@@ -810,10 +816,11 @@
   ARCHIVE DESTINATION lib
   RUNTIME DESTINATION bin
 )
+endif ()
 
 if (MONGOC_ENABLE_STATIC)
    install(
-     TARGETS mongoc_shared mongoc_static ${EXAMPLES}
+     TARGETS mongoc_static ${EXAMPLES}
      LIBRARY DESTINATION lib
      ARCHIVE DESTINATION lib
      RUNTIME DESTINATION bin
index 5beb610..7e74ff7 100644
--- a/src/mongoc/mongoc-gridfs-file.c
+++ b/src/mongoc/mongoc-gridfs-file.c
@@ -753,7 +753,7 @@ _mongoc_gridfs_file_refresh_page (mongoc_gridfs_file_t *file)
    bson_t query;
    bson_t child;
    bson_t opts;
-   const bson_t *chunk;
+   const bson_t *chunk = 0;
    const char *key;
    bson_iter_t iter;
    int64_t existing_chunks;
diff --git a/src/mongoc/mongoc-handshake.c b/src/mongoc/mongoc-handshake.c
index 4e181bd..b274fc1 100644
--- a/src/mongoc/mongoc-handshake.c
+++ b/src/mongoc/mongoc-handshake.c
@@ -243,7 +243,8 @@ _get_os_version (void)
    char *ret = bson_malloc (HANDSHAKE_OS_VERSION_MAX);
    bool found = false;
 
-#ifdef _WIN32
+#if defined (WINAPI_FAMILY_PARTITION) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
+#elif defined (_WIN32)
    OSVERSIONINFO osvi;
    ZeroMemory (&osvi, sizeof (OSVERSIONINFO));
    osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
diff --git a/src/mongoc/mongoc-util.c b/src/mongoc/mongoc-util.c
index 6dbb26d..7f33780 100644
--- a/src/mongoc/mongoc-util.c
+++ b/src/mongoc/mongoc-util.c
@@ -69,7 +69,11 @@ _mongoc_hex_md5 (const char *input)
 void
 _mongoc_usleep (int64_t usec)
 {
-#ifdef _WIN32
+#if defined (WINAPI_FAMILY_PARTITION) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
+   if (usec / 1000 > MAXDWORD || usec < 0)
+      __fastfail(-1);
+   Sleep((DWORD)(usec / 1000));
+#elif defined(_WIN32)
    LARGE_INTEGER ft;
    HANDLE timer;