Compare commits

...

138 Commits

Author SHA1 Message Date
Takatoshi Kondo
83a82e3eb5 Merge pull request #727 from redboltz/update_311
Updated the version to 3.1.1.
2018-09-09 15:27:47 +09:00
Takatoshi Kondo
aa9c73352c Added more fixes. 2018-09-09 13:51:43 +09:00
Takatoshi Kondo
df9e003b35 Merge pull request #736 from redboltz/force_set_endian
Added enforcing endian functionality.
2018-09-08 22:06:02 +09:00
Takatoshi Kondo
f6ddc9b85a Added enforcing endian functionality. 2018-09-08 20:06:00 +09:00
Takatoshi Kondo
11cfeeec92 Merge pull request #733 from tbeu/add-int-overflow-check-to-vrefbuffer
Adding int overflow checks to vrefbuffer
2018-09-07 09:04:22 +09:00
tbeu
d72765870a Move overflow check up 2018-09-06 15:09:52 +02:00
jwang
349c133171 Fix malloc size 2018-09-05 10:28:22 +02:00
tbeu
c056026dad Fix memory leaks 2018-09-04 22:24:40 +02:00
jwang
0421dabc1e removing unused vars 2018-09-03 22:23:54 +02:00
jwang
60930f4b12 adding unit tests and fixing same overflow issue in hpp files 2018-09-03 22:23:53 +02:00
jwang
b3dfe28be4 adding int overflow checks to vrefbuffer 2018-09-03 22:23:52 +02:00
jwang
e703d8a2f7 adding int overflow checks to vrefbuffer 2018-09-03 22:23:52 +02:00
Takatoshi Kondo
801f61c12c Merge pull request #732 from tbeu/fix-static-cast
Fix VS2010 warning C4309: 'static_cast' : truncation of constant value
2018-09-03 17:20:52 +09:00
Takatoshi Kondo
a3e75a0709 Merge pull request #731 from tbeu/fix-return-types
Fix VS2010 build errors on return types
2018-09-03 17:20:24 +09:00
tbeu
92d34cbd79 Fix VS2010 warning C4309: 'static_cast' : truncation of constant value 2018-09-02 20:36:48 +02:00
tbeu
c99fd62ae6 Fix VS2010 build errors on return types 2018-09-02 19:55:33 +02:00
Takatoshi Kondo
a3986b3bdc Merge pull request #730 from froydnj/update-predef-and-preprocessor
update boost predef and preprocessor from 1.61.0 to 1.68.0
2018-09-01 21:31:58 +09:00
Takatoshi Kondo
7fed49e6fe Merge branch 'froydnj-update-predef-and-preprocessor' 2018-09-01 20:36:18 +09:00
Takatoshi Kondo
005e06e00a Updated appveyor's boost. 2018-09-01 19:45:14 +09:00
Nathan Froyd
b6d4bb5cb0 update boost predef and preprocessor from 1.61.0 to 1.68.0
...via `git submodule foreach git pull origin boost-1.68.0` and
initializing cmake.

Fixes #728.
2018-08-31 14:57:19 -04:00
Takatoshi Kondo
f57bfd998b Updated the version to 3.1.1. 2018-08-28 00:17:42 +09:00
Takatoshi Kondo
e8d3387a04 Merge pull request #726 from redboltz/fix_724
Fixed #724.
2018-08-28 00:13:49 +09:00
Takatoshi Kondo
53d2ea9ad3 Fixed #724.
Fixed type mismatch in msgpack_timestamp.
Added 64bit singed postfix.
2018-08-27 22:40:04 +09:00
Takatoshi Kondo
b6803a5fec Merge pull request #723 from redboltz/update_readme
Updated readme.
2018-08-21 22:30:54 +09:00
Takatoshi Kondo
210d3ce390 Updated readme. 2018-08-21 07:13:38 +09:00
Takatoshi Kondo
a350e0714e Merge pull request #716 from redboltz/update_310
Updated the version to 3.1.0
2018-08-21 06:43:27 +09:00
Takatoshi Kondo
72757feae4 Updated the version to 3.1.0 2018-08-20 21:58:54 +09:00
Takatoshi Kondo
fe2346efa1 Merge pull request #721 from dennisklein/master
Export an interface target for the C++ header-only library
2018-08-17 07:41:31 +09:00
Takatoshi Kondo
43ae287be3 Merge pull request #722 from redboltz/fix_build_shared_libs
Fixed BUILD_SHARED_LIBS meaning.
2018-08-17 07:40:53 +09:00
Takatoshi Kondo
b804e12dec Fixed BUILD_SHARED_LIBS meaning.
There are three switches to build static/shared libraries.

Here is the logic.

If BUILD_SHARED_LIBS is defined
   If BUILD_SHARED_LIBS is ON
      build only shared-library
   Else
      build only static-library
   Endif
Else
   If MSGPACK_ENABLE_SHARED is ON (default)
      build shared-library
   Endif
   If MSGPACK_ENABLE_STATIC is ON (default)
      build static-library
   Endif
Endif

Here is common settings:

If you want to build both static/shared libraries, don't set switches.
If you want to build only shared-library, set BUILD_SHARED_LIBS=ON.
If you want to build only static-library, set BUILD_SHARED_LIBS=OFF.
2018-08-15 16:39:21 +09:00
Dennis Klein
99c221ad01 Export an interface target for the C++ header-only library 2018-08-13 20:54:29 +02:00
Takatoshi Kondo
3a615bcf44 Merge pull request #720 from redboltz/fix_711
Removed warnings.
2018-08-12 22:54:28 +09:00
Takatoshi Kondo
87863c1696 Removed warnings. 2018-08-12 20:59:00 +09:00
Takatoshi Kondo
45defd565a Merge pull request #719 from redboltz/add_byte
Add byte
2018-08-12 20:48:19 +09:00
Takatoshi Kondo
f1726cef0d Updated travis-ci environment. 2018-08-12 18:31:44 +09:00
Takatoshi Kondo
8a788f3a48 Added C++17 std::byte support.
`std::byte` is mapped to
https://github.com/msgpack/msgpack/blob/master/spec.md#int-format-family.

`std::vector<std::byte>` and `std::byte[]` are mapped to https://github.com/msgpack/msgpack/blob/master/spec.md#bin-format-family.
2018-08-12 16:23:39 +09:00
Takatoshi Kondo
7710868556 Merge pull request #718 from seratch/fix-typo
Fix misspelled words in comments
2018-08-11 17:23:35 +09:00
Kazuhiro Sera
0b53833856 Fix misspelled words in comments, detected by github.com/client9/misspell 2018-08-11 11:28:40 +09:00
Takatoshi Kondo
43c643bab6 Merge pull request #717 from redboltz/fix_lack_of_so_version
Added so version if shared object only build.
2018-08-11 09:41:31 +09:00
Takatoshi Kondo
ac64fcace8 Added so version if shared object only build.
Fixed MSGPACK_INSTALLTARGETS list manipulation.
2018-08-10 19:39:43 +09:00
Takatoshi Kondo
84ba0c7b4b Merge pull request #704 from owent-contrib/master
Fix MSGPACK_DEPRECATED for MSVC 1914 with /Zc:__cplusplus
2018-08-09 17:48:26 +09:00
Takatoshi Kondo
f79606d9ff Merge pull request #713 from redboltz/fix_703
Fixed #703.
2018-08-08 21:50:37 +09:00
Takatoshi Kondo
3aaadb9b12 Fixed #703.
Added no build static-library option.
2018-08-08 20:14:48 +09:00
Takatoshi Kondo
8a3a11f123 Merge pull request #710 from redboltz/fix_709
Fixed #709.
2018-07-29 09:22:26 +09:00
Takatoshi Kondo
32f1f0edf2 Fixed #709.
Renamed parameter name on macros. It minimizes conflict with
MSGPACK_DEFINE* user defined arguments.
2018-07-29 07:45:57 +09:00
Takatoshi Kondo
5bd75905cb Merge pull request #707 from redboltz/ts_c
Added timestamp minimal support for C.
2018-07-22 22:06:58 +09:00
Takatoshi Kondo
eebdc007a9 Added timestamp minimal support for C. 2018-07-22 20:38:36 +09:00
Takatoshi Kondo
3aae588a6a Merge pull request #706 from redboltz/fix_638_3
Implemented #638.
2018-07-22 18:23:35 +09:00
Takatoshi Kondo
cb2dcb19b9 Implemented #638.
Added Time Stamp support.
2018-07-22 16:25:23 +09:00
Takatoshi Kondo
c58a565366 Merge pull request #705 from redboltz/fix_697
Fixed #697.
2018-07-22 10:27:39 +09:00
Takatoshi Kondo
93b944eec4 Fixed #697.
Removed out of range array dereference.
2018-07-21 20:42:40 +09:00
owent
7340f1e9c8 Fix MSGPACK_DEPRECATED for MSVC 1914 with /Zc:__cplusplus, @see https://docs.microsoft.com/cpp/build/reference/zc-cplusplus 2018-07-17 21:25:20 +08:00
Takatoshi Kondo
0a65c443a2 Merge pull request #694 from oleksak/patch-1
Update object.hpp
2018-05-28 07:28:36 +09:00
Oleksandr Kravchenko
bae6a8db57 Update object.hpp
a little bug fix
2018-05-26 19:59:01 +03:00
Takatoshi Kondo
ddb320197a Merge pull request #689 from derwolfe/san-2
Sanitizer build for fuzzers
2018-05-21 19:25:30 +09:00
Chris Wolfe
dc51f6493b add/modify cmake and travis to get the regression tests built with sanitizers 2018-05-19 10:59:59 -05:00
Chris Wolfe
c027909acc add a test file for regression tests, cmakelist.txt to get it build correctly 2018-05-19 10:58:45 -05:00
Chris Wolfe
2bd56533fa add regression test cases 2018-05-19 10:57:50 -05:00
Takatoshi Kondo
c07452a7a2 Merge pull request #687 from jamessan/doxygen-paths
Strip the build path from generated documentation
2018-05-13 20:55:58 +09:00
James McCoy
8701aeec30 Strip the build path from generated documentation
Since FULL_PATH_NAMES = YES, Doxygen includes the full build path to the
file in the documentation.  This is most prevalent in the <title>
attribute for a file.

Setting STRIP_FROM_PATH = ${CMAKE_CURRENT_SOURCE_DIR}/include means that
only the relevant portion of the path (that which the user would need to
use) is included.

--- a/msgpack_8h.html	2018-05-12 14:03:34.098715879 -0400
+++ b/msgpack_8h.html	2018-05-12 14:04:17.386349607 -0400
@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.13"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MessagePack for C: /home/jamessan/src/debian.org/pkg-vim/msgpack-c/include/msgpack.h File Reference</title>
+<title>MessagePack for C: msgpack.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
2018-05-12 14:04:48 -04:00
Takatoshi Kondo
2c4f2b890e Merge pull request #686 from redboltz/fix_685
Fixed #685.
2018-05-12 16:15:22 +09:00
Takatoshi Kondo
f1acd78e54 Fixed #685.
Added fuzz directory to release tar ball.
2018-05-12 14:48:31 +09:00
Takatoshi Kondo
49d22b7d28 Merge pull request #683 from redboltz/fix_658
Fixed #658.
2018-05-10 22:50:54 +09:00
Takatoshi Kondo
96133c8dd9 Fixed #658.
Added include file checking.
2018-05-10 19:02:24 +09:00
Takatoshi Kondo
bd18a36dae Merge pull request #681 from redboltz/update_doc_to_v3.0.0
Update the document for the version 3.0.0.
2018-05-09 21:40:30 +09:00
Takatoshi Kondo
3fe630769e Update the document for the version 3.0.0. 2018-05-09 16:16:50 +09:00
Takatoshi Kondo
2f80758889 Merge pull request #677 from komainu8/add_dll_export
Add dll export for msvc
2018-04-30 18:15:59 +09:00
Takatoshi Kondo
9f3efe9e54 Merge pull request #678 from derwolfe/lower-test-limit-oom
Lower limits for the fuzzer inputs
2018-04-30 09:25:24 +09:00
Chris Wolfe
6e44edf290 lower the input limits, I might need to push a config change to oss-fuzz as well to lower the max input size 2018-04-29 10:49:56 -05:00
Yasuhiro Horimoto
d28cbf32b9 Add dll export for msvc 2018-04-27 18:24:17 +09:00
Takatoshi Kondo
48d226e97c Merge pull request #676 from redboltz/remove_object_pack_recursion
Removed recursion from msgpack::object packing and stringize.
2018-04-27 06:33:51 +09:00
Takatoshi Kondo
64698e8e8c Removed other recursions from msgpack::object.
Fixed start_map_item and start_array_item calling point.
Supported visitor aborting.
2018-04-27 00:54:55 +09:00
Takatoshi Kondo
e0d098641c Merge pull request #674 from derwolfe/fix-fuzzer
Fix the fuzzer by setting limits for depth and ext.
2018-04-26 21:49:04 +09:00
Takatoshi Kondo
06f4b05487 Removed #if 0 codes. 2018-04-26 20:18:20 +09:00
Takatoshi Kondo
122fce5aee Merge pull request #675 from derwolfe/add-fuzz-corpus
move the seed corpus in repo
2018-04-26 20:08:58 +09:00
Takatoshi Kondo
e3f5281903 Removed recursion from msgpack::object packing and stringize.
Changed json expected strings.

Before this commit, json output has redundant white space.
The commit remove it. Semantically no difference.
2018-04-26 19:36:48 +09:00
Chris Wolfe
88e94e3776 move the seed corpus in repo 2018-04-25 15:47:53 -05:00
Chris Wolfe
95275ff16e Fix the fuzzer by setting limits for depth and ext.
This is a short lived bug in the fuzzer implementation in which the
limits were not set correctly.

Credit to OSS-Fuzz
2018-04-25 08:00:47 -05:00
Takatoshi Kondo
4cb938ed18 Merge pull request #673 from redboltz/fix_671
Fixed #671.
2018-04-25 12:52:12 +09:00
Takatoshi Kondo
5f3e62461e Merge pull request #672 from derwolfe/add-fuzzer-and-test
Add the fuzzer from oss-fuzz and a test that exercises it
2018-04-25 11:08:42 +09:00
Takatoshi Kondo
ec239933db Fixed #671.
Added STR type check to define_map.
2018-04-25 10:43:26 +09:00
Chris Wolfe
de59b393c7 conform to project norms and naming conventions 2018-04-24 20:04:54 -05:00
Chris Wolfe
b02371efe5 no reason to have this declaration 2018-04-24 18:09:15 -05:00
Chris Wolfe
f34289fdfd remove newline that I accidentally added 2018-04-24 17:17:49 -05:00
Chris Wolfe
584478a4f1 fuzzers are cpp11 only at the moment 2018-04-24 15:22:20 -05:00
Chris Wolfe
700ec688f7 add the fuzzer from oss-fuzz and a test that exercises it 2018-04-24 15:05:09 -05:00
Takatoshi Kondo
a133c1d393 Merge pull request #670 from redboltz/fix_variadic_template
Added missing variadic template parameters.
2018-04-12 08:03:02 +09:00
Takatoshi Kondo
6ba9a58648 Added missing variadic template parameters. 2018-04-12 06:36:32 +09:00
Takatoshi Kondo
bb92d326c8 Merge pull request #668 from redboltz/fix_missing_install_files
Fixed #667.
2018-04-11 11:26:12 +09:00
Takatoshi Kondo
1e13dadf1f Added install file comparison script. 2018-04-11 09:49:47 +09:00
Takatoshi Kondo
7b271c2af2 Fixed #667. 2018-04-11 08:52:16 +09:00
Takatoshi Kondo
c3f4e52bdb Merge pull request #666 from redboltz/fix_663_and_update_to_v3
Fix 663 and update to v3
2018-04-09 06:20:42 +09:00
Takatoshi Kondo
458b4c0363 Removed redundant version namespace qualification. 2018-04-08 23:24:17 +09:00
Takatoshi Kondo
f8dc0f0d04 Fixed #663. 2018-04-08 22:29:36 +09:00
Takatoshi Kondo
347658cdc1 Updated the version to 3.0.0.
See https://github.com/msgpack/msgpack-c/pull/639#issuecomment-353786498
So I updated the version to 3.0.0.
In the version 2.x, it keeps the original behavior.
2018-04-08 22:27:45 +09:00
Takatoshi Kondo
427a6e7313 Revert "Fixed #637."
This reverts commit 5ece2ef2c7.
2018-04-06 07:38:58 +09:00
Takatoshi Kondo
7f76a3caf0 Merge pull request #661 from Leo3738/master
Small grammatical changes made to README.md
2018-04-04 22:55:39 +09:00
Takatoshi Kondo
40539727e6 Merge branch 'kraj-master' 2018-04-04 22:52:56 +09:00
Takatoshi Kondo
30e56d0a45 Merge branch 'master' of https://github.com/kraj/msgpack-c into kraj-master 2018-04-04 21:11:56 +09:00
Takatoshi Kondo
8eef2a245b Merge branch 'cableramki-master' 2018-04-04 18:23:00 +09:00
Takatoshi Kondo
2bcfe2fdb0 Merge branch 'master' of https://github.com/cableramki/msgpack-c into cableramki-master 2018-04-04 15:55:35 +09:00
Takatoshi Kondo
2b49e62b3c Merge branch 'utkarsh009-master' 2018-04-04 15:54:09 +09:00
Takatoshi Kondo
bf70a36a1d Merge branch 'master' of https://github.com/utkarsh009/msgpack-c into utkarsh009-master 2018-04-04 14:04:00 +09:00
Takatoshi Kondo
eb92058cf4 Merge branch 'Elv13-master' 2018-04-04 14:00:48 +09:00
Takatoshi Kondo
423eaf25fb Removed -O3 -g -Werror options from CmakeLists.txt.
Added -g -Werror options to .travis.yml.
2018-04-04 13:07:21 +09:00
Takatoshi Kondo
280abe852c Merge pull request #662 from redboltz/update_boost_on_travis
Update boost on travis
2018-04-04 12:18:00 +09:00
Takatoshi Kondo
c91307aaa1 Merge branch 'master' of https://github.com/Elv13/msgpack-c into Elv13-master 2018-04-04 12:13:56 +09:00
Takatoshi Kondo
88ffd08087 Supported boost 1.66.0 or later on the examples. 2018-04-04 07:44:49 +09:00
Takatoshi Kondo
bd337129c6 Updated the boost version to 1.66.0 on travis-ci. 2018-04-04 07:20:08 +09:00
Ramki A
1f5cb86366 Update unpack_decl.hpp 2018-04-02 17:58:04 -07:00
Ramki A
0d39c577d8 Update unpack.hpp 2018-04-02 17:57:52 -07:00
Ramki A
7e66dc28f0 Update unpack_decl.hpp 2018-04-02 17:57:25 -07:00
Ramki A
bec47a59f0 Update unpack.hpp 2018-04-02 17:56:57 -07:00
Leo3738
064f854ddf Small grammatical changes made to README.md 2018-04-02 15:08:52 -07:00
Khem Raj
a05d92ae85 Fix -Werror=class-memaccess
Casting to void* make gcc happy since its upset about
object types and rightly so

