[libbson] Fix UWP builds. Suppress building static in DLL mode and vice-versa.

This commit is contained in:
Robert Schumacher 2017-04-05 17:57:55 -07:00
parent d03171d122
commit 4765c5853c
3 changed files with 72 additions and 9 deletions

View File

@ -1,3 +1,3 @@
Source: libbson
Version: 1.5.1
Version: 1.5.1-1
Description: libbson is a library providing useful routines related to building, parsing, and iterating BSON documents.

View File

@ -0,0 +1,58 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 553f13b..03dc546 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -194,6 +194,8 @@ set (HEADERS
${SOURCE_DIR}/src/bson/bson-writer.h
)
+add_definitions(-D_CRT_SECURE_NO_WARNINGS)
+
add_library(bson_shared SHARED ${SOURCES} ${HEADERS})
add_library(bson_static STATIC ${SOURCES} ${HEADERS})
@@ -272,8 +274,10 @@ if (ENABLE_TESTS)
DESTINATION ${PROJECT_BINARY_DIR}/tests)
endif () # ENABLE_TESTS
+set(INSTALL_TARGETS bson_shared bson_static CACHE INTERNAL "List of library targets to install")
+
install(
- TARGETS bson_shared bson_static
+ TARGETS ${INSTALL_TARGETS}
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin
diff --git a/src/bson/bson-compat.h b/src/bson/bson-compat.h
index 05fc614..e8e2214 100644
--- a/src/bson/bson-compat.h
+++ b/src/bson/bson-compat.h
@@ -39,11 +39,11 @@
#ifdef BSON_OS_WIN32
-# if defined(_WIN32_WINNT) && (_WIN32_WINNT < 0x0600)
+# if defined(_WIN32_WINNT) && (_WIN32_WINNT < 0x0602)
# undef _WIN32_WINNT
# endif
# ifndef _WIN32_WINNT
-# define _WIN32_WINNT 0x0600
+# define _WIN32_WINNT 0x0602
# endif
# ifndef NOMINMAX
# define NOMINMAX
diff --git a/src/bson/bson-iso8601.c b/src/bson/bson-iso8601.c
index 8beea90..cb4b531 100644
--- a/src/bson/bson-iso8601.c
+++ b/src/bson/bson-iso8601.c
@@ -117,8 +117,8 @@ _bson_iso8601_date_parse (const char *str,
const char *day_ptr;
const char *hour_ptr;
const char *min_ptr;
- const char *sec_ptr;
- const char *millis_ptr;
+ const char *sec_ptr = NULL;
+ const char *millis_ptr = NULL;
const char *tz_ptr;
int32_t year_len = 0;

View File

@ -8,10 +8,23 @@ vcpkg_download_distfile(ARCHIVE
)
vcpkg_extract_source_archive(${ARCHIVE})
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-uwp.patch
)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
set(TARGET_TO_INSTALL bson_static)
else()
set(TARGET_TO_INSTALL bson_shared)
endif()
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
-DENABLE_TESTS=OFF
-DINSTALL_TARGETS=${TARGET_TO_INSTALL}
)
vcpkg_install_cmake()
@ -25,11 +38,6 @@ file(RENAME ${CURRENT_PACKAGES_DIR}/temp ${CURRENT_PACKAGES_DIR}/include)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/bson-1.0.lib)
file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/bson-1.0.lib)
file(RENAME
${CURRENT_PACKAGES_DIR}/lib/bson-static-1.0.lib
${CURRENT_PACKAGES_DIR}/lib/bson-1.0.lib)
@ -43,9 +51,6 @@ if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
PATCHES
${CMAKE_CURRENT_LIST_DIR}/static.patch
)
else()
file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/bson-static-1.0.lib)
file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/bson-static-1.0.lib)
endif()
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libbson RENAME copyright)