Ship pre-compiled jansson library

This commit is contained in:
NicknineTheEagle 2020-11-16 01:39:17 +03:00
parent 9e971af292
commit 54933050cb
11 changed files with 531 additions and 177 deletions

View File

@ -48,7 +48,6 @@ jobs:
"Release/in_vgmstream.dll",
"Release/test.exe",
"Release/xmp-vgmstream.dll",
"dependencies/jansson/build/bin/Release/jansson.dll",
"COPYING",
"README.md"
)

View File

@ -26,7 +26,6 @@ $cliFiles = @(
"Release/in_vgmstream.dll",
"Release/test.exe",
"Release/xmp-vgmstream.dll",
"dependencies/jansson/build/bin/Release/jansson.dll",
"COPYING",
"README.md"
)
@ -66,7 +65,6 @@ function Init
Download "https://github.com/kode54/fdk-aac/archive/master.zip" "dependencies\fdk-aac.zip"
Download "https://github.com/kode54/qaac/archive/master.zip" "dependencies\qaac.zip"
Download "https://www.nuget.org/api/v2/package/wtl/9.1.1" "dependencies\wtl.zip"
Download "https://github.com/akheron/jansson/archive/v2.13.1.zip" "dependencies\jansson.zip"
Download "https://github.com/Microsoft/vswhere/releases/download/2.6.7/vswhere.exe" "dependencies\vswhere.exe"
Download "https://www.foobar2000.org/SDK" "dependencies\SDK"
@ -77,18 +75,15 @@ function Init
Unzip "dependencies\fdk-aac.zip" "dependencies\fdk-aac_tmp"
Unzip "dependencies\qaac.zip" "dependencies\qaac_tmp"
Unzip "dependencies\wtl.zip" "dependencies\wtl_tmp"
Unzip "dependencies\jansson.zip" "dependencies\jansson_tmp"
Unzip "dependencies\foobar.zip" "dependencies\foobar"
Move-Item "dependencies\fdk-aac_tmp\fdk-aac-master" "dependencies\fdk-aac"
Move-Item "dependencies\qaac_tmp\qaac-master" "dependencies\qaac"
Move-Item "dependencies\wtl_tmp\lib\native" "dependencies\wtl"
Move-Item "dependencies\jansson_tmp\jansson-2.13.1" "dependencies\jansson"
Remove-Item -Path "dependencies\fdk-aac_tmp" -Recurse
Remove-Item -Path "dependencies\qaac_tmp" -Recurse
Remove-Item -Path "dependencies\wtl_tmp" -Recurse
Remove-Item -Path "dependencies\jansson_tmp" -Recurse
[xml]$proj = Get-Content dependencies\foobar\foobar2000\ATLHelpers\foobar2000_ATL_helpers.vcxproj
$proj.project.ItemDefinitionGroup | ForEach-Object {
@ -97,12 +92,6 @@ function Init
$_.ClCompile.AppendChild($includes)
}
$proj.Save("dependencies\foobar\foobar2000\ATLHelpers\foobar2000_ATL_helpers.vcxproj")
cd dependencies\jansson\
mkdir build
cd build
cmake .. -DJANSSON_BUILD_SHARED_LIBS=ON -DJANSSON_EXAMPLES=OFF -DJANSSON_BUILD_DOCS=OFF -A "Win32" -T "v141_xp"
cd ..\..\..
}
function Package

View File

