mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-31 05:03:22 +08:00
[binn] new port (#5637)
* Add binn library * Fix binn.h include * Fix UWP. Replace to safe functions * Fix uwp patch * [binn] update uwp patch
This commit is contained in:
parent
e1ae8f62b9
commit
b41ddf8072
93
ports/binn/0001_fix_uwp.patch
Normal file
93
ports/binn/0001_fix_uwp.patch
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
diff --git a/src/binn.c b/src/binn.c
|
||||||
|
index ef32f35..d12d473 100644
|
||||||
|
--- a/src/binn.c
|
||||||
|
+++ b/src/binn.c
|
||||||
|
@@ -142,8 +142,8 @@ BINN_PRIVATE void copy_be64(u64 *pdest, u64 *psource) {
|
||||||
|
/***************************************************************************/
|
||||||
|
|
||||||
|
#ifndef WIN32
|
||||||
|
-#define stricmp strcasecmp
|
||||||
|
-#define strnicmp strncasecmp
|
||||||
|
+#define _stricmp strcasecmp
|
||||||
|
+#define _strnicmp strncasecmp
|
||||||
|
#endif
|
||||||
|
|
||||||
|
BINN_PRIVATE BOOL IsValidBinnHeader(void *pbuf, int *ptype, int *pcount, int *psize, int *pheadersize);
|
||||||
|
@@ -614,7 +614,7 @@ BINN_PRIVATE unsigned char * SearchForKey(unsigned char *p, int header_size, int
|
||||||
|
if (p > plimit) break;
|
||||||
|
// Compare if the strings are equal.
|
||||||
|
if (len > 0) {
|
||||||
|
- if (strnicmp((char*)p, key, len) == 0) { // note that there is no null terminator here
|
||||||
|
+ if (_strnicmp((char*)p, key, len) == 0) { // note that there is no null terminator here
|
||||||
|
if (keylen == len) {
|
||||||
|
p += len;
|
||||||
|
return p;
|
||||||
|
@@ -1582,6 +1582,7 @@ BINN_PRIVATE BOOL binn_read_pair(int expected_type, void *ptr, int pos, int *pid
|
||||||
|
base = p;
|
||||||
|
plimit = p + size - 1;
|
||||||
|
p += header_size;
|
||||||
|
+ key = 0;
|
||||||
|
|
||||||
|
for (i = 0; i < count; i++) {
|
||||||
|
switch (type) {
|
||||||
|
@@ -3147,15 +3148,15 @@ BINN_PRIVATE BOOL is_bool_str(char *str, BOOL *pbool) {
|
||||||
|
|
||||||
|
if (str == NULL || pbool == NULL) return FALSE;
|
||||||
|
|
||||||
|
- if (stricmp(str, "true") == 0) goto loc_true;
|
||||||
|
- if (stricmp(str, "yes") == 0) goto loc_true;
|
||||||
|
- if (stricmp(str, "on") == 0) goto loc_true;
|
||||||
|
- //if (stricmp(str, "1") == 0) goto loc_true;
|
||||||
|
+ if (_stricmp(str, "true") == 0) goto loc_true;
|
||||||
|
+ if (_stricmp(str, "yes") == 0) goto loc_true;
|
||||||
|
+ if (_stricmp(str, "on") == 0) goto loc_true;
|
||||||
|
+ //if (_stricmp(str, "1") == 0) goto loc_true;
|
||||||
|
|
||||||
|
- if (stricmp(str, "false") == 0) goto loc_false;
|
||||||
|
- if (stricmp(str, "no") == 0) goto loc_false;
|
||||||
|
- if (stricmp(str, "off") == 0) goto loc_false;
|
||||||
|
- //if (stricmp(str, "0") == 0) goto loc_false;
|
||||||
|
+ if (_stricmp(str, "false") == 0) goto loc_false;
|
||||||
|
+ if (_stricmp(str, "no") == 0) goto loc_false;
|
||||||
|
+ if (_stricmp(str, "off") == 0) goto loc_false;
|
||||||
|
+ //if (_stricmp(str, "0") == 0) goto loc_false;
|
||||||
|
|
||||||
|
if (is_integer(str)) {
|
||||||
|
vint = atoi64(str);
|
||||||
|
@@ -3333,7 +3334,7 @@ char * APIENTRY binn_get_str(binn *value) {
|
||||||
|
|
||||||
|
if (type_family(value->type) == BINN_FAMILY_INT) {
|
||||||
|
if (copy_int_value(value->ptr, &vint, value->type, BINN_INT64) == FALSE) return NULL;
|
||||||
|
- sprintf(buf, "%" INT64_FORMAT, vint);
|
||||||
|
+ sprintf_s(buf, "%" INT64_FORMAT, vint);
|
||||||
|
goto loc_convert_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -3341,15 +3342,15 @@ char * APIENTRY binn_get_str(binn *value) {
|
||||||
|
case BINN_FLOAT:
|
||||||
|
value->vdouble = value->vfloat;
|
||||||
|
case BINN_DOUBLE:
|
||||||
|
- sprintf(buf, "%g", value->vdouble);
|
||||||
|
+ sprintf_s(buf, sizeof buf, "%g", value->vdouble);
|
||||||
|
goto loc_convert_value;
|
||||||
|
case BINN_STRING:
|
||||||
|
return (char*) value->ptr;
|
||||||
|
case BINN_BOOL:
|
||||||
|
if (value->vbool)
|
||||||
|
- strcpy(buf, "true");
|
||||||
|
+ strcpy_s(buf, sizeof buf, "true");
|
||||||
|
else
|
||||||
|
- strcpy(buf, "false");
|
||||||
|
+ strcpy_s(buf, sizeof buf, "false");
|
||||||
|
goto loc_convert_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -3358,7 +3359,7 @@ char * APIENTRY binn_get_str(binn *value) {
|
||||||
|
loc_convert_value:
|
||||||
|
|
||||||
|
//value->vint64 = 0;
|
||||||
|
- value->ptr = strdup(buf);
|
||||||
|
+ value->ptr = _strdup(buf);
|
||||||
|
if (value->ptr == NULL) return NULL;
|
||||||
|
value->freefn = free;
|
||||||
|
value->type = BINN_STRING;
|
23
ports/binn/CMakeLists.txt
Normal file
23
ports/binn/CMakeLists.txt
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.8)
|
||||||
|
|
||||||
|
project(binn
|
||||||
|
VERSION 1.0
|
||||||
|
DESCRIPTION "Binn is a binary data serialization format designed to be compact, fast and easy to use."
|
||||||
|
HOMEPAGE_URL "https://github.com/liteserver/binn"
|
||||||
|
)
|
||||||
|
|
||||||
|
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
||||||
|
|
||||||
|
add_library (binn src/binn.h src/binn.c)
|
||||||
|
|
||||||
|
target_include_directories(binn
|
||||||
|
PUBLIC
|
||||||
|
${PROJECT_SOURCE_DIR}/src
|
||||||
|
)
|
||||||
|
|
||||||
|
install(
|
||||||
|
TARGETS binn
|
||||||
|
RUNTIME DESTINATION bin
|
||||||
|
LIBRARY DESTINATION lib
|
||||||
|
ARCHIVE DESTINATION lib
|
||||||
|
)
|
3
ports/binn/CONTROL
Normal file
3
ports/binn/CONTROL
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Source: binn
|
||||||
|
Version: 1.0
|
||||||
|
Description: Binn is a binary data serialization format designed to be compact, fast and easy to use.
|
26
ports/binn/portfile.cmake
Normal file
26
ports/binn/portfile.cmake
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
include(vcpkg_common_functions)
|
||||||
|
|
||||||
|
vcpkg_from_github(
|
||||||
|
OUT_SOURCE_PATH SOURCE_PATH
|
||||||
|
REPO liteserver/binn
|
||||||
|
REF 38019c11e582e5078436b8257887e79a33db8b28
|
||||||
|
SHA512 82c7ef211154303ebb4cb991e620da520231edd224de674d4dabc42760fd7b8b6dd7be167d6c0b6c04146ea7e077b0bcff14312be909cb4ebb1ec786863d3fb4
|
||||||
|
HEAD_REF master
|
||||||
|
PATCHES
|
||||||
|
0001_fix_uwp.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
|
||||||
|
|
||||||
|
file(INSTALL ${SOURCE_PATH}/src/binn.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/binn)
|
||||||
|
|
||||||
|
vcpkg_configure_cmake(
|
||||||
|
SOURCE_PATH ${SOURCE_PATH}
|
||||||
|
PREFER_NINJA
|
||||||
|
)
|
||||||
|
|
||||||
|
vcpkg_install_cmake()
|
||||||
|
|
||||||
|
# Handle copyright
|
||||||
|
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/binn)
|
||||||
|
file(RENAME ${CURRENT_PACKAGES_DIR}/share/binn/LICENSE ${CURRENT_PACKAGES_DIR}/share/binn/copyright)
|
Loading…
x
Reference in New Issue
Block a user