Fixes

'void* memcpy(void*, const void*, size_t)' copying an object of non-trivial type 'struct msgpack::v2::object' from an array of 'const msgpack_object' {aka 'const struct msgpack_object'} [-Werror=class-memaccess]

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-04-01 19:55:38 -07:00
Ananthakrishnan
1fdfde5d5f Fixed #elif syntax. 2018-03-30 15:30:49 -07:00
Ananthakrishnan
b1620f1f6a Fixed Travis Mac OS build. 2018-03-30 15:14:59 -07:00
Ramki Ananthakrishnan
f789635ddc Fixed Coverity error due to missing header. 2018-03-29 15:09:19 -07:00
Utkarsh Anand
f65c26e280 Include <sys/uio.h> in NetBSD too.
This was needed for neovim
2018-03-28 20:18:05 +05:30
Emmanuel Lepage Vallée
579212996f build: Do not set -g, -O3 and -Werror CFLAGS
Hello, here are a few changes to the default CFLAGS

## Why Werror

With each new compiler version, your code "break" and fail to compile. It is true that it's a sometime a "bug" in the code and need visibility to get fixed. However, Werror should *always* be a local CFLAGS and not a project one, see Google for endless people arguing back and forth and removing Werror is now the prevalent winner of that argument. In the latest GCC, it fails to compile because the fwrite result in unchecked. Even if you fix this in new releases, you cannot fix the past and all existing releases used in stable products suddenly fail to compile, wasting everybody time.

## Why -g

This should be decided by the one who compiles the code. Some people want small and pre-stripped binaries and appending this to the CFLAGS breaks the standard way of achieving this. Prepend it if you wish, but please do not append it.

## Why -O3

On many systems with limited cache or higher memory latency, `O3` is slower than `O2`, so IMHO it should not be hardcoded. In my case I used `Os` and it's faster. The `O` value should be left to the system, not hardcoded.
2017-12-12 01:26:22 -05:00
Takatoshi Kondo
208595b262 Merge pull request #639 from redboltz/fix_637
Fixed #637.
2017-11-28 08:05:43 +09:00
Takatoshi Kondo
83a4b89818 Merge pull request #645 from redboltz/fix_644
Fixed #644.
2017-11-14 19:04:03 +09:00
Takatoshi Kondo
d46f220737 Removed unused code. 2017-11-12 12:31:17 +09:00
Takatoshi Kondo
b4db293181 Fixed #644.
Added `as()` checking to MSGPACK_DEFINE family.
2017-11-11 15:44:31 +09:00
Takatoshi Kondo
d1eac600e9 Merge pull request #643 from redboltz/fix_642
Fixed #642.
2017-11-10 12:15:05 +09:00
Takatoshi Kondo
7e758ca053 Fixed #642.
Fixed documentation.
2017-11-09 10:40:43 +09:00
Takatoshi Kondo
db6d4f2003 Merge pull request #641 from redboltz/fix_640
Fixed #640.
2017-11-04 15:43:02 +09:00
Takatoshi Kondo
1ba46a30ce Fixed #640.
Replaced comma with semi colon.
Unified cording style.
2017-11-04 12:55:22 +09:00
Takatoshi Kondo
5ece2ef2c7 Fixed #637.
<<< Breaking change >>>
In the functions unpack() and parse(),
Old behavior: If any parse error is happend, offset is NOT updated.
New behavior: If any parse error is happend, offset is updated to the
position the error happened.

It helps MessagePack format error analysis.

If you want to old behavior, copy the original value of offset and then call unpack()
and/or parse().
2017-10-22 18:22:41 +09:00
Takatoshi Kondo
9513734040 Merge pull request #635 from sztomi/sztomi/objhandle_ops
Added * and -> operators to object_handle
2017-10-14 10:54:28 +09:00
sztomi
d452625ed1 Added * and -> operators to object_handle 2017-10-09 20:23:25 +02:00
Takatoshi Kondo
b02c6beb4d Merge pull request #634 from redboltz/fix_trusty
Fix trusty
2017-10-09 18:39:39 +09:00
Takatoshi Kondo
06c2896def Added symbolic link. 2017-10-09 15:20:29 +09:00
Takatoshi Kondo
724db8ed89 Added zlib1g-dev for 32bit build. 2017-10-09 14:29:47 +09:00
Takatoshi Kondo
fa48078a52 Merge pull request #631 from redboltz/fix_travis
Set `precise` explicitly to fix 32bit zlib missing problem.
2017-10-01 23:38:21 +09:00
Takatoshi Kondo
d8ad85fa8c Set precise explicitly to fix 32bit zlib missing problem. 2017-10-01 21:25:06 +09:00
Takatoshi Kondo
cc3b895449 Merge pull request #630 from samdoshi/patch-1
Don't sudo with brew in QUICKSTART-C.md
2017-10-01 17:45:36 +09:00
Sam Doshi
384242e5eb Don't sudo with brew in QUICKSTART-C.md 2017-10-01 08:29:46 +01:00
219 changed files with 7687 additions and 768 deletions

View File

@@ -1,5 +1,6 @@
language: cpp
sudo: false
dist: trusty
install:
- export BASE=`pwd`
@@ -9,8 +10,9 @@ install:
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then ./cmake-3.7.1-Linux-x86_64.sh --prefix=${BASE}/usr --skip-license; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then export PATH="${BASE}/usr/bin:$PATH"; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then export LD_LIBRARY_PATH="${BASE}/usr/lib:$LD_LIBRARY_PATH"; fi
- if [ "$CXX" = "g++" ]; then export CXX="g++-6" CC="gcc-6"; fi
- if [ "$CXX" = "clang++" ] && [ "$TRAVIS_OS_NAME" == "linux" ]; then export CXX="clang++-3.9" CC="clang-3.9"; fi
- if [ "$CXX" == "g++" ]; then export CXX="g++-7" CC="gcc-7"; fi
- if [ "$CXX" == "clang++" ] && [ "$TRAVIS_OS_NAME" == "linux" ]; then export CXX="clang++-5.0" CC="clang-5.0"; fi
- if [ "$CXX" == "g++" ] && [ "$TRAVIS_OS_NAME" == "linux" ]; then cd /usr/include/c++/$(g++ -v 2>&1 | grep version | awk '{print $3}')/bits; ln -s ../ext/atomicity.h .; cd ${BASE}/usr; fi
#gtest
- wget https://github.com/google/googletest/archive/release-1.7.0.zip -O googletest-release-1.7.0.zip
- unzip -q googletest-release-1.7.0.zip
@@ -25,21 +27,23 @@ install:
- mv *.a ${BASE}/usr/lib
- cd ..
# valgrind
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then wget http://valgrind.org/downloads/valgrind-3.12.0.tar.bz2 && tar xjf valgrind-3.12.0.tar.bz2 && cd valgrind-3.12.0 && ./configure --prefix=${BASE}/usr > /dev/null && make -j3 > /dev/null && make install > /dev/null && cd ..; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$MSGPACK_FUZZ_REGRESSION" != "ON" ]; then wget http://valgrind.org/downloads/valgrind-3.12.0.tar.bz2 && tar xjf valgrind-3.12.0.tar.bz2 && cd valgrind-3.12.0 && ./configure --prefix=${BASE}/usr > /dev/null && make -j3 > /dev/null && make install > /dev/null && cd ..; fi
# boost
- if [ "$BOOST" == "ON" ]; then wget http://sourceforge.net/projects/boost/files/boost/1.63.0/boost_1_63_0.zip && unzip -q boost_1_63_0.zip && cd boost_1_63_0 && ./bootstrap.sh && ./b2 -j3 --prefix=${BASE}/usr --with-chrono --with-context --with-system --with-timer address-model=${ARCH} install > /dev/null && cd ..; fi
- if [ "$BOOST" == "ON" ] && [ "MSGPACK_FUZZ_REGRESSION" != "ON" ]; then wget http://sourceforge.net/projects/boost/files/boost/1.67.0/boost_1_67_0.zip && unzip -q boost_1_67_0.zip && cd boost_1_67_0 && ./bootstrap.sh && ./b2 -j3 --prefix=${BASE}/usr --with-chrono --with-context --with-system --with-timer address-model=${ARCH} install > /dev/null && cd ..; fi
- if [ "$MSGPACK_FUZZ_REGRESSION" == "ON" ]; then wget http://sourceforge.net/projects/boost/files/boost/1.67.0/boost_1_67_0.zip && unzip -q boost_1_67_0.zip && cd boost_1_67_0 && ./bootstrap.sh --with-toolset=clang && ./b2 clean && ./b2 -j$(nproc) --prefix=${BASE}/usr --with-system --with-filesystem address-model=${ARCH} install > /dev/null && cd ..; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo ln -s /usr/include/x86_64-linux-gnu/zconf.h /usr/include; fi
matrix:
include:
- os: osx
compiler: clang
env: ACTION="ci/build_cmake.sh" CXX11="ON" ARCH="64" BOOST="ON" SHARED="ON" CHAR_SIGN="unsigned" API_VERSION="1"
env: ACTION="ci/build_cmake.sh" CXX17="ON" ARCH="64" BOOST="ON" SHARED="ON" CHAR_SIGN="unsigned" API_VERSION="1"
- os: osx
compiler: clang
env: ACTION="ci/build_cmake.sh" CXX11="ON" ARCH="64" BOOST="ON" SHARED="ON" CHAR_SIGN="signed" API_VERSION="2"
env: ACTION="ci/build_cmake.sh" CXX17="ON" ARCH="64" BOOST="ON" SHARED="ON" CHAR_SIGN="signed" API_VERSION="3"
- os: osx
compiler: clang
env: ACTION="ci/build_cmake.sh" CXX11="ON" ARCH="64" SHARED="ON" CHAR_SIGN="signed" API_VERSION="2"
env: ACTION="ci/build_cmake.sh" CXX17="ON" ARCH="64" SHARED="ON" CHAR_SIGN="signed" API_VERSION="2"
- os: osx
compiler: clang
env: ACTION="ci/build_cmake.sh" ARCH="64" SHARED="ON" CHAR_SIGN="unsigned" API_VERSION="2"
@@ -50,15 +54,14 @@ matrix:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.9
- llvm-toolchain-precise
- llvm-toolchain-trusty-5.0
packages:
- g++-multilib
- gcc-multilib
- gcc-5-multilib
- g++-5-multilib
- gcc-7-multilib
- g++-7-multilib
- bzip2
- clang-3.9
- clang-5.0
- libc6-dbg
- os: linux
compiler: clang
@@ -67,61 +70,60 @@ matrix:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.9
- llvm-toolchain-precise
- llvm-toolchain-trusty-5.0
packages:
- g++-multilib
- gcc-multilib
- gcc-5-multilib
- g++-5-multilib
- gcc-7-multilib
- g++-7-multilib
- lib32stdc++6-6-dbg
- lib32gcc1
- libc6-i386
- lib32z1-dev
- zlib1g-dev
- bzip2
- clang-3.9
- clang-5.0
- libc6-dbg
- os: linux
compiler: clang
env: ACTION="ci/build_cmake.sh" CXX11="ON" ARCH="64" BOOST="ON" SHARED="ON" CHAR_SIGN="signed" API_VERSION="2" X3_PARSE="ON"
env: ACTION="ci/build_cmake.sh" CXX17="ON" ARCH="64" BOOST="ON" SHARED="ON" CHAR_SIGN="signed" API_VERSION="3" X3_PARSE="ON"
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.9
- llvm-toolchain-precise
- llvm-toolchain-trusty-5.0
packages:
- g++-multilib
- gcc-multilib
- gcc-5-multilib
- g++-5-multilib
- gcc-7-multilib
- g++-7-multilib
- bzip2
- clang-3.9
- clang-5.0
- libc6-dbg
- os: linux
compiler: clang
env: ACTION="ci/build_cmake.sh" CXX11="ON" ARCH="32" SHARED="OFF" CHAR_SIGN="unsigned" API_VERSION="2"
env: ACTION="ci/build_cmake.sh" CXX17="ON" ARCH="32" SHARED="OFF" CHAR_SIGN="unsigned" API_VERSION="2"
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.9
- llvm-toolchain-precise
- llvm-toolchain-trusty-5.0
packages:
- g++-multilib
- gcc-multilib
- gcc-5-multilib
- g++-5-multilib
- gcc-7-multilib
- g++-7-multilib
- lib32stdc++6-6-dbg
- lib32gcc1
- libc6-i386
- lib32z1-dev
- zlib1g-dev
- bzip2
- clang-3.9
- clang-5.0
- libc6-dbg
- os: linux
compiler: gcc
env: ACTION="ci/build_cmake.sh" CXX11="ON" ARCH="64" SHARED="ON" CHAR_SIGN="signed" API_VERSION="2"
env: ACTION="ci/build_cmake.sh" CXX17="ON" ARCH="64" SHARED="ON" CHAR_SIGN="signed" API_VERSION="2"
addons:
apt:
sources:
@@ -129,13 +131,13 @@ matrix:
packages:
- g++-multilib
- gcc-multilib
- gcc-6-multilib
- g++-6-multilib
- gcc-7-multilib
- g++-7-multilib
- bzip2
- libc6-dbg
- os: linux
compiler: gcc
env: ACTION="ci/build_cmake.sh" CXX11="ON" ARCH="32" BOOST="ON" SHARED="ON" CHAR_SIGN="unsigned" API_VERSION="2" X3_PARSE="ON"
env: ACTION="ci/build_cmake.sh" CXX17="ON" ARCH="32" BOOST="ON" SHARED="ON" CHAR_SIGN="unsigned" API_VERSION="3" X3_PARSE="ON"
addons:
apt:
sources:
@@ -143,12 +145,13 @@ matrix:
packages:
- g++-multilib
- gcc-multilib
- gcc-6-multilib
- g++-6-multilib
- gcc-7-multilib
- g++-7-multilib
- lib32stdc++6-6-dbg
- lib32gcc1
- libc6-i386
- lib32z1-dev
- zlib1g-dev
- bzip2
- libc6-dbg
- os: linux
@@ -161,8 +164,8 @@ matrix:
packages:
- g++-multilib
- gcc-multilib
- gcc-6-multilib
- g++-6-multilib
- gcc-7-multilib
- g++-7-multilib
- bzip2
- libc6-dbg
- os: linux
@@ -175,12 +178,13 @@ matrix:
packages:
- g++-multilib
- gcc-multilib
- gcc-6-multilib
- g++-6-multilib
- gcc-7-multilib
- g++-7-multilib
- lib32stdc++6-6-dbg
- lib32gcc1
- libc6-i386
- lib32z1-dev
- zlib1g-dev
- bzip2
- libc6-dbg
- os: linux
@@ -193,14 +197,43 @@ matrix:
packages:
- g++-multilib
- gcc-multilib
- gcc-6-multilib
- g++-6-multilib
- gcc-7-multilib
- g++-7-multilib
- lib32stdc++6-6-dbg
- lib32gcc1
- libc6-i386
- lib32z1-dev
- zlib1g-dev
- bzip2
- libc6-dbg
- os: linux
compiler: clang
env: ACTION="ci/build_regression.sh" ARCH="64" SAN="UBSAN" MSGPACK_FUZZ_REGRESSION="ON"
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-5.0
packages:
- bzip2
- clang-5.0
script:
- CMAKE_CXX_COMPILER="${CXX}" CMAKE_C_COMPILER="${CC}" CMAKE_LIBRARY_PATH="${BASE}" GTEST_ROOT="${BASE}/gtest" BOOST_ROOT="${BASE}/boost" CTEST_OUTPUT_ON_FAILURE=1 MSGPACK_SAN="${SAN}" ci/build_regression.sh
- os: linux
compiler: clang
env: ACTION="ci/build_regression.sh" ARCH="64" SAN="ASAN" MSGPACK_FUZZ_REGRESSION="ON"
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-5.0
packages:
- bzip2
- clang-5.0
script:
- CMAKE_CXX_COMPILER="${CXX}" CMAKE_C_COMPILER="${CC}" CMAKE_LIBRARY_PATH="${BASE}" GTEST_ROOT="${BASE}/gtest" BOOST_ROOT="${BASE}/boost" CTEST_OUTPUT_ON_FAILURE=1 MSGPACK_SAN="${SAN}" ci/build_regression.sh
script:
- CMAKE_CXX_COMPILER="${CXX}" CMAKE_C_COMPILER="${CC}" CMAKE_LIBRARY_PATH="${BASE}/usr/lib:${BASE}/build" GTEST_ROOT="${BASE}/usr" BOOST_ROOT="${BASE}/usr" ${ACTION}
- CMAKE_CXX_COMPILER="${CXX}" CMAKE_C_COMPILER="${CC}" CMAKE_LIBRARY_PATH="${BASE}/usr/lib:${BASE}/build" GTEST_ROOT="${BASE}/usr" BOOST_ROOT="${BASE}/usr" CFLAGS="-Werror -g" CXXFLAGS="-Werror -g" ${ACTION}
- cat Files.cmake| grep ".*\.[h|hpp]" | perl -pe 's/ //g' | sort > tmp1 && find include -name "*.h" -o -name "*.hpp" | sort > tmp2 && diff tmp1 tmp2

View File

@@ -1,3 +1,50 @@
# 2018-09-09 version 3.1.1
* Add force endian set functionality (#736)
* Fix vrefbuffer memory management problem (#733)
* Fix msvc specific problem (#731, #732)
* Update boost from 1.61.0 to 1.68.0 (#730)
* Fix msgpack_timestamp type mismatch bug (#726)
# 2018-08-10 version 3.1.0
* Improve documents (#687, #718)
* Add fuzzer support (#689)
* Fix msgpack::object union member access bug (#694)
* Improve cross platform configuration (#704)
* Fix out of range dereference bug of EXT (#705)
* Add timestamp support. std::chrono::system_clock::time_point is mapped to TIMESTAMP (#706)
* Add minimal timestamp support for C. The type `msgpack_timestamp` and the function `msgpack_object_to_timestamp()` are introduced (#707)
* Improve MSGPACK_DEFINE family name confliction probability (#710)
* Add no static-library build option (BUILD_SHARED_LIBS=ON) (#713, #717, #722)
* Add header only cmake target (#721)
* Add `std::byte` adaptor (#719)
* Remove some warnings (#720)
# 2018-05-12 version 3.0.1
* Add fuzz directory to release tar ball (#686)
* Add include file checking for X-Code (#683)
# 2018-05-09 version 3.0.0
## << breaking changes >>
* Change offset parameter updating rule. If parse error happens, offset is updated to the error position. (#639, #666)
## << other updates >>
* Improve cross platform configuration (#655, #677)
* Improve build system (#647)
* Improve user class adaptor (#645, #673)
* Improve msgpack::object visitation logic (#676)
* Remove some warnings (#641, 659)
* Add `->` and `*` operators to object_handle (#635)
* Improve CI environment (#631, #634, #643, #657, #662, #668)
* Improve documents (#630, #661)
* Refactoring (#670)
* Add OSS-Fuzz support (#672, #674, #675, #678)
# 2017-08-04 version 2.1.5
* Improve cross platform configuration (#624)
* Add boost asio examples (including zlib) (#610)

View File

@@ -124,7 +124,7 @@ ENDIF ()
IF (MSGPACK_DEFAULT_API_VERSION)
SET (CMAKE_CXX_FLAGS "-DMSGPACK_DEFAULT_API_VERSION=${MSGPACK_DEFAULT_API_VERSION} ${CMAKE_CXX_FLAGS}")
ELSE ()
SET (CMAKE_CXX_FLAGS "-DMSGPACK_DEFAULT_API_VERSION=2 ${CMAKE_CXX_FLAGS}")
SET (CMAKE_CXX_FLAGS "-DMSGPACK_DEFAULT_API_VERSION=3 ${CMAKE_CXX_FLAGS}")
ENDIF ()
FILE (GLOB_RECURSE PREDEF_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/external/boost/predef/include/boost ${CMAKE_CURRENT_SOURCE_DIR}/external/boost/predef/include/boost/*.h)
@@ -150,12 +150,40 @@ ENDFOREACH ()
FIND_PACKAGE (GTest)
FIND_PACKAGE (ZLIB)
FIND_PACKAGE (Threads)
IF (GTEST_FOUND AND ZLIB_FOUND AND THREADS_FOUND)
IF (GTEST_FOUND AND ZLIB_FOUND AND THREADS_FOUND AND NOT "${MSGPACK_FUZZ_REGRESSION}" STREQUAL "ON")
OPTION (MSGPACK_BUILD_TESTS "Build msgpack tests." ON)
ENDIF ()
IF (DEFINED BUILD_SHARED_LIBS)
IF (BUILD_SHARED_LIBS)
IF (DEFINED MSGPACK_ENABLE_SHARED AND NOT MSGPACK_ENABLE_SHARED)
MESSAGE(WARNING "MSGPACK_ENABLE_SHARED is overridden to ON by BUILD_SHARED_LIBS")
ENDIF ()
SET (MSGPACK_ENABLE_SHARED ON)
IF (DEFINED MSGPACK_ENABLE_STATIC AND MSGPACK_ENABLE_STATIC)
MESSAGE(WARNING "MSGPACK_ENABLE_STATIC is overridden to OFF by BUILD_SHARED_LIBS")
ENDIF ()
SET (MSGPACK_ENABLE_STATIC OFF)
ELSE ()
IF (DEFINED MSGPACK_ENABLE_SHARED AND MSGPACK_ENABLE_SHARED)
MESSAGE(WARNING "MSGPACK_ENABLE_SHARED is overridden to OFF by BUILD_SHARED_LIBS")
ENDIF ()
SET (MSGPACK_ENABLE_SHARED OFF)
IF (DEFINED MSGPACK_ENABLE_STATIC AND NOT MSGPACK_ENABLE_STATIC)
MESSAGE(WARNING "MSGPACK_ENABLE_STATIC is overridden to ON by BUILD_SHARED_LIBS")
ENDIF ()
SET (MSGPACK_ENABLE_STATIC ON)
ENDIF ()
ELSE ()
IF (NOT DEFINED MSGPACK_ENABLE_SHARED)
SET (MSGPACK_ENABLE_SHARED ON)
ENDIF ()
IF (NOT DEFINED MSGPACK_ENABLE_STATIC)
SET (MSGPACK_ENABLE_STATIC ON)
ENDIF ()
ENDIF ()
OPTION (MSGPACK_ENABLE_CXX "Enable C++ interface." ON)
OPTION (MSGPACK_ENABLE_SHARED "Build shared libaries in addition to static libraries." ON)
INCLUDE (CheckCXXSourceCompiles)
CHECK_CXX_SOURCE_COMPILES ("
@@ -187,6 +215,8 @@ IF (MSGPACK_ENABLE_SHARED)
${msgpackc_HEADERS}
)
SET_TARGET_PROPERTIES (msgpackc PROPERTIES SOVERSION 2 VERSION 2.0.0)
TARGET_INCLUDE_DIRECTORIES (msgpackc
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
@@ -197,6 +227,18 @@ IF (MSGPACK_ENABLE_SHARED)
)
ENDIF ()
IF (MSGPACK_ENABLE_CXX AND ((CMAKE_VERSION VERSION_GREATER 3.0) OR (CMAKE_VERSION VERSION_EQUAL 3.0)))
ADD_LIBRARY (msgpackc-cxx INTERFACE)
TARGET_INCLUDE_DIRECTORIES (msgpackc-cxx
INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>
$<INSTALL_INTERFACE:include>
)
ENDIF ()
IF (MSGPACK_ENABLE_STATIC)
ADD_LIBRARY (msgpackc-static STATIC
${msgpackc_SOURCES}
${msgpackc_HEADERS}
@@ -217,14 +259,27 @@ IF (NOT MSGPACK_ENABLE_SHARED)
ENDIF ()
SET_TARGET_PROPERTIES (msgpackc-static PROPERTIES OUTPUT_NAME "msgpackc")
IF (MSGPACK_ENABLE_SHARED)
IF (MSVC)
SET_TARGET_PROPERTIES (msgpackc PROPERTIES IMPORT_SUFFIX "_import.lib")
ELSEIF (MINGW)
SET_TARGET_PROPERTIES (msgpackc PROPERTIES IMPORT_SUFFIX ".dll.a")
ENDIF ()
SET_TARGET_PROPERTIES (msgpackc PROPERTIES SOVERSION 2 VERSION 2.0.0)
ENDIF ()
ENDIF ()
# enable regression testing
IF ("${MSGPACK_FUZZ_REGRESSION}" STREQUAL "ON" AND "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
SET (CMAKE_CXX_FLAGS "-DMSGPACK_USE_BOOST ${CMAKE_CXX_FLAGS}")
SET (Boost_USE_MULTITHREADED ON)
SET (Boost_USE_STATIC_RUNTIME OFF)
enable_testing ()
ADD_SUBDIRECTORY (fuzz)
SET (MSGPACK_BUILD_EXAMPLES OFF)
ENDIF ()
IF (MSGPACK_BUILD_TESTS)
ENABLE_TESTING ()
@@ -237,17 +292,21 @@ ENDIF ()
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
IF (MSGPACK_ENABLE_SHARED)
SET_PROPERTY (TARGET msgpackc APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3 -DPIC")
SET_PROPERTY (TARGET msgpackc APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra -DPIC")
ENDIF ()
IF (MSGPACK_ENABLE_STATIC)
SET_PROPERTY (TARGET msgpackc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra" )
ENDIF ()
SET_PROPERTY (TARGET msgpackc-static APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3" )
ENDIF ()
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
IF (MSGPACK_ENABLE_SHARED)
SET_PROPERTY (TARGET msgpackc APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags")
ENDIF ()
IF (MSGPACK_ENABLE_STATIC)
SET_PROPERTY (TARGET msgpackc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags")
ENDIF ()
ENDIF ()
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
@@ -279,9 +338,15 @@ IF (MSGPACK_BUILD_EXAMPLES)
ENDIF ()
IF (MSGPACK_ENABLE_SHARED)
SET (MSGPACK_INSTALLTARGETS msgpackc msgpackc-static)
ELSE()
SET (MSGPACK_INSTALLTARGETS msgpackc-static)
SET (MSGPACK_INSTALLTARGETS msgpackc)
ENDIF ()
IF (MSGPACK_ENABLE_CXX AND ((CMAKE_VERSION VERSION_GREATER 3.0) OR (CMAKE_VERSION VERSION_EQUAL 3.0)))
LIST (APPEND MSGPACK_INSTALLTARGETS msgpackc-cxx)
ENDIF ()
IF (MSGPACK_ENABLE_STATIC)
LIST (APPEND MSGPACK_INSTALLTARGETS msgpackc-static)
ENDIF ()
INSTALL (TARGETS ${MSGPACK_INSTALLTARGETS} EXPORT msgpack-targets
@@ -307,6 +372,7 @@ IF (DOXYGEN_FOUND)
COMMAND ${CMAKE_COMMAND} -E echo "INPUT = ${CMAKE_CURRENT_SOURCE_DIR}/include" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_c
COMMAND ${CMAKE_COMMAND} -E echo "EXTRACT_ALL = YES" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_c
COMMAND ${CMAKE_COMMAND} -E echo "PROJECT_NAME = \"MessagePack for C\"" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_c
COMMAND ${CMAKE_COMMAND} -E echo "STRIP_FROM_PATH = ${CMAKE_CURRENT_SOURCE_DIR}/include" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_c
)
IF (DOXYGEN_DOT_FOUND)
LIST (APPEND Doxyfile_c_CONTENT
@@ -325,6 +391,7 @@ IF (DOXYGEN_FOUND)
COMMAND ${CMAKE_COMMAND} -E echo "OUTPUT_DIRECTORY = doc_cpp" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
COMMAND ${CMAKE_COMMAND} -E echo "INPUT = ${CMAKE_CURRENT_SOURCE_DIR}/include" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
COMMAND ${CMAKE_COMMAND} -E echo "EXTRACT_ALL = YES" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
COMMAND ${CMAKE_COMMAND} -E echo "STRIP_FROM_PATH = ${CMAKE_CURRENT_SOURCE_DIR}/include" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp
)
IF (DOXYGEN_DOT_FOUND)
LIST (APPEND Doxyfile_cpp_CONTENT

View File

@@ -281,7 +281,7 @@ TYPEDEF_HIDES_STRUCT = NO
# causing a significant performance penality.
# If the system has enough physical memory increasing the cache will improve the
# performance by keeping more symbols in memory. Note that the value works on
# a logarithmic scale so increasing the size by one will rougly double the
# a logarithmic scale so increasing the size by one will roughly double the
# memory usage. The cache size is given by this formula:
# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
# corresponding to a cache size of 2^16 = 65536 symbols

View File

@@ -24,6 +24,7 @@ LIST (APPEND msgpackc_HEADERS
include/msgpack/predef/architecture/mips.h
include/msgpack/predef/architecture/parisc.h
include/msgpack/predef/architecture/ppc.h
include/msgpack/predef/architecture/ptx.h
include/msgpack/predef/architecture/pyramid.h
include/msgpack/predef/architecture/rs6k.h
include/msgpack/predef/architecture/sparc.h
@@ -57,6 +58,7 @@ LIST (APPEND msgpackc_HEADERS
include/msgpack/predef/compiler/metrowerks.h
include/msgpack/predef/compiler/microtec.h
include/msgpack/predef/compiler/mpw.h
include/msgpack/predef/compiler/nvcc.h
include/msgpack/predef/compiler/palm.h
include/msgpack/predef/compiler/pgi.h
include/msgpack/predef/compiler/sgi_mipspro.h
@@ -83,12 +85,14 @@ LIST (APPEND msgpackc_HEADERS
include/msgpack/predef/hardware/simd/x86_amd.h
include/msgpack/predef/hardware/simd/x86_amd/versions.h
include/msgpack/predef/language.h
include/msgpack/predef/language/cuda.h
include/msgpack/predef/language/objc.h
include/msgpack/predef/language/stdc.h
include/msgpack/predef/language/stdcpp.h
include/msgpack/predef/library.h
include/msgpack/predef/library/c.h
include/msgpack/predef/library/c/_prefix.h
include/msgpack/predef/library/c/cloudabi.h
include/msgpack/predef/library/c/gnu.h
include/msgpack/predef/library/c/uc.h
include/msgpack/predef/library/c/vms.h
@@ -132,16 +136,25 @@ LIST (APPEND msgpackc_HEADERS
include/msgpack/predef/os/windows.h
include/msgpack/predef/other.h
include/msgpack/predef/other/endian.h
include/msgpack/predef/other/workaround.h
include/msgpack/predef/platform.h
include/msgpack/predef/platform/cloudabi.h
include/msgpack/predef/platform/ios.h
include/msgpack/predef/platform/mingw.h
include/msgpack/predef/platform/mingw32.h
include/msgpack/predef/platform/mingw64.h
include/msgpack/predef/platform/windows_desktop.h
include/msgpack/predef/platform/windows_phone.h
include/msgpack/predef/platform/windows_runtime.h
include/msgpack/predef/platform/windows_server.h
include/msgpack/predef/platform/windows_store.h
include/msgpack/predef/platform/windows_system.h
include/msgpack/predef/platform/windows_uwp.h
include/msgpack/predef/version.h
include/msgpack/predef/version_number.h
include/msgpack/sbuffer.h
include/msgpack/sysdep.h
include/msgpack/timestamp.h
include/msgpack/unpack.h
include/msgpack/unpack_define.h
include/msgpack/unpack_template.h
@@ -173,6 +186,7 @@ IF (MSGPACK_ENABLE_CXX)
include/msgpack/adaptor/cpp11/array.hpp
include/msgpack/adaptor/cpp11/array_char.hpp
include/msgpack/adaptor/cpp11/array_unsigned_char.hpp
include/msgpack/adaptor/cpp11/chrono.hpp
include/msgpack/adaptor/cpp11/forward_list.hpp
include/msgpack/adaptor/cpp11/reference_wrapper.hpp
include/msgpack/adaptor/cpp11/shared_ptr.hpp
@@ -180,8 +194,11 @@ IF (MSGPACK_ENABLE_CXX)
include/msgpack/adaptor/cpp11/unique_ptr.hpp
include/msgpack/adaptor/cpp11/unordered_map.hpp
include/msgpack/adaptor/cpp11/unordered_set.hpp
include/msgpack/adaptor/cpp17/byte.hpp
include/msgpack/adaptor/cpp17/carray_byte.hpp
include/msgpack/adaptor/cpp17/optional.hpp
include/msgpack/adaptor/cpp17/string_view.hpp
include/msgpack/adaptor/cpp17/vector_byte.hpp
include/msgpack/adaptor/define.hpp
include/msgpack/adaptor/define_decl.hpp
include/msgpack/adaptor/deque.hpp
@@ -216,6 +233,8 @@ IF (MSGPACK_ENABLE_CXX)
include/msgpack/adaptor/vector_unsigned_char.hpp
include/msgpack/cpp_config.hpp
include/msgpack/cpp_config_decl.hpp
include/msgpack/create_object_visitor.hpp
include/msgpack/create_object_visitor_decl.hpp
include/msgpack/fbuffer.hpp
include/msgpack/fbuffer_decl.hpp
include/msgpack/gcc_atomic.hpp
@@ -223,12 +242,16 @@ IF (MSGPACK_ENABLE_CXX)
include/msgpack/iterator_decl.hpp
include/msgpack/meta.hpp
include/msgpack/meta_decl.hpp
include/msgpack/null_visitor.hpp
include/msgpack/null_visitor_decl.hpp
include/msgpack/object.hpp
include/msgpack/object_decl.hpp
include/msgpack/object_fwd.hpp
include/msgpack/object_fwd_decl.hpp
include/msgpack/pack.hpp
include/msgpack/pack_decl.hpp
include/msgpack/parse.hpp
include/msgpack/parse_decl.hpp
include/msgpack/parse_return.hpp
include/msgpack/preprocessor.hpp
include/msgpack/preprocessor/arithmetic.hpp
@@ -433,6 +456,7 @@ IF (MSGPACK_ENABLE_CXX)
include/msgpack/preprocessor/seq/detail/binary_transform.hpp
include/msgpack/preprocessor/seq/detail/is_empty.hpp
include/msgpack/preprocessor/seq/detail/split.hpp
include/msgpack/preprocessor/seq/detail/to_list_msvc.hpp
include/msgpack/preprocessor/seq/elem.hpp
include/msgpack/preprocessor/seq/enum.hpp
include/msgpack/preprocessor/seq/filter.hpp
@@ -523,6 +547,7 @@ IF (MSGPACK_ENABLE_CXX)
include/msgpack/v1/adaptor/cpp11/array.hpp
include/msgpack/v1/adaptor/cpp11/array_char.hpp
include/msgpack/v1/adaptor/cpp11/array_unsigned_char.hpp
include/msgpack/v1/adaptor/cpp11/chrono.hpp
include/msgpack/v1/adaptor/cpp11/forward_list.hpp
include/msgpack/v1/adaptor/cpp11/reference_wrapper.hpp
include/msgpack/v1/adaptor/cpp11/shared_ptr.hpp
@@ -530,8 +555,11 @@ IF (MSGPACK_ENABLE_CXX)
include/msgpack/v1/adaptor/cpp11/unique_ptr.hpp
include/msgpack/v1/adaptor/cpp11/unordered_map.hpp
include/msgpack/v1/adaptor/cpp11/unordered_set.hpp
include/msgpack/v1/adaptor/cpp17/byte.hpp
include/msgpack/v1/adaptor/cpp17/carray_byte.hpp
include/msgpack/v1/adaptor/cpp17/optional.hpp
include/msgpack/v1/adaptor/cpp17/string_view.hpp
include/msgpack/v1/adaptor/cpp17/vector_byte.hpp
include/msgpack/v1/adaptor/define.hpp
include/msgpack/v1/adaptor/define_decl.hpp
include/msgpack/v1/adaptor/deque.hpp
@@ -541,6 +569,7 @@ IF (MSGPACK_ENABLE_CXX)
include/msgpack/v1/adaptor/detail/cpp03_define_map_decl.hpp
include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple.hpp
include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple_decl.hpp
include/msgpack/v1/adaptor/detail/cpp11_convert_helper.hpp
include/msgpack/v1/adaptor/detail/cpp11_define_array.hpp
include/msgpack/v1/adaptor/detail/cpp11_define_array_decl.hpp
include/msgpack/v1/adaptor/detail/cpp11_define_map.hpp
@@ -632,31 +661,85 @@ IF (MSGPACK_ENABLE_CXX)
include/msgpack/v2/adaptor/v4raw_decl.hpp
include/msgpack/v2/cpp_config_decl.hpp
include/msgpack/v2/create_object_visitor.hpp
include/msgpack/v2/create_object_visitor_decl.hpp
include/msgpack/v2/detail/cpp03_zone_decl.hpp
include/msgpack/v2/detail/cpp11_zone_decl.hpp
include/msgpack/v2/fbuffer_decl.hpp
include/msgpack/v2/iterator_decl.hpp
include/msgpack/v2/meta_decl.hpp
include/msgpack/v2/null_visitor.hpp
include/msgpack/v2/null_visitor_decl.hpp
include/msgpack/v2/object.hpp
include/msgpack/v2/object_decl.hpp
include/msgpack/v2/object_fwd.hpp
include/msgpack/v2/object_fwd_decl.hpp
include/msgpack/v2/pack_decl.hpp
include/msgpack/v2/parse.hpp
include/msgpack/v2/parse_decl.hpp
include/msgpack/v2/parse_return.hpp
include/msgpack/v2/sbuffer_decl.hpp
include/msgpack/v2/unpack.hpp
include/msgpack/v2/unpack_decl.hpp
include/msgpack/v2/vrefbuffer_decl.hpp
include/msgpack/v2/x3_parse.hpp
include/msgpack/v2/x3_parse_decl.hpp
include/msgpack/v2/x3_unpack.hpp
include/msgpack/v2/x3_unpack_decl.hpp
include/msgpack/v2/zbuffer_decl.hpp
include/msgpack/v2/zone_decl.hpp
include/msgpack/v3/adaptor/adaptor_base.hpp
include/msgpack/v3/adaptor/adaptor_base_decl.hpp
include/msgpack/v3/adaptor/array_ref_decl.hpp
include/msgpack/v3/adaptor/boost/msgpack_variant_decl.hpp
include/msgpack/v3/adaptor/check_container_size_decl.hpp
include/msgpack/v3/adaptor/define_decl.hpp
include/msgpack/v3/adaptor/detail/cpp03_define_array_decl.hpp
include/msgpack/v3/adaptor/detail/cpp03_define_map_decl.hpp
include/msgpack/v3/adaptor/detail/cpp03_msgpack_tuple_decl.hpp
include/msgpack/v3/adaptor/detail/cpp11_define_array_decl.hpp
include/msgpack/v3/adaptor/detail/cpp11_define_map_decl.hpp
include/msgpack/v3/adaptor/detail/cpp11_msgpack_tuple_decl.hpp
include/msgpack/v3/adaptor/ext_decl.hpp
include/msgpack/v3/adaptor/fixint_decl.hpp
include/msgpack/v3/adaptor/int_decl.hpp
include/msgpack/v3/adaptor/map_decl.hpp
include/msgpack/v3/adaptor/msgpack_tuple_decl.hpp
include/msgpack/v3/adaptor/nil_decl.hpp
include/msgpack/v3/adaptor/raw_decl.hpp
include/msgpack/v3/adaptor/size_equal_only_decl.hpp
include/msgpack/v3/adaptor/v4raw_decl.hpp
include/msgpack/v3/cpp_config_decl.hpp
include/msgpack/v3/create_object_visitor_decl.hpp
include/msgpack/v3/detail/cpp03_zone_decl.hpp
include/msgpack/v3/detail/cpp11_zone_decl.hpp
include/msgpack/v3/fbuffer_decl.hpp
include/msgpack/v3/iterator_decl.hpp
include/msgpack/v3/meta_decl.hpp
include/msgpack/v3/null_visitor_decl.hpp
include/msgpack/v3/object_decl.hpp
include/msgpack/v3/object_fwd.hpp
include/msgpack/v3/object_fwd_decl.hpp
include/msgpack/v3/pack_decl.hpp
include/msgpack/v3/parse.hpp
include/msgpack/v3/parse_decl.hpp
include/msgpack/v3/parse_return.hpp
include/msgpack/v3/sbuffer_decl.hpp
include/msgpack/v3/unpack.hpp
include/msgpack/v3/unpack_decl.hpp
include/msgpack/v3/vrefbuffer_decl.hpp
include/msgpack/v3/x3_parse_decl.hpp
include/msgpack/v3/x3_unpack.hpp
include/msgpack/v3/x3_unpack_decl.hpp
include/msgpack/v3/zbuffer_decl.hpp
include/msgpack/v3/zone_decl.hpp
include/msgpack/version.hpp
include/msgpack/versioning.hpp
include/msgpack/vrefbuffer.hpp
include/msgpack/vrefbuffer_decl.hpp
include/msgpack/x3_parse.hpp
include/msgpack/x3_parse_decl.hpp
include/msgpack/x3_unpack.hpp
include/msgpack/x3_unpack_decl.hpp
include/msgpack/zbuffer.hpp
include/msgpack/zbuffer_decl.hpp
include/msgpack/zone.hpp

View File

@@ -20,7 +20,7 @@ You might need to run `sudo port selfupdate` before installing to update the pac
You can also install via Homebrew.
```
$ sudo brew install msgpack
$ brew install msgpack
```
## FreeBSD with Ports Collection

View File

@@ -1,9 +1,9 @@
`msgpack` for C/C++
===================
Version 2.1.5 [![Build Status](https://travis-ci.org/msgpack/msgpack-c.svg?branch=master)](https://travis-ci.org/msgpack/msgpack-c) [![Build status](https://ci.appveyor.com/api/projects/status/8kstcgt79qj123mw/branch/master?svg=true)](https://ci.appveyor.com/project/redboltz/msgpack-c/branch/master)
Version 3.1.1 [![Build Status](https://travis-ci.org/msgpack/msgpack-c.svg?branch=master)](https://travis-ci.org/msgpack/msgpack-c) [![Build status](https://ci.appveyor.com/api/projects/status/8kstcgt79qj123mw/branch/master?svg=true)](https://ci.appveyor.com/project/redboltz/msgpack-c/branch/master)
It's like JSON but small and fast.
It's like JSON but smaller and faster.
Overview
--------
@@ -11,7 +11,7 @@ Overview
[MessagePack](http://msgpack.org/) is an efficient binary serialization
format, which lets you exchange data among multiple languages like JSON,
except that it's faster and smaller. Small integers are encoded into a
single byte while typical short strings require only one extra byte in
single byte and short strings require only one extra byte in
addition to the strings themselves.
Example
@@ -97,6 +97,10 @@ int main(void)
msgpack::type::tuple<int, bool, std::string> dst;
deserialized.convert(dst);
// or create the new instance
msgpack::type::tuple<int, bool, std::string> dst2 =
deserialized.as<msgpack::type::tuple<int, bool, std::string> >();
return 0;
}
```
@@ -108,7 +112,7 @@ Usage
### C++ Header Only Library
When you use msgpack on C++03 and C++11, you can just add
When you use msgpack on C++, you can just add
msgpack-c/include to your include path:
g++ -I msgpack-c/include your_source_file.cpp
@@ -135,14 +139,18 @@ C and C++03:
$ make
$ sudo make install
If you want to setup C++11 version of msgpack instead,
If you want to setup C++11 or C++17 version of msgpack instead,
execute the following commands:
$ git clone https://github.com/msgpack/msgpack-c.git
$ cd msgpack-c
$ cmake -DMSGPACK_CXX11=ON .
$ cmake -DMSGPACK_CXX[11|17]=ON .
$ sudo make install
`MSGPACK_CXX[11|17]` flags are not affected to installing files. Just switching test cases. All files are installed in every settings.
When you use the C part of `msgpack-c`, you need to build and link the library. By default, both static/shared libraries are built. If you want to build only static library, set `BUILD_SHARED_LIBS=OFF` to cmake. If you want to build only shared library, set `BUILD_SHARED_L
#### GUI on Windows
Clone msgpack-c git repository.
@@ -170,7 +178,7 @@ the binaries:' text box.
### Documentation
You can get addtional information on the
You can get additional information including the tutorial on the
[wiki](https://github.com/msgpack/msgpack-c/wiki).
Contributing

View File

@@ -1,10 +1,10 @@
version: 2.1.5.{build}
version: 3.1.1.{build}
image:
- Visual Studio 2015
environment:
global:
BOOST_ROOT: C:\Libraries\boost_1_60_0
BOOST_ROOT: C:\Libraries\boost_1_67_0
matrix:
- cpp11: -DMSGPACK_CXX11=OFF
boost: -DMSGPACK_BOOST=OFF

View File

@@ -23,7 +23,7 @@ else
export BIT32="OFF"
fi
cmake -DMSGPACK_CXX11=${CXX11} -DMSGPACK_32BIT=${BIT32} -DMSGPACK_BOOST=${BOOST} -DMSGPACK_ENABLE_SHARED=${SHARED} -DMSGPACK_CHAR_SIGN=${CHAR_SIGN} -DMSGPACK_DEFAULT_API_VERSION=${API_VERSION} -DMSGPACK_USE_X3_PARSE=${X3_PARSE} ..
cmake -DMSGPACK_CXX11=${CXX11} -DMSGPACK_CXX17=${CXX17} -DMSGPACK_32BIT=${BIT32} -DMSGPACK_BOOST=${BOOST} -DBUILD_SHARED_LIBS=${SHARED} -DMSGPACK_CHAR_SIGN=${CHAR_SIGN} -DMSGPACK_DEFAULT_API_VERSION=${API_VERSION} -DMSGPACK_USE_X3_PARSE=${X3_PARSE} ..
ret=$?
if [ $ret -ne 0 ]
@@ -39,7 +39,7 @@ then
exit $ret
fi
make test
ctest -VV
ret=$?
if [ $ret -ne 0 ]

49
ci/build_regression.sh Executable file
View File

@@ -0,0 +1,49 @@
#!/bin/bash
mkdir -p build
ret=$?
if [ $ret -ne 0 ]
then
exit $ret
fi
cd build
ret=$?
if [ $ret -ne 0 ]
then
exit $ret
fi
if [ "${ARCH}" == "32" ]
then
echo "64 bit support required for regressions"
exit 1
fi
cmake -DMSGPACK_FUZZ_REGRESSION="ON" -DMSGPACK_CXX11="ON" -DMSGPACK_BOOST=${BOOST} -DMSGPACK_SAN=${MSGPACK_SAN} -v ..
ret=$?
if [ $ret -ne 0 ]
then
exit $ret
fi
make
ret=$?
if [ $ret -ne 0 ]
then
exit $ret
fi
make test
ret=$?
if [ $ret -ne 0 ]
then
exit $ret
fi
exit 0

View File

@@ -61,6 +61,7 @@ struct define_map<A0<%1.upto(i) {|j|%>, A<%=j%><%}%>> {
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
std::map<std::string, msgpack::object const*> kvmap;
for (uint32_t i = 0; i < o.via.map.size; ++i) {
if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); }
kvmap.insert(
std::map<std::string, msgpack::object const*>::value_type(
std::string(

View File

@@ -39,7 +39,7 @@ FOREACH (source_file ${exec_PROGRAMS})
)
ENDIF()
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3")
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra")
ENDIF ()
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")

View File

@@ -70,13 +70,22 @@ int main() {
// Client
auto host = "localhost";
boost::asio::ip::tcp::resolver r(ios);
#if BOOST_VERSION < 106600
boost::asio::ip::tcp::resolver::query q(host, boost::lexical_cast<std::string>(port));
auto it = r.resolve(q);
boost::asio::ip::tcp::resolver::iterator end;
#else // BOOST_VERSION < 106600
auto eps = r.resolve(host, boost::lexical_cast<std::string>(port));
auto it = eps.begin();
auto end = eps.end();
#endif // BOOST_VERSION < 106600
boost::asio::ip::tcp::socket cs(ios);
boost::asio::async_connect(
cs,
it,
end,
[&]
(boost::system::error_code const& e, boost::asio::ip::tcp::resolver::iterator) {
if (e) {

View File

@@ -136,13 +136,24 @@ int main() {
// Client
auto host = "localhost";
boost::asio::ip::tcp::resolver r(ios);
#if BOOST_VERSION < 106600
boost::asio::ip::tcp::resolver::query q(host, boost::lexical_cast<std::string>(port));
auto it = r.resolve(q);
boost::asio::ip::tcp::resolver::iterator end;
#else // BOOST_VERSION < 106600
auto eps = r.resolve(host, boost::lexical_cast<std::string>(port));
auto it = eps.begin();
auto end = eps.end();
#endif // BOOST_VERSION < 106600
boost::asio::ip::tcp::socket cs(ios);
boost::asio::async_connect(
cs,
it,
end,
[&]
(boost::system::error_code const& e, boost::asio::ip::tcp::resolver::iterator) {
if (e) {

View File

@@ -1,6 +1,8 @@
IF (MSGPACK_ENABLE_SHARED)
SET (MSGPACK_LIB msgpackc)
ELSE ()
ENDIF ()
IF (MSGPACK_ENABLE_STATIC)
SET (MSGPACK_LIB msgpackc-static)
ENDIF ()
@@ -23,7 +25,7 @@ FOREACH (source_file ${exec_PROGRAMS})
${MSGPACK_LIB}
)
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3")
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra")
ENDIF ()
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")

View File

@@ -40,7 +40,7 @@ FOREACH (source_file ${exec_PROGRAMS})
$<TARGET_PROPERTY:msgpackc,INTERFACE_INCLUDE_DIRECTORIES>
)
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3")
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra")
ENDIF ()
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
@@ -65,7 +65,7 @@ FOREACH (source_file ${with_pthread_PROGRAMS})
${CMAKE_THREAD_LIBS_INIT}
)
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3")
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra")
ENDIF ()
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]")

View File

@@ -25,7 +25,7 @@ IF (MSGPACK_CXX11)
$<TARGET_PROPERTY:msgpackc,INTERFACE_INCLUDE_DIRECTORIES>
)
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3 ")
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra")
ENDIF ()
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")

View File

@@ -1,4 +1,4 @@
IF (MSGPACK_USE_X3_PARSE)
IF (MSGPACK_USE_X3_PARSE AND MSGPACK_DEFAULT_API_VERSION VERSION_GREATER 1)
INCLUDE_DIRECTORIES (
../include
)
@@ -23,7 +23,7 @@ IF (MSGPACK_USE_X3_PARSE)
$<TARGET_PROPERTY:msgpackc,INTERFACE_INCLUDE_DIRECTORIES>
)
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g ")
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra")
ENDIF ()
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
@@ -54,7 +54,7 @@ IF (MSGPACK_USE_X3_PARSE)
${CMAKE_THREAD_LIBS_INIT}
)
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g ")
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra")
ENDIF ()
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")

43
fuzz/CMakeLists.txt Normal file
View File

@@ -0,0 +1,43 @@
FIND_PACKAGE (GTest REQUIRED)
FIND_PACKAGE (ZLIB REQUIRED)
FIND_PACKAGE (Boost REQUIRED COMPONENTS system filesystem)
INCLUDE_DIRECTORIES (
${GTEST_INCLUDE_DIRS}
${ZLIB_INCLUDE_DIRS}
${Boost_INCLUDE_DIRS}
)
LIST (APPEND check_PROGRAMS
regression_runner.cpp
)
LINK_DIRECTORIES (
${Boost_LIBRARY_DIRS}
)
FOREACH (source_file ${check_PROGRAMS})
GET_FILENAME_COMPONENT (source_file_we ${source_file} NAME_WE)
ADD_EXECUTABLE (
${source_file_we}
${source_file}
)
TARGET_LINK_LIBRARIES (${source_file_we}
msgpackc
${GTEST_BOTH_LIBRARIES}
${ZLIB_LIBRARIES}
${CMAKE_THREAD_LIBS_INIT}
${Boost_LIBRARIES}
)
ADD_TEST (${source_file_we} ${source_file_we})
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Wno-mismatched-tags -g")
IF ("${MSGPACK_SAN}" STREQUAL "ASAN")
SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-omit-frame-pointer -fsanitize=address")
SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer -fsanitize=address")
ELSEIF ("${MSGPACK_SAN}" STREQUAL "UBSAN")
SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=undefined")
SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined")
ENDIF()
ENDIF()
ENDFOREACH ()

View File

@@ -0,0 +1,50 @@
#include <boost/filesystem.hpp>
#include <gtest/gtest.h>
#include <fstream>
#include <iostream>
#include <vector>
#include "unpack_pack_fuzzer.cpp"
using ::testing::TestWithParam;
using ::testing::ValuesIn;
std::vector<std::string> ListDirectory(const std::string& path) {
std::vector<std::string> v;
boost::filesystem::path p(path);
boost::filesystem::directory_iterator f{p};
if(boost::filesystem::is_directory(p)) {
while (f != boost::filesystem::directory_iterator{}) {
v.push_back((*f++).path().string());
}
}
return v;
}
class UnpackPackFuzzerRegressionTest : public ::testing::TestWithParam<std::string> {
public:
};
TEST_P(UnpackPackFuzzerRegressionTest, Returns0) {
auto fpath = GetParam();
std::ifstream in(fpath, std::ifstream::binary);
if (!in) {
FAIL() << fpath << " not found";
}
in.seekg(0, in.end);
size_t length = in.tellg();
in.seekg(0, in.beg);
std::vector<char> bytes(length);
in.read(bytes.data(), bytes.size());
assert(in);
EXPECT_EQ(0, LLVMFuzzerTestOneInput(reinterpret_cast<const uint8_t *>(bytes.data()),
bytes.size()));
}
INSTANTIATE_TEST_CASE_P(UnpackPackFuzzerRegressions,
UnpackPackFuzzerRegressionTest,
::testing::ValuesIn(ListDirectory("../../fuzz/unpack_pack_fuzzer_regressions")));

View File

@@ -0,0 +1,23 @@
#include <msgpack.hpp>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
try {
// NOTE(derwolfe): by default the limits are set at 2^32-1 length. I'm
// setting these at far smaller values to avoid OOMs
const int test_limit = 1000;
msgpack::object_handle unpacked = msgpack::unpack(reinterpret_cast<const char *>(data),
size,
nullptr,
nullptr,
msgpack::unpack_limit(test_limit,
test_limit,
test_limit,
test_limit,
test_limit,
test_limit));
msgpack::sbuffer sbuf;
msgpack::pack(sbuf, unpacked.get());
} catch (...) {
}
return 0;
}

View File

@@ -0,0 +1 @@
<EFBFBD>

View File

@@ -0,0 +1 @@
<EFBFBD>

View File

@@ -0,0 +1,2 @@
<EFBFBD><01><02><03><04><05><06><07><08> <09>
<EFBFBD> <0B> <0C>

Binary file not shown.

Binary file not shown.

View File

@@ -11,7 +11,11 @@
#include "msgpack/iterator.hpp"
#include "msgpack/zone.hpp"
#include "msgpack/pack.hpp"
#include "msgpack/null_visitor.hpp"
#include "msgpack/parse.hpp"
#include "msgpack/unpack.hpp"
#include "msgpack/x3_parse.hpp"
#include "msgpack/x3_unpack.hpp"
#include "msgpack/sbuffer.hpp"
#include "msgpack/vrefbuffer.hpp"
#include "msgpack/version.hpp"

View File

@@ -14,5 +14,6 @@
#include "msgpack/v1/adaptor/adaptor_base.hpp"
#include "msgpack/v2/adaptor/adaptor_base.hpp"
#include "msgpack/v3/adaptor/adaptor_base.hpp"
#endif // MSGPACK_ADAPTOR_BASE_HPP

View File

@@ -12,5 +12,6 @@
#include "msgpack/v1/adaptor/adaptor_base_decl.hpp"
#include "msgpack/v2/adaptor/adaptor_base_decl.hpp"
#include "msgpack/v3/adaptor/adaptor_base_decl.hpp"
#endif // MSGPACK_ADAPTOR_BASE_DECL_HPP

View File

@@ -12,5 +12,6 @@
#include "msgpack/v1/adaptor/array_ref_decl.hpp"
#include "msgpack/v2/adaptor/array_ref_decl.hpp"
#include "msgpack/v3/adaptor/array_ref_decl.hpp"
#endif // MSGPACK_TYPE_ARRAY_REF_DECL_HPP

View File

@@ -12,5 +12,6 @@
#include "msgpack/v1/adaptor/boost/msgpack_variant_decl.hpp"
#include "msgpack/v2/adaptor/boost/msgpack_variant_decl.hpp"
#include "msgpack/v3/adaptor/boost/msgpack_variant_decl.hpp"
#endif // MSGPACK_TYPE_BOOST_MSGPACK_VARIANT_DECL_HPP

View File

@@ -12,5 +12,6 @@
#include "msgpack/v1/adaptor/check_container_size_decl.hpp"
#include "msgpack/v2/adaptor/check_container_size_decl.hpp"
#include "msgpack/v3/adaptor/check_container_size_decl.hpp"
#endif // MSGPACK_CHECK_CONTAINER_SIZE_DECL_HPP

View File

@@ -0,0 +1,16 @@
//
// MessagePack for C++ static resolution routine
//
// Copyright (C) 2017 KONDO Takatoshi
//
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
//
#ifndef MSGPACK_TYPE_CPP11_CHRONO_HPP
#define MSGPACK_TYPE_CPP11_CHRONO_HPP
#include "msgpack/v1/adaptor/cpp11/chrono.hpp"
#endif // MSGPACK_TYPE_CPP11_CHRONO_HPP

View File

@@ -0,0 +1,16 @@
//
// MessagePack for C++ static resolution routine
//
// Copyright (C) 2018 KONDO Takatoshi
//
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
//
#ifndef MSGPACK_TYPE_CPP17_BYTE_HPP
#define MSGPACK_TYPE_CPP17_BYTE_HPP
#include "msgpack/v1/adaptor/cpp17/byte.hpp"
#endif // MSGPACK_TYPE_CPP17_BYTE_HPP

View File

@@ -0,0 +1,16 @@
//
// MessagePack for C++ static resolution routine
//
// Copyright (C) 2018 KONDO Takatoshi
//
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
//
#ifndef MSGPACK_TYPE_CPP17_CARRAY_BYTE_HPP
#define MSGPACK_TYPE_CPP17_CARRAY_BYTE_HPP
#include "msgpack/v1/adaptor/cpp17/carray_byte.hpp"
#endif // MSGPACK_TYPE_CPP17_CARRAY_BYTE_HPP

View File

@@ -0,0 +1,16 @@
//
// MessagePack for C++ static resolution routine
//
// Copyright (C) 2018 KONDO Takatoshi
//
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
//
#ifndef MSGPACK_TYPE_CPP17_VECTOR_BYTE_HPP
#define MSGPACK_TYPE_CPP17_VECTOR_BYTE_HPP
#include "msgpack/v1/adaptor/cpp17/vector_byte.hpp"
#endif // MSGPACK_TYPE_CPP17_VECTOR_BYTE_HPP

View File

@@ -27,18 +27,18 @@
#define MSGPACK_DEFINE_ARRAY(...) \
template <typename Packer> \
void msgpack_pack(Packer& pk) const \
void msgpack_pack(Packer& msgpack_pk) const \
{ \
msgpack::type::make_define_array(__VA_ARGS__).msgpack_pack(pk); \
msgpack::type::make_define_array(__VA_ARGS__).msgpack_pack(msgpack_pk); \
} \
void msgpack_unpack(msgpack::object const& o) \
void msgpack_unpack(msgpack::object const& msgpack_o) \
{ \
msgpack::type::make_define_array(__VA_ARGS__).msgpack_unpack(o); \
msgpack::type::make_define_array(__VA_ARGS__).msgpack_unpack(msgpack_o); \
}\
template <typename MSGPACK_OBJECT> \
void msgpack_object(MSGPACK_OBJECT* o, msgpack::zone& z) const \
void msgpack_object(MSGPACK_OBJECT* msgpack_o, msgpack::zone& msgpack_z) const \
{ \
msgpack::type::make_define_array(__VA_ARGS__).msgpack_object(o, z); \
msgpack::type::make_define_array(__VA_ARGS__).msgpack_object(msgpack_o, msgpack_z); \
}
#define MSGPACK_BASE_ARRAY(base) (*const_cast<base *>(static_cast<base const*>(this)))
@@ -62,24 +62,24 @@
#define MSGPACK_DEFINE_MAP(...) \
template <typename Packer> \
void msgpack_pack(Packer& pk) const \
void msgpack_pack(Packer& msgpack_pk) const \
{ \
msgpack::type::make_define_map \
MSGPACK_DEFINE_MAP_IMPL(__VA_ARGS__) \
.msgpack_pack(pk); \
.msgpack_pack(msgpack_pk); \
} \
void msgpack_unpack(msgpack::object const& o) \
void msgpack_unpack(msgpack::object const& msgpack_o) \
{ \
msgpack::type::make_define_map \
MSGPACK_DEFINE_MAP_IMPL(__VA_ARGS__) \
.msgpack_unpack(o); \
.msgpack_unpack(msgpack_o); \
}\
template <typename MSGPACK_OBJECT> \
void msgpack_object(MSGPACK_OBJECT* o, msgpack::zone& z) const \
void msgpack_object(MSGPACK_OBJECT* msgpack_o, msgpack::zone& msgpack_z) const \
{ \
msgpack::type::make_define_map \
MSGPACK_DEFINE_MAP_IMPL(__VA_ARGS__) \
.msgpack_object(o, z); \
.msgpack_object(msgpack_o, msgpack_z); \
}
#define MSGPACK_BASE_MAP(base) \
@@ -94,32 +94,32 @@
namespace adaptor { \
template<> \
struct convert<enum_name> { \
msgpack::object const& operator()(msgpack::object const& o, enum_name& v) const { \
msgpack::object const& operator()(msgpack::object const& msgpack_o, enum_name& msgpack_v) const { \
msgpack::underlying_type<enum_name>::type tmp; \
msgpack::operator>>(o, tmp); \
v = static_cast<enum_name>(tmp); \
return o; \
msgpack::operator>>(msgpack_o, tmp); \
msgpack_v = static_cast<enum_name>(tmp); \
return msgpack_o; \
} \
}; \
template<> \
struct object<enum_name> { \
void operator()(msgpack::object& o, const enum_name& v) const { \
msgpack::underlying_type<enum_name>::type tmp = static_cast<msgpack::underlying_type<enum_name>::type>(v); \
msgpack::operator<<(o, tmp); \
void operator()(msgpack::object& msgpack_o, const enum_name& msgpack_v) const { \
msgpack::underlying_type<enum_name>::type tmp = static_cast<msgpack::underlying_type<enum_name>::type>(msgpack_v); \
msgpack::operator<<(msgpack_o, tmp); \
} \
}; \
template<> \
struct object_with_zone<enum_name> { \
void operator()(msgpack::object::with_zone& o, const enum_name& v) const { \
msgpack::underlying_type<enum_name>::type tmp = static_cast<msgpack::underlying_type<enum_name>::type>(v); \
msgpack::operator<<(o, tmp); \
void operator()(msgpack::object::with_zone& msgpack_o, const enum_name& msgpack_v) const { \
msgpack::underlying_type<enum_name>::type tmp = static_cast<msgpack::underlying_type<enum_name>::type>(msgpack_v); \
msgpack::operator<<(msgpack_o, tmp); \
} \
}; \
template <> \
struct pack<enum_name> { \
template <typename Stream> \
msgpack::packer<Stream>& operator()(msgpack::packer<Stream>& o, const enum_name& v) const { \
return msgpack::operator<<(o, static_cast<msgpack::underlying_type<enum_name>::type>(v)); \
msgpack::packer<Stream>& operator()(msgpack::packer<Stream>& msgpack_o, const enum_name& msgpack_v) const { \
return msgpack::operator<<(msgpack_o, static_cast<msgpack::underlying_type<enum_name>::type>(msgpack_v)); \
} \
}; \
} \
@@ -139,5 +139,6 @@
#include "msgpack/v1/adaptor/define_decl.hpp"
#include "msgpack/v2/adaptor/define_decl.hpp"
#include "msgpack/v3/adaptor/define_decl.hpp"
#endif // MSGPACK_DEFINE_DECL_HPP

View File

@@ -12,5 +12,6 @@
#include "msgpack/v1/adaptor/ext_decl.hpp"
#include "msgpack/v2/adaptor/ext_decl.hpp"
#include "msgpack/v3/adaptor/ext_decl.hpp"
#endif // MSGPACK_TYPE_EXT_DECL_HPP

View File

@@ -12,5 +12,6 @@
#include "msgpack/v1/adaptor/fixint_decl.hpp"
#include "msgpack/v2/adaptor/fixint_decl.hpp"
#include "msgpack/v3/adaptor/fixint_decl.hpp"
#endif // MSGPACK_TYPE_FIXINT_DECL_HPP

View File

@@ -12,5 +12,6 @@
#include "msgpack/v1/adaptor/int_decl.hpp"
#include "msgpack/v2/adaptor/int_decl.hpp"
#include "msgpack/v3/adaptor/int_decl.hpp"
#endif // MSGPACK_TYPE_INT_DECL_HPP

View File

@@ -12,5 +12,6 @@
#include "msgpack/v1/adaptor/map_decl.hpp"
#include "msgpack/v2/adaptor/map_decl.hpp"
#include "msgpack/v3/adaptor/map_decl.hpp"
#endif // MSGPACK_TYPE_MAP_DECL_HPP

View File

@@ -12,5 +12,6 @@
#include "msgpack/v1/adaptor/msgpack_tuple_decl.hpp"
#include "msgpack/v2/adaptor/msgpack_tuple_decl.hpp"
#include "msgpack/v3/adaptor/msgpack_tuple_decl.hpp"
#endif // MSGPACK_MSGPACK_TUPLE_DECL_HPP

View File

@@ -12,5 +12,6 @@
#include "msgpack/v1/adaptor/nil_decl.hpp"
#include "msgpack/v2/adaptor/nil_decl.hpp"
#include "msgpack/v3/adaptor/nil_decl.hpp"
#endif // MSGPACK_TYPE_NIL_DECL_HPP

View File

@@ -12,5 +12,6 @@
#include "msgpack/v1/adaptor/raw_decl.hpp"
#include "msgpack/v2/adaptor/raw_decl.hpp"
#include "msgpack/v3/adaptor/raw_decl.hpp"
#endif // MSGPACK_TYPE_RAW_DECL_HPP

View File

@@ -12,5 +12,6 @@
#include "msgpack/v1/adaptor/size_equal_only_decl.hpp"
#include "msgpack/v2/adaptor/size_equal_only_decl.hpp"
#include "msgpack/v3/adaptor/size_equal_only_decl.hpp"
#endif // MSGPACK_TYPE_SIZE_EQUAL_ONLY_DECL_HPP

View File

@@ -12,5 +12,6 @@
#include "msgpack/v1/adaptor/v4raw_decl.hpp"
#include "msgpack/v2/adaptor/v4raw_decl.hpp"
#include "msgpack/v3/adaptor/v4raw_decl.hpp"
#endif // MSGPACK_TYPE_V4RAW_DECL_HPP

View File

@@ -12,5 +12,6 @@
#include "msgpack/v1/cpp_config_decl.hpp"
#include "msgpack/v2/cpp_config_decl.hpp"
#include "msgpack/v3/cpp_config_decl.hpp"
#endif // MSGPACK_CPP_CONFIG_DECL_HPP

View File

@@ -0,0 +1,17 @@
//
// MessagePack for C++ deserializing routine
//
// Copyright (C) 2018 KONDO Takatoshi
//
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
//
#ifndef MSGPACK_CREATE_OBJECT_VISITOR_HPP
#define MSGPACK_CREATE_OBJECT_VISITOR_HPP
#include "msgpack/create_object_visitor_decl.hpp"
#include "msgpack/v2/create_object_visitor.hpp"
#endif // MSGPACK_CREATE_OBJECT_VISITOR_HPP

View File

@@ -0,0 +1,16 @@
//
// MessagePack for C++ deserializing routine
//
// Copyright (C) 2018 KONDO Takatoshi
//
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
//
#ifndef MSGPACK_CREATE_OBJECT_VISITOR_DECL_HPP
#define MSGPACK_CREATE_OBJECT_VISITOR_DECL_HPP
#include "msgpack/v2/create_object_visitor_decl.hpp"
#include "msgpack/v3/create_object_visitor_decl.hpp"
#endif // MSGPACK_CREATE_OBJECT_VISITOR_DECL_HPP

View File

@@ -12,5 +12,6 @@
#include "msgpack/v1/fbuffer_decl.hpp"
#include "msgpack/v2/fbuffer_decl.hpp"
#include "msgpack/v3/fbuffer_decl.hpp"
#endif // MSGPACK_FBUFFER_DECL_HPP

View File

@@ -13,5 +13,6 @@
#include <msgpack/v1/iterator_decl.hpp>
#include <msgpack/v2/iterator_decl.hpp>
#include <msgpack/v3/iterator_decl.hpp>
#endif // MSGPACK_V1_ITERATOR_DECL_HPP
#endif // MSGPACK_ITERATOR_DECL_HPP

View File

@@ -13,5 +13,6 @@
#include "msgpack/v1/meta_decl.hpp"
#include "msgpack/v2/meta_decl.hpp"
#include "msgpack/v3/meta_decl.hpp"
#endif // MSGPACK_META_DECL_HPP

View File

@@ -0,0 +1,17 @@
//
// MessagePack for C++ deserializing routine
//
// Copyright (C) 2018 KONDO Takatoshi
//
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
//
#ifndef MSGPACK_NULL_VISITOR_HPP
#define MSGPACK_NULL_VISITOR_HPP
#include "msgpack/null_visitor_decl.hpp"
#include "msgpack/v2/null_visitor.hpp"
#endif // MSGPACK_NULL_VISITOR_HPP

View File

@@ -0,0 +1,16 @@
//
// MessagePack for C++ deserializing routine
//
// Copyright (C) 2018 KONDO Takatoshi
//
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
//
#ifndef MSGPACK_NULL_VISITOR_DECL_HPP
#define MSGPACK_NULL_VISITOR_DECL_HPP
#include "msgpack/v2/null_visitor_decl.hpp"
#include "msgpack/v3/null_visitor_decl.hpp"
#endif // MSGPACK_NULL_VISITOR_DECL_HPP

View File

@@ -13,5 +13,6 @@
#include "msgpack/v1/object_decl.hpp"
#include "msgpack/v2/object_decl.hpp"
#include "msgpack/v3/object_decl.hpp"
#endif // MSGPACK_OBJECT_DECL_HPP

View File

@@ -15,5 +15,6 @@
#include "msgpack/v1/object_fwd.hpp"
#include "msgpack/v2/object_fwd.hpp"
#include "msgpack/v3/object_fwd.hpp"
#endif // MSGPACK_OBJECT_FWD_HPP

View File

@@ -13,5 +13,6 @@
#include "msgpack/v1/object_fwd_decl.hpp"
#include "msgpack/v2/object_fwd_decl.hpp"
#include "msgpack/v3/object_fwd_decl.hpp"
#endif // MSGPACK_OBJECT_FWD_DECL_HPP

View File

@@ -12,6 +12,7 @@
#include "pack_define.h"
#include "object.h"
#include "timestamp.h"
#include <stdlib.h>
#ifdef __cplusplus
@@ -98,6 +99,9 @@ static int msgpack_pack_bin_body(msgpack_packer* pk, const void* b, size_t l);
static int msgpack_pack_ext(msgpack_packer* pk, size_t l, int8_t type);
static int msgpack_pack_ext_body(msgpack_packer* pk, const void* b, size_t l);
static int msgpack_pack_timestamp(msgpack_packer* pk, const msgpack_timestamp* d);
MSGPACK_DLLEXPORT
int msgpack_pack_object(msgpack_packer* pk, msgpack_object d);

View File

@@ -12,5 +12,6 @@
#include "msgpack/v1/pack_decl.hpp"
#include "msgpack/v2/pack_decl.hpp"
#include "msgpack/v3/pack_decl.hpp"
#endif // MSGPACK_PACK_DECL_HPP

View File

@@ -890,6 +890,34 @@ msgpack_pack_inline_func(_ext_body)(msgpack_pack_user x, const void* b, size_t l
msgpack_pack_append_buffer(x, (const unsigned char*)b, l);
}
msgpack_pack_inline_func(_timestamp)(msgpack_pack_user x, const msgpack_timestamp* d)
{
if ((((int64_t)d->tv_sec) >> 34) == 0) {
uint64_t data64 = ((uint64_t) d->tv_nsec << 34) | d->tv_sec;
if ((data64 & 0xffffffff00000000L) == 0) {
// timestamp 32
char buf[4];
uint32_t data32 = (uint32_t)data64;
msgpack_pack_ext(x, 4, -1);
_msgpack_store32(buf, data32);
msgpack_pack_append_buffer(x, buf, 4);
} else {
// timestamp 64
char buf[8];
msgpack_pack_ext(x, 8, -1);
_msgpack_store64(buf, data64);
msgpack_pack_append_buffer(x, buf, 8);
}
} else {
// timestamp 96
char buf[12];
_msgpack_store32(&buf[0], d->tv_nsec);
_msgpack_store64(&buf[4], d->tv_sec);
msgpack_pack_ext(x, 12, -1);
msgpack_pack_append_buffer(x, buf, 12);
}
}
#undef msgpack_pack_inline_func
#undef msgpack_pack_user
#undef msgpack_pack_append_buffer

18
include/msgpack/parse.hpp Normal file
View File

@@ -0,0 +1,18 @@
//
// MessagePack for C++ deserializing routine
//
// Copyright (C) 2018 KONDO Takatoshi
//
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
//
#ifndef MSGPACK_PARSE_HPP
#define MSGPACK_PARSE_HPP
#include "msgpack/parse_decl.hpp"
#include "msgpack/v2/parse.hpp"
#include "msgpack/v3/parse.hpp"
#endif // MSGPACK_PARSE_HPP

View File

@@ -0,0 +1,16 @@
//
// MessagePack for C++ deserializing routine
//
// Copyright (C) 2018 KONDO Takatoshi
//
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
//
#ifndef MSGPACK_PARSE_DECL_HPP
#define MSGPACK_PARSE_DECL_HPP
#include "msgpack/v2/parse_decl.hpp"
#include "msgpack/v3/parse_decl.hpp"
#endif // MSGPACK_PARSE_DECL_HPP

View File

@@ -12,5 +12,6 @@
#include "msgpack/v1/parse_return.hpp"
#include "msgpack/v2/parse_return.hpp"
#include "msgpack/v3/parse_return.hpp"
#endif // MSGPACK_PARSE_RETURN_HPP

View File

@@ -19,6 +19,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <msgpack/predef/architecture/mips.h>
#include <msgpack/predef/architecture/parisc.h>
#include <msgpack/predef/architecture/ppc.h>
#include <msgpack/predef/architecture/ptx.h>
#include <msgpack/predef/architecture/pyramid.h>
#include <msgpack/predef/architecture/rs6k.h>
#include <msgpack/predef/architecture/sparc.h>

View File

@@ -27,11 +27,14 @@ http://www.boost.org/LICENSE_1_0.txt)
[[`__TARGET_ARCH_ARM`] [__predef_detection__]]
[[`__TARGET_ARCH_THUMB`] [__predef_detection__]]
[[`_M_ARM`] [__predef_detection__]]
[[`_M_ARM64`] [__predef_detection__]]
[[`__arm64`] [8.0.0]]
[[`__TARGET_ARCH_ARM`] [V.0.0]]
[[`__TARGET_ARCH_THUMB`] [V.0.0]]
[[`__ARM_ARCH`] [V.0.0]]
[[`_M_ARM`] [V.0.0]]
[[`_M_ARM64`] [8.0.0]]
]
*/
@@ -39,7 +42,8 @@ http://www.boost.org/LICENSE_1_0.txt)
#if defined(__arm__) || defined(__arm64) || defined(__thumb__) || \
defined(__TARGET_ARCH_ARM) || defined(__TARGET_ARCH_THUMB) || \
defined(_M_ARM)
defined(__ARM_ARCH) || \
defined(_M_ARM) || defined(_M_ARM64)
# undef MSGPACK_ARCH_ARM
# if !defined(MSGPACK_ARCH_ARM) && defined(__arm64)
# define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER(8,0,0)
@@ -50,6 +54,12 @@ http://www.boost.org/LICENSE_1_0.txt)
# if !defined(MSGPACK_ARCH_ARM) && defined(__TARGET_ARCH_THUMB)
# define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER(__TARGET_ARCH_THUMB,0,0)
# endif
# if !defined(MSGPACK_ARCH_ARM) && defined(__ARM_ARCH)
# define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER(__ARM_ARCH,0,0)
# endif
# if !defined(MSGPACK_ARCH_ARM) && defined(_M_ARM64)
# define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER(8,0,0)
# endif
# if !defined(MSGPACK_ARCH_ARM) && defined(_M_ARM)
# define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER(_M_ARM,0,0)
# endif

View File

@@ -12,7 +12,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <msgpack/predef/make.h>
/*`
[heading `MSGPACK_ARCH_PARISK`]
[heading `MSGPACK_ARCH_PARISC`]
[@http://en.wikipedia.org/wiki/PA-RISC_family HP/PA RISC] architecture.

View File

@@ -0,0 +1,44 @@
/*
Copyright Benjamin Worpitz 2018
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef MSGPACK_PREDEF_ARCHITECTURE_PTX_H
#define MSGPACK_PREDEF_ARCHITECTURE_PTX_H
#include <msgpack/predef/version_number.h>
#include <msgpack/predef/make.h>
/*`
[heading `MSGPACK_ARCH_PTX`]
[@https://en.wikipedia.org/wiki/Parallel_Thread_Execution PTX] architecture.
[table
[[__predef_symbol__] [__predef_version__]]
[[`__CUDA_ARCH__`] [__predef_detection__]]
[[`__CUDA_ARCH__`] [V.R.0]]
]
*/
#define MSGPACK_ARCH_PTX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
#if defined(__CUDA_ARCH__)
# undef MSGPACK_ARCH_PTX
# define MSGPACK_ARCH_PTX MSGPACK_PREDEF_MAKE_10_VR0(__CUDA_ARCH__)
#endif
#if MSGPACK_ARCH_PTX
# define MSGPACK_ARCH_PTX_AVAILABLE
#endif
#define MSGPACK_ARCH_PTX_NAME "PTX"
#endif
#include <msgpack/predef/detail/test.h>
MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_PTX,MSGPACK_ARCH_PTX_NAME)

View File

@@ -32,6 +32,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <msgpack/predef/compiler/metrowerks.h>
#include <msgpack/predef/compiler/microtec.h>
#include <msgpack/predef/compiler/mpw.h>
#include <msgpack/predef/compiler/nvcc.h>
#include <msgpack/predef/compiler/palm.h>
#include <msgpack/predef/compiler/pgi.h>
#include <msgpack/predef/compiler/sgi_mipspro.h>

View File

@@ -1,5 +1,5 @@
/*
Copyright Rene Rivera 2008-2015
Copyright Rene Rivera 2008-2017
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@@ -25,7 +25,8 @@ Version number available as major, minor, and patch.
[[`__ICC`] [__predef_detection__]]
[[`__ECC`] [__predef_detection__]]
[[`__INTEL_COMPILER`] [V.R.P]]
[[`__INTEL_COMPILER`] [V.R]]
[[`__INTEL_COMPILER` and `__INTEL_COMPILER_UPDATE`] [V.R.P]]
]
*/
@@ -33,8 +34,21 @@ Version number available as major, minor, and patch.
#if defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || \
defined(__ECC)
/*`
[note Because of an Intel mistake in the release version numbering when
`__INTEL_COMPILER` is `9999` it is detected as version 12.1.0.]
*/
# if !defined(MSGPACK_COMP_INTEL_DETECTION) && defined(__INTEL_COMPILER) && (__INTEL_COMPILER == 9999)
# define MSGPACK_COMP_INTEL_DETECTION MSGPACK_VERSION_NUMBER(12,1,0)
# endif
# if !defined(MSGPACK_COMP_INTEL_DETECTION) && defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE)
# define MSGPACK_COMP_INTEL_DETECTION MSGPACK_VERSION_NUMBER( \
MSGPACK_VERSION_NUMBER_MAJOR(MSGPACK_PREDEF_MAKE_10_VVRR(__INTEL_COMPILER)), \
MSGPACK_VERSION_NUMBER_MINOR(MSGPACK_PREDEF_MAKE_10_VVRR(__INTEL_COMPILER)), \
__INTEL_COMPILER_UPDATE)
# endif
# if !defined(MSGPACK_COMP_INTEL_DETECTION) && defined(__INTEL_COMPILER)
# define MSGPACK_COMP_INTEL_DETECTION MSGPACK_PREDEF_MAKE_10_VRP(__INTEL_COMPILER)
# define MSGPACK_COMP_INTEL_DETECTION MSGPACK_PREDEF_MAKE_10_VVRR(__INTEL_COMPILER)
# endif
# if !defined(MSGPACK_COMP_INTEL_DETECTION)
# define MSGPACK_COMP_INTEL_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE

View File

@@ -0,0 +1,60 @@
/*
Copyright Benjamin Worpitz 2018
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef MSGPACK_PREDEF_COMPILER_NVCC_H
#define MSGPACK_PREDEF_COMPILER_NVCC_H
#include <msgpack/predef/version_number.h>
#include <msgpack/predef/make.h>
/*`
[heading `MSGPACK_COMP_NVCC`]
[@https://en.wikipedia.org/wiki/NVIDIA_CUDA_Compiler NVCC] compiler.
Version number available as major, minor, and patch beginning with version 7.5.
[table
[[__predef_symbol__] [__predef_version__]]
[[`__NVCC__`] [__predef_detection__]]
[[`__CUDACC_VER_MAJOR__`, `__CUDACC_VER_MINOR__`, `__CUDACC_VER_BUILD__`] [V.R.P]]
]
*/
#define MSGPACK_COMP_NVCC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
#if defined(__NVCC__)
# if !defined(__CUDACC_VER_MAJOR__) || !defined(__CUDACC_VER_MINOR__) || !defined(__CUDACC_VER_BUILD__)
# define MSGPACK_COMP_NVCC_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE
# else
# define MSGPACK_COMP_NVCC_DETECTION MSGPACK_VERSION_NUMBER(__CUDACC_VER_MAJOR__, __CUDACC_VER_MINOR__, __CUDACC_VER_BUILD__)
# endif
#endif
#ifdef MSGPACK_COMP_NVCC_DETECTION
# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
# define MSGPACK_COMP_NVCC_EMULATED MSGPACK_COMP_NVCC_DETECTION
# else
# undef MSGPACK_COMP_NVCC
# define MSGPACK_COMP_NVCC MSGPACK_COMP_NVCC_DETECTION
# endif
# define MSGPACK_COMP_NVCC_AVAILABLE
# include <msgpack/predef/detail/comp_detected.h>
#endif
#define MSGPACK_COMP_NVCC_NAME "NVCC"
#endif
#include <msgpack/predef/detail/test.h>
MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_NVCC,MSGPACK_COMP_NVCC_NAME)
#ifdef MSGPACK_COMP_NVCC_EMULATED
#include <msgpack/predef/detail/test.h>
MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_NVCC_EMULATED,MSGPACK_COMP_NVCC_NAME)
#endif

View File

@@ -29,6 +29,10 @@ Version number available as major, minor, and patch.
[[`_MSC_FULL_VER`] [V.R.P]]
[[`_MSC_VER`] [V.R.0]]
]
[note Release of Visual Studio after 2015 will no longer be identified
by Boost Predef as the marketing version number. Instead we use the
compiler version number directly, i.e. the _MSC_VER number.]
*/
#define MSGPACK_COMP_MSVC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
@@ -53,8 +57,18 @@ Version number available as major, minor, and patch.
means that the compiler and VS product versions are no longer
in sync. Hence we need to use different formulas for
mapping from MSC version to VS product version.
VS2017 is a total nightmare when it comes to version numbers.
Hence to avoid arguments relating to that both present and
future.. Any version after VS2015 will use solely the compiler
version, i.e. cl.exe, as the version number here.
*/
# if (_MSC_VER >= 1900)
# if (_MSC_VER > 1900)
# define MSGPACK_COMP_MSVC_DETECTION MSGPACK_VERSION_NUMBER(\
_MSC_VER/100,\
_MSC_VER%100,\
MSGPACK_COMP_MSVC_BUILD)
# elif (_MSC_VER >= 1900)
# define MSGPACK_COMP_MSVC_DETECTION MSGPACK_VERSION_NUMBER(\
_MSC_VER/100-5,\
_MSC_VER%100,\

View File

@@ -24,6 +24,7 @@ http://www.boost.org/LICENSE_1_0.txt)
[[`__ARM_NEON__`] [__predef_detection__]]
[[`__aarch64__`] [__predef_detection__]]
[[`_M_ARM`] [__predef_detection__]]
[[`_M_ARM64`] [__predef_detection__]]
]
[table
@@ -32,6 +33,7 @@ http://www.boost.org/LICENSE_1_0.txt)
[[`__ARM_NEON__`] [MSGPACK_HW_SIMD_ARM_NEON_VERSION]]
[[`__aarch64__`] [MSGPACK_HW_SIMD_ARM_NEON_VERSION]]
[[`_M_ARM`] [MSGPACK_HW_SIMD_ARM_NEON_VERSION]]
[[`_M_ARM64`] [MSGPACK_HW_SIMD_ARM_NEON_VERSION]]
]
*/
@@ -39,7 +41,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define MSGPACK_HW_SIMD_ARM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
#undef MSGPACK_HW_SIMD_ARM
#if !defined(MSGPACK_HW_SIMD_ARM) && (defined(__ARM_NEON__) || defined(__aarch64__) || defined (_M_ARM))
#if !defined(MSGPACK_HW_SIMD_ARM) && (defined(__ARM_NEON__) || defined(__aarch64__) || defined (_M_ARM) || defined (_M_ARM64))
# define MSGPACK_HW_SIMD_ARM MSGPACK_HW_SIMD_ARM_NEON_VERSION
#endif

View File

@@ -21,7 +21,7 @@ http://www.boost.org/LICENSE_1_0.txt)
// ---------------------------------
/*`
[heading `MSGPACK_HW_SIMD_X86_SSE4A_VERSION`]
[heading `MSGPACK_HW_SIMD_X86_AMD_SSE4A_VERSION`]
[@https://en.wikipedia.org/wiki/SSE4##SSE4A SSE4A] x86 extension (AMD specific).
@@ -30,7 +30,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define MSGPACK_HW_SIMD_X86_AMD_SSE4A_VERSION MSGPACK_VERSION_NUMBER(4, 0, 0)
/*`
[heading `MSGPACK_HW_SIMD_X86_FMA4_VERSION`]
[heading `MSGPACK_HW_SIMD_X86_AMD_FMA4_VERSION`]
[@https://en.wikipedia.org/wiki/FMA_instruction_set#FMA4_instruction_set FMA4] x86 extension (AMD specific).
@@ -39,7 +39,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define MSGPACK_HW_SIMD_X86_AMD_FMA4_VERSION MSGPACK_VERSION_NUMBER(5, 1, 0)
/*`
[heading `MSGPACK_HW_SIMD_X86_XOP_VERSION`]
[heading `MSGPACK_HW_SIMD_X86_AMD_XOP_VERSION`]
[@https://en.wikipedia.org/wiki/XOP_instruction_set XOP] x86 extension (AMD specific).

View File

@@ -13,5 +13,6 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <msgpack/predef/language/stdc.h>
#include <msgpack/predef/language/stdcpp.h>
#include <msgpack/predef/language/objc.h>
#include <msgpack/predef/language/cuda.h>
#endif

View File

@@ -0,0 +1,52 @@
/*
Copyright Benjamin Worpitz 2018
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef MSGPACK_PREDEF_LANGUAGE_CUDA_H
#define MSGPACK_PREDEF_LANGUAGE_CUDA_H
#include <msgpack/predef/version_number.h>
#include <msgpack/predef/make.h>
/*`
[heading `MSGPACK_LANG_CUDA`]
[@https://en.wikipedia.org/wiki/CUDA CUDA C/C++] language.
If available, the version is detected as VV.RR.P.
[table
[[__predef_symbol__] [__predef_version__]]
[[`__CUDACC__`] [__predef_detection__]]
[[`__CUDA__`] [__predef_detection__]]
[[`CUDA_VERSION`] [VV.RR.P]]
]
*/
#define MSGPACK_LANG_CUDA MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
#if defined(__CUDACC__) || defined(__CUDA__)
# undef MSGPACK_LANG_CUDA
# include <cuda.h>
# if defined(CUDA_VERSION)
# define MSGPACK_LANG_CUDA MSGPACK_PREDEF_MAKE_10_VVRRP(CUDA_VERSION)
# else
# define MSGPACK_LANG_CUDA MSGPACK_VERSION_NUMBER_AVAILABLE
# endif
#endif
#if MSGPACK_LANG_CUDA
# define MSGPACK_LANG_CUDA_AVAILABLE
#endif
#define MSGPACK_LANG_CUDA_NAME "CUDA C/C++"
#endif
#include <msgpack/predef/detail/test.h>
MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LANG_CUDA,MSGPACK_LANG_CUDA_NAME)

View File

@@ -12,6 +12,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <msgpack/predef/library/c/_prefix.h>
#include <msgpack/predef/library/c/cloudabi.h>
#include <msgpack/predef/library/c/gnu.h>
#include <msgpack/predef/library/c/uc.h>
#include <msgpack/predef/library/c/vms.h>

View File

@@ -0,0 +1,53 @@
/*
* Copyright (C) 2017 James E. King III
*
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE_1_0.txt or copy at
* http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef MSGPACK_PREDEF_LIBRARY_C_CLOUDABI_H
#define MSGPACK_PREDEF_LIBRARY_C_CLOUDABI_H
#include <msgpack/predef/version_number.h>
#include <msgpack/predef/make.h>
#include <msgpack/predef/library/c/_prefix.h>
#if defined(__CloudABI__)
#include <stddef.h>
#endif
/*`
[heading `MSGPACK_LIB_C_CLOUDABI`]
[@https://github.com/NuxiNL/cloudlibc cloudlibc] - CloudABI's standard C library.
Version number available as major, and minor.
[table
[[__predef_symbol__] [__predef_version__]]
[[`__cloudlibc__`] [__predef_detection__]]
[[`__cloudlibc_major__`, `__cloudlibc_minor__`] [V.R.0]]
]
*/
#define MSGPACK_LIB_C_CLOUDABI MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
#if defined(__cloudlibc__)
# undef MSGPACK_LIB_C_CLOUDABI
# define MSGPACK_LIB_C_CLOUDABI \
MSGPACK_VERSION_NUMBER(__cloudlibc_major__,__cloudlibc_minor__,0)
#endif
#if MSGPACK_LIB_C_CLOUDABI
# define MSGPACK_LIB_C_CLOUDABI_AVAILABLE
#endif
#define MSGPACK_LIB_C_CLOUDABI_NAME "cloudlibc"
#endif
#include <msgpack/predef/detail/test.h>
MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_C_CLOUDABI,MSGPACK_LIB_C_CLOUDABI_NAME)

View File

@@ -46,10 +46,14 @@ Macros are:
#define MSGPACK_PREDEF_MAKE_0X_VVRRPP(V) MSGPACK_VERSION_NUMBER((V&0xFF0000)>>16,(V&0xFF00)>>8,(V&0xFF))
/*` `MSGPACK_PREDEF_MAKE_10_VPPP(V)` */
#define MSGPACK_PREDEF_MAKE_10_VPPP(V) MSGPACK_VERSION_NUMBER(((V)/1000)%10,0,(V)%1000)
/*` `MSGPACK_PREDEF_MAKE_10_VR0(V)` */
#define MSGPACK_PREDEF_MAKE_10_VR0(V) MSGPACK_VERSION_NUMBER(((V)/100)%10,((V)/10)%10,0)
/*` `MSGPACK_PREDEF_MAKE_10_VRP(V)` */
#define MSGPACK_PREDEF_MAKE_10_VRP(V) MSGPACK_VERSION_NUMBER(((V)/100)%10,((V)/10)%10,(V)%10)
/*` `MSGPACK_PREDEF_MAKE_10_VRP000(V)` */
#define MSGPACK_PREDEF_MAKE_10_VRP000(V) MSGPACK_VERSION_NUMBER(((V)/100000)%10,((V)/10000)%10,((V)/1000)%10)
/*` `MSGPACK_PREDEF_MAKE_10_VRPPPP(V)` */
#define MSGPACK_PREDEF_MAKE_10_VRPPPP(V) MSGPACK_VERSION_NUMBER(((V)/100000)%10,((V)/10000)%10,(V)%10000)
/*` `MSGPACK_PREDEF_MAKE_10_VRPP(V)` */
#define MSGPACK_PREDEF_MAKE_10_VRPP(V) MSGPACK_VERSION_NUMBER(((V)/1000)%10,((V)/100)%10,(V)%100)
/*` `MSGPACK_PREDEF_MAKE_10_VRR(V)` */
@@ -62,8 +66,12 @@ Macros are:
#define MSGPACK_PREDEF_MAKE_10_VV00(V) MSGPACK_VERSION_NUMBER(((V)/100)%100,0,0)
/*` `MSGPACK_PREDEF_MAKE_10_VVRR(V)` */
#define MSGPACK_PREDEF_MAKE_10_VVRR(V) MSGPACK_VERSION_NUMBER(((V)/100)%100,(V)%100,0)
/*` `MSGPACK_PREDEF_MAKE_10_VVRRP(V)` */
#define MSGPACK_PREDEF_MAKE_10_VVRRP(V) MSGPACK_VERSION_NUMBER(((V)/1000)%100,((V)/10)%100,(V)%10)
/*` `MSGPACK_PREDEF_MAKE_10_VVRRPP(V)` */
#define MSGPACK_PREDEF_MAKE_10_VVRRPP(V) MSGPACK_VERSION_NUMBER(((V)/10000)%100,((V)/100)%100,(V)%100)
/*` `MSGPACK_PREDEF_MAKE_10_VVRRPPP(V)` */
#define MSGPACK_PREDEF_MAKE_10_VVRRPPP(V) MSGPACK_VERSION_NUMBER(((V)/100000)%100,((V)/1000)%100,(V)%1000)
/*` `MSGPACK_PREDEF_MAKE_10_VVRR0PP00(V)` */
#define MSGPACK_PREDEF_MAKE_10_VVRR0PP00(V) MSGPACK_VERSION_NUMBER(((V)/10000000)%100,((V)/100000)%100,((V)/100)%100)
/*` `MSGPACK_PREDEF_MAKE_10_VVRR0PPPP(V)` */

View File

@@ -5,8 +5,8 @@ Distributed under the Boost Software License, Version 1.0.
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef MSGPACK_PREDEF_OS_ADROID_H
#define MSGPACK_PREDEF_OS_ADROID_H
#ifndef MSGPACK_PREDEF_OS_ANDROID_H
#define MSGPACK_PREDEF_OS_ANDROID_H
#include <msgpack/predef/version_number.h>
#include <msgpack/predef/make.h>

View File

@@ -34,13 +34,20 @@ http://www.boost.org/LICENSE_1_0.txt)
# define MSGPACK_OS_BSD_AVAILABLE
# endif
# undef MSGPACK_OS_BSD_FREE
# include <sys/param.h>
# if defined(__FreeBSD_version)
# if __FreeBSD_version < 500000
# if __FreeBSD_version == 491000
# define MSGPACK_OS_BSD_FREE \
MSGPACK_PREDEF_MAKE_10_VRP000(__FreeBSD_version)
MSGPACK_VERSION_NUMBER(4, 10, 0)
# elif __FreeBSD_version == 492000
# define MSGPACK_OS_BSD_FREE \
MSGPACK_VERSION_NUMBER(4, 11, 0)
# elif __FreeBSD_version < 500000
# define MSGPACK_OS_BSD_FREE \
MSGPACK_PREDEF_MAKE_10_VRPPPP(__FreeBSD_version)
# else
# define MSGPACK_OS_BSD_FREE \
MSGPACK_PREDEF_MAKE_10_VRR000(__FreeBSD_version)
MSGPACK_PREDEF_MAKE_10_VVRRPPP(__FreeBSD_version)
# endif
# else
# define MSGPACK_OS_BSD_FREE MSGPACK_VERSION_NUMBER_AVAILABLE

View File

@@ -50,6 +50,26 @@ http://www.boost.org/LICENSE_1_0.txt)
[[`OpenBSD4_7`] [4.7.0]]
[[`OpenBSD4_8`] [4.8.0]]
[[`OpenBSD4_9`] [4.9.0]]
[[`OpenBSD5_0`] [5.0.0]]
[[`OpenBSD5_1`] [5.1.0]]
[[`OpenBSD5_2`] [5.2.0]]
[[`OpenBSD5_3`] [5.3.0]]
[[`OpenBSD5_4`] [5.4.0]]
[[`OpenBSD5_5`] [5.5.0]]
[[`OpenBSD5_6`] [5.6.0]]
[[`OpenBSD5_7`] [5.7.0]]
[[`OpenBSD5_8`] [5.8.0]]
[[`OpenBSD5_9`] [5.9.0]]
[[`OpenBSD6_0`] [6.0.0]]
[[`OpenBSD6_1`] [6.1.0]]
[[`OpenBSD6_2`] [6.2.0]]
[[`OpenBSD6_3`] [6.3.0]]
[[`OpenBSD6_4`] [6.4.0]]
[[`OpenBSD6_5`] [6.5.0]]
[[`OpenBSD6_6`] [6.6.0]]
[[`OpenBSD6_7`] [6.7.0]]
[[`OpenBSD6_8`] [6.8.0]]
[[`OpenBSD6_9`] [6.9.0]]
]
*/
@@ -153,6 +173,66 @@ http://www.boost.org/LICENSE_1_0.txt)
# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_9)
# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,9,0)
# endif
# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD5_0)
# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(5,0,0)
# endif
# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD5_1)
# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(5,1,0)
# endif
# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD5_2)
# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(5,2,0)
# endif
# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD5_3)
# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(5,3,0)
# endif
# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD5_4)
# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(5,4,0)
# endif
# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD5_5)
# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(5,5,0)
# endif
# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD5_6)
# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(5,6,0)
# endif
# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD5_7)
# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(5,7,0)
# endif
# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD5_8)
# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(5,8,0)
# endif
# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD5_9)
# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(5,9,0)
# endif
# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD6_0)
# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(6,0,0)
# endif
# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD6_1)
# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(6,1,0)
# endif
# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD6_2)
# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(6,2,0)
# endif
# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD6_3)
# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(6,3,0)
# endif
# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD6_4)
# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(6,4,0)
# endif
# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD6_5)
# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(6,5,0)
# endif
# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD6_6)
# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(6,6,0)
# endif
# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD6_7)
# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(6,7,0)
# endif
# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD6_8)
# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(6,8,0)
# endif
# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD6_9)
# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(6,9,0)
# endif
# if !defined(MSGPACK_OS_BSD_OPEN)
# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER_AVAILABLE
# endif

View File

@@ -148,8 +148,7 @@ information and acquired knowledge:
# undef MSGPACK_ENDIAN_BIG_BYTE
# define MSGPACK_ENDIAN_BIG_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE
# endif
# if MSGPACK_ARCH_AMD64 || \
MSGPACK_ARCH_IA64 || \
# if MSGPACK_ARCH_IA64 || \
MSGPACK_ARCH_X86 || \
MSGPACK_ARCH_BLACKFIN
# undef MSGPACK_ENDIAN_LITTLE_BYTE

View File

@@ -0,0 +1,87 @@
/*
Copyright Rene Rivera 2017
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef MSGPACK_PREDEF_WORKAROUND_H
#define MSGPACK_PREDEF_WORKAROUND_H
/*`
[heading `MSGPACK_PREDEF_WORKAROUND`]
``
MSGPACK_PREDEF_WORKAROUND(symbol,comp,major,minor,patch)
``
Usage:
``
#if MSGPACK_PREDEF_WORKAROUND(MSGPACK_COMP_CLANG,<,3,0,0)
// Workaround for old clang compilers..
#endif
``
Defines a comparison against two version numbers that depends on the definion
of `MSGPACK_STRICT_CONFIG`. When `MSGPACK_STRICT_CONFIG` is defined this will expand
to a value convertible to `false`. Which has the effect of disabling all code
conditionally guarded by `MSGPACK_PREDEF_WORKAROUND`. When `MSGPACK_STRICT_CONFIG`
is undefine this expand to test the given `symbol` version value with the
`comp` comparison against `MSGPACK_VERSION_NUMBER(major,minor,patch)`.
*/
#ifdef MSGPACK_STRICT_CONFIG
# define MSGPACK_PREDEF_WORKAROUND(symbol, comp, major, minor, patch) (0)
#else
# include <msgpack/predef/version_number.h>
# define MSGPACK_PREDEF_WORKAROUND(symbol, comp, major, minor, patch) \
( (symbol) != (0) ) && \
( (symbol) comp (MSGPACK_VERSION_NUMBER( (major) , (minor) , (patch) )) )
#endif
/*`
[heading `MSGPACK_PREDEF_TESTED_AT`]
``
MSGPACK_PREDEF_TESTED_AT(symbol,major,minor,patch)
``
Usage:
``
#if MSGPACK_PREDEF_TESTED_AT(MSGPACK_COMP_CLANG,3,5,0)
// Needed for clang, and last checked for 3.5.0.
#endif
``
Defines a comparison against two version numbers that depends on the definion
of `MSGPACK_STRICT_CONFIG` and `MSGPACK_DETECT_OUTDATED_WORKAROUNDS`.
When `MSGPACK_STRICT_CONFIG` is defined this will expand to a value convertible
to `false`. Which has the effect of disabling all code
conditionally guarded by `MSGPACK_PREDEF_TESTED_AT`. When `MSGPACK_STRICT_CONFIG`
is undefined this expand to either:
* A value convertible to `true` when `MSGPACK_DETECT_OUTDATED_WORKAROUNDS` is not
defined.
* A value convertible `true` when the expansion of
`MSGPACK_PREDEF_WORKAROUND(symbol, <=, major, minor, patch)` is `true` and
`MSGPACK_DETECT_OUTDATED_WORKAROUNDS` is defined.
* A compile error when the expansion of
`MSGPACK_PREDEF_WORKAROUND(symbol, >, major, minor, patch)` is true and
`MSGPACK_DETECT_OUTDATED_WORKAROUNDS` is defined.
*/
#ifdef MSGPACK_STRICT_CONFIG
# define MSGPACK_PREDEF_TESTED_AT(symbol, major, minor, patch) (0)
#else
# ifdef MSGPACK_DETECT_OUTDATED_WORKAROUNDS
# define MSGPACK_PREDEF_TESTED_AT(symbol, major, minor, patch) ( \
MSGPACK_PREDEF_WORKAROUND(symbol, <=, major, minor, patch) \
? 1 \
: (1%0) )
# else
# define MSGPACK_PREDEF_TESTED_AT(symbol, major, minor, patch) \
( (symbol) >= MSGPACK_VERSION_NUMBER_AVAILABLE )
# endif
#endif
#endif

View File

@@ -11,11 +11,18 @@ http://www.boost.org/LICENSE_1_0.txt)
#define MSGPACK_PREDEF_PLATFORM_H
#endif
#include <msgpack/predef/platform/cloudabi.h>
#include <msgpack/predef/platform/mingw.h>
#include <msgpack/predef/platform/mingw32.h>
#include <msgpack/predef/platform/mingw64.h>
#include <msgpack/predef/platform/windows_uwp.h>
#include <msgpack/predef/platform/windows_desktop.h>
#include <msgpack/predef/platform/windows_store.h>
#include <msgpack/predef/platform/windows_phone.h>
#include <msgpack/predef/platform/windows_runtime.h>
#include <msgpack/predef/platform/windows_server.h>
#include <msgpack/predef/platform/windows_store.h>
#include <msgpack/predef/platform/windows_system.h>
#include <msgpack/predef/platform/windows_runtime.h> // deprecated
#include <msgpack/predef/platform/ios.h>
/*#include <msgpack/predef/platform/.h>*/
#endif

View File

@@ -0,0 +1,43 @@
/*
Copyright 2017 James E. King, III
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef MSGPACK_PREDEF_PLAT_CLOUDABI_H
#define MSGPACK_PREDEF_PLAT_CLOUDABI_H
#include <msgpack/predef/version_number.h>
#include <msgpack/predef/make.h>
/*`
[heading `MSGPACK_PLAT_CLOUDABI`]
[@https://github.com/NuxiNL/cloudabi CloudABI] platform.
[table
[[__predef_symbol__] [__predef_version__]]
[[`__CloudABI__`] [__predef_detection__]]
]
*/
#define MSGPACK_PLAT_CLOUDABI MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
#if defined(__CloudABI__)
# undef MSGPACK_PLAT_CLOUDABI
# define MSGPACK_PLAT_CLOUDABI MSGPACK_VERSION_NUMBER_AVAILABLE
#endif
#if MSGPACK_PLAT_CLOUDABI
# define MSGPACK_PLAT_CLOUDABI_AVAILABLE
# include <msgpack/predef/detail/platform_detected.h>
#endif
#define MSGPACK_PLAT_CLOUDABI_NAME "CloudABI"
#endif
#include <msgpack/predef/detail/test.h>
MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_CLOUDABI,MSGPACK_PLAT_CLOUDABI_NAME)

View File

@@ -0,0 +1,58 @@
/*
Copyright Ruslan Baratov 2017
Copyright Rene Rivera 2017
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef MSGPACK_PREDEF_PLAT_IOS_H
#define MSGPACK_PREDEF_PLAT_IOS_H
#include <msgpack/predef/os/ios.h> // MSGPACK_OS_IOS
#include <msgpack/predef/version_number.h> // MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
/*`
[heading `MSGPACK_PLAT_IOS_DEVICE`]
[heading `MSGPACK_PLAT_IOS_SIMULATOR`]
[table
[[__predef_symbol__] [__predef_version__]]
[[`TARGET_IPHONE_SIMULATOR`] [__predef_detection__]]
]
*/
#define MSGPACK_PLAT_IOS_DEVICE MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
#define MSGPACK_PLAT_IOS_SIMULATOR MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
// https://opensource.apple.com/source/CarbonHeaders/CarbonHeaders-18.1/TargetConditionals.h
#if MSGPACK_OS_IOS
# include <TargetConditionals.h>
# if TARGET_IPHONE_SIMULATOR == 1
# undef MSGPACK_PLAT_IOS_SIMULATOR
# define MSGPACK_PLAT_IOS_SIMULATOR MSGPACK_VERSION_NUMBER_AVAILABLE
# else
# undef MSGPACK_PLAT_IOS_DEVICE
# define MSGPACK_PLAT_IOS_DEVICE MSGPACK_VERSION_NUMBER_AVAILABLE
# endif
#endif
#if MSGPACK_PLAT_IOS_SIMULATOR
# define MSGPACK_PLAT_IOS_SIMULATOR_AVAILABLE
# include <msgpack/predef/detail/platform_detected.h>
#endif
#if MSGPACK_PLAT_IOS_DEVICE
# define MSGPACK_PLAT_IOS_DEVICE_AVAILABLE
# include <msgpack/predef/detail/platform_detected.h>
#endif
#define MSGPACK_PLAT_IOS_SIMULATOR_NAME "iOS Simulator"
#define MSGPACK_PLAT_IOS_DEVICE_NAME "iOS Device"
#endif // MSGPACK_PREDEF_PLAT_IOS_H
#include <msgpack/predef/detail/test.h>
MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_IOS_SIMULATOR,MSGPACK_PLAT_IOS_SIMULATOR_NAME)
MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_IOS_DEVICE,MSGPACK_PLAT_IOS_DEVICE_NAME)

View File

@@ -5,8 +5,8 @@ Distributed under the Boost Software License, Version 1.0.
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef MSGPACK_PREDEF_COMPILER_MINGW_H
#define MSGPACK_PREDEF_COMPILER_MINGW_H
#ifndef MSGPACK_PREDEF_PLAT_MINGW_H
#define MSGPACK_PREDEF_PLAT_MINGW_H
#include <msgpack/predef/version_number.h>
#include <msgpack/predef/make.h>
@@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `MSGPACK_PLAT_MINGW`]
[@http://en.wikipedia.org/wiki/MinGW MinGW] platform.
[@http://en.wikipedia.org/wiki/MinGW MinGW] platform, either variety.
Version number available as major, minor, and patch.
[table
@@ -56,7 +56,7 @@ Version number available as major, minor, and patch.
# include <msgpack/predef/detail/platform_detected.h>
#endif
#define MSGPACK_PLAT_MINGW_NAME "MinGW"
#define MSGPACK_PLAT_MINGW_NAME "MinGW (any variety)"
#endif

View File

@@ -0,0 +1,63 @@
/*
Copyright Rene Rivera 2008-2015
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef MSGPACK_PREDEF_PLAT_MINGW32_H
#define MSGPACK_PREDEF_PLAT_MINGW32_H
#include <msgpack/predef/version_number.h>
#include <msgpack/predef/make.h>
/*`
[heading `MSGPACK_PLAT_MINGW32`]
[@http://www.mingw.org/ MinGW] platform.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[[`__MINGW32__`] [__predef_detection__]]
[[`__MINGW32_VERSION_MAJOR`, `__MINGW32_VERSION_MINOR`] [V.R.0]]
]
*/
#define MSGPACK_PLAT_MINGW32 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
#if defined(__MINGW32__)
# include <_mingw.h>
# if !defined(MSGPACK_PLAT_MINGW32_DETECTION) && (defined(__MINGW32_VERSION_MAJOR) && defined(__MINGW32_VERSION_MINOR))
# define MSGPACK_PLAT_MINGW32_DETECTION \
MSGPACK_VERSION_NUMBER(__MINGW32_VERSION_MAJOR,__MINGW32_VERSION_MINOR,0)
# endif
# if !defined(MSGPACK_PLAT_MINGW32_DETECTION)
# define MSGPACK_PLAT_MINGW32_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE
# endif
#endif
#ifdef MSGPACK_PLAT_MINGW32_DETECTION
# define MSGPACK_PLAT_MINGW32_AVAILABLE
# if defined(MSGPACK_PREDEF_DETAIL_PLAT_DETECTED)
# define MSGPACK_PLAT_MINGW32_EMULATED MSGPACK_PLAT_MINGW32_DETECTION
# else
# undef MSGPACK_PLAT_MINGW32
# define MSGPACK_PLAT_MINGW32 MSGPACK_PLAT_MINGW32_DETECTION
# endif
# include <msgpack/predef/detail/platform_detected.h>
#endif
#define MSGPACK_PLAT_MINGW32_NAME "MinGW"
#endif
#include <msgpack/predef/detail/test.h>
MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_MINGW32,MSGPACK_PLAT_MINGW32_NAME)
#ifdef MSGPACK_PLAT_MINGW32_EMULATED
#include <msgpack/predef/detail/test.h>
MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_MINGW32_EMULATED,MSGPACK_PLAT_MINGW32_NAME)
#endif

View File

@@ -0,0 +1,63 @@
/*
Copyright Rene Rivera 2008-2015
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef MSGPACK_PREDEF_PLAT_MINGW64_H
#define MSGPACK_PREDEF_PLAT_MINGW64_H
#include <msgpack/predef/version_number.h>
#include <msgpack/predef/make.h>
/*`
[heading `MSGPACK_PLAT_MINGW64`]
[@https://mingw-w64.org/ MinGW-w64] platform.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[[`__MINGW64__`] [__predef_detection__]]
[[`__MINGW64_VERSION_MAJOR`, `__MINGW64_VERSION_MINOR`] [V.R.0]]
]
*/
#define MSGPACK_PLAT_MINGW64 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
#if defined(__MINGW64__)
# include <_mingw.h>
# if !defined(MSGPACK_PLAT_MINGW64_DETECTION) && (defined(__MINGW64_VERSION_MAJOR) && defined(__MINGW64_VERSION_MINOR))
# define MSGPACK_PLAT_MINGW64_DETECTION \
MSGPACK_VERSION_NUMBER(__MINGW64_VERSION_MAJOR,__MINGW64_VERSION_MINOR,0)
# endif
# if !defined(MSGPACK_PLAT_MINGW64_DETECTION)
# define MSGPACK_PLAT_MINGW64_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE
# endif
#endif
#ifdef MSGPACK_PLAT_MINGW64_DETECTION
# define MSGPACK_PLAT_MINGW64_AVAILABLE
# if defined(MSGPACK_PREDEF_DETAIL_PLAT_DETECTED)
# define MSGPACK_PLAT_MINGW64_EMULATED MSGPACK_PLAT_MINGW64_DETECTION
# else
# undef MSGPACK_PLAT_MINGW64
# define MSGPACK_PLAT_MINGW64 MSGPACK_PLAT_MINGW64_DETECTION
# endif
# include <msgpack/predef/detail/platform_detected.h>
#endif
#define MSGPACK_PLAT_MINGW64_NAME "MinGW-w64"
#endif
#include <msgpack/predef/detail/test.h>
MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_MINGW64,MSGPACK_PLAT_MINGW64_NAME)
#ifdef MSGPACK_PLAT_MINGW64_EMULATED
#include <msgpack/predef/detail/test.h>
MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_MINGW64_EMULATED,MSGPACK_PLAT_MINGW64_NAME)
#endif

View File

@@ -9,25 +9,31 @@ http://www.boost.org/LICENSE_1_0.txt)
#ifndef MSGPACK_PREDEF_PLAT_WINDOWS_DESKTOP_H
#define MSGPACK_PREDEF_PLAT_WINDOWS_DESKTOP_H
#include <msgpack/predef/version_number.h>
#include <msgpack/predef/make.h>
#include <msgpack/predef/os/windows.h>
#include <msgpack/predef/platform/windows_uwp.h>
#include <msgpack/predef/version_number.h>
/*`
[heading `MSGPACK_PLAT_WINDOWS_DESKTOP`]
[@https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide UWP]
for Windows Desktop development. Also available if the Platform SDK is too
old to support UWP.
[table
[[__predef_symbol__] [__predef_version__]]
[[`!WINAPI_FAMILY`] [__predef_detection__]]
[[`WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP`] [__predef_detection__]]
[[`!MSGPACK_PLAT_WINDOWS_UWP`] [__predef_detection__]]
]
*/
#define MSGPACK_PLAT_WINDOWS_DESKTOP MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
#if MSGPACK_OS_WINDOWS && \
( !defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP) )
((defined(WINAPI_FAMILY_DESKTOP_APP) && WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP) || \
!MSGPACK_PLAT_WINDOWS_UWP)
# undef MSGPACK_PLAT_WINDOWS_DESKTOP
# define MSGPACK_PLAT_WINDOWS_DESKTOP MSGPACK_VERSION_NUMBER_AVAILABLE
#endif

View File

@@ -9,13 +9,17 @@ http://www.boost.org/LICENSE_1_0.txt)
#ifndef MSGPACK_PREDEF_PLAT_WINDOWS_PHONE_H
#define MSGPACK_PREDEF_PLAT_WINDOWS_PHONE_H
#include <msgpack/predef/version_number.h>
#include <msgpack/predef/make.h>
#include <msgpack/predef/os/windows.h>
#include <msgpack/predef/platform/windows_uwp.h>
#include <msgpack/predef/version_number.h>
/*`
[heading `MSGPACK_PLAT_WINDOWS_PHONE`]
[@https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide UWP]
for Windows Phone development.
[table
[[__predef_symbol__] [__predef_version__]]
@@ -25,7 +29,8 @@ http://www.boost.org/LICENSE_1_0.txt)
#define MSGPACK_PLAT_WINDOWS_PHONE MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
#if MSGPACK_OS_WINDOWS && defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
#if MSGPACK_OS_WINDOWS && \
defined(WINAPI_FAMILY_PHONE_APP) && WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
# undef MSGPACK_PLAT_WINDOWS_PHONE
# define MSGPACK_PLAT_WINDOWS_PHONE MSGPACK_VERSION_NUMBER_AVAILABLE
#endif

View File

@@ -9,25 +9,33 @@ http://www.boost.org/LICENSE_1_0.txt)
#ifndef MSGPACK_PREDEF_PLAT_WINDOWS_RUNTIME_H
#define MSGPACK_PREDEF_PLAT_WINDOWS_RUNTIME_H
#include <msgpack/predef/version_number.h>
#include <msgpack/predef/make.h>
#include <msgpack/predef/os/windows.h>
#include <msgpack/predef/platform/windows_phone.h>
#include <msgpack/predef/platform/windows_store.h>
#include <msgpack/predef/version_number.h>
/*`
[heading `MSGPACK_PLAT_WINDOWS_RUNTIME`]
Deprecated.
[@https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide UWP]
for Windows Phone or Store development. This does not align to the existing development model for
UWP and is deprecated. Use one of the other `MSGPACK_PLAT_WINDOWS_*`definitions instead.
[table
[[__predef_symbol__] [__predef_version__]]
[[`WINAPI_FAMILY == WINAPI_FAMILY_APP`] [__predef_detection__]]
[[`WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP`] [__predef_detection__]]
[[`MSGPACK_PLAT_WINDOWS_PHONE`] [__predef_detection__]]
[[`MSGPACK_PLAT_WINDOWS_STORE`] [__predef_detection__]]
]
*/
#define MSGPACK_PLAT_WINDOWS_RUNTIME MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
#if MSGPACK_OS_WINDOWS && defined(WINAPI_FAMILY) && \
( WINAPI_FAMILY == WINAPI_FAMILY_APP || WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP )
#if MSGPACK_OS_WINDOWS && \
(MSGPACK_PLAT_WINDOWS_STORE || MSGPACK_PLAT_WINDOWS_PHONE)
# undef MSGPACK_PLAT_WINDOWS_RUNTIME
# define MSGPACK_PLAT_WINDOWS_RUNTIME MSGPACK_VERSION_NUMBER_AVAILABLE
#endif

View File

@@ -0,0 +1,47 @@
/*
Copyright James E. King III, 2017
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef MSGPACK_PREDEF_PLAT_WINDOWS_SERVER_H
#define MSGPACK_PREDEF_PLAT_WINDOWS_SERVER_H
#include <msgpack/predef/make.h>
#include <msgpack/predef/os/windows.h>
#include <msgpack/predef/platform/windows_uwp.h>
#include <msgpack/predef/version_number.h>
/*`
[heading `MSGPACK_PLAT_WINDOWS_SERVER`]
[@https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide UWP]
for Windows Server development.
[table
[[__predef_symbol__] [__predef_version__]]
[[`WINAPI_FAMILY == WINAPI_FAMILY_SERVER`] [__predef_detection__]]
]
*/
#define MSGPACK_PLAT_WINDOWS_SERVER MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
#if MSGPACK_OS_WINDOWS && \
defined(WINAPI_FAMILY_SERVER) && WINAPI_FAMILY == WINAPI_FAMILY_SERVER
# undef MSGPACK_PLAT_WINDOWS_SERVER
# define MSGPACK_PLAT_WINDOWS_SERVER MSGPACK_VERSION_NUMBER_AVAILABLE
#endif
#if MSGPACK_PLAT_WINDOWS_SERVER
# define MSGPACK_PLAT_WINDOWS_SERVER_AVAILABLE
# include <msgpack/predef/detail/platform_detected.h>
#endif
#define MSGPACK_PLAT_WINDOWS_SERVER_NAME "Windows Server"
#endif
#include <msgpack/predef/detail/test.h>
MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_WINDOWS_SERVER,MSGPACK_PLAT_WINDOWS_SERVER_NAME)

View File

@@ -9,23 +9,30 @@ http://www.boost.org/LICENSE_1_0.txt)
#ifndef MSGPACK_PREDEF_PLAT_WINDOWS_STORE_H
#define MSGPACK_PREDEF_PLAT_WINDOWS_STORE_H
#include <msgpack/predef/version_number.h>
#include <msgpack/predef/make.h>
#include <msgpack/predef/os/windows.h>
#include <msgpack/predef/platform/windows_uwp.h>
#include <msgpack/predef/version_number.h>
/*`
[heading `MSGPACK_PLAT_WINDOWS_STORE`]
[@https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide UWP]
for Windows Store development.
[table
[[__predef_symbol__] [__predef_version__]]
[[`WINAPI_FAMILY == WINAPI_FAMILY_APP`] [__predef_detection__]]
[[`WINAPI_FAMILY == WINAPI_FAMILY_PC_APP`] [__predef_detection__]]
[[`WINAPI_FAMILY == WINAPI_FAMILY_APP` (deprecated)] [__predef_detection__]]
]
*/
#define MSGPACK_PLAT_WINDOWS_STORE MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
#if MSGPACK_OS_WINDOWS && defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_APP
#if MSGPACK_OS_WINDOWS && \
((defined(WINAPI_FAMILY_PC_APP) && WINAPI_FAMILY == WINAPI_FAMILY_PC_APP) || \
(defined(WINAPI_FAMILY_APP) && WINAPI_FAMILY == WINAPI_FAMILY_APP))
# undef MSGPACK_PLAT_WINDOWS_STORE
# define MSGPACK_PLAT_WINDOWS_STORE MSGPACK_VERSION_NUMBER_AVAILABLE
#endif

View File

@@ -0,0 +1,47 @@
/*
Copyright James E. King III, 2017
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef MSGPACK_PREDEF_PLAT_WINDOWS_SYSTEM_H
#define MSGPACK_PREDEF_PLAT_WINDOWS_SYSTEM_H
#include <msgpack/predef/make.h>
#include <msgpack/predef/os/windows.h>
#include <msgpack/predef/platform/windows_uwp.h>
#include <msgpack/predef/version_number.h>
/*`
[heading `MSGPACK_PLAT_WINDOWS_SYSTEM`]
[@https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide UWP]
for Windows System development.
[table
[[__predef_symbol__] [__predef_version__]]
[[`WINAPI_FAMILY == WINAPI_FAMILY_SYSTEM`] [__predef_detection__]]
]
*/
#define MSGPACK_PLAT_WINDOWS_SYSTEM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
#if MSGPACK_OS_WINDOWS && \
defined(WINAPI_FAMILY_SYSTEM) && WINAPI_FAMILY == WINAPI_FAMILY_SYSTEM
# undef MSGPACK_PLAT_WINDOWS_SYSTEM
# define MSGPACK_PLAT_WINDOWS_SYSTEM MSGPACK_VERSION_NUMBER_AVAILABLE
#endif
#if MSGPACK_PLAT_WINDOWS_SYSTEM
# define MSGPACK_PLAT_WINDOWS_SYSTEM_AVAILABLE
# include <msgpack/predef/detail/platform_detected.h>
#endif
#define MSGPACK_PLAT_WINDOWS_SYSTEM_NAME "Windows Drivers and Tools"
#endif
#include <msgpack/predef/detail/test.h>
MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_WINDOWS_SYSTEM,MSGPACK_PLAT_WINDOWS_SYSTEM_NAME)

View File

@@ -0,0 +1,60 @@
/*
Copyright James E. King III, 2017
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef MSGPACK_PREDEF_PLAT_WINDOWS_UWP_H
#define MSGPACK_PREDEF_PLAT_WINDOWS_UWP_H
#include <msgpack/predef/make.h>
#include <msgpack/predef/os/windows.h>
#include <msgpack/predef/version_number.h>
/*`
[heading `MSGPACK_PLAT_WINDOWS_UWP`]
[@http://docs.microsoft.com/windows/uwp/ Universal Windows Platform]
is available if the current development environment is capable of targeting
UWP development.
[table
[[__predef_symbol__] [__predef_version__]]
[[`__MINGW64_VERSION_MAJOR` from `_mingw.h`] [`>= 3`]]
[[`VER_PRODUCTBUILD` from `ntverp.h`] [`>= 9200`]]
]
*/
#define MSGPACK_PLAT_WINDOWS_UWP MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
#define MSGPACK_PLAT_WINDOWS_SDK_VERSION MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
#if MSGPACK_OS_WINDOWS
// MinGW (32-bit) has no ntverp.h header
#if !defined(__MINGW32__)
# include <ntverp.h>
# undef MSGPACK_PLAT_WINDOWS_SDK_VERSION
# define MSGPACK_PLAT_WINDOWS_SDK_VERSION MSGPACK_VERSION_NUMBER(0, 0, VER_PRODUCTBUILD)
#endif
// 9200 is Windows SDK 8.0 from ntverp.h which introduced family support
#if ((MSGPACK_PLAT_WINDOWS_SDK_VERSION >= MSGPACK_VERSION_NUMBER(0, 0, 9200)) || \
(defined(__MINGW64__) && __MINGW64_VERSION_MAJOR >= 3))
# undef MSGPACK_PLAT_WINDOWS_UWP
# define MSGPACK_PLAT_WINDOWS_UWP MSGPACK_VERSION_NUMBER_AVAILABLE
#endif
#endif
#if MSGPACK_PLAT_WINDOWS_UWP
# define MSGPACK_PLAT_WINDOWS_UWP_AVAILABLE
# include <msgpack/predef/detail/platform_detected.h>
# include <winapifamily.h> // Windows SDK
#endif
#define MSGPACK_PLAT_WINDOWS_UWP_NAME "Universal Windows Platform"
#endif
#include <msgpack/predef/detail/test.h>
MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_WINDOWS_UWP, MSGPACK_PLAT_WINDOWS_UWP_NAME)

Some files were not shown because too many files have changed in this diff Show More