@ -22,7 +22,7 @@
#endif
#ifdef HAVE_JSON
#include "jansson.h"
#include "jansson/jansson.h"
#endif
/* low values are ok as there is very little performance difference, but higher

View File

@ -71,7 +71,7 @@
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..;../ext_libs/Getopt;../ext_includes;$(DependenciesDir)/qaac/mp4v2/include;$(DependenciesDir)/fdk-aac/libSYS/include;$(DependenciesDir)/fdk-aac/libAACdec/include;$(DependenciesDir)/jansson/build/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..;../ext_libs/Getopt;../ext_includes;$(DependenciesDir)/qaac/mp4v2/include;$(DependenciesDir)/fdk-aac/libSYS/include;$(DependenciesDir)/fdk-aac/libAACdec/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;VGM_USE_VORBIS;VGM_USE_MPEG;VGM_USE_FFMPEG;VGM_USE_G7221;VGM_USE_ATRAC9;VGM_USE_CELT;HAVE_JSON;_DEBUG;_WINDOWS;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
@ -81,7 +81,7 @@
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>../ext_libs/libvorbis.lib;../ext_libs/libmpg123-0.lib;../ext_libs/libg719_decode.lib;../ext_libs/avcodec.lib;../ext_libs/avformat.lib;../ext_libs/avutil.lib;../ext_libs/swresample.lib;../ext_libs/libatrac9.lib;../ext_libs/libcelt-0061.lib;../ext_libs/libcelt-0110.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>../ext_libs/libvorbis.lib;../ext_libs/libmpg123-0.lib;../ext_libs/libg719_decode.lib;../ext_libs/avcodec.lib;../ext_libs/avformat.lib;../ext_libs/avutil.lib;../ext_libs/swresample.lib;../ext_libs/libatrac9.lib;../ext_libs/libcelt-0061.lib;../ext_libs/libcelt-0110.lib;../ext_libs/jansson.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
@ -96,7 +96,7 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>..;../ext_libs/Getopt;../ext_includes;$(DependenciesDir)/qaac/mp4v2/include;$(DependenciesDir)/fdk-aac/libSYS/include;$(DependenciesDir)/fdk-aac/libAACdec/include;$(DependenciesDir)/jansson/build/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..;../ext_libs/Getopt;../ext_includes;$(DependenciesDir)/qaac/mp4v2/include;$(DependenciesDir)/fdk-aac/libSYS/include;$(DependenciesDir)/fdk-aac/libAACdec/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;VGM_USE_VORBIS;VGM_USE_MPEG;VGM_USE_FFMPEG;VGM_USE_G7221;VGM_USE_ATRAC9;VGM_USE_CELT;HAVE_JSON;NDEBUG;_WINDOWS;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>
@ -106,7 +106,7 @@
<FloatingPointModel>Fast</FloatingPointModel>
</ClCompile>
<Link>
<AdditionalDependencies>../ext_libs/libvorbis.lib;../ext_libs/libmpg123-0.lib;../ext_libs/libg719_decode.lib;../ext_libs/avcodec.lib;../ext_libs/avformat.lib;../ext_libs/avutil.lib;../ext_libs/swresample.lib;../ext_libs/libatrac9.lib;../ext_libs/libcelt-0061.lib;../ext_libs/libcelt-0110.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>../ext_libs/libvorbis.lib;../ext_libs/libmpg123-0.lib;../ext_libs/libg719_decode.lib;../ext_libs/avcodec.lib;../ext_libs/avformat.lib;../ext_libs/avutil.lib;../ext_libs/swresample.lib;../ext_libs/libatrac9.lib;../ext_libs/libcelt-0061.lib;../ext_libs/libcelt-0110.lib;../ext_libs/jansson.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<SubSystem>Console</SubSystem>
@ -132,9 +132,6 @@
<ProjectReference Include="$(DependenciesDir)/qaac/vcproject/mp4v2/mp4v2.vcxproj">
<Project>{86a064e2-c81b-4eee-8be0-a39a2e7c7c76}</Project>
</ProjectReference>
<ProjectReference Include="..\dependencies\jansson\build\jansson.vcxproj">
<Project>{f4f7c404-0110-3ba7-92fb-97ec3d2c01db}</Project>
</ProjectReference>
<ProjectReference Include="..\ext_libs\ext_libs.vcxproj">
<Project>{10e6bfc6-1e5b-46e4-ba42-f04dfbd0abff}</Project>
</ProjectReference>

View File

@ -0,0 +1,386 @@
/*
* Copyright (c) 2009-2016 Petri Lehtinen <petri@digip.org>
*
* Jansson is free software; you can redistribute it and/or modify
* it under the terms of the MIT license. See LICENSE for details.
*/
#ifndef JANSSON_H
#define JANSSON_H
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h> /* for size_t */
#include "jansson_config.h"
#ifdef __cplusplus
extern "C" {
#endif
/* version */
#define JANSSON_MAJOR_VERSION 2
#define JANSSON_MINOR_VERSION 13
#define JANSSON_MICRO_VERSION 1
/* Micro version is omitted if it's 0 */
#define JANSSON_VERSION "2.13.1"
/* Version as a 3-byte hex number, e.g. 0x010201 == 1.2.1. Use this
for numeric comparisons, e.g. #if JANSSON_VERSION_HEX >= ... */
#define JANSSON_VERSION_HEX \
((JANSSON_MAJOR_VERSION << 16) | (JANSSON_MINOR_VERSION << 8) | \
(JANSSON_MICRO_VERSION << 0))
/* If __atomic or __sync builtins are available the library is thread
* safe for all read-only functions plus reference counting. */
#if JSON_HAVE_ATOMIC_BUILTINS || JSON_HAVE_SYNC_BUILTINS
#define JANSSON_THREAD_SAFE_REFCOUNT 1
#endif
#if defined(__GNUC__) || defined(__clang__)
#define JANSSON_ATTRS(x) __attribute__(x)
#else
#define JANSSON_ATTRS(x)
#endif
/* types */
typedef enum {
JSON_OBJECT,
JSON_ARRAY,
JSON_STRING,
JSON_INTEGER,
JSON_REAL,
JSON_TRUE,
JSON_FALSE,
JSON_NULL
} json_type;
typedef struct json_t {
json_type type;
volatile size_t refcount;
} json_t;
#ifndef JANSSON_USING_CMAKE /* disabled if using cmake */
#if JSON_INTEGER_IS_LONG_LONG
#ifdef _WIN32
#define JSON_INTEGER_FORMAT "I64d"
#else
#define JSON_INTEGER_FORMAT "lld"
#endif
typedef long long json_int_t;
#else
#define JSON_INTEGER_FORMAT "ld"
typedef long json_int_t;
#endif /* JSON_INTEGER_IS_LONG_LONG */
#endif
#define json_typeof(json) ((json)->type)
#define json_is_object(json) ((json) && json_typeof(json) == JSON_OBJECT)
#define json_is_array(json) ((json) && json_typeof(json) == JSON_ARRAY)
#define json_is_string(json) ((json) && json_typeof(json) == JSON_STRING)
#define json_is_integer(json) ((json) && json_typeof(json) == JSON_INTEGER)
#define json_is_real(json) ((json) && json_typeof(json) == JSON_REAL)
#define json_is_number(json) (json_is_integer(json) || json_is_real(json))
#define json_is_true(json) ((json) && json_typeof(json) == JSON_TRUE)
#define json_is_false(json) ((json) && json_typeof(json) == JSON_FALSE)
#define json_boolean_value json_is_true
#define json_is_boolean(json) (json_is_true(json) || json_is_false(json))
#define json_is_null(json) ((json) && json_typeof(json) == JSON_NULL)
/* construction, destruction, reference counting */
json_t *json_object(void);
json_t *json_array(void);
json_t *json_string(const char *value);
json_t *json_stringn(const char *value, size_t len);
json_t *json_string_nocheck(const char *value);
json_t *json_stringn_nocheck(const char *value, size_t len);
json_t *json_integer(json_int_t value);
json_t *json_real(double value);
json_t *json_true(void);
json_t *json_false(void);
#define json_boolean(val) ((val) ? json_true() : json_false())
json_t *json_null(void);
/* do not call JSON_INTERNAL_INCREF or JSON_INTERNAL_DECREF directly */
#if JSON_HAVE_ATOMIC_BUILTINS
#define JSON_INTERNAL_INCREF(json) \
__atomic_add_fetch(&json->refcount, 1, __ATOMIC_ACQUIRE)
#define JSON_INTERNAL_DECREF(json) \
__atomic_sub_fetch(&json->refcount, 1, __ATOMIC_RELEASE)
#elif JSON_HAVE_SYNC_BUILTINS
#define JSON_INTERNAL_INCREF(json) __sync_add_and_fetch(&json->refcount, 1)
#define JSON_INTERNAL_DECREF(json) __sync_sub_and_fetch(&json->refcount, 1)
#else
#define JSON_INTERNAL_INCREF(json) (++json->refcount)
#define JSON_INTERNAL_DECREF(json) (--json->refcount)
#endif
static JSON_INLINE json_t *json_incref(json_t *json) {
if (json && json->refcount != (size_t)-1)
JSON_INTERNAL_INCREF(json);
return json;
}
/* do not call json_delete directly */
void json_delete(json_t *json);
static JSON_INLINE void json_decref(json_t *json) {
if (json && json->refcount != (size_t)-1 && JSON_INTERNAL_DECREF(json) == 0)
json_delete(json);
}
#if defined(__GNUC__) || defined(__clang__)
static JSON_INLINE void json_decrefp(json_t **json) {
if (json) {
json_decref(*json);
*json = NULL;
}
}
#define json_auto_t json_t __attribute__((cleanup(json_decrefp)))
#endif
/* error reporting */
#define JSON_ERROR_TEXT_LENGTH 160
#define JSON_ERROR_SOURCE_LENGTH 80
typedef struct json_error_t {
int line;
int column;
int position;
char source[JSON_ERROR_SOURCE_LENGTH];
char text[JSON_ERROR_TEXT_LENGTH];
} json_error_t;
enum json_error_code {
json_error_unknown,
json_error_out_of_memory,
json_error_stack_overflow,
json_error_cannot_open_file,
json_error_invalid_argument,
json_error_invalid_utf8,
json_error_premature_end_of_input,
json_error_end_of_input_expected,
json_error_invalid_syntax,
json_error_invalid_format,
json_error_wrong_type,
json_error_null_character,
json_error_null_value,
json_error_null_byte_in_key,
json_error_duplicate_key,
json_error_numeric_overflow,
json_error_item_not_found,
json_error_index_out_of_range
};
static JSON_INLINE enum json_error_code json_error_code(const json_error_t *e) {
return (enum json_error_code)e->text[JSON_ERROR_TEXT_LENGTH - 1];
}
/* getters, setters, manipulation */
void json_object_seed(size_t seed);
size_t json_object_size(const json_t *object);
json_t *json_object_get(const json_t *object, const char *key)
JANSSON_ATTRS((warn_unused_result));
int json_object_set_new(json_t *object, const char *key, json_t *value);
int json_object_set_new_nocheck(json_t *object, const char *key, json_t *value);
int json_object_del(json_t *object, const char *key);
int json_object_clear(json_t *object);
int json_object_update(json_t *object, json_t *other);
int json_object_update_existing(json_t *object, json_t *other);
int json_object_update_missing(json_t *object, json_t *other);
int json_object_update_recursive(json_t *object, json_t *other);
void *json_object_iter(json_t *object);
void *json_object_iter_at(json_t *object, const char *key);
void *json_object_key_to_iter(const char *key);
void *json_object_iter_next(json_t *object, void *iter);
const char *json_object_iter_key(void *iter);
json_t *json_object_iter_value(void *iter);
int json_object_iter_set_new(json_t *object, void *iter, json_t *value);
#define json_object_foreach(object, key, value) \
for (key = json_object_iter_key(json_object_iter(object)); \
key && (value = json_object_iter_value(json_object_key_to_iter(key))); \
key = json_object_iter_key( \
json_object_iter_next(object, json_object_key_to_iter(key))))
#define json_object_foreach_safe(object, n, key, value) \
for (key = json_object_iter_key(json_object_iter(object)), \
n = json_object_iter_next(object, json_object_key_to_iter(key)); \
key && (value = json_object_iter_value(json_object_key_to_iter(key))); \
key = json_object_iter_key(n), \
n = json_object_iter_next(object, json_object_key_to_iter(key)))
#define json_array_foreach(array, index, value) \
for (index = 0; \
index < json_array_size(array) && (value = json_array_get(array, index)); \
index++)
static JSON_INLINE int json_object_set(json_t *object, const char *key, json_t *value) {
return json_object_set_new(object, key, json_incref(value));
}
static JSON_INLINE int json_object_set_nocheck(json_t *object, const char *key,
json_t *value) {
return json_object_set_new_nocheck(object, key, json_incref(value));
}
static JSON_INLINE int json_object_iter_set(json_t *object, void *iter, json_t *value) {
return json_object_iter_set_new(object, iter, json_incref(value));
}
static JSON_INLINE int json_object_update_new(json_t *object, json_t *other) {
int ret = json_object_update(object, other);
json_decref(other);
return ret;
}
static JSON_INLINE int json_object_update_existing_new(json_t *object, json_t *other) {
int ret = json_object_update_existing(object, other);
json_decref(other);
return ret;
}
static JSON_INLINE int json_object_update_missing_new(json_t *object, json_t *other) {
int ret = json_object_update_missing(object, other);
json_decref(other);
return ret;
}
size_t json_array_size(const json_t *array);
json_t *json_array_get(const json_t *array, size_t index)
JANSSON_ATTRS((warn_unused_result));
int json_array_set_new(json_t *array, size_t index, json_t *value);
int json_array_append_new(json_t *array, json_t *value);
int json_array_insert_new(json_t *array, size_t index, json_t *value);
int json_array_remove(json_t *array, size_t index);
int json_array_clear(json_t *array);
int json_array_extend(json_t *array, json_t *other);
static JSON_INLINE int json_array_set(json_t *array, size_t ind, json_t *value) {
return json_array_set_new(array, ind, json_incref(value));
}
static JSON_INLINE int json_array_append(json_t *array, json_t *value) {
return json_array_append_new(array, json_incref(value));
}
static JSON_INLINE int json_array_insert(json_t *array, size_t ind, json_t *value) {
return json_array_insert_new(array, ind, json_incref(value));
}
const char *json_string_value(const json_t *string);
size_t json_string_length(const json_t *string);
json_int_t json_integer_value(const json_t *integer);
double json_real_value(const json_t *real);
double json_number_value(const json_t *json);
int json_string_set(json_t *string, const char *value);
int json_string_setn(json_t *string, const char *value, size_t len);
int json_string_set_nocheck(json_t *string, const char *value);
int json_string_setn_nocheck(json_t *string, const char *value, size_t len);
int json_integer_set(json_t *integer, json_int_t value);
int json_real_set(json_t *real, double value);
/* pack, unpack */
json_t *json_pack(const char *fmt, ...) JANSSON_ATTRS((warn_unused_result));
json_t *json_pack_ex(json_error_t *error, size_t flags, const char *fmt, ...)
JANSSON_ATTRS((warn_unused_result));
json_t *json_vpack_ex(json_error_t *error, size_t flags, const char *fmt, va_list ap)
JANSSON_ATTRS((warn_unused_result));
#define JSON_VALIDATE_ONLY 0x1
#define JSON_STRICT 0x2
int json_unpack(json_t *root, const char *fmt, ...);
int json_unpack_ex(json_t *root, json_error_t *error, size_t flags, const char *fmt, ...);
int json_vunpack_ex(json_t *root, json_error_t *error, size_t flags, const char *fmt,
va_list ap);
/* sprintf */
json_t *json_sprintf(const char *fmt, ...)
JANSSON_ATTRS((warn_unused_result, format(printf, 1, 2)));
json_t *json_vsprintf(const char *fmt, va_list ap)
JANSSON_ATTRS((warn_unused_result, format(printf, 1, 0)));
/* equality */
int json_equal(const json_t *value1, const json_t *value2);
/* copying */
json_t *json_copy(json_t *value) JANSSON_ATTRS((warn_unused_result));
json_t *json_deep_copy(const json_t *value) JANSSON_ATTRS((warn_unused_result));
/* decoding */
#define JSON_REJECT_DUPLICATES 0x1
#define JSON_DISABLE_EOF_CHECK 0x2
#define JSON_DECODE_ANY 0x4
#define JSON_DECODE_INT_AS_REAL 0x8
#define JSON_ALLOW_NUL 0x10
typedef size_t (*json_load_callback_t)(void *buffer, size_t buflen, void *data);
json_t *json_loads(const char *input, size_t flags, json_error_t *error)
JANSSON_ATTRS((warn_unused_result));
json_t *json_loadb(const char *buffer, size_t buflen, size_t flags, json_error_t *error)
JANSSON_ATTRS((warn_unused_result));
json_t *json_loadf(FILE *input, size_t flags, json_error_t *error)
JANSSON_ATTRS((warn_unused_result));
json_t *json_loadfd(int input, size_t flags, json_error_t *error)
JANSSON_ATTRS((warn_unused_result));
json_t *json_load_file(const char *path, size_t flags, json_error_t *error)
JANSSON_ATTRS((warn_unused_result));
json_t *json_load_callback(json_load_callback_t callback, void *data, size_t flags,
json_error_t *error) JANSSON_ATTRS((warn_unused_result));
/* encoding */
#define JSON_MAX_INDENT 0x1F
#define JSON_INDENT(n) ((n)&JSON_MAX_INDENT)
#define JSON_COMPACT 0x20
#define JSON_ENSURE_ASCII 0x40
#define JSON_SORT_KEYS 0x80
#define JSON_PRESERVE_ORDER 0x100
#define JSON_ENCODE_ANY 0x200
#define JSON_ESCAPE_SLASH 0x400
#define JSON_REAL_PRECISION(n) (((n)&0x1F) << 11)
#define JSON_EMBED 0x10000
typedef int (*json_dump_callback_t)(const char *buffer, size_t size, void *data);
char *json_dumps(const json_t *json, size_t flags) JANSSON_ATTRS((warn_unused_result));
size_t json_dumpb(const json_t *json, char *buffer, size_t size, size_t flags);
int json_dumpf(const json_t *json, FILE *output, size_t flags);
int json_dumpfd(const json_t *json, int output, size_t flags);
int json_dump_file(const json_t *json, const char *path, size_t flags);
int json_dump_callback(const json_t *json, json_dump_callback_t callback, void *data,
size_t flags);
/* custom memory allocation */
typedef void *(*json_malloc_t)(size_t);
typedef void (*json_free_t)(void *);
void json_set_alloc_funcs(json_malloc_t malloc_fn, json_free_t free_fn);
void json_get_alloc_funcs(json_malloc_t *malloc_fn, json_free_t *free_fn);
/* runtime version checking */
const char *jansson_version_str(void);
int jansson_version_cmp(int major, int minor, int micro);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -0,0 +1,55 @@
/*
* Copyright (c) 2010-2016 Petri Lehtinen <petri@digip.org>
*
* Jansson is free software; you can redistribute it and/or modify
* it under the terms of the MIT license. See LICENSE for details.
*
*
* This file specifies a part of the site-specific configuration for
* Jansson, namely those things that affect the public API in
* jansson.h.
*
* The CMake system will generate the jansson_config.h file and
* copy it to the build and install directories.
*/
#ifndef JANSSON_CONFIG_H
#define JANSSON_CONFIG_H
/* Define this so that we can disable scattered automake configuration in source files */
#ifndef JANSSON_USING_CMAKE
#define JANSSON_USING_CMAKE
#endif
/* If your compiler supports the inline keyword in C, JSON_INLINE is
defined to `inline', otherwise empty. In C++, the inline is always
supported. */
#if defined(_MSC_VER) && (_MSC_VER < 1800) && !defined(__cplusplus)
#define JSON_INLINE __inline
#else
#define JSON_INLINE inline
#endif
#define json_int_t long
#define json_strtoint strtol
#define JSON_INTEGER_FORMAT "ld"
/* If locale.h and localeconv() are available, define to 1, otherwise to 0. */
#define JSON_HAVE_LOCALECONV 1
/* If __atomic builtins are available they will be used to manage
reference counts of json_t. */
#define JSON_HAVE_ATOMIC_BUILTINS 0
/* If __atomic builtins are not available we try using __sync builtins
to manage reference counts of json_t. */
#define JSON_HAVE_SYNC_BUILTINS 0
/* Maximum recursion depth for parsing JSON input.
This limits the depth of e.g. array-within-array constructions. */
#define JSON_PARSER_MAX_DEPTH 2048
#endif

View File

@ -103,6 +103,11 @@
<Message>Building library stub</Message>
<Command>lib /def:libcelt-0110.def /machine:x86 /out:libcelt-0110.lib</Command>
<Outputs>libcelt-0110.lib;libcelt-0110.exp;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="jansson.def">
<Message>Building library stub</Message>
<Command>lib /def:jansson.def /machine:x86 /out:jansson.lib</Command>
<Outputs>jansson.lib;jansson.exp;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

78
ext_libs/jansson.def Normal file
View File

@ -0,0 +1,78 @@
EXPORTS
json_delete
json_true
json_false
json_null
json_sprintf
json_vsprintf
json_string
json_stringn
json_string_nocheck
json_stringn_nocheck
json_string_value
json_string_length
json_string_set
json_string_setn
json_string_set_nocheck
json_string_setn_nocheck
json_integer
json_integer_value
json_integer_set
json_real
json_real_value
json_real_set
json_number_value
json_array
json_array_size
json_array_get
json_array_set_new
json_array_append_new
json_array_insert_new
json_array_remove
json_array_clear
json_array_extend
json_object
json_object_size
json_object_get
json_object_set_new
json_object_set_new_nocheck
json_object_del
json_object_clear
json_object_update
json_object_update_existing
json_object_update_missing
json_object_update_recursive
json_object_iter
json_object_iter_at
json_object_iter_next
json_object_iter_key
json_object_iter_value
json_object_iter_set_new
json_object_key_to_iter
json_object_seed
json_dumps
json_dumpb
json_dumpf
json_dumpfd
json_dump_file
json_dump_callback
json_loads
json_loadb
json_loadf
json_loadfd
json_load_file
json_load_callback
json_equal
json_copy
json_deep_copy
json_pack
json_pack_ex
json_vpack_ex
json_unpack
json_unpack_ex
json_vunpack_ex
json_set_alloc_funcs
json_get_alloc_funcs
jansson_version_str
jansson_version_cmp

BIN
ext_libs/jansson.dll Normal file

Binary file not shown.

View File

@ -22,8 +22,8 @@
#include <pstdint.h>
#endif
#ifndef inline /* (_MSC_VER < 1900)? */
#define inline _inline
#if (_MSC_VER < 1800) && !defined(__cplusplus)
#define inline __inline
#endif
#define strcasecmp _stricmp

View File

@ -14,9 +14,6 @@ EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mp4v2", "dependencies\qaac\vcproject\mp4v2\mp4v2.vcxproj", "{86A064E2-C81B-4EEE-8BE0-A39A2E7C7C76}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vgmstream_cli", "cli\vgmstream_cli.vcxproj", "{AF7D88A0-3CB1-4CD8-BAD1-0305EB996D69}"
ProjectSection(ProjectDependencies) = postProject
{F4F7C404-0110-3BA7-92FB-97EC3D2C01DB} = {F4F7C404-0110-3BA7-92FB-97EC3D2C01DB}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "in_vgmstream", "winamp\in_vgmstream.vcxproj", "{42D86561-8CE4-40F5-86CE-58C986B77502}"
EndProject
@ -34,20 +31,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pfc", "dependencies\foobar\
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmp-vgmstream", "xmplay\xmp-vgmstream.vcxproj", "{49AF76F7-CBA0-4486-9DDF-51F30DF45F33}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZERO_CHECK", "dependencies\jansson\build\ZERO_CHECK.vcxproj", "{AEBC9869-B5B5-33A9-9E59-198789EB0189}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jansson", "dependencies\jansson\build\jansson.vcxproj", "{F4F7C404-0110-3BA7-92FB-97EC3D2C01DB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
MinSizeRel|Win32 = MinSizeRel|Win32
MinSizeRel|x64 = MinSizeRel|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
RelWithDebInfo|Win32 = RelWithDebInfo|Win32
RelWithDebInfo|x64 = RelWithDebInfo|x64
Template|Win32 = Template|Win32
Template|x64 = Template|x64
EndGlobalSection
@ -55,17 +44,9 @@ Global
{54A6AD11-5369-4895-A06F-E255ABB99B11}.Debug|Win32.ActiveCfg = Debug|Win32
{54A6AD11-5369-4895-A06F-E255ABB99B11}.Debug|Win32.Build.0 = Debug|Win32
{54A6AD11-5369-4895-A06F-E255ABB99B11}.Debug|x64.ActiveCfg = Debug|Win32
{54A6AD11-5369-4895-A06F-E255ABB99B11}.MinSizeRel|Win32.ActiveCfg = Release|Win32
{54A6AD11-5369-4895-A06F-E255ABB99B11}.MinSizeRel|Win32.Build.0 = Release|Win32
{54A6AD11-5369-4895-A06F-E255ABB99B11}.MinSizeRel|x64.ActiveCfg = Release|Win32
{54A6AD11-5369-4895-A06F-E255ABB99B11}.MinSizeRel|x64.Build.0 = Release|Win32
{54A6AD11-5369-4895-A06F-E255ABB99B11}.Release|Win32.ActiveCfg = Release|Win32
{54A6AD11-5369-4895-A06F-E255ABB99B11}.Release|Win32.Build.0 = Release|Win32
{54A6AD11-5369-4895-A06F-E255ABB99B11}.Release|x64.ActiveCfg = Release|Win32
{54A6AD11-5369-4895-A06F-E255ABB99B11}.RelWithDebInfo|Win32.ActiveCfg = Release|Win32
{54A6AD11-5369-4895-A06F-E255ABB99B11}.RelWithDebInfo|Win32.Build.0 = Release|Win32
{54A6AD11-5369-4895-A06F-E255ABB99B11}.RelWithDebInfo|x64.ActiveCfg = Release|Win32
{54A6AD11-5369-4895-A06F-E255ABB99B11}.RelWithDebInfo|x64.Build.0 = Release|Win32
{54A6AD11-5369-4895-A06F-E255ABB99B11}.Template|Win32.ActiveCfg = Release|Win32
{54A6AD11-5369-4895-A06F-E255ABB99B11}.Template|Win32.Build.0 = Release|Win32
{54A6AD11-5369-4895-A06F-E255ABB99B11}.Template|x64.ActiveCfg = Release|Win32
@ -73,17 +54,9 @@ Global
{10E6BFC6-1E5B-46E4-BA42-F04DFBD0ABFF}.Debug|Win32.ActiveCfg = Debug|Win32
{10E6BFC6-1E5B-46E4-BA42-F04DFBD0ABFF}.Debug|Win32.Build.0 = Debug|Win32
{10E6BFC6-1E5B-46E4-BA42-F04DFBD0ABFF}.Debug|x64.ActiveCfg = Debug|Win32
{10E6BFC6-1E5B-46E4-BA42-F04DFBD0ABFF}.MinSizeRel|Win32.ActiveCfg = Release|Win32
{10E6BFC6-1E5B-46E4-BA42-F04DFBD0ABFF}.MinSizeRel|Win32.Build.0 = Release|Win32
{10E6BFC6-1E5B-46E4-BA42-F04DFBD0ABFF}.MinSizeRel|x64.ActiveCfg = Release|Win32
{10E6BFC6-1E5B-46E4-BA42-F04DFBD0ABFF}.MinSizeRel|x64.Build.0 = Release|Win32
{10E6BFC6-1E5B-46E4-BA42-F04DFBD0ABFF}.Release|Win32.ActiveCfg = Release|Win32
{10E6BFC6-1E5B-46E4-BA42-F04DFBD0ABFF}.Release|Win32.Build.0 = Release|Win32
{10E6BFC6-1E5B-46E4-BA42-F04DFBD0ABFF}.Release|x64.ActiveCfg = Release|Win32
{10E6BFC6-1E5B-46E4-BA42-F04DFBD0ABFF}.RelWithDebInfo|Win32.ActiveCfg = Release|Win32
{10E6BFC6-1E5B-46E4-BA42-F04DFBD0ABFF}.RelWithDebInfo|Win32.Build.0 = Release|Win32
{10E6BFC6-1E5B-46E4-BA42-F04DFBD0ABFF}.RelWithDebInfo|x64.ActiveCfg = Release|Win32
{10E6BFC6-1E5B-46E4-BA42-F04DFBD0ABFF}.RelWithDebInfo|x64.Build.0 = Release|Win32
{10E6BFC6-1E5B-46E4-BA42-F04DFBD0ABFF}.Template|Win32.ActiveCfg = Release|Win32
{10E6BFC6-1E5B-46E4-BA42-F04DFBD0ABFF}.Template|Win32.Build.0 = Release|Win32
{10E6BFC6-1E5B-46E4-BA42-F04DFBD0ABFF}.Template|x64.ActiveCfg = Release|Win32
@ -91,17 +64,9 @@ Global
{330B53AE-4FAE-46DA-8785-9016DB4E3E23}.Debug|Win32.ActiveCfg = Debug|Win32
{330B53AE-4FAE-46DA-8785-9016DB4E3E23}.Debug|Win32.Build.0 = Debug|Win32
{330B53AE-4FAE-46DA-8785-9016DB4E3E23}.Debug|x64.ActiveCfg = Debug|Win32
{330B53AE-4FAE-46DA-8785-9016DB4E3E23}.MinSizeRel|Win32.ActiveCfg = Release|Win32
{330B53AE-4FAE-46DA-8785-9016DB4E3E23}.MinSizeRel|Win32.Build.0 = Release|Win32
{330B53AE-4FAE-46DA-8785-9016DB4E3E23}.MinSizeRel|x64.ActiveCfg = Release|Win32
{330B53AE-4FAE-46DA-8785-9016DB4E3E23}.MinSizeRel|x64.Build.0 = Release|Win32
{330B53AE-4FAE-46DA-8785-9016DB4E3E23}.Release|Win32.ActiveCfg = Release|Win32
{330B53AE-4FAE-46DA-8785-9016DB4E3E23}.Release|Win32.Build.0 = Release|Win32
{330B53AE-4FAE-46DA-8785-9016DB4E3E23}.Release|x64.ActiveCfg = Release|Win32
{330B53AE-4FAE-46DA-8785-9016DB4E3E23}.RelWithDebInfo|Win32.ActiveCfg = Release|Win32
{330B53AE-4FAE-46DA-8785-9016DB4E3E23}.RelWithDebInfo|Win32.Build.0 = Release|Win32
{330B53AE-4FAE-46DA-8785-9016DB4E3E23}.RelWithDebInfo|x64.ActiveCfg = Release|Win32
{330B53AE-4FAE-46DA-8785-9016DB4E3E23}.RelWithDebInfo|x64.Build.0 = Release|Win32
{330B53AE-4FAE-46DA-8785-9016DB4E3E23}.Template|Win32.ActiveCfg = Release|Win32
{330B53AE-4FAE-46DA-8785-9016DB4E3E23}.Template|Win32.Build.0 = Release|Win32
{330B53AE-4FAE-46DA-8785-9016DB4E3E23}.Template|x64.ActiveCfg = Release|Win32
@ -109,17 +74,9 @@ Global
{308E2AD5-BE31-4770-9441-A8D50F56895C}.Debug|Win32.ActiveCfg = Debug|Win32
{308E2AD5-BE31-4770-9441-A8D50F56895C}.Debug|Win32.Build.0 = Debug|Win32
{308E2AD5-BE31-4770-9441-A8D50F56895C}.Debug|x64.ActiveCfg = Debug|Win32
{308E2AD5-BE31-4770-9441-A8D50F56895C}.MinSizeRel|Win32.ActiveCfg = Release|Win32
{308E2AD5-BE31-4770-9441-A8D50F56895C}.MinSizeRel|Win32.Build.0 = Release|Win32
{308E2AD5-BE31-4770-9441-A8D50F56895C}.MinSizeRel|x64.ActiveCfg = Release|Win32
{308E2AD5-BE31-4770-9441-A8D50F56895C}.MinSizeRel|x64.Build.0 = Release|Win32
{308E2AD5-BE31-4770-9441-A8D50F56895C}.Release|Win32.ActiveCfg = Release|Win32
{308E2AD5-BE31-4770-9441-A8D50F56895C}.Release|Win32.Build.0 = Release|Win32
{308E2AD5-BE31-4770-9441-A8D50F56895C}.Release|x64.ActiveCfg = Release|Win32
{308E2AD5-BE31-4770-9441-A8D50F56895C}.RelWithDebInfo|Win32.ActiveCfg = Release|Win32
{308E2AD5-BE31-4770-9441-A8D50F56895C}.RelWithDebInfo|Win32.Build.0 = Release|Win32
{308E2AD5-BE31-4770-9441-A8D50F56895C}.RelWithDebInfo|x64.ActiveCfg = Release|Win32
{308E2AD5-BE31-4770-9441-A8D50F56895C}.RelWithDebInfo|x64.Build.0 = Release|Win32
{308E2AD5-BE31-4770-9441-A8D50F56895C}.Template|Win32.ActiveCfg = Release|Win32
{308E2AD5-BE31-4770-9441-A8D50F56895C}.Template|Win32.Build.0 = Release|Win32
{308E2AD5-BE31-4770-9441-A8D50F56895C}.Template|x64.ActiveCfg = Release|Win32
@ -128,18 +85,10 @@ Global
{86A064E2-C81B-4EEE-8BE0-A39A2E7C7C76}.Debug|Win32.Build.0 = Debug|Win32
{86A064E2-C81B-4EEE-8BE0-A39A2E7C7C76}.Debug|x64.ActiveCfg = Debug|x64
{86A064E2-C81B-4EEE-8BE0-A39A2E7C7C76}.Debug|x64.Build.0 = Debug|x64
{86A064E2-C81B-4EEE-8BE0-A39A2E7C7C76}.MinSizeRel|Win32.ActiveCfg = Release|Win32
{86A064E2-C81B-4EEE-8BE0-A39A2E7C7C76}.MinSizeRel|Win32.Build.0 = Release|Win32
{86A064E2-C81B-4EEE-8BE0-A39A2E7C7C76}.MinSizeRel|x64.ActiveCfg = Release|x64
{86A064E2-C81B-4EEE-8BE0-A39A2E7C7C76}.MinSizeRel|x64.Build.0 = Release|x64
{86A064E2-C81B-4EEE-8BE0-A39A2E7C7C76}.Release|Win32.ActiveCfg = Release|Win32
{86A064E2-C81B-4EEE-8BE0-A39A2E7C7C76}.Release|Win32.Build.0 = Release|Win32
{86A064E2-C81B-4EEE-8BE0-A39A2E7C7C76}.Release|x64.ActiveCfg = Release|x64
{86A064E2-C81B-4EEE-8BE0-A39A2E7C7C76}.Release|x64.Build.0 = Release|x64
{86A064E2-C81B-4EEE-8BE0-A39A2E7C7C76}.RelWithDebInfo|Win32.ActiveCfg = Release|Win32
{86A064E2-C81B-4EEE-8BE0-A39A2E7C7C76}.RelWithDebInfo|Win32.Build.0 = Release|Win32
{86A064E2-C81B-4EEE-8BE0-A39A2E7C7C76}.RelWithDebInfo|x64.ActiveCfg = Release|x64
{86A064E2-C81B-4EEE-8BE0-A39A2E7C7C76}.RelWithDebInfo|x64.Build.0 = Release|x64
{86A064E2-C81B-4EEE-8BE0-A39A2E7C7C76}.Template|Win32.ActiveCfg = Release|Win32
{86A064E2-C81B-4EEE-8BE0-A39A2E7C7C76}.Template|Win32.Build.0 = Release|Win32
{86A064E2-C81B-4EEE-8BE0-A39A2E7C7C76}.Template|x64.ActiveCfg = Release|x64
@ -147,68 +96,36 @@ Global
{AF7D88A0-3CB1-4CD8-BAD1-0305EB996D69}.Debug|Win32.ActiveCfg = Debug|Win32
{AF7D88A0-3CB1-4CD8-BAD1-0305EB996D69}.Debug|Win32.Build.0 = Debug|Win32
{AF7D88A0-3CB1-4CD8-BAD1-0305EB996D69}.Debug|x64.ActiveCfg = Debug|Win32
{AF7D88A0-3CB1-4CD8-BAD1-0305EB996D69}.MinSizeRel|Win32.ActiveCfg = Template|Win32
{AF7D88A0-3CB1-4CD8-BAD1-0305EB996D69}.MinSizeRel|Win32.Build.0 = Template|Win32
{AF7D88A0-3CB1-4CD8-BAD1-0305EB996D69}.MinSizeRel|x64.ActiveCfg = Template|Win32
{AF7D88A0-3CB1-4CD8-BAD1-0305EB996D69}.MinSizeRel|x64.Build.0 = Template|Win32
{AF7D88A0-3CB1-4CD8-BAD1-0305EB996D69}.Release|Win32.ActiveCfg = Release|Win32
{AF7D88A0-3CB1-4CD8-BAD1-0305EB996D69}.Release|Win32.Build.0 = Release|Win32
{AF7D88A0-3CB1-4CD8-BAD1-0305EB996D69}.Release|x64.ActiveCfg = Release|Win32
{AF7D88A0-3CB1-4CD8-BAD1-0305EB996D69}.RelWithDebInfo|Win32.ActiveCfg = Release|Win32
{AF7D88A0-3CB1-4CD8-BAD1-0305EB996D69}.RelWithDebInfo|Win32.Build.0 = Release|Win32
{AF7D88A0-3CB1-4CD8-BAD1-0305EB996D69}.RelWithDebInfo|x64.ActiveCfg = Template|Win32
{AF7D88A0-3CB1-4CD8-BAD1-0305EB996D69}.RelWithDebInfo|x64.Build.0 = Template|Win32
{AF7D88A0-3CB1-4CD8-BAD1-0305EB996D69}.Template|Win32.ActiveCfg = Template|Win32
{AF7D88A0-3CB1-4CD8-BAD1-0305EB996D69}.Template|Win32.Build.0 = Template|Win32
{AF7D88A0-3CB1-4CD8-BAD1-0305EB996D69}.Template|x64.ActiveCfg = Template|Win32
{42D86561-8CE4-40F5-86CE-58C986B77502}.Debug|Win32.ActiveCfg = Debug|Win32
{42D86561-8CE4-40F5-86CE-58C986B77502}.Debug|Win32.Build.0 = Debug|Win32
{42D86561-8CE4-40F5-86CE-58C986B77502}.Debug|x64.ActiveCfg = Debug|Win32
{42D86561-8CE4-40F5-86CE-58C986B77502}.MinSizeRel|Win32.ActiveCfg = Template|Win32
{42D86561-8CE4-40F5-86CE-58C986B77502}.MinSizeRel|Win32.Build.0 = Template|Win32
{42D86561-8CE4-40F5-86CE-58C986B77502}.MinSizeRel|x64.ActiveCfg = Template|Win32
{42D86561-8CE4-40F5-86CE-58C986B77502}.MinSizeRel|x64.Build.0 = Template|Win32
{42D86561-8CE4-40F5-86CE-58C986B77502}.Release|Win32.ActiveCfg = Release|Win32
{42D86561-8CE4-40F5-86CE-58C986B77502}.Release|Win32.Build.0 = Release|Win32
{42D86561-8CE4-40F5-86CE-58C986B77502}.Release|x64.ActiveCfg = Release|Win32
{42D86561-8CE4-40F5-86CE-58C986B77502}.RelWithDebInfo|Win32.ActiveCfg = Release|Win32
{42D86561-8CE4-40F5-86CE-58C986B77502}.RelWithDebInfo|Win32.Build.0 = Release|Win32
{42D86561-8CE4-40F5-86CE-58C986B77502}.RelWithDebInfo|x64.ActiveCfg = Template|Win32
{42D86561-8CE4-40F5-86CE-58C986B77502}.RelWithDebInfo|x64.Build.0 = Template|Win32
{42D86561-8CE4-40F5-86CE-58C986B77502}.Template|Win32.ActiveCfg = Template|Win32
{42D86561-8CE4-40F5-86CE-58C986B77502}.Template|Win32.Build.0 = Template|Win32
{42D86561-8CE4-40F5-86CE-58C986B77502}.Template|x64.ActiveCfg = Template|Win32
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Debug|Win32.ActiveCfg = Debug|Win32
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Debug|Win32.Build.0 = Debug|Win32
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Debug|x64.ActiveCfg = Debug|Win32
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.MinSizeRel|Win32.ActiveCfg = Template|Win32
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.MinSizeRel|Win32.Build.0 = Template|Win32
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.MinSizeRel|x64.ActiveCfg = Template|Win32
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.MinSizeRel|x64.Build.0 = Template|Win32
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Release|Win32.ActiveCfg = Release|Win32
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Release|Win32.Build.0 = Release|Win32
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Release|x64.ActiveCfg = Release|Win32
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.RelWithDebInfo|Win32.ActiveCfg = Release|Win32
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.RelWithDebInfo|Win32.Build.0 = Release|Win32
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.RelWithDebInfo|x64.ActiveCfg = Template|Win32
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.RelWithDebInfo|x64.Build.0 = Template|Win32
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Template|Win32.ActiveCfg = Template|Win32
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Template|Win32.Build.0 = Template|Win32
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Template|x64.ActiveCfg = Template|Win32
{E8091321-D79D-4575-86EF-064EA1A4A20D}.Debug|Win32.ActiveCfg = Debug|Win32
{E8091321-D79D-4575-86EF-064EA1A4A20D}.Debug|Win32.Build.0 = Debug|Win32
{E8091321-D79D-4575-86EF-064EA1A4A20D}.Debug|x64.ActiveCfg = Debug|Win32
{E8091321-D79D-4575-86EF-064EA1A4A20D}.MinSizeRel|Win32.ActiveCfg = Release|Win32
{E8091321-D79D-4575-86EF-064EA1A4A20D}.MinSizeRel|Win32.Build.0 = Release|Win32
{E8091321-D79D-4575-86EF-064EA1A4A20D}.MinSizeRel|x64.ActiveCfg = Release|Win32
{E8091321-D79D-4575-86EF-064EA1A4A20D}.MinSizeRel|x64.Build.0 = Release|Win32
{E8091321-D79D-4575-86EF-064EA1A4A20D}.Release|Win32.ActiveCfg = Release|Win32
{E8091321-D79D-4575-86EF-064EA1A4A20D}.Release|Win32.Build.0 = Release|Win32
{E8091321-D79D-4575-86EF-064EA1A4A20D}.Release|x64.ActiveCfg = Release|Win32
{E8091321-D79D-4575-86EF-064EA1A4A20D}.RelWithDebInfo|Win32.ActiveCfg = Release|Win32
{E8091321-D79D-4575-86EF-064EA1A4A20D}.RelWithDebInfo|Win32.Build.0 = Release|Win32
{E8091321-D79D-4575-86EF-064EA1A4A20D}.RelWithDebInfo|x64.ActiveCfg = Release|Win32
{E8091321-D79D-4575-86EF-064EA1A4A20D}.RelWithDebInfo|x64.Build.0 = Release|Win32
{E8091321-D79D-4575-86EF-064EA1A4A20D}.Template|Win32.ActiveCfg = Release|Win32
{E8091321-D79D-4575-86EF-064EA1A4A20D}.Template|Win32.Build.0 = Release|Win32
{E8091321-D79D-4575-86EF-064EA1A4A20D}.Template|x64.ActiveCfg = Release|Win32
@ -217,17 +134,9 @@ Global
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Debug|Win32.ActiveCfg = Debug|Win32
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Debug|Win32.Build.0 = Debug|Win32
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Debug|x64.ActiveCfg = Debug|Win32
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.MinSizeRel|Win32.ActiveCfg = Release|Win32
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.MinSizeRel|Win32.Build.0 = Release|Win32
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.MinSizeRel|x64.ActiveCfg = Release|Win32
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.MinSizeRel|x64.Build.0 = Release|Win32
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Release|Win32.ActiveCfg = Release|Win32
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Release|Win32.Build.0 = Release|Win32
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Release|x64.ActiveCfg = Release|Win32
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.RelWithDebInfo|Win32.ActiveCfg = Release|Win32
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.RelWithDebInfo|Win32.Build.0 = Release|Win32
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.RelWithDebInfo|x64.ActiveCfg = Release|Win32
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.RelWithDebInfo|x64.Build.0 = Release|Win32
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Template|Win32.ActiveCfg = Release|Win32
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Template|Win32.Build.0 = Release|Win32
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Template|x64.ActiveCfg = Release|Win32
@ -236,17 +145,9 @@ Global
{622E8B19-8109-4717-BD4D-9657AA78363E}.Debug|Win32.ActiveCfg = Debug|Win32
{622E8B19-8109-4717-BD4D-9657AA78363E}.Debug|Win32.Build.0 = Debug|Win32
{622E8B19-8109-4717-BD4D-9657AA78363E}.Debug|x64.ActiveCfg = Debug|Win32
{622E8B19-8109-4717-BD4D-9657AA78363E}.MinSizeRel|Win32.ActiveCfg = Release|Win32
{622E8B19-8109-4717-BD4D-9657AA78363E}.MinSizeRel|Win32.Build.0 = Release|Win32
{622E8B19-8109-4717-BD4D-9657AA78363E}.MinSizeRel|x64.ActiveCfg = Release|Win32
{622E8B19-8109-4717-BD4D-9657AA78363E}.MinSizeRel|x64.Build.0 = Release|Win32
{622E8B19-8109-4717-BD4D-9657AA78363E}.Release|Win32.ActiveCfg = Release|Win32
{622E8B19-8109-4717-BD4D-9657AA78363E}.Release|Win32.Build.0 = Release|Win32
{622E8B19-8109-4717-BD4D-9657AA78363E}.Release|x64.ActiveCfg = Release|Win32
{622E8B19-8109-4717-BD4D-9657AA78363E}.RelWithDebInfo|Win32.ActiveCfg = Release|Win32
{622E8B19-8109-4717-BD4D-9657AA78363E}.RelWithDebInfo|Win32.Build.0 = Release|Win32
{622E8B19-8109-4717-BD4D-9657AA78363E}.RelWithDebInfo|x64.ActiveCfg = Release|Win32
{622E8B19-8109-4717-BD4D-9657AA78363E}.RelWithDebInfo|x64.Build.0 = Release|Win32
{622E8B19-8109-4717-BD4D-9657AA78363E}.Template|Win32.ActiveCfg = Release|Win32
{622E8B19-8109-4717-BD4D-9657AA78363E}.Template|Win32.Build.0 = Release|Win32
{622E8B19-8109-4717-BD4D-9657AA78363E}.Template|x64.ActiveCfg = Release|Win32
@ -255,17 +156,9 @@ Global
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.Debug|Win32.ActiveCfg = Debug|Win32
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.Debug|Win32.Build.0 = Debug|Win32
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.Debug|x64.ActiveCfg = Debug|Win32
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.MinSizeRel|Win32.ActiveCfg = Release|Win32
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.MinSizeRel|Win32.Build.0 = Release|Win32
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.MinSizeRel|x64.ActiveCfg = Release|Win32
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.MinSizeRel|x64.Build.0 = Release|Win32
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.Release|Win32.ActiveCfg = Release|Win32
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.Release|Win32.Build.0 = Release|Win32
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.Release|x64.ActiveCfg = Release|Win32
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.RelWithDebInfo|Win32.ActiveCfg = Release|Win32
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.RelWithDebInfo|Win32.Build.0 = Release|Win32
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.RelWithDebInfo|x64.ActiveCfg = Release|Win32
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.RelWithDebInfo|x64.Build.0 = Release|Win32
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.Template|Win32.ActiveCfg = Release|Win32
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.Template|Win32.Build.0 = Release|Win32
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.Template|x64.ActiveCfg = Release|Win32
@ -274,17 +167,9 @@ Global
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Debug|Win32.ActiveCfg = Debug|Win32
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Debug|Win32.Build.0 = Debug|Win32
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Debug|x64.ActiveCfg = Debug|Win32
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.MinSizeRel|Win32.ActiveCfg = Release|Win32
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.MinSizeRel|Win32.Build.0 = Release|Win32
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.MinSizeRel|x64.ActiveCfg = Release|Win32
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.MinSizeRel|x64.Build.0 = Release|Win32
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Release|Win32.ActiveCfg = Release|Win32
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Release|Win32.Build.0 = Release|Win32
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Release|x64.ActiveCfg = Release|Win32
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.RelWithDebInfo|Win32.ActiveCfg = Release|Win32
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.RelWithDebInfo|Win32.Build.0 = Release|Win32
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.RelWithDebInfo|x64.ActiveCfg = Release|Win32
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.RelWithDebInfo|x64.Build.0 = Release|Win32
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Template|Win32.ActiveCfg = Release|Win32
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Template|Win32.Build.0 = Release|Win32
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Template|x64.ActiveCfg = Release|Win32
@ -293,52 +178,12 @@ Global
{49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.Debug|Win32.ActiveCfg = Debug|Win32
{49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.Debug|Win32.Build.0 = Debug|Win32
{49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.Debug|x64.ActiveCfg = Debug|Win32
{49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.MinSizeRel|Win32.ActiveCfg = Template|Win32
{49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.MinSizeRel|Win32.Build.0 = Template|Win32
{49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.MinSizeRel|x64.ActiveCfg = Template|Win32
{49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.MinSizeRel|x64.Build.0 = Template|Win32
{49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.Release|Win32.ActiveCfg = Release|Win32
{49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.Release|Win32.Build.0 = Release|Win32
{49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.Release|x64.ActiveCfg = Release|Win32
{49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.RelWithDebInfo|Win32.ActiveCfg = Release|Win32
{49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.RelWithDebInfo|Win32.Build.0 = Release|Win32
{49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.RelWithDebInfo|x64.ActiveCfg = Template|Win32
{49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.RelWithDebInfo|x64.Build.0 = Template|Win32
{49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.Template|Win32.ActiveCfg = Template|Win32
{49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.Template|Win32.Build.0 = Template|Win32
{49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.Template|x64.ActiveCfg = Template|Win32
{AEBC9869-B5B5-33A9-9E59-198789EB0189}.Debug|Win32.ActiveCfg = Debug|Win32
{AEBC9869-B5B5-33A9-9E59-198789EB0189}.Debug|Win32.Build.0 = Debug|Win32
{AEBC9869-B5B5-33A9-9E59-198789EB0189}.Debug|x64.ActiveCfg = Debug|Win32
{AEBC9869-B5B5-33A9-9E59-198789EB0189}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32
{AEBC9869-B5B5-33A9-9E59-198789EB0189}.MinSizeRel|Win32.Build.0 = MinSizeRel|Win32
{AEBC9869-B5B5-33A9-9E59-198789EB0189}.MinSizeRel|x64.ActiveCfg = MinSizeRel|Win32
{AEBC9869-B5B5-33A9-9E59-198789EB0189}.Release|Win32.ActiveCfg = Release|Win32
{AEBC9869-B5B5-33A9-9E59-198789EB0189}.Release|Win32.Build.0 = Release|Win32
{AEBC9869-B5B5-33A9-9E59-198789EB0189}.Release|x64.ActiveCfg = Release|Win32
{AEBC9869-B5B5-33A9-9E59-198789EB0189}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32
{AEBC9869-B5B5-33A9-9E59-198789EB0189}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32
{AEBC9869-B5B5-33A9-9E59-198789EB0189}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|Win32
{AEBC9869-B5B5-33A9-9E59-198789EB0189}.Template|Win32.ActiveCfg = Release|Win32
{AEBC9869-B5B5-33A9-9E59-198789EB0189}.Template|Win32.Build.0 = Release|Win32
{AEBC9869-B5B5-33A9-9E59-198789EB0189}.Template|x64.ActiveCfg = Release|Win32
{AEBC9869-B5B5-33A9-9E59-198789EB0189}.Template|x64.Build.0 = Release|Win32
{F4F7C404-0110-3BA7-92FB-97EC3D2C01DB}.Debug|Win32.ActiveCfg = Debug|Win32
{F4F7C404-0110-3BA7-92FB-97EC3D2C01DB}.Debug|Win32.Build.0 = Debug|Win32
{F4F7C404-0110-3BA7-92FB-97EC3D2C01DB}.Debug|x64.ActiveCfg = Debug|Win32
{F4F7C404-0110-3BA7-92FB-97EC3D2C01DB}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32
{F4F7C404-0110-3BA7-92FB-97EC3D2C01DB}.MinSizeRel|Win32.Build.0 = MinSizeRel|Win32
{F4F7C404-0110-3BA7-92FB-97EC3D2C01DB}.MinSizeRel|x64.ActiveCfg = MinSizeRel|Win32
{F4F7C404-0110-3BA7-92FB-97EC3D2C01DB}.Release|Win32.ActiveCfg = Release|Win32
{F4F7C404-0110-3BA7-92FB-97EC3D2C01DB}.Release|Win32.Build.0 = Release|Win32
{F4F7C404-0110-3BA7-92FB-97EC3D2C01DB}.Release|x64.ActiveCfg = Release|Win32
{F4F7C404-0110-3BA7-92FB-97EC3D2C01DB}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32
{F4F7C404-0110-3BA7-92FB-97EC3D2C01DB}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32
{F4F7C404-0110-3BA7-92FB-97EC3D2C01DB}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|Win32
{F4F7C404-0110-3BA7-92FB-97EC3D2C01DB}.Template|Win32.ActiveCfg = Release|Win32
{F4F7C404-0110-3BA7-92FB-97EC3D2C01DB}.Template|Win32.Build.0 = Release|Win32
{F4F7C404-0110-3BA7-92FB-97EC3D2C01DB}.Template|x64.ActiveCfg = Release|Win32
{F4F7C404-0110-3BA7-92FB-97EC3D2C01DB}.Template|x64.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE