mirror of
				https://github.com/msgpack/msgpack-c.git
				synced 2025-10-22 08:02:08 +02:00 
			
		
		
		
	Compare commits
	
		
			87 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 3bdbf0d2ee | ||
|   | d8324b58e9 | ||
|   | c0708dbcba | ||
|   | 5dc0a904de | ||
|   | 4ed6b45abd | ||
|   | 4ea4d69123 | ||
|   | 0b8d6a6614 | ||
|   | 1339343077 | ||
|   | 4ca74c28fb | ||
|   | 5ef0108088 | ||
|   | b065560404 | ||
|   | 93b41492fe | ||
|   | c1b3d7530f | ||
|   | ca9f25b51e | ||
|   | 860f7fce55 | ||
|   | 76f5af0593 | ||
|   | d04b1e7549 | ||
|   | 0fddfe8058 | ||
|   | 78814311cb | ||
|   | 073394cbba | ||
|   | 25d6f84f3c | ||
|   | 4022c2fc00 | ||
|   | 7b7615a6d9 | ||
|   | 0af15e45de | ||
|   | 18ec42ccac | ||
|   | be4d971c62 | ||
|   | 3feac1f51d | ||
|   | 2b78d50d13 | ||
|   | 77045f13bb | ||
|   | 388891edad | ||
|   | fc3de9806e | ||
|   | 54b2b23b25 | ||
|   | b9381f842e | ||
|   | 90677eb58c | ||
|   | dfbfd927b4 | ||
|   | e487321ed6 | ||
|   | 7c7f45fbea | ||
|   | 7707c81c5d | ||
|   | a66da75bd4 | ||
|   | 3944993686 | ||
|   | 6b6a05e07c | ||
|   | 6c8ec25016 | ||
|   | 04726a5acf | ||
|   | 44aa90eb50 | ||
|   | ab36ce2654 | ||
|   | 780c504c44 | ||
|   | d852e6e4fb | ||
|   | 65938a95e9 | ||
|   | b9d06fe207 | ||
|   | 555cd3ff68 | ||
|   | e88fa26f7a | ||
|   | 0d203644be | ||
|   | d53d42a791 | ||
|   | 14763a8b31 | ||
|   | 70912ffde4 | ||
|   | 6598c6228f | ||
|   | eb1e7e6e07 | ||
|   | 544978b343 | ||
|   | c8a053557c | ||
|   | 71687c4229 | ||
|   | 3557e6c9f9 | ||
|   | 0e22de17b1 | ||
|   | b0860a5f37 | ||
|   | 447e8dfb07 | ||
|   | 8ee6df83cc | ||
|   | 0168468ac8 | ||
|   | ee29324fd5 | ||
|   | 194d1a470d | ||
|   | ebb5e0ceca | ||
|   | f72c6c48f7 | ||
|   | fc18087cdf | ||
|   | da2fc25f87 | ||
|   | 4629583662 | ||
|   | c7b7e745b3 | ||
|   | 899d3319bf | ||
|   | 6eaf7fd38d | ||
|   | 01260a263d | ||
|   | 30ed4e35b7 | ||
|   | 44f2a6a56e | ||
|   | 3b80c45725 | ||
|   | 6b197e7328 | ||
|   | 498fe28b43 | ||
|   | ad9106e38b | ||
|   | 7ca4ec95e5 | ||
|   | 2f5b137997 | ||
|   | 328be0b445 | ||
|   | 689e6d053a | 
							
								
								
									
										38
									
								
								.github/depends/boost.sh
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										38
									
								
								.github/depends/boost.sh
									
									
									
									
										vendored
									
									
								
							| @@ -1,23 +1,35 @@ | ||||
| #!/bin/sh | ||||
| #!/bin/bash | ||||
|  | ||||
| usage() | ||||
| { | ||||
|   cat <<EOL | ||||
|   -b   - 32-bit or 64-bit library, maybe 32, 64 or both | ||||
|   -t   - the toolset, maybe gcc, clang or both | ||||
|   -p   - installation prefix | ||||
| EOL | ||||
| } | ||||
|  | ||||
| build_boost() | ||||
| { | ||||
|   BASE=`pwd`/.. | ||||
|   ./b2 -j4 --toolset=$1 --prefix=${BASE}/usr --libdir="${BASE}/usr/$1/lib$2" --with-chrono --with-context --with-filesystem --with-system --with-timer address-model=$2 install | ||||
|   ./b2 \ | ||||
|       --toolset=$1 \ | ||||
|       --prefix=$3/$2 \ | ||||
|       --with-test \ | ||||
|       --with-headers \ | ||||
|       --with-chrono \ | ||||
|       --with-context \ | ||||
|       --with-filesystem \ | ||||
|       --with-system \ | ||||
|       --with-timer \ | ||||
|       address-model=$2 \ | ||||
|       install || exit 1 | ||||
| } | ||||
|  | ||||
| bit="64" | ||||
| toolset="gcc" | ||||
| prefix="$HOME/boost-prefix" | ||||
|  | ||||
| while getopts "b:t:" c; do | ||||
| while getopts "b:t:p:" c; do | ||||
|   case "$c" in | ||||
|     b) | ||||
|       bit="$OPTARG" | ||||
| @@ -27,24 +39,28 @@ while getopts "b:t:" c; do | ||||
|       toolset="$OPTARG" | ||||
|       [ "$toolset" != "gcc" ] && [ "$toolset" != "clang" ] && [ "$toolset" != "both" ] && usage && exit 1 | ||||
|       ;; | ||||
|     p) | ||||
|       prefix="$OPTARG" | ||||
|       ;; | ||||
|     ?*) | ||||
|       echo "invalid arguments." && exit 1 | ||||
|       ;; | ||||
|   esac | ||||
| done | ||||
|  | ||||
| wget https://dl.bintray.com/boostorg/release/1.71.0/source/boost_1_71_0.tar.bz2 | ||||
| tar xf boost_1_71_0.tar.bz2 | ||||
| cd boost_1_71_0 | ||||
| ./bootstrap.sh | ||||
| mkdir $prefix || exit 1 | ||||
| wget https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.tar.bz2 || exit 1 | ||||
| tar xf boost_1_76_0.tar.bz2 || exit 1 | ||||
| cd boost_1_76_0 | ||||
| ./bootstrap.sh || exit 1 | ||||
|  | ||||
| build() | ||||
| { | ||||
|   if [ "$bit" = "both" ]; then | ||||
|     build_boost $1 32 | ||||
|     build_boost $1 64 | ||||
|     build_boost $1 32 $prefix | ||||
|     build_boost $1 64 $prefix | ||||
|   else | ||||
|     build_boost $1 $bit | ||||
|     build_boost $1 $bit $prefix | ||||
|   fi | ||||
| } | ||||
|  | ||||
|   | ||||
							
								
								
									
										51
									
								
								.github/depends/zlib.sh
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										51
									
								
								.github/depends/zlib.sh
									
									
									
									
										vendored
									
									
										Executable file
									
								
							| @@ -0,0 +1,51 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| usage() | ||||
| { | ||||
|   cat <<EOL | ||||
|   -b   - 32-bit or 64-bit library, maybe 32 or 64 | ||||
|   -p   - installation prefix | ||||
| EOL | ||||
| } | ||||
|  | ||||
| bit="64" | ||||
| prefix="$HOME/zlib-prefix" | ||||
|  | ||||
| while getopts "b:t:p:" c; do | ||||
|   case "$c" in | ||||
|     b) | ||||
|       bit="$OPTARG" | ||||
|       [ "$bit" != "32" ] && [ "$bit" != "64" ] && [ "$bit" != "both" ] && usage && exit 1 | ||||
|       ;; | ||||
|     p) | ||||
|       prefix="$OPTARG" | ||||
|       ;; | ||||
|     ?*) | ||||
|       echo "invalid arguments." && exit 1 | ||||
|       ;; | ||||
|   esac | ||||
| done | ||||
|  | ||||
| mkdir $prefix || exit 1 | ||||
| wget https://zlib.net/zlib-1.2.11.tar.gz || exit 1 | ||||
| tar -xf zlib-1.2.11.tar.gz || exit 1 | ||||
| cd zlib-1.2.11 | ||||
|  | ||||
| build() | ||||
| { | ||||
|   cmake \ | ||||
|     -D CMAKE_BUILD_TYPE=Release \ | ||||
|     -D CMAKE_INSTALL_PREFIX=$2/$1 \ | ||||
|     -D CMAKE_C_FLAGS="-m$1" \ | ||||
|     -D CMAKE_SHARED_LINKER_FLAGS="-m$1" \ | ||||
|     -B build$1 \ | ||||
|     -S . | ||||
|   cmake --build build$1 --target install | ||||
| } | ||||
|  | ||||
| if [ "$bit" = "both" ]; then | ||||
|   build 32 $prefix | ||||
|   build 64 $prefix | ||||
| else | ||||
|   build $bit $prefix | ||||
| fi | ||||
							
								
								
									
										61
									
								
								.github/workflows/coverage.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										61
									
								
								.github/workflows/coverage.yml
									
									
									
									
										vendored
									
									
								
							| @@ -5,52 +5,63 @@ on: | ||||
|     types: [opened, synchronize] | ||||
|   push: | ||||
|     branches: | ||||
|     - master | ||||
|     - cpp_master | ||||
|     tags: | ||||
|     - '*' | ||||
|  | ||||
| jobs: | ||||
|  | ||||
|   codecov: | ||||
|     timeout-minutes: 30 | ||||
|     runs-on: ubuntu-latest | ||||
|  | ||||
|     steps: | ||||
|     - uses: actions/checkout@v1 | ||||
|     - name: install depends | ||||
|     - name: Install build dependencies | ||||
|       run: | | ||||
|         sudo apt-get update | ||||
|         sudo apt-get install g++-multilib lcov | ||||
|         sudo apt-get install g++-10 cmake lcov -y | ||||
|         ./ci/set_gcc_10.sh | ||||
|  | ||||
|     - name: Cache boost | ||||
|       id: cache-boost | ||||
|       uses: actions/cache@v1 | ||||
|       with: | ||||
|         path: usr | ||||
|         key: ${{ runner.os }}-boost-20200107 | ||||
|         path: ~/boost-prefix/ | ||||
|         key: ${{ runner.os }}-boost-64-1-76-0-2021-08-09 | ||||
|  | ||||
|     - name: Build boost | ||||
|       if: steps.cache-boost.outputs.cache-hit != 'true' | ||||
|       run: ./.github/depends/boost.sh -b both -t gcc | ||||
|       run: ./.github/depends/boost.sh -b 64 -t gcc -p $HOME/boost-prefix | ||||
|  | ||||
|     - name: Cache zlib | ||||
|       id: cache-zlib | ||||
|       uses: actions/cache@v1 | ||||
|       with: | ||||
|         path: ~/zlib-prefix/ | ||||
|         key: ${{ runner.os }}-zlib-64-1-2-11-2021-08-09 | ||||
|  | ||||
|     - name: Build zlib | ||||
|       if: steps.cache-zlib.outputs.cache-hit != 'true' | ||||
|       run: ./.github/depends/zlib.sh -b 64 -p $HOME/zlib-prefix | ||||
|  | ||||
|     - name: Compile tests | ||||
|       run: | | ||||
|         # install gtest | ||||
|         BASE=`pwd` | ||||
|         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 | ||||
|         cd googletest-release-1.7.0 | ||||
|         g++ -m64 src/gtest-all.cc -I. -Iinclude -c -fPIC | ||||
|         g++ -m64 src/gtest_main.cc -I. -Iinclude -c -fPIC | ||||
|         ar -rv libgtest.a gtest-all.o | ||||
|         ar -rv libgtest_main.a gtest_main.o | ||||
|         mkdir -p ${BASE}/usr/include | ||||
|         cp -r include/gtest ${BASE}/usr/include | ||||
|         mkdir -p ${BASE}/usr/lib | ||||
|         mv *.a ${BASE}/usr/lib | ||||
|         cd .. | ||||
|         mkdir build | ||||
|         cmake \ | ||||
|             -D MSGPACK_CXX20=ON \ | ||||
|             -D MSGPACK_32BIT=OFF \ | ||||
|             -D MSGPACK_CHAR_SIGN=signed \ | ||||
|             -D MSGPACK_USE_X3_PARSE=ON \ | ||||
|             -D MSGPACK_BUILD_EXAMPLES=ON \ | ||||
|             -D MSGPACK_BUILD_TESTS=ON \ | ||||
|             -D CMAKE_BUILD_TYPE=Debug \ | ||||
|             -D MSGPACK_GEN_COVERAGE=ON \ | ||||
|             -D CMAKE_PREFIX_PATH="$HOME/zlib-prefix/64;$HOME/boost-prefix/64" \ | ||||
|             -B build \ | ||||
|             -S . || exit 1 | ||||
|         cmake --build build --target all || exit 1 | ||||
|         ctest --test-dir build || exit 1 | ||||
|  | ||||
|         mkdir build && cd build | ||||
|         CMAKE_LIBRARY_PATH="${BASE}/build" GTEST_ROOT="${BASE}/usr" CMAKE_PREFIX_PATH="${BASE}/usr/gcc/lib64/cmake" cmake -DMSGPACK_CXX17=ON -DMSGPACK_32BIT=OFF -DMSGPACK_BOOST=ON -DBUILD_SHARED_LIBS=ON -DMSGPACK_CHAR_SIGN=signed -DMSGPACK_USE_X3_PARSE=ON -DMSGPACK_ENABLE_CXX=ON -DMSGPACK_BUILD_EXAMPLES=ON -DMSGPACK_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Debug -DMSGPACK_GEN_COVERAGE=ON .. | ||||
|         make -j4 | ||||
|         make test | ||||
|     - name: Upload coverage to Codecov | ||||
|       working-directory: build | ||||
|       run: | | ||||
|   | ||||
							
								
								
									
										420
									
								
								.github/workflows/gha.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										420
									
								
								.github/workflows/gha.yml
									
									
									
									
										vendored
									
									
								
							| @@ -5,300 +5,232 @@ on: | ||||
|     types: [opened, synchronize] | ||||
|   push: | ||||
|     branches: | ||||
|     - master | ||||
|     - cpp_master | ||||
|     tags: | ||||
|     - '*' | ||||
|  | ||||
| jobs: | ||||
|   macos: | ||||
|     name: ${{ format('macOS (pattern {0})', matrix.pattern) }} | ||||
|     runs-on: macos-latest | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         pattern: [0, 1, 2, 3] | ||||
|         pattern: [0, 1, 2, 3, 4] | ||||
|     steps: | ||||
|     - uses: actions/checkout@v1 | ||||
|     - uses: actions/checkout@v2 | ||||
|  | ||||
|     - name: Cache boost | ||||
|       id: cache-boost | ||||
|       uses: actions/cache@v1 | ||||
|       uses: actions/cache@v2 | ||||
|       with: | ||||
|         path: usr | ||||
|         key: ${{ runner.os }}-boost-20200107 | ||||
|         path: ~/boost-prefix/ | ||||
|         key: ${{ runner.os }}-boost-1-76-0-2021-08-09 | ||||
|  | ||||
|     - name: Build boost | ||||
|       if: steps.cache-boost.outputs.cache-hit != 'true' | ||||
|       run: ./.github/depends/boost.sh -b 64 -t clang | ||||
|     - name: build and test | ||||
|       env: | ||||
|         CC: clang | ||||
|         CXX: clang++ | ||||
|       run: ./.github/depends/boost.sh -b 64 -t clang -p $HOME/boost-prefix | ||||
|  | ||||
|     - name: Cache zlib | ||||
|       id: cache-zlib | ||||
|       uses: actions/cache@v2 | ||||
|       with: | ||||
|         path: ~/zlib-prefix/ | ||||
|         key: ${{ runner.os }}-zlib-1-2-11-2021-08-09 | ||||
|  | ||||
|     - name: Build zlib | ||||
|       if: steps.cache-zlib.outputs.cache-hit != 'true' | ||||
|       run: ./.github/depends/zlib.sh -b 64 -p $HOME/zlib-prefix | ||||
|  | ||||
|     - name: Build and test | ||||
|       shell: bash | ||||
|       run: | | ||||
|         BASE=`pwd`; | ||||
|  | ||||
|         # matrix config | ||||
|         if [ ${{ matrix.pattern }} == 0 ]; then | ||||
|           ACTION="ci/build_cmake.sh" | ||||
|           export CXX17="ON" | ||||
|           export ARCH="64" | ||||
|           export BOOST="ON" | ||||
|           SHARED="ON" | ||||
|           export CHAR_SIGN="unsigned" | ||||
|           export API_VERSION="1" | ||||
|         fi | ||||
|         if [ ${{ matrix.pattern }} == 1 ]; then | ||||
|           ACTION="ci/build_cmake.sh" | ||||
|           export CXX17="ON" | ||||
|           export ARCH="64" | ||||
|           export BOOST="ON" | ||||
|           export SHARED="ON" | ||||
|         # default configuration - overwrite its params later depending on matrix.pattern | ||||
|         export MSGPACK_CXX_VERSION="MSGPACK_CXX20=ON" | ||||
|         export ARCH=64 | ||||
|         export API_VERSION=3 | ||||
|         export CHAR_SIGN="signed" | ||||
|           export API_VERSION="3" | ||||
|         fi | ||||
|         if [ ${{ matrix.pattern }} == 2 ]; then | ||||
|           ACTION="ci/build_cmake.sh" | ||||
|           export CXX17="ON" | ||||
|           export ARCH="64" | ||||
|           export SHARED="ON" | ||||
|           export CHAR_SIGN="signed" | ||||
|           export API_VERSION="2" | ||||
|         fi | ||||
|         if [ ${{ matrix.pattern }} == 3 ]; then | ||||
|           ACTION="ci/build_cmake.sh" | ||||
|           export ARCH="64" | ||||
|           export SHARED="ON" | ||||
|           export CHAR_SIGN="unsigned" | ||||
|           export API_VERSION="2" | ||||
|         fi | ||||
|         export X3_PARSE="OFF" | ||||
|         export SANITIZE="-fsanitize=undefined -fno-sanitize-recover=all" | ||||
|  | ||||
|         # install 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 | ||||
|         cd googletest-release-1.7.0 | ||||
|         $CXX -m${ARCH} src/gtest-all.cc -I. -Iinclude -c | ||||
|         $CXX -m${ARCH} src/gtest_main.cc -I. -Iinclude -c | ||||
|         ar -rv libgtest.a gtest-all.o | ||||
|         ar -rv libgtest_main.a gtest_main.o | ||||
|         mkdir -p ${BASE}/usr/include | ||||
|         cp -r include/gtest ${BASE}/usr/include | ||||
|         mkdir -p ${BASE}/usr/lib | ||||
|         mv *.a ${BASE}/usr/lib | ||||
|         cd .. | ||||
|         case ${{ matrix.pattern }} in | ||||
|           0) | ||||
|             export MSGPACK_CXX_VERSION="MSGPACK_CXX11=OFF" | ||||
|             ;; | ||||
|           1) | ||||
|             export API_VERSION=1 | ||||
|             ;; | ||||
|           2) | ||||
|             export API_VERSION=2 | ||||
|             ;; | ||||
|           3) | ||||
|             export X3_PARSE="ON" | ||||
|             ;; | ||||
|           4) | ||||
|             export CHAR_SIGN="unsigned" | ||||
|             ;; | ||||
|         esac | ||||
|  | ||||
|         # build and test | ||||
|         CMAKE_CXX_COMPILER="${CXX}" CMAKE_C_COMPILER="${CC}" CMAKE_LIBRARY_PATH="${BASE}/usr/lib:${BASE}/build" GTEST_ROOT="${BASE}/usr" CMAKE_PREFIX_PATH="${BASE}/usr/clang/lib${ARCH}/cmake" CFLAGS="-Werror -g" CXXFLAGS="-Werror -g" ${ACTION} | ||||
|         export CXX="clang++" | ||||
|         CMAKE_CXX_COMPILER="$CXX" CXXFLAGS="-Werror -g ${SANITIZE}" ci/build_cmake.sh || exit 1 | ||||
|  | ||||
|         cat Files.cmake| grep ".*\.[h|hpp]" | perl -pe 's/ //g' | sort > tmp1  && find include -name "*.h" -o -name "*.hpp" | sort > tmp2 && diff tmp1 tmp2 | ||||
|  | ||||
|   linux: | ||||
|     runs-on: ubuntu-18.04 | ||||
|     name: ${{ format('Linux (pattern {0})', matrix.pattern) }} | ||||
|     runs-on: ubuntu-20.04 | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         pattern: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] | ||||
|     steps: | ||||
|     - uses: actions/checkout@v1 | ||||
|     - name: install depends | ||||
|       run: | | ||||
|         sudo apt-get update | ||||
|         sudo apt-get install g++-multilib clang-8 valgrind | ||||
|     - name: Cache boost | ||||
|       id: cache-boost | ||||
|       uses: actions/cache@v1 | ||||
|       with: | ||||
|         path: usr | ||||
|         key: ${{ runner.os }}-boost-20200107 | ||||
|     - name: Build boost | ||||
|       if: steps.cache-boost.outputs.cache-hit != 'true' | ||||
|       run: ./.github/depends/boost.sh -b both -t gcc | ||||
|     - name: build and test | ||||
|     - uses: actions/checkout@v2 | ||||
|  | ||||
|     - name: Install build dependencies | ||||
|       shell: bash | ||||
|       run: | | ||||
|         BASE=`pwd`; | ||||
|         sudo apt-get update | ||||
|         sudo apt-get install g++-10 cmake valgrind -y | ||||
|         sudo apt-get install g++-10-multilib -y  # for 32-bit compile | ||||
|         ./ci/set_gcc_10.sh | ||||
|  | ||||
|         # matrix config | ||||
|         if [ ${{ matrix.pattern }} == 0 ]; then | ||||
|           export CC=clang | ||||
|           export CXX=clang++ | ||||
|           ACTION="ci/build_cmake.sh" | ||||
|           export ARCH="64" | ||||
|           export BOOST="ON" | ||||
|           export SHARED="ON" | ||||
|     - name: Cache boost | ||||
|       id: cache-boost | ||||
|       uses: actions/cache@v2 | ||||
|       with: | ||||
|         path: ~/boost-prefix/ | ||||
|         key: ${{ runner.os }}-boost-1-76-0-2021-08-09 | ||||
|  | ||||
|     - name: Build boost | ||||
|       if: steps.cache-boost.outputs.cache-hit != 'true' | ||||
|       run: ./.github/depends/boost.sh -b both -t gcc -p $HOME/boost-prefix | ||||
|  | ||||
|     - name: Cache zlib | ||||
|       id: cache-zlib | ||||
|       uses: actions/cache@v2 | ||||
|       with: | ||||
|         path: ~/zlib-prefix/ | ||||
|         key: ${{ runner.os }}-zlib-1-2-11-2021-08-09 | ||||
|  | ||||
|     - name: Build zlib | ||||
|       if: steps.cache-zlib.outputs.cache-hit != 'true' | ||||
|       run: ./.github/depends/zlib.sh -b both -p $HOME/zlib-prefix | ||||
|  | ||||
|     - name: Build and test | ||||
|       shell: bash | ||||
|       run: | | ||||
|         # default configuration - overwrite its params later depending on matrix.pattern | ||||
|         export MSGPACK_CXX_VERSION="MSGPACK_CXX20=ON" | ||||
|         export ARCH=64 | ||||
|         export API_VERSION=3 | ||||
|         export CHAR_SIGN="signed" | ||||
|         export X3_PARSE="OFF" | ||||
|         export SANITIZE="-fsanitize=undefined -fno-sanitize-recover=all" | ||||
|         export ACTION="ci/build_cmake.sh" | ||||
|  | ||||
|         case ${{ matrix.pattern }} in | ||||
|           0) | ||||
|             export CXX="clang++-10" | ||||
|             export MSGPACK_CXX_VERSION="MSGPACK_CXX11=OFF" | ||||
|             ;; | ||||
|           1) | ||||
|             export CXX="g++-10" | ||||
|             export MSGPACK_CXX_VERSION="MSGPACK_CXX11=ON" | ||||
|             ;; | ||||
|           2) | ||||
|             export CXX="clang++-10" | ||||
|             export MSGPACK_CXX_VERSION="MSGPACK_CXX14=ON" | ||||
|             ;; | ||||
|           3) | ||||
|             export CXX="g++-10" | ||||
|             export MSGPACK_CXX_VERSION="MSGPACK_CXX17=ON" | ||||
|             ;; | ||||
|           4) | ||||
|             export CXX="clang++-10" | ||||
|             export MSGPACK_CXX_VERSION="MSGPACK_CXX20=ON" | ||||
|             ;; | ||||
|           5) | ||||
|             export CXX="g++-10" | ||||
|             export ARCH=32 | ||||
|             ;; | ||||
|           6) | ||||
|             export CXX="clang++-10" | ||||
|             export API_VERSION=2 | ||||
|             ;; | ||||
|           7) | ||||
|             export CXX="g++-10" | ||||
|             export API_VERSION=1 | ||||
|             ;; | ||||
|           8) | ||||
|             export CXX="clang++-10" | ||||
|             export CHAR_SIGN="unsigned" | ||||
|           export API_VERSION="2" | ||||
|         fi | ||||
|         if [ ${{ matrix.pattern }} == 1 ]; then | ||||
|           export CC=clang | ||||
|           export CXX=clang++ | ||||
|           ACTION="ci/build_cmake.sh" | ||||
|           export ARCH="32" | ||||
|           export SHARED="ON" | ||||
|           export CHAR_SIGN="signed" | ||||
|           export API_VERSION="2" | ||||
|         fi | ||||
|         if [ ${{ matrix.pattern }} == 2 ]; then | ||||
|           export CC=clang | ||||
|           export CXX=clang++ | ||||
|           ACTION="ci/build_cmake.sh" | ||||
|           export CXX17="ON" | ||||
|           export ARCH="64" | ||||
|           export BOOST="ON" | ||||
|           export SHARED="ON" | ||||
|           export CHAR_SIGN="signed" | ||||
|           export API_VERSION="3" | ||||
|             ;; | ||||
|           9) | ||||
|             export CXX="g++-10" | ||||
|             export X3_PARSE="ON" | ||||
|         fi | ||||
|         if [ ${{ matrix.pattern }} == 3 ]; then | ||||
|           export CC=clang | ||||
|           export CXX=clang++ | ||||
|           ACTION="ci/build_cmake.sh" | ||||
|           export CXX17="ON" | ||||
|           export ARCH="32" | ||||
|           export SHARED="OFF" | ||||
|             ;; | ||||
|           10) | ||||
|             export CXX="clang++-10" | ||||
|             export ACTION="ci/build_regression.sh" | ||||
|             ;; | ||||
|           11) | ||||
|             export CXX="g++-10" | ||||
|             export ARCH=32 | ||||
|             export CHAR_SIGN="unsigned" | ||||
|           export API_VERSION="2" | ||||
|         fi | ||||
|         if [ ${{ matrix.pattern }} == 4 ]; then | ||||
|           export CC=gcc | ||||
|           export CXX=g++ | ||||
|           ACTION="ci/build_cmake.sh" | ||||
|           export CXX17="ON" | ||||
|           export ARCH="64" | ||||
|           export SHARED="ON" | ||||
|           export CHAR_SIGN="signed" | ||||
|           export API_VERSION="2" | ||||
|         fi | ||||
|         if [ ${{ matrix.pattern }} == 5 ]; then | ||||
|           export CC=gcc | ||||
|           export CXX=g++ | ||||
|           ACTION="ci/build_cmake.sh" | ||||
|           export CXX17="ON" | ||||
|           export ARCH="32" | ||||
|           export BOOST="ON" | ||||
|           export SHARED="ON" | ||||
|           export CHAR_SIGN="unsigned" | ||||
|           export API_VERSION="3" | ||||
|             export X3_PARSE="ON" | ||||
|         fi | ||||
|         if [ ${{ matrix.pattern }} == 6 ]; then | ||||
|           export CC=gcc | ||||
|           export CXX=g++ | ||||
|           ACTION="ci/build_cmake.sh" | ||||
|           export ARCH="64" | ||||
|           export SHARED="ON" | ||||
|           export CHAR_SIGN="unsigned" | ||||
|           export API_VERSION="2" | ||||
|         fi | ||||
|         if [ ${{ matrix.pattern }} == 7 ]; then | ||||
|           export CC=gcc | ||||
|           export CXX=g++ | ||||
|           ACTION="ci/build_cmake.sh" | ||||
|           export ARCH="32" | ||||
|           export BOOST="ON" | ||||
|           export SHARED="OFF" | ||||
|           export CHAR_SIGN="signed" | ||||
|           export API_VERSION="1" | ||||
|         fi | ||||
|         if [ ${{ matrix.pattern }} == 8 ]; then | ||||
|           export CC=gcc | ||||
|           export CXX=g++ | ||||
|           ACTION="ci/build_cmake.sh" | ||||
|           export ARCH="32" | ||||
|           export BOOST="ON" | ||||
|           export SHARED="OFF" | ||||
|           export CHAR_SIGN="signed" | ||||
|           export API_VERSION="2" | ||||
|         fi | ||||
|         if [ ${{ matrix.pattern }} == 9 ]; then | ||||
|           export CC=clang | ||||
|           export CXX=clang++ | ||||
|           ACTION="ci/build_regression.sh" | ||||
|           export ARCH="64" | ||||
|           export SAN="UBSAN" | ||||
|           export MSGPACK_FUZZ_REGRESSION="ON" | ||||
|           export CTEST_OUTPUT_ON_FAILURE=1 | ||||
|         fi | ||||
|         if [ ${{ matrix.pattern }} == 10 ]; then | ||||
|           export CC=clang | ||||
|           export CXX=clang++ | ||||
|           ACTION="ci/build_regression.sh" | ||||
|           export ARCH="64" | ||||
|           export SAN="ASAN" | ||||
|           export MSGPACK_FUZZ_REGRESSION="ON" | ||||
|           export CTEST_OUTPUT_ON_FAILURE=1 | ||||
|         fi | ||||
|         if [ ${{ matrix.pattern }} == 11 ]; then | ||||
|           export CC=gcc | ||||
|           export CXX=g++ | ||||
|           ACTION="ci/build_cmake_embedded.sh" | ||||
|           export ARCH="64" | ||||
|         fi | ||||
|  | ||||
|         # install 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 | ||||
|         cd googletest-release-1.7.0 | ||||
|         $CXX -m${ARCH} src/gtest-all.cc -I. -Iinclude -c -fPIC | ||||
|         $CXX -m${ARCH} src/gtest_main.cc -I. -Iinclude -c -fPIC | ||||
|         ar -rv libgtest.a gtest-all.o | ||||
|         ar -rv libgtest_main.a gtest_main.o | ||||
|         mkdir -p ${BASE}/usr/include | ||||
|         cp -r include/gtest ${BASE}/usr/include | ||||
|         mkdir -p ${BASE}/usr/lib | ||||
|         mv *.a ${BASE}/usr/lib | ||||
|         cd .. | ||||
|  | ||||
|         # install zlib | ||||
|         if [ ${ARCH} == 32 ]; then | ||||
|           sudo apt-get install lib32z1-dev | ||||
|         fi | ||||
|             ;; | ||||
|         esac | ||||
|  | ||||
|         # build and test | ||||
|         CMAKE_CXX_COMPILER="${CXX}" CMAKE_C_COMPILER="${CC}" CMAKE_LIBRARY_PATH="${BASE}/usr/lib:${BASE}/build" GTEST_ROOT="${BASE}/usr" CMAKE_PREFIX_PATH="${BASE}/usr/gcc/lib${ARCH}/cmake" CFLAGS="-Werror -g" CXXFLAGS="-Werror -g" MSGPACK_SAN="${SAN}" ${ACTION} | ||||
|         CMAKE_CXX_COMPILER="$CXX" CXXFLAGS="-Werror -g ${SANITIZE}" ci/build_cmake.sh || exit 1 | ||||
|         cat Files.cmake| grep ".*\.[h|hpp]" | perl -pe 's/ //g' | sort > tmp1  && find include -name "*.h" -o -name "*.hpp" | sort > tmp2 && diff tmp1 tmp2 | ||||
|  | ||||
|   windows: | ||||
|     runs-on: windows-2016 | ||||
|     name: ${{ format('Windows cxx{0}', matrix.cxx) }} | ||||
|     runs-on: windows-2019 | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         pattern: [0, 1, 2, 3] | ||||
|         # MSVC2019 only supports /std:c++14, /std:c++17 and /std:c++latest | ||||
|         cxx: [14, 17, 20] | ||||
|     steps: | ||||
|     - uses: actions/checkout@v1 | ||||
|     - name: Cache vcpkg | ||||
|     - uses: actions/checkout@v2 | ||||
|  | ||||
|     - name: Cache vcpkg dependencies | ||||
|       id: cache-vcpkg | ||||
|       uses: actions/cache@v1.0.3 | ||||
|       uses: actions/cache@v2 | ||||
|       with: | ||||
|         path: C:/vcpkg/installed/x64-windows | ||||
|         key: ${{ runner.os }}-vcpkg | ||||
|     - name: Build dependencies | ||||
|         key: ${{ runner.os }}-vcpkg-2021-08-09 | ||||
|  | ||||
|     - name: Install vcpkg dependencies | ||||
|       if: steps.cache-vcpkg.outputs.cache-hit != 'true' | ||||
|       shell: powershell | ||||
|       run: | | ||||
|         vcpkg install gtest:x64-windows | ||||
|         vcpkg update | ||||
|         vcpkg install zlib:x64-windows | ||||
|         vcpkg install boost:x64-windows | ||||
|  | ||||
|     - name: Build and test | ||||
|       shell: powershell | ||||
|       run: | | ||||
|         if (${{ matrix.pattern }} -eq 0) { | ||||
|           $CPP11="-DMSGPACK_CXX11=OFF" | ||||
|           $BOOST="-DMSGPACK_BOOST=OFF" | ||||
|         } | ||||
|         if (${{ matrix.pattern }} -eq 1) { | ||||
|           $CPP11="-DMSGPACK_CXX11=OFF" | ||||
|           $BOOST="-DMSGPACK_BOOST=ON" | ||||
|         } | ||||
|         if (${{ matrix.pattern }} -eq 2) { | ||||
|           $CPP11="-DMSGPACK_CXX11=ON" | ||||
|           $BOOST="-DMSGPACK_BOOST=OFF" | ||||
|         } | ||||
|         if (${{ matrix.pattern }} -eq 3) { | ||||
|           $CPP11="-DMSGPACK_CXX11=ON" | ||||
|           $BOOST="-DMSGPACK_BOOST=ON" | ||||
|         } | ||||
|         $CPPVER="MSGPACK_CXX${{ matrix.cxx }}=ON" | ||||
|  | ||||
|         $CUR=(Get-Location).Path | ||||
|         md build | ||||
|         cd build | ||||
|         cmake -A x64 -DBOOST_ROOT="$env:BOOST_ROOT_1_72_0" -DCMAKE_TOOLCHAIN_FILE="C:/vcpkg/scripts/buildsystems/vcpkg.cmake" $CPP11 $BOOST "-DCMAKE_CXX_FLAGS=/D_VARIADIC_MAX=10 /EHsc /D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING" .. | ||||
|         if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) } | ||||
|         cmake --build . --config Release | ||||
|         $pathbak="$env:PATH" | ||||
|         $env:PATH="C:\vcpkg\installed\x64-windows\bin;$CUR\build\Release;$pathbak" | ||||
|         ctest -V | ||||
|         if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) } | ||||
|         $env:PATH=$pathbak | ||||
|         cmake ` | ||||
|             -A x64 ` | ||||
|             -G "Visual Studio 16 2019" ` | ||||
|             -D CMAKE_TOOLCHAIN_FILE="C:/vcpkg/scripts/buildsystems/vcpkg.cmake" ` | ||||
|             -D MSGPACK_BUILD_TESTS=ON ` | ||||
|             -D $CPPVER ` | ||||
|             -D CMAKE_CXX_FLAGS="/D_VARIADIC_MAX=10 /EHsc /D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING /D_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING /D_SILENCE_CXX17_OLD_ALLOCATOR_MEMBERS_DEPRECATION_WARNING /W3 /WX" ` | ||||
|             -B build ` | ||||
|             -S . | ||||
|         if ($LastExitCode -ne 0) { exit $LastExitCode } | ||||
|  | ||||
|         cmake --build build --config Release | ||||
|         if ($LastExitCode -ne 0) { exit $LastExitCode } | ||||
|  | ||||
|         ctest -VV --test-dir build -C Release | ||||
|         if ($LastExitCode -ne 0) { exit $LastExitCode } | ||||
|   | ||||
							
								
								
									
										6
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							| @@ -1,6 +0,0 @@ | ||||
| [submodule "external/boost/predef"] | ||||
| 	path = external/boost/predef | ||||
| 	url = https://github.com/boostorg/predef.git | ||||
| [submodule "external/boost/preprocessor"] | ||||
| 	path = external/boost/preprocessor | ||||
| 	url = https://github.com/boostorg/preprocessor.git | ||||
							
								
								
									
										25
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								CHANGELOG.md
									
									
									
									
									
								
							| @@ -1,3 +1,28 @@ | ||||
| # 2021-08-31 version 4.0.2 for C++ | ||||
|   * Fix fuzzer interface function name (#972) | ||||
|   * Fix boost test link error and support both dynamin(default) and static link boost (#971) | ||||
|  | ||||
| # 2021-08-30 version 4.0.1 for C++ | ||||
|   * Fix release tarball and its generation script (#967) | ||||
|  | ||||
| # 2021-08-29 version 4.0.0 for C++ | ||||
|   * Improve zone alignment logic (#965) | ||||
|   * Fix v1 unpack logic for STR and BIN (#957, #951) | ||||
|   * Fix UB on memcmp with size 0 (#954) | ||||
|   * Fix `iovec` name conflict (#952) | ||||
|   * Add `std::array<std::byte>` `std::span<char>` `std::span<unsigned char>` `std::span<std::byte>` adaptors (#951) | ||||
|   * Improve documents (#918, #919, #951) | ||||
|   * Improve tests (#916) | ||||
|   * Introduce BOOST_ASSERT (#898) | ||||
|   * Improve build system (#897, #905, #924, #951) | ||||
|   * Improve Boost.Fusion support (#894) | ||||
|   * Check nullptr before call memcpy (#891) | ||||
|   * Refine and bugfix `std::chrono::time_point` adaptor (#888, #893) | ||||
|   * Improve CI (#884, #892, #895, #951, #955) | ||||
| ## << breaking changes >> | ||||
|   * Separate C++ part of the msgpack-c  from C/C++ mixed msgpack-c (#876, #878) | ||||
|   * Require boost libraries. See README.md Dependency(#912) | ||||
|  | ||||
| # 2020-06-05 version 3.3.0 | ||||
|   * Add json example for C (#870) | ||||
|   * Add both header and body packing functions for C (#870) | ||||
|   | ||||
							
								
								
									
										467
									
								
								CMakeLists.txt
									
									
									
									
									
								
							
							
						
						
									
										467
									
								
								CMakeLists.txt
									
									
									
									
									
								
							| @@ -1,13 +1,10 @@ | ||||
| CMAKE_MINIMUM_REQUIRED (VERSION 2.8.12) | ||||
| CMAKE_MINIMUM_REQUIRED (VERSION 3.1 FATAL_ERROR) | ||||
|  | ||||
| IF ((CMAKE_VERSION VERSION_GREATER 3.1) OR | ||||
|     (CMAKE_VERSION VERSION_EQUAL 3.1)) | ||||
|     CMAKE_POLICY(SET CMP0054 NEW) | ||||
| ENDIF () | ||||
| CMAKE_POLICY (SET CMP0054 NEW) | ||||
|  | ||||
| PROJECT (msgpack) | ||||
| PROJECT (msgpack LANGUAGES CXX) | ||||
|  | ||||
| FILE (READ ${CMAKE_CURRENT_SOURCE_DIR}/include/msgpack/version_master.h contents) | ||||
| FILE (READ ${CMAKE_CURRENT_SOURCE_DIR}/include/msgpack/version_master.hpp contents) | ||||
| STRING (REGEX MATCH "#define MSGPACK_VERSION_MAJOR *([0-9a-zA-Z_]*)" NULL_OUT ${contents}) | ||||
| SET (VERSION_MAJOR ${CMAKE_MATCH_1}) | ||||
| STRING (REGEX MATCH "#define MSGPACK_VERSION_MINOR *([0-9a-zA-Z_]*)" NULL_OUT ${contents}) | ||||
| @@ -17,195 +14,78 @@ SET (VERSION_REVISION ${CMAKE_MATCH_1}) | ||||
| SET (VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REVISION}) | ||||
|  | ||||
| LIST (APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/") | ||||
| SET (prefix ${CMAKE_INSTALL_PREFIX}) | ||||
| SET (exec_prefix "\${prefix}") | ||||
| SET (libdir "\${exec_prefix}/lib") | ||||
| SET (includedir "\${prefix}/include") | ||||
| SET (GNUCXX_STD_SUPPORT_VERSION "4.3") | ||||
|  | ||||
| OPTION (MSGPACK_CXX11 "Using c++11 compiler" OFF) | ||||
| OPTION (MSGPACK_32BIT "32bit compile" OFF) | ||||
| OPTION (MSGPACK_BOOST "Using boost libraries" OFF) | ||||
| OPTION (MSGPACK_CXX14 "Using c++14 compiler" OFF) | ||||
| OPTION (MSGPACK_CXX17 "Using c++17 compiler" OFF) | ||||
| OPTION (MSGPACK_CXX20 "Using c++20 compiler" OFF) | ||||
|  | ||||
| IF (APPLE) | ||||
|     SET(CMAKE_MACOSX_RPATH ON) | ||||
|     SET(CMAKE_SKIP_BUILD_RPATH FALSE) | ||||
|     SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) | ||||
|     SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") | ||||
|     SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) | ||||
|     LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir) | ||||
|     IF ("${isSystemDir}" STREQUAL "-1") | ||||
|         SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") | ||||
|     ENDIF () | ||||
| ENDIF () | ||||
| OPTION (MSGPACK_32BIT            "32bit compile"                        OFF) | ||||
| OPTION (MSGPACK_USE_X3_PARSE     "Use Boost X3 parse"                   OFF) | ||||
| OPTION (MSGPACK_BUILD_TESTS      "Build tests"                          OFF) | ||||
| OPTION (MSGPACK_FUZZ_REGRESSION  "Enable regression testing"            OFF) | ||||
| OPTION (MSGPACK_BUILD_EXAMPLES   "Build msgpack examples"               OFF) | ||||
| OPTION (MSGPACK_GEN_COVERAGE     "Generate coverage report"             OFF) | ||||
| OPTION (MSGPACK_USE_STATIC_BOOST "Statically link with boost libraries" OFF) | ||||
| OPTION (MSGPACK_CHAR_SIGN        "Char sign to use (signed or unsigned)") | ||||
|  | ||||
| SET (CMAKE_CXX_STANDARD_REQUIRED ON) | ||||
|  | ||||
| IF (MSGPACK_USE_X3_PARSE) | ||||
|    IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | ||||
|       SET (CMAKE_CXX_FLAGS "-DMSGPACK_USE_X3_PARSE -std=c++14 ${CMAKE_CXX_FLAGS}") | ||||
|    ELSEIF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") | ||||
|       SET (CMAKE_CXX_FLAGS "-DMSGPACK_USE_X3_PARSE -std=c++14 ${CMAKE_CXX_FLAGS}") | ||||
|    ELSEIF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") | ||||
|     IF (NOT (MSGPACK_CXX14 OR MSGPACK_CXX17 OR MSGPACK_CXX20)) | ||||
|         MESSAGE (FATAL_ERROR "MSGPACK_USE_X3_PARSE requires MSGPACK_CXX14 or newer") | ||||
|     ENDIF () | ||||
|     SET (CMAKE_CXX_FLAGS "-DMSGPACK_USE_X3_PARSE ${CMAKE_CXX_FLAGS}") | ||||
|       IF (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19) | ||||
|           MESSAGE ( FATAL_ERROR "MSVC doesn't support C++14.") | ||||
|       ENDIF () | ||||
|    ENDIF () | ||||
| ENDIF () | ||||
|  | ||||
| IF (MSGPACK_CXX20) | ||||
|     SET (CMAKE_CXX_STANDARD 20) | ||||
| ELSEIF (MSGPACK_CXX17) | ||||
|     SET (CMAKE_CXX_STANDARD 17) | ||||
| ELSEIF (MSGPACK_CXX14) | ||||
|     SET (CMAKE_CXX_STANDARD 14) | ||||
| ELSEIF (MSGPACK_CXX11) | ||||
|     SET (CMAKE_CXX_STANDARD 11) | ||||
| ELSE () | ||||
|    IF (MSGPACK_CXX17) | ||||
|       IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | ||||
|          SET (CMAKE_CXX_FLAGS "-std=c++17 ${CMAKE_CXX_FLAGS}") | ||||
|       ELSEIF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") | ||||
|          SET (CMAKE_CXX_FLAGS "-std=c++17 ${CMAKE_CXX_FLAGS}") | ||||
|       ELSEIF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") | ||||
|          MESSAGE ( FATAL_ERROR "MSVC doesn't support C++17.") | ||||
|       ENDIF () | ||||
|    ELSEIF (MSGPACK_CXX11) | ||||
|       IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | ||||
|          SET (CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}") | ||||
|       ELSEIF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") | ||||
|          SET (CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}") | ||||
|       ELSEIF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") | ||||
|          IF (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19) | ||||
|              MESSAGE ( FATAL_ERROR "MSVC doesn't support C++11.") | ||||
|          ENDIF () | ||||
|       ENDIF () | ||||
|    ELSE () | ||||
|       IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | ||||
|          IF ((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER ${GNUCXX_STD_SUPPORT_VERSION}) OR | ||||
|              (CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL   ${GNUCXX_STD_SUPPORT_VERSION})) | ||||
|              SET (CMAKE_CXX_FLAGS "-std=c++98 ${CMAKE_CXX_FLAGS}") | ||||
|          ENDIF () | ||||
|       ELSEIF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") | ||||
|          SET (CMAKE_CXX_FLAGS "-std=c++98 ${CMAKE_CXX_FLAGS}") | ||||
|       ELSEIF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") | ||||
|          IF (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 18) | ||||
|              SET (CMAKE_CXX_FLAGS "-DMSGPACK_USE_CPP03 ${CMAKE_CXX_FLAGS}") | ||||
|          ENDIF () | ||||
|       ENDIF () | ||||
|    ENDIF () | ||||
|     SET (CMAKE_CXX_STANDARD 98) | ||||
| ENDIF () | ||||
|  | ||||
| IF (MSGPACK_32BIT) | ||||
|     IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | ||||
|         SET (CMAKE_CXX_FLAGS "-m32 ${CMAKE_CXX_FLAGS}") | ||||
|       SET (CMAKE_C_FLAGS "-m32 ${CMAKE_C_FLAGS}") | ||||
|         SET (CMAKE_EXE_LINKER_FLAGS "-m32 ${CMAKE_EXE_LINKER_FLAGS}") | ||||
|    ELSEIF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") | ||||
|     ELSEIF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") | ||||
|         SET (CMAKE_CXX_FLAGS "-m32 ${CMAKE_CXX_FLAGS}") | ||||
|       SET (CMAKE_C_FLAGS "-m32 ${CMAKE_C_FLAGS}") | ||||
|         SET (CMAKE_EXE_LINKER_FLAGS "-m32 ${CMAKE_EXE_LINKER_FLAGS}") | ||||
|     ENDIF () | ||||
| ENDIF () | ||||
|  | ||||
| OPTION (MSGPACK_BUILD_EXAMPLES "Build msgpack examples." ON) | ||||
| SET (Boost_USE_MULTITHREADED ON) | ||||
|  | ||||
| IF (MSGPACK_BOOST) | ||||
|    SET (CMAKE_CXX_FLAGS "-DMSGPACK_USE_BOOST ${CMAKE_CXX_FLAGS}") | ||||
|    SET (Boost_USE_MULTITHREADED      ON) | ||||
|    SET (Boost_USE_STATIC_RUNTIME    OFF) | ||||
|    FIND_PACKAGE (Boost REQUIRED COMPONENTS chrono context system timer) | ||||
|    INCLUDE_DIRECTORIES ( | ||||
|       ${Boost_INCLUDE_DIRS} | ||||
|    ) | ||||
|    LINK_DIRECTORIES ( | ||||
|       ${Boost_LIBRARY_DIRS} | ||||
|    ) | ||||
|    IF (MSGPACK_BOOST_DIR) | ||||
|       INCLUDE_DIRECTORIES ( | ||||
|          ${MSGPACK_BOOST_DIR} | ||||
|       ) | ||||
|    ENDIF () | ||||
| IF (MSGPACK_USE_STATIC_BOOST) | ||||
|     MESSAGE (STATUS "Staticly linking with Boost") | ||||
|     SET (Boost_USE_STATIC_LIBS TRUE) | ||||
| ELSE () | ||||
|     MESSAGE (STATUS "Dynamically linking with Boost") | ||||
|     SET (Boost_USE_STATIC_LIBS FALSE) | ||||
| ENDIF () | ||||
|  | ||||
| IF (MSGPACK_CHAR_SIGN) | ||||
|    SET (CMAKE_C_FLAGS "-f${MSGPACK_CHAR_SIGN}-char ${CMAKE_C_FLAGS}") | ||||
|     SET (CMAKE_CXX_FLAGS "-f${MSGPACK_CHAR_SIGN}-char ${CMAKE_CXX_FLAGS}") | ||||
| ENDIF () | ||||
|  | ||||
| IF (MSGPACK_DEFAULT_API_VERSION) | ||||
|     SET (CMAKE_CXX_FLAGS "-DMSGPACK_DEFAULT_API_VERSION=${MSGPACK_DEFAULT_API_VERSION} ${CMAKE_CXX_FLAGS}") | ||||
| ELSE () | ||||
|     SET (MSGPACK_DEFAULT_API_VERSION 3) | ||||
|     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) | ||||
| FOREACH (F ${PREDEF_FILES}) | ||||
|    SET(M "Converting ${F}") | ||||
|    MESSAGE(STATUS ${M}) | ||||
|    FILE (READ ${CMAKE_CURRENT_SOURCE_DIR}/external/boost/predef/include/boost/${F} CONTENT) | ||||
|    STRING(REPLACE "BOOST_" "MSGPACK_" CONTENT ${CONTENT}) | ||||
|    STRING(REPLACE "boost/" "msgpack/" CONTENT ${CONTENT}) | ||||
|    FILE (GENERATE OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/include/msgpack/${F} CONTENT ${CONTENT}) | ||||
| ENDFOREACH () | ||||
|  | ||||
| FILE (GLOB_RECURSE PREPROCESSOR_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/external/boost/preprocessor/include/boost ${CMAKE_CURRENT_SOURCE_DIR}/external/boost/preprocessor/include/boost/*.hpp) | ||||
| FOREACH (F ${PREPROCESSOR_FILES}) | ||||
|    SET(M "Converting ${F}") | ||||
|    MESSAGE(STATUS ${M}) | ||||
|    FILE (READ ${CMAKE_CURRENT_SOURCE_DIR}/external/boost/preprocessor/include/boost/${F} CONTENT) | ||||
|    STRING(REPLACE "BOOST_" "MSGPACK_" CONTENT ${CONTENT}) | ||||
|    STRING(REPLACE "boost/" "msgpack/" CONTENT ${CONTENT}) | ||||
|    FILE (GENERATE OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/include/msgpack/${F} CONTENT ${CONTENT}) | ||||
| ENDFOREACH () | ||||
|  | ||||
| FIND_PACKAGE (GTest) | ||||
| FIND_PACKAGE (ZLIB) | ||||
| FIND_PACKAGE (Threads) | ||||
| IF (GTEST_FOUND AND ZLIB_FOUND AND THREADS_FOUND AND NOT "${MSGPACK_FUZZ_REGRESSION}" STREQUAL "ON") | ||||
|     OPTION (MSGPACK_BUILD_TESTS "Build msgpack tests." ON) | ||||
|     OPTION (MSGPACK_GEN_COVERAGE "Enable running gcov to get a test coverage report." OFF) | ||||
| ENDIF () | ||||
|  | ||||
| OPTION (MSGPACK_ENABLE_CXX "Enable C++ interface." ON) | ||||
|  | ||||
| OPTION (MSGPACK_CXX_ONLY "Build only C++ libraries (header-only)." OFF) | ||||
| IF (MSGPACK_CXX_ONLY) | ||||
|     IF (DEFINED MSGPACK_ENABLE_SHARED AND MSGPACK_ENABLE_SHARED) | ||||
|         MESSAGE(WARNING "MSGPACK_ENABLE_SHARED is overridden to OFF by MSGPACK_CXX_ONLY") | ||||
|     ENDIF () | ||||
|     SET (MSGPACK_ENABLE_SHARED OFF) | ||||
|     IF (DEFINED MSGPACK_ENABLE_STATIC AND MSGPACK_ENABLE_STATIC) | ||||
|         MESSAGE(WARNING "MSGPACK_ENABLE_STATIC is overridden to OFF by MSGPACK_CXX_ONLY") | ||||
|     ENDIF () | ||||
|     SET (MSGPACK_ENABLE_STATIC OFF) | ||||
|     IF (DEFINED MSGPACK_ENABLE_CXX AND NOT MSGPACK_ENABLE_CXX) | ||||
|         MESSAGE(WARNING "MSGPACK_ENABLE_CXX is overridden to ON by MSGPACK_CXX_ONLY") | ||||
|     ENDIF () | ||||
|     SET (MSGPACK_ENABLE_CXX ON) | ||||
| ELSE () | ||||
|     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 () | ||||
|         SET (BUILD_SHARED_LIBS ${MSGPACK_ENABLE_SHARED}) | ||||
|     ENDIF () | ||||
| ENDIF () | ||||
|  | ||||
| INCLUDE (CheckCXXSourceCompiles) | ||||
| CHECK_CXX_SOURCE_COMPILES (" | ||||
| IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | ||||
|     IF (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.1) | ||||
|         INCLUDE (CheckCXXSourceCompiles) | ||||
|         CHECK_CXX_SOURCE_COMPILES (" | ||||
| #include <bits/atomicity.h> | ||||
| int atomic_sub(int i) { return __gnu_cxx::__exchange_and_add(&i, -1) - 1; } | ||||
| int atomic_add(int i) { return __gnu_cxx::__exchange_and_add(&i, 1) + 1; } | ||||
| @@ -214,98 +94,36 @@ int main(int argc, char * argv[]) | ||||
|     atomic_sub(1); | ||||
|     atomic_add(1); | ||||
| } | ||||
| " MSGPACK_ENABLE_GCC_CXX_ATOMIC) | ||||
| " | ||||
|         MSGPACK_ENABLE_GCC_CXX_ATOMIC) | ||||
|     ENDIF () | ||||
| ENDIF () | ||||
|  | ||||
| FIND_PACKAGE (Boost REQUIRED) | ||||
|  | ||||
| INCLUDE (Files.cmake) | ||||
|  | ||||
| EXECUTE_PROCESS ( | ||||
|     COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/src/msgpack | ||||
| ) | ||||
| ADD_LIBRARY (msgpackc-cxx INTERFACE) | ||||
|  | ||||
| CONFIGURE_FILE ( | ||||
|     msgpack.pc.in | ||||
|     msgpack.pc | ||||
|     @ONLY | ||||
| ) | ||||
|  | ||||
|  | ||||
| IF (MSGPACK_ENABLE_SHARED OR MSGPACK_ENABLE_STATIC) | ||||
|     ADD_LIBRARY (msgpackc | ||||
|         ${msgpackc_SOURCES} | ||||
|         ${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> | ||||
|             $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include> | ||||
|             $<INSTALL_INTERFACE:include> | ||||
|         PRIVATE | ||||
|             ${CMAKE_CURRENT_SOURCE_DIR} | ||||
|     ) | ||||
| 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 | ||||
| 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_SHARED AND MSGPACK_ENABLE_STATIC) | ||||
|     ADD_LIBRARY (msgpackc-static STATIC | ||||
|         ${msgpackc_SOURCES} | ||||
|         ${msgpackc_HEADERS} | ||||
|     ) | ||||
|  | ||||
|     TARGET_INCLUDE_DIRECTORIES (msgpackc-static | ||||
|         PUBLIC | ||||
|             $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> | ||||
|             $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include> | ||||
|             $<INSTALL_INTERFACE:include> | ||||
|         PRIVATE | ||||
|             ${CMAKE_CURRENT_SOURCE_DIR} | ||||
|     ) | ||||
|  | ||||
|     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 () | ||||
|     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 () | ||||
| TARGET_LINK_LIBRARIES (msgpackc-cxx INTERFACE Boost::boost) | ||||
|  | ||||
| IF (MSGPACK_GEN_COVERAGE) | ||||
|     IF (NOT MSGPACK_BUILD_TESTS) | ||||
|         MESSAGE(FATAL_ERROR "Coverage requires -DMSGPACK_BUILD_TESTS=ON") | ||||
|     ENDIF () | ||||
|     STRING(TOUPPER "${CMAKE_BUILD_TYPE}" UPPER_CMAKE_BUILD_TYPE) | ||||
|     STRING (TOUPPER "${CMAKE_BUILD_TYPE}" UPPER_CMAKE_BUILD_TYPE) | ||||
|     IF (NOT "${UPPER_CMAKE_BUILD_TYPE}" STREQUAL "DEBUG") | ||||
|         MESSAGE(FATAL_ERROR "Coverage requires -DCMAKE_BUILD_TYPE=Debug") | ||||
|         MESSAGE (FATAL_ERROR "Coverage requires -DCMAKE_BUILD_TYPE=Debug") | ||||
|     ENDIF () | ||||
|  | ||||
|     INCLUDE(CodeCoverage) | ||||
|     SET (CMAKE_C_FLAGS   "${CMAKE_C_FLAGS} ${COVERAGE_FLAGS}") | ||||
|     INCLUDE (CodeCoverage) | ||||
|     SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COVERAGE_FLAGS}") | ||||
|  | ||||
|     SETUP_TARGET_FOR_COVERAGE(coverage make coverage test) | ||||
| @@ -315,114 +133,28 @@ IF (MSGPACK_BUILD_TESTS) | ||||
|     ENABLE_TESTING () | ||||
|     # MEMORYCHECK_COMMAND_OPTIONS needs to place prior to CTEST_MEMORYCHECK_COMMAND | ||||
|     SET (MEMORYCHECK_COMMAND_OPTIONS "--leak-check=full --show-leak-kinds=definite,possible --error-exitcode=1") | ||||
|     FIND_PROGRAM(CTEST_MEMORYCHECK_COMMAND NAMES valgrind) | ||||
|     INCLUDE(Dart) | ||||
|     FIND_PROGRAM (CTEST_MEMORYCHECK_COMMAND NAMES valgrind) | ||||
|     INCLUDE (Dart) | ||||
|     ADD_SUBDIRECTORY (test) | ||||
| ENDIF () | ||||
|  | ||||
| IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | ||||
|     IF (MSGPACK_ENABLE_SHARED OR MSGPACK_ENABLE_STATIC) | ||||
|         SET_PROPERTY (TARGET msgpackc APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra -DPIC") | ||||
|     ENDIF () | ||||
|     IF (MSGPACK_ENABLE_SHARED AND MSGPACK_ENABLE_STATIC) | ||||
|        SET_PROPERTY (TARGET msgpackc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra" ) | ||||
|     ENDIF () | ||||
| ENDIF () | ||||
|  | ||||
| IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") | ||||
|     IF (MSGPACK_ENABLE_SHARED OR MSGPACK_ENABLE_STATIC) | ||||
|         SET_PROPERTY (TARGET msgpackc APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags") | ||||
|     ENDIF () | ||||
|     IF (MSGPACK_ENABLE_SHARED AND 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]") | ||||
|         STRING(REGEX REPLACE "/W[0-4]" "/W3 /WX" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") | ||||
|     ELSE () | ||||
|         SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3 /WX") | ||||
|     ENDIF () | ||||
| ENDIF () | ||||
|  | ||||
| IF ("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC") | ||||
|     IF (CMAKE_C_FLAGS MATCHES "/W[0-4]") | ||||
|         STRING(REGEX REPLACE "/W[0-4]" "/W3 /WX" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") | ||||
|     ELSE () | ||||
|         SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W3 /WX") | ||||
|     ENDIF () | ||||
| ENDIF () | ||||
|  | ||||
| IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC90" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC10") | ||||
|     SET_SOURCE_FILES_PROPERTIES(${msgpackc_SOURCES} PROPERTIES LANGUAGE CXX) | ||||
| # enable regression testing | ||||
| IF (MSGPACK_FUZZ_REGRESSION) | ||||
|     ENABLE_TESTING () | ||||
|     ADD_SUBDIRECTORY (fuzz) | ||||
| ENDIF () | ||||
|  | ||||
| IF ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "sparc") | ||||
|     SET (CMAKE_C_FLAGS   "-DMSGPACK_ZONE_ALIGN=8 ${CMAKE_C_FLAGS}") | ||||
|     SET (CMAKE_CXX_FLAGS "-DMSGPACK_ZONE_ALIGN=8 ${CMAKE_CXX_FLAGS}") | ||||
| ENDIF () | ||||
|  | ||||
| IF (NOT DEFINED CMAKE_INSTALL_BINDIR) | ||||
|     SET(CMAKE_INSTALL_BINDIR bin) | ||||
| ENDIF () | ||||
|  | ||||
| IF (NOT DEFINED CMAKE_INSTALL_LIBDIR) | ||||
|     SET(CMAKE_INSTALL_LIBDIR lib) | ||||
| ENDIF () | ||||
|  | ||||
| IF (MSGPACK_BUILD_EXAMPLES) | ||||
|     ADD_SUBDIRECTORY (example) | ||||
| ENDIF () | ||||
|  | ||||
| IF (MSGPACK_ENABLE_SHARED OR MSGPACK_ENABLE_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_SHARED AND MSGPACK_ENABLE_STATIC) | ||||
|     LIST (APPEND MSGPACK_INSTALLTARGETS msgpackc-static) | ||||
| ENDIF () | ||||
|  | ||||
| INSTALL (TARGETS ${MSGPACK_INSTALLTARGETS} EXPORT msgpack-targets | ||||
|     RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} | ||||
|     LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} | ||||
|     ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} | ||||
| ) | ||||
| FOREACH (file ${msgpackc_HEADERS}) | ||||
|     GET_FILENAME_COMPONENT (dir ${file} PATH) | ||||
|     INSTALL (FILES ${file} DESTINATION ${CMAKE_INSTALL_PREFIX}/${dir}) | ||||
| ENDFOREACH () | ||||
| IF (NOT MSGPACK_CXX_ONLY AND NOT MSVC) | ||||
|     INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/msgpack.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) | ||||
| ENDIF () | ||||
|  | ||||
| # Doxygen | ||||
| FIND_PACKAGE (Doxygen) | ||||
| IF (DOXYGEN_FOUND) | ||||
|     LIST (APPEND Doxyfile_c_CONTENT | ||||
|         COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_c | ||||
|         COMMAND ${CMAKE_COMMAND} -E echo "FILE_PATTERNS      = *.h" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_c | ||||
|         COMMAND ${CMAKE_COMMAND} -E echo "OUTPUT_DIRECTORY   = doc_c" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_c | ||||
|         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 | ||||
|             COMMAND ${CMAKE_COMMAND} -E echo "HAVE_DOT       = YES" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_c | ||||
|         ) | ||||
|     ENDIF () | ||||
|     ADD_CUSTOM_TARGET ( | ||||
|         doxygen_c | ||||
|         ${Doxyfile_c_CONTENT} | ||||
|         COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_c | ||||
|         VERBATIM | ||||
|     ) | ||||
|     LIST (APPEND Doxyfile_cpp_CONTENT | ||||
|         COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp | ||||
|         COMMAND ${CMAKE_COMMAND} -E echo "FILE_PATTERNS      = *.hpp" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp | ||||
| @@ -437,52 +169,63 @@ IF (DOXYGEN_FOUND) | ||||
|         ) | ||||
|     ENDIF () | ||||
|     ADD_CUSTOM_TARGET ( | ||||
|         doxygen_cpp | ||||
|         doxygen | ||||
|         ${Doxyfile_cpp_CONTENT} | ||||
|         COMMAND ${CMAKE_COMMAND} -E echo "PROJECT_NAME       = \"MessagePack for C++\"" >> ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp | ||||
|         COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile_cpp | ||||
|         VERBATIM | ||||
|     ) | ||||
|     ADD_CUSTOM_TARGET ( | ||||
|         doxygen | ||||
|         DEPENDS doxygen_c doxygen_cpp | ||||
|     ) | ||||
| ENDIF () | ||||
|  | ||||
| # Install library. | ||||
| INSTALL (TARGETS msgpackc-cxx | ||||
|          EXPORT msgpackc-cxx-targets | ||||
|          COMPONENT msgpackc-cxx | ||||
|          # This provides include directory in exported target | ||||
|          # relative to prefix in single directory we've put everything in. | ||||
|          INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" | ||||
| ) | ||||
|  | ||||
| # Install headers from source tree. | ||||
| INSTALL (DIRECTORY include/ | ||||
|          DESTINATION include | ||||
|          COMPONENT msgpackc-cxx | ||||
| ) | ||||
|  | ||||
| INCLUDE (CMakePackageConfigHelpers) | ||||
|  | ||||
| SET (CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/msgpack") | ||||
| IF (NOT (CMAKE_VERSION VERSION_LESS 3.14)) | ||||
|     SET (extra_version_file_args ARCH_INDEPENDENT) | ||||
| ENDIF () | ||||
| SET (cmake_config_path "lib/cmake/msgpackc-cxx") | ||||
|  | ||||
| # Configure the main package file from source tree. | ||||
| CONFIGURE_PACKAGE_CONFIG_FILE ( | ||||
|     msgpack-config.cmake.in | ||||
|     "${CMAKE_CURRENT_BINARY_DIR}/msgpack-config.cmake" | ||||
|     INSTALL_DESTINATION "${cmake_config_path}" | ||||
| ) | ||||
|  | ||||
| # Write package version file. | ||||
| WRITE_BASIC_PACKAGE_VERSION_FILE ( | ||||
|     msgpack-config-version.cmake | ||||
|     VERSION ${VERSION} | ||||
|     COMPATIBILITY SameMajorVersion | ||||
|     ${extra_version_file_args} | ||||
| ) | ||||
|  | ||||
| IF (NOT CMAKE_VERSION VERSION_LESS 3.0) | ||||
|     EXPORT (EXPORT msgpack-targets | ||||
|         FILE "${CMAKE_CURRENT_BINARY_DIR}/msgpack-targets.cmake" | ||||
|     ) | ||||
| ENDIF () | ||||
|  | ||||
| CONFIGURE_PACKAGE_CONFIG_FILE (msgpack-config.cmake.in | ||||
|     msgpack-config.cmake | ||||
|     INSTALL_DESTINATION "${CMAKE_INSTALL_CMAKEDIR}" | ||||
| ) | ||||
|  | ||||
| IF (NOT MSGPACK_CXX_ONLY) | ||||
|     INSTALL (EXPORT msgpack-targets | ||||
|         FILE | ||||
|             msgpack-targets.cmake | ||||
|         DESTINATION | ||||
|             "${CMAKE_INSTALL_CMAKEDIR}" | ||||
|     ) | ||||
|  | ||||
|     INSTALL ( | ||||
|         FILES | ||||
| # Install the generated package version file and the main package file. | ||||
| INSTALL (FILES | ||||
|     "${CMAKE_CURRENT_BINARY_DIR}/msgpack-config.cmake" | ||||
|     "${CMAKE_CURRENT_BINARY_DIR}/msgpack-config-version.cmake" | ||||
|         DESTINATION | ||||
|             "${CMAKE_INSTALL_CMAKEDIR}" | ||||
|     ) | ||||
| ENDIF () | ||||
|     DESTINATION "${cmake_config_path}" | ||||
|     COMPONENT msgpackc-cxx | ||||
| ) | ||||
|  | ||||
| # This installs package in install tree for using installed targets. | ||||
| INSTALL ( | ||||
|     EXPORT msgpackc-cxx-targets | ||||
|     FILE msgpackc-cxx-targets.cmake | ||||
|     DESTINATION "${cmake_config_path}" | ||||
|     COMPONENT msgpackc-cxx | ||||
| ) | ||||
|   | ||||
							
								
								
									
										464
									
								
								Files.cmake
									
									
									
									
									
								
							
							
						
						
									
										464
									
								
								Files.cmake
									
									
									
									
									
								
							| @@ -1,182 +1,4 @@ | ||||
| LIST (APPEND msgpackc_SOURCES | ||||
|     src/objectc.c | ||||
|     src/unpack.c | ||||
|     src/version.c | ||||
|     src/vrefbuffer.c | ||||
|     src/zone.c | ||||
| ) | ||||
|  | ||||
| # For both C and C++ libraries | ||||
| LIST (APPEND msgpackc_HEADERS | ||||
|     include/msgpack/fbuffer.h | ||||
|     include/msgpack/object.h | ||||
|     include/msgpack/predef.h | ||||
|     include/msgpack/predef/architecture.h | ||||
|     include/msgpack/predef/architecture/alpha.h | ||||
|     include/msgpack/predef/architecture/arm.h | ||||
|     include/msgpack/predef/architecture/blackfin.h | ||||
|     include/msgpack/predef/architecture/convex.h | ||||
|     include/msgpack/predef/architecture/ia64.h | ||||
|     include/msgpack/predef/architecture/m68k.h | ||||
|     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 | ||||
|     include/msgpack/predef/architecture/superh.h | ||||
|     include/msgpack/predef/architecture/sys370.h | ||||
|     include/msgpack/predef/architecture/sys390.h | ||||
|     include/msgpack/predef/architecture/x86.h | ||||
|     include/msgpack/predef/architecture/x86/32.h | ||||
|     include/msgpack/predef/architecture/x86/64.h | ||||
|     include/msgpack/predef/architecture/z.h | ||||
|     include/msgpack/predef/compiler.h | ||||
|     include/msgpack/predef/compiler/borland.h | ||||
|     include/msgpack/predef/compiler/clang.h | ||||
|     include/msgpack/predef/compiler/comeau.h | ||||
|     include/msgpack/predef/compiler/compaq.h | ||||
|     include/msgpack/predef/compiler/diab.h | ||||
|     include/msgpack/predef/compiler/digitalmars.h | ||||
|     include/msgpack/predef/compiler/dignus.h | ||||
|     include/msgpack/predef/compiler/edg.h | ||||
|     include/msgpack/predef/compiler/ekopath.h | ||||
|     include/msgpack/predef/compiler/gcc.h | ||||
|     include/msgpack/predef/compiler/gcc_xml.h | ||||
|     include/msgpack/predef/compiler/greenhills.h | ||||
|     include/msgpack/predef/compiler/hp_acc.h | ||||
|     include/msgpack/predef/compiler/iar.h | ||||
|     include/msgpack/predef/compiler/ibm.h | ||||
|     include/msgpack/predef/compiler/intel.h | ||||
|     include/msgpack/predef/compiler/kai.h | ||||
|     include/msgpack/predef/compiler/llvm.h | ||||
|     include/msgpack/predef/compiler/metaware.h | ||||
|     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 | ||||
|     include/msgpack/predef/compiler/sunpro.h | ||||
|     include/msgpack/predef/compiler/tendra.h | ||||
|     include/msgpack/predef/compiler/visualc.h | ||||
|     include/msgpack/predef/compiler/watcom.h | ||||
|     include/msgpack/predef/detail/_cassert.h | ||||
|     include/msgpack/predef/detail/_exception.h | ||||
|     include/msgpack/predef/detail/comp_detected.h | ||||
|     include/msgpack/predef/detail/endian_compat.h | ||||
|     include/msgpack/predef/detail/os_detected.h | ||||
|     include/msgpack/predef/detail/platform_detected.h | ||||
|     include/msgpack/predef/detail/test.h | ||||
|     include/msgpack/predef/detail/test_def.h | ||||
|     include/msgpack/predef/hardware.h | ||||
|     include/msgpack/predef/hardware/simd.h | ||||
|     include/msgpack/predef/hardware/simd/arm.h | ||||
|     include/msgpack/predef/hardware/simd/arm/versions.h | ||||
|     include/msgpack/predef/hardware/simd/ppc.h | ||||
|     include/msgpack/predef/hardware/simd/ppc/versions.h | ||||
|     include/msgpack/predef/hardware/simd/x86.h | ||||
|     include/msgpack/predef/hardware/simd/x86/versions.h | ||||
|     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 | ||||
|     include/msgpack/predef/library/c/zos.h | ||||
|     include/msgpack/predef/library/std.h | ||||
|     include/msgpack/predef/library/std/_prefix.h | ||||
|     include/msgpack/predef/library/std/cxx.h | ||||
|     include/msgpack/predef/library/std/dinkumware.h | ||||
|     include/msgpack/predef/library/std/libcomo.h | ||||
|     include/msgpack/predef/library/std/modena.h | ||||
|     include/msgpack/predef/library/std/msl.h | ||||
|     include/msgpack/predef/library/std/roguewave.h | ||||
|     include/msgpack/predef/library/std/sgi.h | ||||
|     include/msgpack/predef/library/std/stdcpp3.h | ||||
|     include/msgpack/predef/library/std/stlport.h | ||||
|     include/msgpack/predef/library/std/vacpp.h | ||||
|     include/msgpack/predef/make.h | ||||
|     include/msgpack/predef/os.h | ||||
|     include/msgpack/predef/os/aix.h | ||||
|     include/msgpack/predef/os/amigaos.h | ||||
|     include/msgpack/predef/os/android.h | ||||
|     include/msgpack/predef/os/beos.h | ||||
|     include/msgpack/predef/os/bsd.h | ||||
|     include/msgpack/predef/os/bsd/bsdi.h | ||||
|     include/msgpack/predef/os/bsd/dragonfly.h | ||||
|     include/msgpack/predef/os/bsd/free.h | ||||
|     include/msgpack/predef/os/bsd/net.h | ||||
|     include/msgpack/predef/os/bsd/open.h | ||||
|     include/msgpack/predef/os/cygwin.h | ||||
|     include/msgpack/predef/os/haiku.h | ||||
|     include/msgpack/predef/os/hpux.h | ||||
|     include/msgpack/predef/os/ios.h | ||||
|     include/msgpack/predef/os/irix.h | ||||
|     include/msgpack/predef/os/linux.h | ||||
|     include/msgpack/predef/os/macos.h | ||||
|     include/msgpack/predef/os/os400.h | ||||
|     include/msgpack/predef/os/qnxnto.h | ||||
|     include/msgpack/predef/os/solaris.h | ||||
|     include/msgpack/predef/os/unix.h | ||||
|     include/msgpack/predef/os/vms.h | ||||
|     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/sysdep.h | ||||
|     include/msgpack/unpack_define.h | ||||
|     include/msgpack/version_master.h | ||||
|     include/msgpack/zbuffer.h | ||||
|     include/msgpack/zone.h | ||||
| ) | ||||
|  | ||||
| IF (NOT MSGPACK_CXX_ONLY) | ||||
|     # Only for C library | ||||
|     LIST (APPEND msgpackc_HEADERS | ||||
|         include/msgpack.h | ||||
|         include/msgpack/gcc_atomic.h | ||||
|         include/msgpack/pack.h | ||||
|         include/msgpack/pack_define.h | ||||
|         include/msgpack/pack_template.h | ||||
|         include/msgpack/sbuffer.h | ||||
|         include/msgpack/timestamp.h | ||||
|         include/msgpack/unpack.h | ||||
|         include/msgpack/unpack_template.h | ||||
|         include/msgpack/util.h | ||||
|         include/msgpack/version.h | ||||
|         include/msgpack/vrefbuffer.h | ||||
|     ) | ||||
| ENDIF () | ||||
|  | ||||
| IF (MSGPACK_ENABLE_CXX) | ||||
|     # Only for C++ library | ||||
|     LIST (APPEND msgpackc_HEADERS | ||||
| SET (msgpackc_HEADERS | ||||
|     include/msgpack.hpp | ||||
|     include/msgpack/adaptor/adaptor_base.hpp | ||||
|     include/msgpack/adaptor/adaptor_base_decl.hpp | ||||
| @@ -193,6 +15,7 @@ IF (MSGPACK_ENABLE_CXX) | ||||
|     include/msgpack/adaptor/char_ptr.hpp | ||||
|     include/msgpack/adaptor/check_container_size.hpp | ||||
|     include/msgpack/adaptor/check_container_size_decl.hpp | ||||
|     include/msgpack/adaptor/complex.hpp | ||||
|     include/msgpack/adaptor/cpp11/array.hpp | ||||
|     include/msgpack/adaptor/cpp11/array_char.hpp | ||||
|     include/msgpack/adaptor/cpp11/array_unsigned_char.hpp | ||||
| @@ -205,11 +28,13 @@ 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/array_byte.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/cpp20/span.hpp | ||||
|     include/msgpack/adaptor/define.hpp | ||||
|     include/msgpack/adaptor/define_decl.hpp | ||||
|     include/msgpack/adaptor/deque.hpp | ||||
| @@ -245,6 +70,7 @@ IF (MSGPACK_ENABLE_CXX) | ||||
|     include/msgpack/adaptor/wstring.hpp | ||||
|     include/msgpack/cpp_config.hpp | ||||
|     include/msgpack/cpp_config_decl.hpp | ||||
|     include/msgpack/cpp_version.hpp | ||||
|     include/msgpack/create_object_visitor.hpp | ||||
|     include/msgpack/create_object_visitor_decl.hpp | ||||
|     include/msgpack/fbuffer.hpp | ||||
| @@ -265,281 +91,13 @@ IF (MSGPACK_ENABLE_CXX) | ||||
|     include/msgpack/parse.hpp | ||||
|     include/msgpack/parse_decl.hpp | ||||
|     include/msgpack/parse_return.hpp | ||||
|         include/msgpack/preprocessor.hpp | ||||
|         include/msgpack/preprocessor/arithmetic.hpp | ||||
|         include/msgpack/preprocessor/arithmetic/add.hpp | ||||
|         include/msgpack/preprocessor/arithmetic/dec.hpp | ||||
|         include/msgpack/preprocessor/arithmetic/detail/div_base.hpp | ||||
|         include/msgpack/preprocessor/arithmetic/div.hpp | ||||
|         include/msgpack/preprocessor/arithmetic/inc.hpp | ||||
|         include/msgpack/preprocessor/arithmetic/mod.hpp | ||||
|         include/msgpack/preprocessor/arithmetic/mul.hpp | ||||
|         include/msgpack/preprocessor/arithmetic/sub.hpp | ||||
|         include/msgpack/preprocessor/array.hpp | ||||
|         include/msgpack/preprocessor/array/data.hpp | ||||
|         include/msgpack/preprocessor/array/detail/get_data.hpp | ||||
|         include/msgpack/preprocessor/array/elem.hpp | ||||
|         include/msgpack/preprocessor/array/enum.hpp | ||||
|         include/msgpack/preprocessor/array/insert.hpp | ||||
|         include/msgpack/preprocessor/array/pop_back.hpp | ||||
|         include/msgpack/preprocessor/array/pop_front.hpp | ||||
|         include/msgpack/preprocessor/array/push_back.hpp | ||||
|         include/msgpack/preprocessor/array/push_front.hpp | ||||
|         include/msgpack/preprocessor/array/remove.hpp | ||||
|         include/msgpack/preprocessor/array/replace.hpp | ||||
|         include/msgpack/preprocessor/array/reverse.hpp | ||||
|         include/msgpack/preprocessor/array/size.hpp | ||||
|         include/msgpack/preprocessor/array/to_list.hpp | ||||
|         include/msgpack/preprocessor/array/to_seq.hpp | ||||
|         include/msgpack/preprocessor/array/to_tuple.hpp | ||||
|         include/msgpack/preprocessor/assert_msg.hpp | ||||
|         include/msgpack/preprocessor/cat.hpp | ||||
|         include/msgpack/preprocessor/comma.hpp | ||||
|         include/msgpack/preprocessor/comma_if.hpp | ||||
|         include/msgpack/preprocessor/comparison.hpp | ||||
|         include/msgpack/preprocessor/comparison/equal.hpp | ||||
|         include/msgpack/preprocessor/comparison/greater.hpp | ||||
|         include/msgpack/preprocessor/comparison/greater_equal.hpp | ||||
|         include/msgpack/preprocessor/comparison/less.hpp | ||||
|         include/msgpack/preprocessor/comparison/less_equal.hpp | ||||
|         include/msgpack/preprocessor/comparison/not_equal.hpp | ||||
|         include/msgpack/preprocessor/config/config.hpp | ||||
|         include/msgpack/preprocessor/config/limits.hpp | ||||
|         include/msgpack/preprocessor/control.hpp | ||||
|         include/msgpack/preprocessor/control/deduce_d.hpp | ||||
|         include/msgpack/preprocessor/control/detail/dmc/while.hpp | ||||
|         include/msgpack/preprocessor/control/detail/edg/while.hpp | ||||
|         include/msgpack/preprocessor/control/detail/msvc/while.hpp | ||||
|         include/msgpack/preprocessor/control/detail/while.hpp | ||||
|         include/msgpack/preprocessor/control/expr_if.hpp | ||||
|         include/msgpack/preprocessor/control/expr_iif.hpp | ||||
|         include/msgpack/preprocessor/control/if.hpp | ||||
|         include/msgpack/preprocessor/control/iif.hpp | ||||
|         include/msgpack/preprocessor/control/while.hpp | ||||
|         include/msgpack/preprocessor/debug.hpp | ||||
|         include/msgpack/preprocessor/debug/assert.hpp | ||||
|         include/msgpack/preprocessor/debug/error.hpp | ||||
|         include/msgpack/preprocessor/debug/line.hpp | ||||
|         include/msgpack/preprocessor/dec.hpp | ||||
|         include/msgpack/preprocessor/detail/auto_rec.hpp | ||||
|         include/msgpack/preprocessor/detail/check.hpp | ||||
|         include/msgpack/preprocessor/detail/dmc/auto_rec.hpp | ||||
|         include/msgpack/preprocessor/detail/is_binary.hpp | ||||
|         include/msgpack/preprocessor/detail/is_nullary.hpp | ||||
|         include/msgpack/preprocessor/detail/is_unary.hpp | ||||
|         include/msgpack/preprocessor/detail/null.hpp | ||||
|         include/msgpack/preprocessor/detail/split.hpp | ||||
|         include/msgpack/preprocessor/empty.hpp | ||||
|         include/msgpack/preprocessor/enum.hpp | ||||
|         include/msgpack/preprocessor/enum_params.hpp | ||||
|         include/msgpack/preprocessor/enum_params_with_a_default.hpp | ||||
|         include/msgpack/preprocessor/enum_params_with_defaults.hpp | ||||
|         include/msgpack/preprocessor/enum_shifted.hpp | ||||
|         include/msgpack/preprocessor/enum_shifted_params.hpp | ||||
|         include/msgpack/preprocessor/expand.hpp | ||||
|         include/msgpack/preprocessor/expr_if.hpp | ||||
|         include/msgpack/preprocessor/facilities.hpp | ||||
|         include/msgpack/preprocessor/facilities/apply.hpp | ||||
|         include/msgpack/preprocessor/facilities/detail/is_empty.hpp | ||||
|         include/msgpack/preprocessor/facilities/empty.hpp | ||||
|         include/msgpack/preprocessor/facilities/expand.hpp | ||||
|         include/msgpack/preprocessor/facilities/identity.hpp | ||||
|         include/msgpack/preprocessor/facilities/intercept.hpp | ||||
|         include/msgpack/preprocessor/facilities/is_1.hpp | ||||
|         include/msgpack/preprocessor/facilities/is_empty.hpp | ||||
|         include/msgpack/preprocessor/facilities/is_empty_or_1.hpp | ||||
|         include/msgpack/preprocessor/facilities/is_empty_variadic.hpp | ||||
|         include/msgpack/preprocessor/facilities/overload.hpp | ||||
|         include/msgpack/preprocessor/for.hpp | ||||
|         include/msgpack/preprocessor/identity.hpp | ||||
|         include/msgpack/preprocessor/if.hpp | ||||
|         include/msgpack/preprocessor/inc.hpp | ||||
|         include/msgpack/preprocessor/iterate.hpp | ||||
|         include/msgpack/preprocessor/iteration.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/bounds/lower1.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/bounds/lower2.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/bounds/lower3.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/bounds/lower4.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/bounds/lower5.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/bounds/upper1.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/bounds/upper2.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/bounds/upper3.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/bounds/upper4.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/bounds/upper5.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/finish.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/iter/forward1.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/iter/forward2.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/iter/forward3.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/iter/forward4.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/iter/forward5.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/iter/reverse1.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/iter/reverse2.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/iter/reverse3.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/iter/reverse4.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/iter/reverse5.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/local.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/rlocal.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/self.hpp | ||||
|         include/msgpack/preprocessor/iteration/detail/start.hpp | ||||
|         include/msgpack/preprocessor/iteration/iterate.hpp | ||||
|         include/msgpack/preprocessor/iteration/local.hpp | ||||
|         include/msgpack/preprocessor/iteration/self.hpp | ||||
|         include/msgpack/preprocessor/library.hpp | ||||
|         include/msgpack/preprocessor/limits.hpp | ||||
|         include/msgpack/preprocessor/list.hpp | ||||
|         include/msgpack/preprocessor/list/adt.hpp | ||||
|         include/msgpack/preprocessor/list/append.hpp | ||||
|         include/msgpack/preprocessor/list/at.hpp | ||||
|         include/msgpack/preprocessor/list/cat.hpp | ||||
|         include/msgpack/preprocessor/list/detail/dmc/fold_left.hpp | ||||
|         include/msgpack/preprocessor/list/detail/edg/fold_left.hpp | ||||
|         include/msgpack/preprocessor/list/detail/edg/fold_right.hpp | ||||
|         include/msgpack/preprocessor/list/detail/fold_left.hpp | ||||
|         include/msgpack/preprocessor/list/detail/fold_right.hpp | ||||
|         include/msgpack/preprocessor/list/enum.hpp | ||||
|         include/msgpack/preprocessor/list/filter.hpp | ||||
|         include/msgpack/preprocessor/list/first_n.hpp | ||||
|         include/msgpack/preprocessor/list/fold_left.hpp | ||||
|         include/msgpack/preprocessor/list/fold_right.hpp | ||||
|         include/msgpack/preprocessor/list/for_each.hpp | ||||
|         include/msgpack/preprocessor/list/for_each_i.hpp | ||||
|         include/msgpack/preprocessor/list/for_each_product.hpp | ||||
|         include/msgpack/preprocessor/list/rest_n.hpp | ||||
|         include/msgpack/preprocessor/list/reverse.hpp | ||||
|         include/msgpack/preprocessor/list/size.hpp | ||||
|         include/msgpack/preprocessor/list/to_array.hpp | ||||
|         include/msgpack/preprocessor/list/to_seq.hpp | ||||
|         include/msgpack/preprocessor/list/to_tuple.hpp | ||||
|         include/msgpack/preprocessor/list/transform.hpp | ||||
|         include/msgpack/preprocessor/logical.hpp | ||||
|         include/msgpack/preprocessor/logical/and.hpp | ||||
|         include/msgpack/preprocessor/logical/bitand.hpp | ||||
|         include/msgpack/preprocessor/logical/bitnor.hpp | ||||
|         include/msgpack/preprocessor/logical/bitor.hpp | ||||
|         include/msgpack/preprocessor/logical/bitxor.hpp | ||||
|         include/msgpack/preprocessor/logical/bool.hpp | ||||
|         include/msgpack/preprocessor/logical/compl.hpp | ||||
|         include/msgpack/preprocessor/logical/nor.hpp | ||||
|         include/msgpack/preprocessor/logical/not.hpp | ||||
|         include/msgpack/preprocessor/logical/or.hpp | ||||
|         include/msgpack/preprocessor/logical/xor.hpp | ||||
|         include/msgpack/preprocessor/max.hpp | ||||
|         include/msgpack/preprocessor/min.hpp | ||||
|         include/msgpack/preprocessor/punctuation.hpp | ||||
|         include/msgpack/preprocessor/punctuation/comma.hpp | ||||
|         include/msgpack/preprocessor/punctuation/comma_if.hpp | ||||
|         include/msgpack/preprocessor/punctuation/detail/is_begin_parens.hpp | ||||
|         include/msgpack/preprocessor/punctuation/is_begin_parens.hpp | ||||
|         include/msgpack/preprocessor/punctuation/paren.hpp | ||||
|         include/msgpack/preprocessor/punctuation/paren_if.hpp | ||||
|         include/msgpack/preprocessor/punctuation/remove_parens.hpp | ||||
|         include/msgpack/preprocessor/repeat.hpp | ||||
|         include/msgpack/preprocessor/repeat_2nd.hpp | ||||
|         include/msgpack/preprocessor/repeat_3rd.hpp | ||||
|         include/msgpack/preprocessor/repeat_from_to.hpp | ||||
|         include/msgpack/preprocessor/repeat_from_to_2nd.hpp | ||||
|         include/msgpack/preprocessor/repeat_from_to_3rd.hpp | ||||
|         include/msgpack/preprocessor/repetition.hpp | ||||
|         include/msgpack/preprocessor/repetition/deduce_r.hpp | ||||
|         include/msgpack/preprocessor/repetition/deduce_z.hpp | ||||
|         include/msgpack/preprocessor/repetition/detail/dmc/for.hpp | ||||
|         include/msgpack/preprocessor/repetition/detail/edg/for.hpp | ||||
|         include/msgpack/preprocessor/repetition/detail/for.hpp | ||||
|         include/msgpack/preprocessor/repetition/detail/msvc/for.hpp | ||||
|         include/msgpack/preprocessor/repetition/enum.hpp | ||||
|         include/msgpack/preprocessor/repetition/enum_binary_params.hpp | ||||
|         include/msgpack/preprocessor/repetition/enum_params.hpp | ||||
|         include/msgpack/preprocessor/repetition/enum_params_with_a_default.hpp | ||||
|         include/msgpack/preprocessor/repetition/enum_params_with_defaults.hpp | ||||
|         include/msgpack/preprocessor/repetition/enum_shifted.hpp | ||||
|         include/msgpack/preprocessor/repetition/enum_shifted_binary_params.hpp | ||||
|         include/msgpack/preprocessor/repetition/enum_shifted_params.hpp | ||||
|         include/msgpack/preprocessor/repetition/enum_trailing.hpp | ||||
|         include/msgpack/preprocessor/repetition/enum_trailing_binary_params.hpp | ||||
|         include/msgpack/preprocessor/repetition/enum_trailing_params.hpp | ||||
|         include/msgpack/preprocessor/repetition/for.hpp | ||||
|         include/msgpack/preprocessor/repetition/repeat.hpp | ||||
|         include/msgpack/preprocessor/repetition/repeat_from_to.hpp | ||||
|         include/msgpack/preprocessor/selection.hpp | ||||
|         include/msgpack/preprocessor/selection/max.hpp | ||||
|         include/msgpack/preprocessor/selection/min.hpp | ||||
|         include/msgpack/preprocessor/seq.hpp | ||||
|         include/msgpack/preprocessor/seq/cat.hpp | ||||
|         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 | ||||
|         include/msgpack/preprocessor/seq/first_n.hpp | ||||
|         include/msgpack/preprocessor/seq/fold_left.hpp | ||||
|         include/msgpack/preprocessor/seq/fold_right.hpp | ||||
|         include/msgpack/preprocessor/seq/for_each.hpp | ||||
|         include/msgpack/preprocessor/seq/for_each_i.hpp | ||||
|         include/msgpack/preprocessor/seq/for_each_product.hpp | ||||
|         include/msgpack/preprocessor/seq/insert.hpp | ||||
|         include/msgpack/preprocessor/seq/pop_back.hpp | ||||
|         include/msgpack/preprocessor/seq/pop_front.hpp | ||||
|         include/msgpack/preprocessor/seq/push_back.hpp | ||||
|         include/msgpack/preprocessor/seq/push_front.hpp | ||||
|         include/msgpack/preprocessor/seq/remove.hpp | ||||
|         include/msgpack/preprocessor/seq/replace.hpp | ||||
|         include/msgpack/preprocessor/seq/rest_n.hpp | ||||
|         include/msgpack/preprocessor/seq/reverse.hpp | ||||
|         include/msgpack/preprocessor/seq/seq.hpp | ||||
|         include/msgpack/preprocessor/seq/size.hpp | ||||
|         include/msgpack/preprocessor/seq/subseq.hpp | ||||
|         include/msgpack/preprocessor/seq/to_array.hpp | ||||
|         include/msgpack/preprocessor/seq/to_list.hpp | ||||
|         include/msgpack/preprocessor/seq/to_tuple.hpp | ||||
|         include/msgpack/preprocessor/seq/transform.hpp | ||||
|         include/msgpack/preprocessor/seq/variadic_seq_to_seq.hpp | ||||
|         include/msgpack/preprocessor/slot.hpp | ||||
|         include/msgpack/preprocessor/slot/counter.hpp | ||||
|         include/msgpack/preprocessor/slot/detail/counter.hpp | ||||
|         include/msgpack/preprocessor/slot/detail/def.hpp | ||||
|         include/msgpack/preprocessor/slot/detail/shared.hpp | ||||
|         include/msgpack/preprocessor/slot/detail/slot1.hpp | ||||
|         include/msgpack/preprocessor/slot/detail/slot2.hpp | ||||
|         include/msgpack/preprocessor/slot/detail/slot3.hpp | ||||
|         include/msgpack/preprocessor/slot/detail/slot4.hpp | ||||
|         include/msgpack/preprocessor/slot/detail/slot5.hpp | ||||
|         include/msgpack/preprocessor/slot/slot.hpp | ||||
|         include/msgpack/preprocessor/stringize.hpp | ||||
|         include/msgpack/preprocessor/tuple.hpp | ||||
|         include/msgpack/preprocessor/tuple/detail/is_single_return.hpp | ||||
|         include/msgpack/preprocessor/tuple/eat.hpp | ||||
|         include/msgpack/preprocessor/tuple/elem.hpp | ||||
|         include/msgpack/preprocessor/tuple/enum.hpp | ||||
|         include/msgpack/preprocessor/tuple/insert.hpp | ||||
|         include/msgpack/preprocessor/tuple/pop_back.hpp | ||||
|         include/msgpack/preprocessor/tuple/pop_front.hpp | ||||
|         include/msgpack/preprocessor/tuple/push_back.hpp | ||||
|         include/msgpack/preprocessor/tuple/push_front.hpp | ||||
|         include/msgpack/preprocessor/tuple/rem.hpp | ||||
|         include/msgpack/preprocessor/tuple/remove.hpp | ||||
|         include/msgpack/preprocessor/tuple/replace.hpp | ||||
|         include/msgpack/preprocessor/tuple/reverse.hpp | ||||
|         include/msgpack/preprocessor/tuple/size.hpp | ||||
|         include/msgpack/preprocessor/tuple/to_array.hpp | ||||
|         include/msgpack/preprocessor/tuple/to_list.hpp | ||||
|         include/msgpack/preprocessor/tuple/to_seq.hpp | ||||
|         include/msgpack/preprocessor/variadic.hpp | ||||
|         include/msgpack/preprocessor/variadic/detail/is_single_return.hpp | ||||
|         include/msgpack/preprocessor/variadic/elem.hpp | ||||
|         include/msgpack/preprocessor/variadic/size.hpp | ||||
|         include/msgpack/preprocessor/variadic/to_array.hpp | ||||
|         include/msgpack/preprocessor/variadic/to_list.hpp | ||||
|         include/msgpack/preprocessor/variadic/to_seq.hpp | ||||
|         include/msgpack/preprocessor/variadic/to_tuple.hpp | ||||
|         include/msgpack/preprocessor/while.hpp | ||||
|         include/msgpack/preprocessor/wstringize.hpp | ||||
|     include/msgpack/sbuffer.hpp | ||||
|     include/msgpack/sbuffer_decl.hpp | ||||
|     include/msgpack/sysdep.hpp | ||||
|     include/msgpack/type.hpp | ||||
|     include/msgpack/unpack.hpp | ||||
|     include/msgpack/unpack_decl.hpp | ||||
|     include/msgpack/unpack_define.hpp | ||||
|     include/msgpack/unpack_exception.hpp | ||||
|     include/msgpack/v1/adaptor/adaptor_base.hpp | ||||
|     include/msgpack/v1/adaptor/adaptor_base_decl.hpp | ||||
| @@ -556,6 +114,7 @@ IF (MSGPACK_ENABLE_CXX) | ||||
|     include/msgpack/v1/adaptor/char_ptr.hpp | ||||
|     include/msgpack/v1/adaptor/check_container_size.hpp | ||||
|     include/msgpack/v1/adaptor/check_container_size_decl.hpp | ||||
|     include/msgpack/v1/adaptor/complex.hpp | ||||
|     include/msgpack/v1/adaptor/cpp11/array.hpp | ||||
|     include/msgpack/v1/adaptor/cpp11/array_char.hpp | ||||
|     include/msgpack/v1/adaptor/cpp11/array_unsigned_char.hpp | ||||
| @@ -568,11 +127,13 @@ 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/array_byte.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/cpp20/span.hpp | ||||
|     include/msgpack/v1/adaptor/define.hpp | ||||
|     include/msgpack/v1/adaptor/define_decl.hpp | ||||
|     include/msgpack/v1/adaptor/deque.hpp | ||||
| @@ -638,7 +199,6 @@ IF (MSGPACK_ENABLE_CXX) | ||||
|     include/msgpack/v1/pack.hpp | ||||
|     include/msgpack/v1/pack_decl.hpp | ||||
|     include/msgpack/v1/parse_return.hpp | ||||
|         include/msgpack/v1/preprocessor.hpp | ||||
|     include/msgpack/v1/sbuffer.hpp | ||||
|     include/msgpack/v1/sbuffer_decl.hpp | ||||
|     include/msgpack/v1/unpack.hpp | ||||
| @@ -747,6 +307,7 @@ IF (MSGPACK_ENABLE_CXX) | ||||
|     include/msgpack/v3/zbuffer_decl.hpp | ||||
|     include/msgpack/v3/zone_decl.hpp | ||||
|     include/msgpack/version.hpp | ||||
|     include/msgpack/version_master.hpp | ||||
|     include/msgpack/versioning.hpp | ||||
|     include/msgpack/vrefbuffer.hpp | ||||
|     include/msgpack/vrefbuffer_decl.hpp | ||||
| @@ -758,5 +319,4 @@ IF (MSGPACK_ENABLE_CXX) | ||||
|     include/msgpack/zbuffer_decl.hpp | ||||
|     include/msgpack/zone.hpp | ||||
|     include/msgpack/zone_decl.hpp | ||||
|     ) | ||||
| ENDIF () | ||||
| ) | ||||
|   | ||||
							
								
								
									
										191
									
								
								QUICKSTART-C.md
									
									
									
									
									
								
							
							
						
						
									
										191
									
								
								QUICKSTART-C.md
									
									
									
									
									
								
							| @@ -1,191 +0,0 @@ | ||||
| # Implementation Status | ||||
|  | ||||
| The serialization library is production-ready. | ||||
|  | ||||
| Currently, RPC implementation is not available. | ||||
|  | ||||
| # Install | ||||
|  | ||||
| ## Install with package manager | ||||
|  | ||||
| ### MacOS with MacPorts | ||||
|  | ||||
| On MacOS, you can install MessagePack for C using MacPorts. | ||||
|  | ||||
| ``` | ||||
| $ sudo port install msgpack | ||||
| ``` | ||||
|  | ||||
| You might need to run `sudo port selfupdate` before installing to update the package repository. | ||||
|  | ||||
| You can also install via Homebrew. | ||||
|  | ||||
| ``` | ||||
| $ brew install msgpack | ||||
| ``` | ||||
|  | ||||
| ### FreeBSD with Ports Collection | ||||
|  | ||||
| On FreeBSD, you can use Ports Collection. Install [net/msgpack](http://www.freebsd.org/cgi/cvsweb.cgi/ports/devel/msgpack/) package. | ||||
|  | ||||
| ### Gentoo Linux with Portage | ||||
|  | ||||
| On Gentoo Linux, you can use emerge. Install [dev-libs/msgpack](http://gentoo-portage.com/dev-libs/msgpack) package. | ||||
|  | ||||
| ### Windows with vcpkg | ||||
|  | ||||
| There are several package managers available, and vcpkg is typical. | ||||
|  | ||||
| ``` | ||||
| $ vcpkg install msgpack:x64-windows | ||||
| ``` | ||||
| ## Install with source code | ||||
|  | ||||
| ### Build with cmake | ||||
|  | ||||
| You need to install cmake (2.8.12 or higher) first. | ||||
|  | ||||
| ``` | ||||
| $ git clone https://github.com/msgpack/msgpack-c.git | ||||
| $ cd msgpack-c | ||||
| $ mkdir build | ||||
| $ cd build | ||||
| $ cmake .. | ||||
| $ cmake --build . | ||||
| $ cmake --build . --target install | ||||
| ``` | ||||
| ### Build with autotools | ||||
|  | ||||
| In versions 1.4.2 and below, you can use `autotools` to build on UNIX-like platforms. | ||||
| ``` | ||||
| $ wget https://github.com/msgpack/msgpack-c/archive/cpp-1.3.0.tar.gz | ||||
| $ tar zxvf msgpack-1.3.0.tar.gz | ||||
| $ cd msgpack-1.3.0 | ||||
| $ ./bootstrap  # If the 'configure' script already exists, you can omit this step. | ||||
| $ ./configure | ||||
| $ make | ||||
| $ sudo make install | ||||
| ``` | ||||
|  | ||||
| # Serialization QuickStart for C | ||||
|  | ||||
| ## First program | ||||
|  | ||||
| Include `msgpack.h` header and link `msgpack` library to use MessagePack on your program. | ||||
|  | ||||
| ```c | ||||
| #include <msgpack.h> | ||||
| #include <stdio.h> | ||||
|  | ||||
| int main(void) { | ||||
|  | ||||
|         /* creates buffer and serializer instance. */ | ||||
|         msgpack_sbuffer* buffer = msgpack_sbuffer_new(); | ||||
|         msgpack_packer* pk = msgpack_packer_new(buffer, msgpack_sbuffer_write); | ||||
|  | ||||
|         /* serializes ["Hello", "MessagePack"]. */ | ||||
|         msgpack_pack_array(pk, 2); | ||||
|         msgpack_pack_bin(pk, 5); | ||||
|         msgpack_pack_bin_body(pk, "Hello", 5); | ||||
|         msgpack_pack_bin(pk, 11); | ||||
|         msgpack_pack_bin_body(pk, "MessagePack", 11); | ||||
|  | ||||
|         /* deserializes it. */ | ||||
|         msgpack_unpacked msg; | ||||
|         msgpack_unpacked_init(&msg); | ||||
|         msgpack_unpack_return ret = msgpack_unpack_next(&msg, buffer->data, buffer->size, NULL); | ||||
|  | ||||
|         /* prints the deserialized object. */ | ||||
|         msgpack_object obj = msg.data; | ||||
|         msgpack_object_print(stdout, obj);  /*=> ["Hello", "MessagePack"] */ | ||||
|  | ||||
|         /* cleaning */ | ||||
|         msgpack_sbuffer_free(buffer); | ||||
|         msgpack_packer_free(pk); | ||||
| } | ||||
| ``` | ||||
|  | ||||
| ## Simple program with a loop | ||||
|  | ||||
| ```c | ||||
| #include <msgpack.h> | ||||
| #include <stdio.h> | ||||
|  | ||||
| int main(void) { | ||||
|  | ||||
|         /* creates buffer and serializer instance. */ | ||||
|         msgpack_sbuffer* buffer = msgpack_sbuffer_new(); | ||||
|         msgpack_packer* pk = msgpack_packer_new(buffer, msgpack_sbuffer_write); | ||||
|  | ||||
|         int j; | ||||
|  | ||||
|         for(j = 0; j<23; j++) { | ||||
|            /* NB: the buffer needs to be cleared on each iteration */ | ||||
|            msgpack_sbuffer_clear(buffer); | ||||
|  | ||||
|            /* serializes ["Hello", "MessagePack"]. */ | ||||
|            msgpack_pack_array(pk, 3); | ||||
|            msgpack_pack_bin(pk, 5); | ||||
|            msgpack_pack_bin_body(pk, "Hello", 5); | ||||
|            msgpack_pack_bin(pk, 11); | ||||
|            msgpack_pack_bin_body(pk, "MessagePack", 11); | ||||
|            msgpack_pack_int(pk, j); | ||||
|  | ||||
|            /* deserializes it. */ | ||||
|            msgpack_unpacked msg; | ||||
|            msgpack_unpacked_init(&msg); | ||||
|            msgpack_unpack_return ret = msgpack_unpack_next(&msg, buffer->data, buffer->size, NULL); | ||||
|  | ||||
|            /* prints the deserialized object. */ | ||||
|            msgpack_object obj = msg.data; | ||||
|            msgpack_object_print(stdout, obj);  /*=> ["Hello", "MessagePack"] */ | ||||
|            puts(""); | ||||
|         } | ||||
|  | ||||
|         /* cleaning */ | ||||
|         msgpack_sbuffer_free(buffer); | ||||
|         msgpack_packer_free(pk); | ||||
| } | ||||
| ``` | ||||
|  | ||||
| ## Streaming feature | ||||
|  | ||||
| ```c | ||||
| #include <msgpack.h> | ||||
| #include <stdio.h> | ||||
|  | ||||
| int main(void) { | ||||
|         /* serializes multiple objects using msgpack_packer. */ | ||||
|         msgpack_sbuffer* buffer = msgpack_sbuffer_new(); | ||||
|         msgpack_packer* pk = msgpack_packer_new(buffer, msgpack_sbuffer_write); | ||||
|         msgpack_pack_int(pk, 1); | ||||
|         msgpack_pack_int(pk, 2); | ||||
|         msgpack_pack_int(pk, 3); | ||||
|  | ||||
|         /* deserializes these objects using msgpack_unpacker. */ | ||||
|         msgpack_unpacker pac; | ||||
|         msgpack_unpacker_init(&pac, MSGPACK_UNPACKER_INIT_BUFFER_SIZE); | ||||
|  | ||||
|         /* feeds the buffer. */ | ||||
|         msgpack_unpacker_reserve_buffer(&pac, buffer->size); | ||||
|         memcpy(msgpack_unpacker_buffer(&pac), buffer->data, buffer->size); | ||||
|         msgpack_unpacker_buffer_consumed(&pac, buffer->size); | ||||
|  | ||||
|         /* now starts streaming deserialization. */ | ||||
|         msgpack_unpacked result; | ||||
|         msgpack_unpacked_init(&result); | ||||
|  | ||||
|         while(msgpack_unpacker_next(&pac, &result)) { | ||||
|             msgpack_object_print(stdout, result.data); | ||||
|             puts(""); | ||||
|         } | ||||
|  | ||||
|         /* results: | ||||
|          * $ gcc stream.cc -lmsgpackc -o stream | ||||
|          * $ ./stream | ||||
|          * 1 | ||||
|          * 2 | ||||
|          * 3 | ||||
|          */ | ||||
| } | ||||
| ``` | ||||
							
								
								
									
										179
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										179
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,8 +1,8 @@ | ||||
| `msgpack` for C/C++ | ||||
| `msgpack` for C++ | ||||
| =================== | ||||
|  | ||||
| Version 3.3.0 [](https://travis-ci.org/msgpack/msgpack-c) [](https://ci.appveyor.com/project/redboltz/msgpack-c/branch/master) | ||||
| [](https://codecov.io/gh/msgpack/msgpack-c) | ||||
| Version 4.0.2 [](https://github.com/msgpack/msgpack-c/actions) [](https://ci.appveyor.com/project/redboltz/msgpack-c/branch/cpp_master) | ||||
| [](https://codecov.io/gh/msgpack/msgpack-c/branch/cpp_master) | ||||
|  | ||||
| It's like JSON but smaller and faster. | ||||
|  | ||||
| @@ -18,51 +18,6 @@ addition to the strings themselves. | ||||
| Example | ||||
| ------- | ||||
|  | ||||
| In C: | ||||
|  | ||||
| ```c | ||||
| #include <msgpack.h> | ||||
| #include <stdio.h> | ||||
|  | ||||
| int main(void) | ||||
| { | ||||
|     /* msgpack::sbuffer is a simple buffer implementation. */ | ||||
|     msgpack_sbuffer sbuf; | ||||
|     msgpack_sbuffer_init(&sbuf); | ||||
|  | ||||
|     /* serialize values into the buffer using msgpack_sbuffer_write callback function. */ | ||||
|     msgpack_packer pk; | ||||
|     msgpack_packer_init(&pk, &sbuf, msgpack_sbuffer_write); | ||||
|  | ||||
|     msgpack_pack_array(&pk, 3); | ||||
|     msgpack_pack_int(&pk, 1); | ||||
|     msgpack_pack_true(&pk); | ||||
|     msgpack_pack_str(&pk, 7); | ||||
|     msgpack_pack_str_body(&pk, "example", 7); | ||||
|  | ||||
|     /* deserialize the buffer into msgpack_object instance. */ | ||||
|     /* deserialized object is valid during the msgpack_zone instance alive. */ | ||||
|     msgpack_zone mempool; | ||||
|     msgpack_zone_init(&mempool, 2048); | ||||
|  | ||||
|     msgpack_object deserialized; | ||||
|     msgpack_unpack(sbuf.data, sbuf.size, NULL, &mempool, &deserialized); | ||||
|  | ||||
|     /* print the deserialized object. */ | ||||
|     msgpack_object_print(stdout, deserialized); | ||||
|     puts(""); | ||||
|  | ||||
|     msgpack_zone_destroy(&mempool); | ||||
|     msgpack_sbuffer_destroy(&sbuf); | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
| ``` | ||||
|  | ||||
| See [`QUICKSTART-C.md`](./QUICKSTART-C.md) for more details. | ||||
|  | ||||
| In C++: | ||||
|  | ||||
| ```c++ | ||||
| #include <msgpack.hpp> | ||||
| #include <string> | ||||
| @@ -108,76 +63,128 @@ int main() | ||||
|  | ||||
| See [`QUICKSTART-CPP.md`](./QUICKSTART-CPP.md) for more details. | ||||
|  | ||||
| Dependency | ||||
| ---------- | ||||
|  | ||||
| msgpack-c requires [boost library](https://www.boost.org/). | ||||
| C++ version of msgpack-c itself is a header-only library and depends only on | ||||
| boost headers. Tests depend on boost unit test framework and are linked with | ||||
| it, so if you want to build them, you need to have this dependency installed. | ||||
|  | ||||
| Usage | ||||
| ----- | ||||
|  | ||||
| ### C++ Header Only Library | ||||
| - If you build your project with cmake, you can find msgpack-c with a | ||||
|   canonical cmake-way: | ||||
|  | ||||
| When you use msgpack on C++, you can just add | ||||
| msgpack-c/include to your include path: | ||||
|   ```cmake | ||||
|   # ... | ||||
|   find_package(msgpack REQUIRED) | ||||
|   # ... | ||||
|   target_link_libraries(your_target_name <PRIVATE/PUBLIC/INTERFACE> msgpackc-cxx) | ||||
|   # ... | ||||
|   ``` | ||||
|  | ||||
|     g++ -I msgpack-c/include your_source_file.cpp | ||||
|   This will search for `msgpack` cmake package in a system prefix and in | ||||
|   prefixes from `CMAKE_PREFIX_PATH`. Note that msgpack-c depends on boost | ||||
|   headers, and `msgpack` cmake package depends on `Boost` cmake package. The | ||||
|   library is header-only and `target_link_libraries` command just adds path | ||||
|   to msgpack-c headers to your compiler's include path. | ||||
|  | ||||
| If you want to use C version of msgpack, you need to build it. You can | ||||
| also install the C and C++ versions of msgpack. | ||||
|   A usage example can be found at [test-install](test-install) directory. | ||||
|  | ||||
| ### Building and Installing | ||||
| - If you do not use cmake, you can just add path yo msgpack-c and boost | ||||
|   headers to your include path: | ||||
|  | ||||
| #### Install from git repository | ||||
|   ```bash | ||||
|   g++ -I msgpack-c/include -I path_to_boost your_source_file.cpp | ||||
|   ``` | ||||
|  | ||||
| ##### Using the Terminal (CLI) | ||||
| Building and Installing | ||||
| ----------------------- | ||||
|  | ||||
| ### Install from git repository | ||||
|  | ||||
| #### Using the Terminal (CLI) | ||||
|  | ||||
| You will need: | ||||
|  | ||||
|  - `gcc >= 4.1.0` | ||||
|  - `cmake >= 2.8.0` | ||||
| - `gcc >= 4.1.0` | ||||
| - `cmake >= 3.1.0` | ||||
|  | ||||
| C and C++03: | ||||
| C++03: | ||||
|  | ||||
|     $ git clone https://github.com/msgpack/msgpack-c.git | ||||
|     $ cd msgpack-c | ||||
|     $ cmake . | ||||
|     $ make | ||||
|     $ sudo make install | ||||
| ```bash | ||||
| git clone https://github.com/msgpack/msgpack-c.git | ||||
| cd msgpack-c | ||||
| git checkout cpp_master | ||||
| cmake . | ||||
| sudo cmake --build . --target install | ||||
| ``` | ||||
|  | ||||
| If you want to setup C++11 or C++17 version of msgpack instead, | ||||
| execute the following commands: | ||||
| If you want to build tests with different C++ version, you can use | ||||
| `MSGPACK_CXX11`, `MSGPACK_CXX14`, `MSGPACK_CXX17`, `MSGPACK_CXX20` options. | ||||
| Just replace the line | ||||
|  | ||||
|     $ git clone https://github.com/msgpack/msgpack-c.git | ||||
|     $ cd msgpack-c | ||||
|     $ cmake -DMSGPACK_CXX[11|17]=ON . | ||||
|     $ sudo make install | ||||
| ```bash | ||||
| cmake . | ||||
| ``` | ||||
|  | ||||
| `MSGPACK_CXX[11|17]` flags are not affected to installing files. Just switching test cases. All files are installed in every settings. | ||||
| with a line like that: | ||||
|  | ||||
| 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_LIBS=ON`. | ||||
| ```bash | ||||
| cmake -DMSGPACK_CXX20=ON . | ||||
| ``` | ||||
|  | ||||
| Note that these flags do not affect installation. They just switch test cases. | ||||
| All files are installed in every settings. | ||||
|  | ||||
| If you don't have superuser permissions or don't want to install the library | ||||
| to a system-wide prefix, you can use `CMAKE_INSTALL_PREFIX` option like that: | ||||
|  | ||||
| ```bash | ||||
| cmake -DCMAKE_INSTALL_PREFIX=/your/custom/prefix . | ||||
| ``` | ||||
|  | ||||
| Other useful options: | ||||
|  | ||||
| - `MSGPACK_BUILD_TESTS` (default `OFF`): build tests | ||||
| - `MSGPACK_BUILD_EXAMPLES` (default `OFF`): build examples | ||||
| - `MSGPACK_32BIT` (default `OFF`): 32bit compile | ||||
| - `MSGPACK_USE_X3_PARSE` (default `OFF`): use Boost X3 parse | ||||
|   (note that it requires C++14 or newer) | ||||
| - `MSGPACK_CHAR_SIGN` (not set explicitly by default): char sign to use (signed or unsigned) | ||||
| - `MSGPACK_USE_STATIC_BOOST` (default `OFF`): statically link with boost libraries | ||||
|  | ||||
| #### GUI on Windows | ||||
|  | ||||
| Clone msgpack-c git repository. | ||||
| Clone msgpack-c git repository with the command: | ||||
|  | ||||
|     $ git clone https://github.com/msgpack/msgpack-c.git | ||||
| ``` | ||||
| git clone https://github.com/msgpack/msgpack-c.git | ||||
| ``` | ||||
|  | ||||
| or using GUI git client. | ||||
| or using GUI git client (e.g. [tortoise git](https://code.google.com/p/tortoisegit/)). | ||||
|  | ||||
| e.g.) tortoise git https://code.google.com/p/tortoisegit/ | ||||
| 1. Checkout to `cpp_master` branch | ||||
|  | ||||
| 1. Launch [cmake GUI client](http://www.cmake.org/cmake/resources/software.html). | ||||
| 2. Launch [cmake GUI client](http://www.cmake.org/cmake/resources/software.html). | ||||
|  | ||||
| 2. Set 'Where is the source code:' text box and 'Where to build | ||||
| the binaries:' text box. | ||||
| 3. Set 'Where is the source code:' text box and | ||||
|    'Where to build the binaries:' text box. | ||||
|  | ||||
| 3. Click 'Configure' button. | ||||
| 4. Click 'Configure' button. | ||||
|  | ||||
| 4. Choose your Visual Studio version. | ||||
| 5. Choose your Visual Studio version. | ||||
|  | ||||
| 5. Click 'Generate' button. | ||||
| 6. Click 'Generate' button. | ||||
|  | ||||
| 6. Open the created msgpack.sln on Visual Studio. | ||||
| 7. Open the created msgpack.sln on Visual Studio. | ||||
|  | ||||
| 7. Build all. | ||||
| 8. Build all. | ||||
|  | ||||
| ### Documentation | ||||
| Documentation | ||||
| ------------- | ||||
|  | ||||
| You can get additional information including the tutorial on the | ||||
| [wiki](https://github.com/msgpack/msgpack-c/wiki). | ||||
|   | ||||
							
								
								
									
										104
									
								
								appveyor.yml
									
									
									
									
									
								
							
							
						
						
									
										104
									
								
								appveyor.yml
									
									
									
									
									
								
							| @@ -1,62 +1,66 @@ | ||||
| version: 3.3.0.{build} | ||||
| version: 4.0.2.{build} | ||||
|  | ||||
| branches: | ||||
|   only: | ||||
|   - master | ||||
|   - cpp_master | ||||
|  | ||||
| image: | ||||
| - Visual Studio 2015 | ||||
| environment: | ||||
|   global: | ||||
|     BOOST_ROOT: C:\Libraries\boost_1_67_0 | ||||
|   matrix: | ||||
|     - cpp11: -DMSGPACK_CXX11=OFF | ||||
|       boost: -DMSGPACK_BOOST=OFF | ||||
|       msvc: '"Visual Studio 10 2010"' | ||||
|     - cpp11: -DMSGPACK_CXX11=OFF | ||||
|       boost: -DMSGPACK_BOOST=OFF | ||||
|       msvc: '"Visual Studio 11 2012"' | ||||
|     - cpp11: -DMSGPACK_CXX11=OFF | ||||
|       boost: -DMSGPACK_BOOST=OFF | ||||
|     - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013 | ||||
|       cpp11: -DMSGPACK_CXX11=OFF | ||||
|       msvc: '"Visual Studio 12 2013"' | ||||
|     - cpp11: -DMSGPACK_CXX11=ON | ||||
|       boost: -DMSGPACK_BOOST=ON | ||||
|       boost_prefix: C:\Libraries\boost_1_58_0 | ||||
|       boost_subdir: lib32-msvc-12.0 | ||||
|     - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 | ||||
|       cpp11: -DMSGPACK_CXX11=OFF | ||||
|       msvc: '"Visual Studio 14 2015"' | ||||
|     - cpp11: -DMSGPACK_CXX11=OFF | ||||
|       boost: -DMSGPACK_BOOST=ON | ||||
|       msvc: '"Visual Studio 14 2015"' | ||||
|     - cpp11: -DMSGPACK_CXX11=ON | ||||
|       boost: -DMSGPACK_BOOST=OFF | ||||
|       msvc: '"Visual Studio 14 2015"' | ||||
|     - cpp11: -DMSGPACK_CXX11=OFF | ||||
|       boost: -DMSGPACK_BOOST=OFF | ||||
|       boost_prefix: C:\Libraries\boost_1_69_0 | ||||
|       boost_subdir: lib32-msvc-14.0 | ||||
|     - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 | ||||
|       cpp11: -DMSGPACK_CXX11=ON | ||||
|       msvc: '"Visual Studio 14 2015"' | ||||
|       boost_prefix: C:\Libraries\boost_1_69_0 | ||||
|       boost_subdir: lib32-msvc-14.0 | ||||
| build_script: | ||||
| - appveyor DownloadFile https://github.com/google/googletest/archive/release-1.7.0.zip -FileName googletest-release-1.7.0.zip | ||||
| - 7z x googletest-release-1.7.0.zip > NUL | ||||
| - cd googletest-release-1.7.0 | ||||
| - md build | ||||
| - cd build | ||||
| - cmake -G %msvc% -DBUILD_SHARED_LIBS=ON -DCMAKE_CXX_FLAGS=/D_VARIADIC_MAX=10 .. | ||||
| - cmake --build . --config Release | ||||
| - cd .. | ||||
| - cd .. | ||||
| - appveyor DownloadFile http://zlib.net/zlib-1.2.11.tar.gz -FileName zlib-1.2.11.tar.gz | ||||
| - 7z x zlib-1.2.11.tar.gz > NUL | ||||
| - 7z x zlib-1.2.11.tar > NUL | ||||
| - cd zlib-1.2.11 | ||||
| - md build | ||||
| - cd build | ||||
| - cmake -G %msvc% .. | ||||
| - cmake --build . --config Release | ||||
| - copy zconf.h .. | ||||
| - cd .. | ||||
| - cd .. | ||||
| - md build | ||||
| - cd build | ||||
| - cmake -G %msvc% %cpp11% %boost% %x3_parse% -DGTEST_LIBRARY=%APPVEYOR_BUILD_FOLDER%\googletest-release-1.7.0\build\Release\gtest.lib -DGTEST_MAIN_LIBRARY=%APPVEYOR_BUILD_FOLDER%\googletest-release-1.7.0\build\Release\gtest_main.lib -DGTEST_INCLUDE_DIR=%APPVEYOR_BUILD_FOLDER%\googletest-release-1.7.0\include -DZLIB_LIBRARY=%APPVEYOR_BUILD_FOLDER%\zlib-1.2.11\build\Release\zlib.lib -DZLIB_INCLUDE_DIR=%APPVEYOR_BUILD_FOLDER%\zlib-1.2.11 -DCMAKE_CXX_FLAGS='"/D_VARIADIC_MAX=10 /EHsc"' .. | ||||
| - cmake --build . --config Release -v | ||||
|   - ps: | | ||||
|       appveyor DownloadFile http://zlib.net/zlib-1.2.11.tar.gz -FileName zlib-1.2.11.tar.gz | ||||
|       7z x zlib-1.2.11.tar.gz 2> $null | ||||
|       7z x zlib-1.2.11.tar 2> $null | ||||
|       cd zlib-1.2.11 | ||||
|  | ||||
|       md build | ||||
|       md prefix | ||||
|       cd build | ||||
|  | ||||
|       cmake ` | ||||
|           -G $env:msvc ` | ||||
|           -D CMAKE_INSTALL_PREFIX="$env:APPVEYOR_BUILD_FOLDER\zlib-1.2.11\prefix" ` | ||||
|           .. | ||||
|       if ($LastExitCode -ne 0) { exit $LastExitCode } | ||||
|  | ||||
|       cmake --build . --target install --config Release | ||||
|       if ($LastExitCode -ne 0) { exit $LastExitCode } | ||||
|       cd ..\.. | ||||
|  | ||||
|       md build | ||||
|       md prefix | ||||
|       cd build | ||||
|  | ||||
|       cmake ` | ||||
|           -G $env:msvc ` | ||||
|           $env:cpp11 ` | ||||
|           -D MSGPACK_BUILD_EXAMPLES=ON ` | ||||
|           -D MSGPACK_BUILD_TESTS=ON ` | ||||
|           -D CMAKE_EXE_LINKER_FLAGS=/LIBPATH:"$env:boost_prefix\$env:boost_subdir" ` | ||||
|           -D CMAKE_PREFIX_PATH="$env:boost_prefix;$env:APPVEYOR_BUILD_FOLDER\zlib-1.2.11\prefix" ` | ||||
|           -D CMAKE_INSTALL_PREFIX="$env:APPVEYOR_BUILD_FOLDER\prefix" ` | ||||
|           -D CMAKE_CXX_FLAGS="/D_VARIADIC_MAX=10 /EHsc /DBOOST_ALL_DYN_LINK" ` | ||||
|           .. | ||||
|       if ($LastExitCode -ne 0) { exit $LastExitCode } | ||||
|  | ||||
|       cmake --build . --config Release | ||||
|       if ($LastExitCode -ne 0) { exit $LastExitCode } | ||||
|  | ||||
| test_script: | ||||
| - set PATH=%PATH%;%APPVEYOR_BUILD_FOLDER%\googletest-release-1.7.0\build\Release;%APPVEYOR_BUILD_FOLDER%\zlib-1.2.11\build\Release;%APPVEYOR_BUILD_FOLDER%\build\release | ||||
| - ctest -V | ||||
| - set PATH=%PATH%;%APPVEYOR_BUILD_FOLDER%\zlib-1.2.11\build\Release;%APPVEYOR_BUILD_FOLDER%\build\release;%boost_prefix%\%boost_subdir% | ||||
| - ctest -VV -C Release | ||||
|   | ||||
| @@ -1,23 +1,11 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| mkdir build | ||||
| build_dir="$CXX-build" | ||||
| prefix_dir="`pwd`/$CXX-prefix" | ||||
| mkdir $build_dir  || exit 1 | ||||
| mkdir $prefix_dir || exit 1 | ||||
|  | ||||
| ret=$? | ||||
| if [ $ret -ne 0 ] | ||||
| then | ||||
|     exit $ret | ||||
| fi | ||||
|  | ||||
| cd build | ||||
|  | ||||
| ret=$? | ||||
| if [ $ret -ne 0 ] | ||||
| then | ||||
|     exit $ret | ||||
| fi | ||||
|  | ||||
| if [ "${ARCH}" == "32" ] | ||||
| then | ||||
| if [ "${ARCH}" == "32" ]; then | ||||
|     export BIT32="ON" | ||||
|     export ARCH_FLAG="-m32" | ||||
| else | ||||
| @@ -25,41 +13,25 @@ else | ||||
|     export ARCH_FLAG="-m64" | ||||
| fi | ||||
|  | ||||
| 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} -DCMAKE_CXX_FLAGS=${ARCH_FLAG} .. | ||||
| cmake \ | ||||
|     -D CMAKE_PREFIX_PATH="${HOME}/boost-prefix/${ARCH};${HOME}/zlib-prefix/${ARCH}" \ | ||||
|     -D MSGPACK_BUILD_TESTS=ON \ | ||||
|     -D ${MSGPACK_CXX_VERSION} \ | ||||
|     -D MSGPACK_32BIT=${BIT32} \ | ||||
|     -D MSGPACK_CHAR_SIGN=${CHAR_SIGN} \ | ||||
|     -D MSGPACK_DEFAULT_API_VERSION=${API_VERSION} \ | ||||
|     -D MSGPACK_USE_X3_PARSE=${X3_PARSE} \ | ||||
|     -D CMAKE_CXX_FLAGS="${CXXFLAGS} ${ARCH_FLAG}" \ | ||||
|     -D CMAKE_INSTALL_PREFIX=$prefix_dir \ | ||||
|     -B $build_dir \ | ||||
|     -S . || exit 1 | ||||
|  | ||||
| ret=$? | ||||
| if [ $ret -ne 0 ] | ||||
| then | ||||
|     exit $ret | ||||
| fi | ||||
| cmake --build $build_dir --target install || exit 1 | ||||
|  | ||||
| make | ||||
| ctest -VV --test-dir $build_dir || exit 1 | ||||
|  | ||||
| ret=$? | ||||
| if [ $ret -ne 0 ] | ||||
| then | ||||
|     exit $ret | ||||
| fi | ||||
|  | ||||
| ctest -VV | ||||
|  | ||||
| ret=$? | ||||
| if [ $ret -ne 0 ] | ||||
| then | ||||
|     exit $ret | ||||
| fi | ||||
|  | ||||
| make install DESTDIR=`pwd`/install | ||||
|  | ||||
| ret=$? | ||||
| if [ $ret -ne 0 ] | ||||
| then | ||||
|     exit $ret | ||||
| fi | ||||
|  | ||||
| if [ "${ARCH}" != "32" ] && [ `uname` = "Linux" ] | ||||
| then | ||||
|     ctest -T memcheck | tee memcheck.log | ||||
| if [ "${ARCH}" != "32" ] && [ `uname` = "Linux" ]; then | ||||
|     ctest -T memcheck --test-dir $build_dir | tee memcheck.log | ||||
|  | ||||
|     ret=${PIPESTATUS[0]} | ||||
|     if [ $ret -ne 0 ] | ||||
| @@ -74,39 +46,15 @@ then | ||||
|     fi | ||||
| fi | ||||
|  | ||||
| if [ "${ARCH}" != "32" ] | ||||
| then | ||||
|     mkdir install-test | ||||
| if [ "${ARCH}" != "32" ]; then | ||||
|     cd test-install || exit 1 | ||||
|  | ||||
|     ret=$? | ||||
|     if [ $ret -ne 0 ] | ||||
|     then | ||||
|         exit $ret | ||||
|     fi | ||||
|     mkdir $build_dir | ||||
|     cmake \ | ||||
|         -D CMAKE_PREFIX_PATH="$prefix_dir;${HOME}/boost-prefix/${ARCH}" \ | ||||
|         -B $build_dir \ | ||||
|         -S . || exit 1 | ||||
|     cmake --build $build_dir --target all || exit 1 | ||||
|  | ||||
|     cd install-test | ||||
|  | ||||
|     ret=$? | ||||
|     if [ $ret -ne 0 ] | ||||
|     then | ||||
|         exit $ret | ||||
|     fi | ||||
|  | ||||
|     cmake -DCMAKE_PREFIX_PATH=`pwd`/../install/usr/local/lib/cmake ../../example/cmake | ||||
|  | ||||
|     ret=$? | ||||
|     if [ $ret -ne 0 ] | ||||
|     then | ||||
|         exit $ret | ||||
|     fi | ||||
|  | ||||
|     make | ||||
|  | ||||
|     ret=$? | ||||
|     if [ $ret -ne 0 ] | ||||
|     then | ||||
|         exit $ret | ||||
|     fi | ||||
|     $build_dir/test-install || exit 1 | ||||
| fi | ||||
|  | ||||
| exit 0 | ||||
|   | ||||
| @@ -1,59 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| cd example/cmake | ||||
|  | ||||
| ret=$? | ||||
| if [ $ret -ne 0 ] | ||||
| then | ||||
|     exit $ret | ||||
| fi | ||||
|  | ||||
| rm -f msgpack-c | ||||
|  | ||||
| ret=$? | ||||
| if [ $ret -ne 0 ] | ||||
| then | ||||
|     exit $ret | ||||
| fi | ||||
|  | ||||
| ln -s ../.. msgpack-c | ||||
|  | ||||
| ret=$? | ||||
| if [ $ret -ne 0 ] | ||||
| then | ||||
|     exit $ret | ||||
| fi | ||||
|  | ||||
| mkdir build | ||||
|  | ||||
| ret=$? | ||||
| if [ $ret -ne 0 ] | ||||
| then | ||||
|     exit $ret | ||||
| fi | ||||
|  | ||||
| cd build | ||||
|  | ||||
| ret=$? | ||||
| if [ $ret -ne 0 ] | ||||
| then | ||||
|     exit $ret | ||||
| fi | ||||
|  | ||||
| cmake -DEXAMPLE_MSGPACK_EMBEDDED=ON .. | ||||
|  | ||||
| ret=$? | ||||
| if [ $ret -ne 0 ] | ||||
| then | ||||
|     exit $ret | ||||
| fi | ||||
|  | ||||
| make example example-static | ||||
|  | ||||
| ret=$? | ||||
| if [ $ret -ne 0 ] | ||||
| then | ||||
|     exit $ret | ||||
| fi | ||||
|  | ||||
| exit 0 | ||||
| @@ -1,20 +1,7 @@ | ||||
| #!/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 | ||||
| build_dir="$CXX-build" | ||||
| mkdir $build_dir || exit 1 | ||||
|  | ||||
| if [ "${ARCH}" == "32" ] | ||||
| then | ||||
| @@ -22,28 +9,17 @@ then | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| cmake -DMSGPACK_FUZZ_REGRESSION="ON" -DMSGPACK_CXX11="ON" -DMSGPACK_BOOST=${BOOST} -DMSGPACK_SAN=${MSGPACK_SAN} -v .. | ||||
| cmake \ | ||||
|     -D CMAKE_PREFIX_PATH="${HOME}/boost-prefix/${ARCH};${HOME}/zlib-prefix/${ARCH}" \ | ||||
|     -D MSGPACK_FUZZ_REGRESSION="ON" \ | ||||
|     -D ${MSGPACK_CXX_VERSION} \ | ||||
|     -D MSGPACK_CHAR_SIGN=${CHAR_SIGN} \ | ||||
|     -D MSGPACK_DEFAULT_API_VERSION=${API_VERSION} \ | ||||
|     -D MSGPACK_USE_X3_PARSE=${X3_PARSE} \ | ||||
|     -D CMAKE_CXX_FLAGS="${CXXFLAGS}" \ | ||||
|     -B $build_dir \ | ||||
|     -S . || exit 1 | ||||
|  | ||||
| ret=$? | ||||
| if [ $ret -ne 0 ] | ||||
| then | ||||
|     exit $ret | ||||
| fi | ||||
| cmake --build $build_dir --target all || exit 1 | ||||
|  | ||||
| make | ||||
|  | ||||
| ret=$? | ||||
| if [ $ret -ne 0 ] | ||||
| then | ||||
|     exit $ret | ||||
| fi | ||||
|  | ||||
| make test | ||||
|  | ||||
| ret=$? | ||||
| if [ $ret -ne 0 ] | ||||
| then | ||||
|     exit $ret | ||||
| fi | ||||
|  | ||||
| exit 0 | ||||
| ctest -VV --test-dir $build_dir || exit 1 | ||||
|   | ||||
							
								
								
									
										17
									
								
								ci/set_gcc_10.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										17
									
								
								ci/set_gcc_10.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| version=10 | ||||
| priority=100 | ||||
|  | ||||
| sudo update-alternatives --install /usr/bin/gcc         gcc         /usr/bin/gcc-${version}         ${priority} | ||||
| sudo update-alternatives --install /usr/bin/gcc-ar      gcc-ar      /usr/bin/gcc-ar-${version}      ${priority} | ||||
| sudo update-alternatives --install /usr/bin/gcc-nm      gcc-nm      /usr/bin/gcc-nm-${version}      ${priority} | ||||
| sudo update-alternatives --install /usr/bin/gcc-ranlib  gcc-ranlib  /usr/bin/gcc-ranlib-${version}  ${priority} | ||||
| sudo update-alternatives --install /usr/bin/gcov        gcov        /usr/bin/gcov-${version}        ${priority} | ||||
| sudo update-alternatives --install /usr/bin/gcov-dump   gcov-dump   /usr/bin/gcov-dump-${version}   ${priority} | ||||
| sudo update-alternatives --install /usr/bin/gcov-tool   gcov-tool   /usr/bin/gcov-tool-${version}   ${priority} | ||||
| sudo update-alternatives --install /usr/bin/lto-dump    lto-dump    /usr/bin/lto-dump-${version}    ${priority} | ||||
| sudo update-alternatives --install /usr/bin/g++         g++         /usr/bin/g++-${version}         ${priority} | ||||
|  | ||||
| sudo update-alternatives --install /usr/bin/cc   cc   /usr/bin/gcc-${version} ${priority} | ||||
| sudo update-alternatives --install /usr/bin/c++  c++  /usr/bin/g++-${version} ${priority} | ||||
| @@ -7,10 +7,10 @@ IF(NOT GCOV_PATH) | ||||
|     MESSAGE(FATAL_ERROR "gcov not found! Aborting...") | ||||
| ENDIF() | ||||
|  | ||||
| IF(NOT CMAKE_COMPILER_IS_GNUCC) | ||||
| IF(NOT CMAKE_COMPILER_IS_GNUCC AND NOT CMAKE_COMPILER_IS_GNUCXX) | ||||
|     # Clang version 3.0.0 and greater now supports gcov as well. | ||||
|     MESSAGE(STATUS "Compiler is not GNU gcc! Clang Version 3.0.0 and greater supports gcov as well, but older versions don't.") | ||||
| 	IF(NOT "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" AND NOT "${CMAKE_C_COMPILER_ID}" STREQUAL "AppleClang") | ||||
|     IF(NOT "${CMAKE_C_COMPILER_ID}" MATCHES "Clang" AND NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") | ||||
|         MESSAGE(FATAL_ERROR "Compiler is not GNU gcc! Aborting...") | ||||
|     ENDIF() | ||||
| ENDIF() | ||||
|   | ||||
| @@ -10,8 +10,17 @@ | ||||
| #ifndef MSGPACK_V1_CPP03_ZONE_HPP | ||||
| #define MSGPACK_V1_CPP03_ZONE_HPP | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/cpp_config.hpp" | ||||
| #include "msgpack/zone_decl.hpp" | ||||
|  | ||||
| #include <stdint.h> | ||||
| #include <cstdlib> | ||||
| #include <memory> | ||||
| #include <vector> | ||||
|  | ||||
| #include <boost/assert.hpp> | ||||
|  | ||||
| <% GENERATION_LIMIT = 15 %> | ||||
| namespace msgpack { | ||||
|  | ||||
| @@ -192,10 +201,11 @@ inline zone::zone(size_t chunk_size) /* throw() */ :m_chunk_size(chunk_size), m_ | ||||
|  | ||||
| inline char* zone::get_aligned(char* ptr, size_t align) | ||||
| { | ||||
|     BOOST_ASSERT(align != 0 && (align & (align - 1)) == 0); // align must be 2^n (n >= 0) | ||||
|     return | ||||
|         reinterpret_cast<char*>( | ||||
|             reinterpret_cast<size_t>( | ||||
|             (ptr + (align - 1))) / align * align); | ||||
|             reinterpret_cast<uintptr_t>(ptr + (align - 1)) & ~static_cast<uintptr_t>(align - 1) | ||||
|         ); | ||||
| } | ||||
|  | ||||
| inline void* zone::allocate_align(size_t size, size_t align) | ||||
|   | ||||
| @@ -1,9 +1,4 @@ | ||||
| IF (NOT MSGPACK_CXX_ONLY) | ||||
|     ADD_SUBDIRECTORY (c) | ||||
| ENDIF () | ||||
| IF (MSGPACK_ENABLE_CXX) | ||||
|     ADD_SUBDIRECTORY (cpp03) | ||||
|     ADD_SUBDIRECTORY (cpp11) | ||||
|     ADD_SUBDIRECTORY (boost) | ||||
|     ADD_SUBDIRECTORY (x3) | ||||
| ENDIF () | ||||
| ADD_SUBDIRECTORY (cpp03) | ||||
| ADD_SUBDIRECTORY (cpp11) | ||||
| ADD_SUBDIRECTORY (boost) | ||||
| ADD_SUBDIRECTORY (x3) | ||||
|   | ||||
| @@ -1,21 +1,16 @@ | ||||
| IF (MSGPACK_BOOST) | ||||
|     LIST (APPEND exec_PROGRAMS | ||||
| FIND_PACKAGE (Boost REQUIRED COMPONENTS system) | ||||
| FIND_PACKAGE (Threads REQUIRED) | ||||
| FIND_PACKAGE (ZLIB REQUIRED) | ||||
|  | ||||
| LIST (APPEND exec_PROGRAMS | ||||
|     msgpack_variant_capitalize.cpp | ||||
|     msgpack_variant_mapbased.cpp | ||||
|     ) | ||||
|     IF (MSGPACK_CXX11 OR MSGPACK_CXX17) | ||||
|         FIND_PACKAGE (Threads REQUIRED) | ||||
|         LIST (APPEND exec_PROGRAMS | ||||
|             asio_send_recv.cpp | ||||
|         ) | ||||
| ) | ||||
|  | ||||
| IF (MSGPACK_CXX11 OR MSGPACK_CXX14 OR MSGPACK_CXX17 OR MSGPACK_CXX20) | ||||
|     LIST (APPEND exec_PROGRAMS asio_send_recv.cpp) | ||||
|     IF (ZLIB_FOUND) | ||||
|             INCLUDE_DIRECTORIES ( | ||||
|                 ${ZLIB_INCLUDE_DIRS} | ||||
|             ) | ||||
|             LIST (APPEND exec_PROGRAMS | ||||
|                 asio_send_recv_zlib.cpp | ||||
|             ) | ||||
|         ENDIF () | ||||
|         LIST (APPEND exec_PROGRAMS asio_send_recv_zlib.cpp) | ||||
|     ENDIF () | ||||
| ENDIF () | ||||
|  | ||||
| @@ -25,24 +20,19 @@ FOREACH (source_file ${exec_PROGRAMS}) | ||||
|         ${source_file_we} | ||||
|         ${source_file} | ||||
|     ) | ||||
|     TARGET_INCLUDE_DIRECTORIES (${source_file_we} | ||||
|         PRIVATE | ||||
|             $<TARGET_PROPERTY:msgpackc-cxx,INTERFACE_INCLUDE_DIRECTORIES> | ||||
|     ) | ||||
|     TARGET_LINK_LIBRARIES (${source_file_we} | ||||
|         ${Boost_SYSTEM_LIBRARY} | ||||
|         ${CMAKE_THREAD_LIBS_INIT} | ||||
|     TARGET_LINK_LIBRARIES (${source_file_we} PRIVATE | ||||
|         msgpackc-cxx | ||||
|         Boost::system | ||||
|         Threads::Threads | ||||
|     ) | ||||
|     IF (ZLIB_FOUND) | ||||
|         TARGET_LINK_LIBRARIES (${source_file_we} | ||||
|             ${ZLIB_LIBRARIES} | ||||
|         ) | ||||
|     ENDIF() | ||||
|     IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | ||||
|         TARGET_LINK_LIBRARIES (${source_file_we} PRIVATE ZLIB::ZLIB) | ||||
|     ENDIF () | ||||
|     IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | ||||
|         SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra") | ||||
|     ENDIF () | ||||
|  | ||||
|     IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") | ||||
|     IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") | ||||
|         SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags") | ||||
|     ENDIF () | ||||
|  | ||||
|   | ||||
| @@ -85,12 +85,12 @@ int main() { | ||||
|                             } | ||||
|                             std::cout << bytes_transferred << " bytes read." << std::endl; | ||||
|                             print(std::string(std::string(&buf[0], buf.size()))); | ||||
|                             strm.avail_in = bytes_transferred; | ||||
|                             strm.avail_in = static_cast<uInt>(bytes_transferred); | ||||
|                             do { | ||||
|                                 strm.next_in = reinterpret_cast<unsigned char*>(&buf[0]) + (bytes_transferred - strm.avail_in); | ||||
|                                 int zret; | ||||
|                                 unp.reserve_buffer(window_size); | ||||
|                                 strm.avail_out = window_size; | ||||
|                                 strm.avail_out = static_cast<uInt>(window_size); | ||||
|                                 strm.next_out = reinterpret_cast<unsigned char*>(unp.buffer()); | ||||
|                                 do { | ||||
|                                     zret = inflate(&strm, Z_NO_FLUSH); | ||||
|   | ||||
| @@ -1,44 +0,0 @@ | ||||
| FIND_PACKAGE (cJSON) | ||||
|  | ||||
| LIST (APPEND exec_PROGRAMS | ||||
|     boundary.c | ||||
|     lib_buffer_unpack.c | ||||
|     simple_c.c | ||||
|     speed_test_uint32_array.c | ||||
|     speed_test_uint64_array.c | ||||
|     user_buffer_unpack.c | ||||
| ) | ||||
| IF (cJSON_FOUND) | ||||
|     LIST (APPEND exec_PROGRAMS jsonconv.c) | ||||
| ENDIF () | ||||
|  | ||||
| FOREACH (source_file ${exec_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 | ||||
|     ) | ||||
|     IF ("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "GNU") | ||||
|         SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra") | ||||
|     ENDIF () | ||||
|  | ||||
|     IF ("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang") | ||||
|         SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags") | ||||
|     ENDIF () | ||||
|  | ||||
|     IF ("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC") | ||||
|         IF (CMAKE_C_FLAGS MATCHES "/W[0-4]") | ||||
|             STRING(REGEX REPLACE "/W[0-4]" "/W3 /WX" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") | ||||
|         ELSE () | ||||
|             SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W3 /WX") | ||||
|         ENDIF () | ||||
|     ENDIF () | ||||
| ENDFOREACH () | ||||
|  | ||||
| IF (cJSON_FOUND) | ||||
|     TARGET_LINK_LIBRARIES (jsonconv ${CJSON_LIBRARIES}) | ||||
|     TARGET_INCLUDE_DIRECTORIES(jsonconv PRIVATE ${CJSON_INCLUDE_DIRS}) | ||||
| ENDIF () | ||||
| @@ -1,296 +0,0 @@ | ||||
| /* gcc boundary.c -o boundary -Wconversion -Wpointer-sign */ | ||||
| #include <msgpack.h> | ||||
| #include <stdio.h> | ||||
| #include <assert.h> | ||||
|  | ||||
| static inline unsigned char atohex(char a) | ||||
| { | ||||
|     int x; | ||||
|     if (a >= 'a') { | ||||
|         x = a - 'a' + 10; | ||||
|     } else if (a >= 'A') { | ||||
|         x = a - 'A' + 10; | ||||
|     } else { | ||||
|         x = a - '0'; | ||||
|     } | ||||
|     assert(x >= 0 && x < 16); | ||||
|     return (unsigned char)x; | ||||
| } | ||||
|  | ||||
| // Return 0 if equal | ||||
| static inline int bytesncmp(char *data, const char *bytes, size_t len) | ||||
| { | ||||
|     size_t n = len >> 1; | ||||
|     size_t i = 0; | ||||
|     int diff; | ||||
|     for (; i < n; i++) { | ||||
|         diff = (unsigned char)data[i] - (atohex(bytes[2 * i]) << 4) - atohex(bytes[2 * i + 1]); | ||||
|         if (diff != 0) { | ||||
|             return diff; | ||||
|         } | ||||
|     } | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| int main() | ||||
| { | ||||
|     msgpack_sbuffer sbuf; | ||||
|     msgpack_packer *x; | ||||
|     size_t offset = 0; | ||||
|     char data[65536]; | ||||
|     msgpack_timestamp ts[] = { | ||||
|         { 0xFFFFFFFF, 0 }, | ||||
|         { 0x100000000, 0 }, | ||||
|         { 0x3FFFFFFFF, 0 }, | ||||
|         { 0x400000000, 0 }, | ||||
|         { INT64_MAX, UINT32_MAX } | ||||
|     }; | ||||
|  | ||||
| #define check_sbuffer(b)                                     \ | ||||
|     do {                                                     \ | ||||
|         size_t len = strlen(#b);                             \ | ||||
|         assert((sbuf.size - offset) * 2 == len);             \ | ||||
|         assert(bytesncmp(sbuf.data + offset, #b, len) == 0); \ | ||||
|         offset = sbuf.size;                                  \ | ||||
|     } while (0) | ||||
|  | ||||
|     msgpack_sbuffer_init(&sbuf); | ||||
|     x = msgpack_packer_new(&sbuf, msgpack_sbuffer_write); | ||||
|  | ||||
|     msgpack_pack_fix_uint8(x, 0); check_sbuffer(cc00);          /* cc 00 */ | ||||
|     msgpack_pack_fix_uint8(x, 0xFF); check_sbuffer(ccff);       /* cc ff */ | ||||
|     msgpack_pack_fix_uint16(x, 0); check_sbuffer(cd0000);       /* cd 00 00 */ | ||||
|     msgpack_pack_fix_uint16(x, 0xFFFF); check_sbuffer(cdffff);  /* cd ff ff */ | ||||
|     msgpack_pack_fix_uint32(x, 0); check_sbuffer(ce00000000);   /* ce 00 00 00 00 */ | ||||
|     msgpack_pack_fix_uint32(x, 0xFFFFFFFF); check_sbuffer(ceffffffff);  /* ce ff ff ff ff */ | ||||
|     msgpack_pack_fix_uint64(x, 0); check_sbuffer(cf0000000000000000);   /* cf 00 00 00 00 00 00 00 00 */ | ||||
|     msgpack_pack_fix_uint64(x, 0xFFFFFFFFFFFFFFFF); check_sbuffer(cfffffffffffffffff);  /* cf ff ff ff ff ff ff ff ff */ | ||||
|  | ||||
|     msgpack_pack_uint8(x, 0); check_sbuffer(00);            /* 00 */ | ||||
|     msgpack_pack_uint8(x, 0x7F); check_sbuffer(7f);         /* 7f */ | ||||
|     msgpack_pack_uint8(x, 0x80); check_sbuffer(cc80);       /* cc 80 */ | ||||
|     msgpack_pack_uint8(x, 0xFF); check_sbuffer(ccff);       /* cc ff */ | ||||
|  | ||||
|     msgpack_pack_uint16(x, 0); check_sbuffer(00);           /* 00 */ | ||||
|     msgpack_pack_uint16(x, 0x7F); check_sbuffer(7f);        /* 7f */ | ||||
|     msgpack_pack_uint16(x, 0x80); check_sbuffer(cc80);      /* cc 80 */ | ||||
|     msgpack_pack_uint16(x, 0xFF); check_sbuffer(ccff);      /* cc ff */ | ||||
|     msgpack_pack_uint16(x, 0x100); check_sbuffer(cd0100);   /* cd 01 00 */ | ||||
|     msgpack_pack_uint16(x, 0xFFFF); check_sbuffer(cdffff);  /* cd ff ff */ | ||||
|  | ||||
|     msgpack_pack_uint32(x, 0); check_sbuffer(00);           /* 00 */ | ||||
|     msgpack_pack_uint32(x, 0x7F); check_sbuffer(7f);        /* 7f */ | ||||
|     msgpack_pack_uint32(x, 0x80); check_sbuffer(cc80);      /* cc 80 */ | ||||
|     msgpack_pack_uint32(x, 0xFF); check_sbuffer(ccff);      /* cc ff */ | ||||
|     msgpack_pack_uint32(x, 0x100); check_sbuffer(cd0100);   /* cd 01 00 */ | ||||
|     msgpack_pack_uint32(x, 0xFFFF); check_sbuffer(cdffff);  /* cd ff ff */ | ||||
|     msgpack_pack_uint32(x, 0x10000); check_sbuffer(ce00010000);     /* ce 00 01 00 00 */ | ||||
|     msgpack_pack_uint32(x, 0xFFFFFFFF); check_sbuffer(ceffffffff);  /* ce ff ff ff ff */ | ||||
|  | ||||
|     msgpack_pack_uint64(x, 0); check_sbuffer(00);           /* 00 */ | ||||
|     msgpack_pack_uint64(x, 0x7F); check_sbuffer(7f);        /* 7f */ | ||||
|     msgpack_pack_uint64(x, 0x80); check_sbuffer(cc80);      /* cc 80 */ | ||||
|     msgpack_pack_uint64(x, 0xFF); check_sbuffer(ccff);      /* cc ff */ | ||||
|     msgpack_pack_uint64(x, 0x100); check_sbuffer(cd0100);   /* cd 01 00 */ | ||||
|     msgpack_pack_uint64(x, 0xFFFF); check_sbuffer(cdffff);  /* cd ff ff */ | ||||
|     msgpack_pack_uint64(x, 0x10000); check_sbuffer(ce00010000);     /* ce 00 01 00 00 */ | ||||
|     msgpack_pack_uint64(x, 0xFFFFFFFF); check_sbuffer(ceffffffff);  /* ce ff ff ff ff */ | ||||
|     msgpack_pack_uint64(x, 0x100000000); check_sbuffer(cf0000000100000000);         /* cf 00 00 00 01 00 00 00 00 */ | ||||
|     msgpack_pack_uint64(x, 0xFFFFFFFFFFFFFFFF); check_sbuffer(cfffffffffffffffff);  /* cf ff ff ff ff ff ff ff ff */ | ||||
|  | ||||
|     msgpack_pack_fix_int8(x, 0x7F); check_sbuffer(d07f);            /* d0 7f */ | ||||
|     msgpack_pack_fix_int8(x, -0x7F-1); check_sbuffer(d080);         /* d0 80 */ | ||||
|     msgpack_pack_fix_int16(x, 0x7FFF); check_sbuffer(d17fff);       /* d1 7f ff */ | ||||
|     msgpack_pack_fix_int16(x, -0x7FFF-1); check_sbuffer(d18000);    /* d1 80 00 */ | ||||
|     msgpack_pack_fix_int32(x, 0x7FFFFFFF); check_sbuffer(d27fffffff);       /* d2 7f ff ff ff */ | ||||
|     msgpack_pack_fix_int32(x, -0x7FFFFFFF-1); check_sbuffer(d280000000);    /* d2 80 00 00 00 */ | ||||
|     msgpack_pack_fix_int64(x, 0x7FFFFFFFFFFFFFFF); check_sbuffer(d37fffffffffffffff);       /* d3 7f ff ff ff ff ff ff ff */ | ||||
|     msgpack_pack_fix_int64(x, -0x7FFFFFFFFFFFFFFF-1); check_sbuffer(d38000000000000000);    /* d3 80 00 00 00 00 00 00 00 */ | ||||
|  | ||||
|     msgpack_pack_int8(x, -0x7F-1); check_sbuffer(d080);         /* d0 80 */ | ||||
|     msgpack_pack_int8(x, -0x21); check_sbuffer(d0df);           /* d0 df */ | ||||
|     msgpack_pack_int8(x, -0x20); check_sbuffer(e0);             /* e0 */ | ||||
|     msgpack_pack_int8(x, -1); check_sbuffer(ff);                /* ff */ | ||||
|     msgpack_pack_int8(x, 0); check_sbuffer(00);                 /* 00 */ | ||||
|     msgpack_pack_int8(x, 0x7F); check_sbuffer(7f);              /* 7f */ | ||||
|  | ||||
|     msgpack_pack_int16(x, -0x7FFF-1); check_sbuffer(d18000);    /* d1 80 00 */ | ||||
|     msgpack_pack_int16(x, -0x81); check_sbuffer(d1ff7f);        /* d1 ff 7f */ | ||||
|     msgpack_pack_int16(x, -0x80); check_sbuffer(d080);          /* d0 80 */ | ||||
|     msgpack_pack_int16(x, -0x21); check_sbuffer(d0df);          /* d0 df */ | ||||
|     msgpack_pack_int16(x, -0x20); check_sbuffer(e0);            /* e0 */ | ||||
|     msgpack_pack_int16(x, -0x1); check_sbuffer(ff);             /* ff */ | ||||
|     msgpack_pack_int16(x, 0); check_sbuffer(00);                /* 00 */ | ||||
|     msgpack_pack_int16(x, 0x7F); check_sbuffer(7f);             /* 7f */ | ||||
|     msgpack_pack_int16(x, 0x80); check_sbuffer(cc80);           /* cc 80 */ | ||||
|     msgpack_pack_int16(x, 0xFF); check_sbuffer(ccff);           /* cc ff */ | ||||
|     msgpack_pack_int16(x, 0x100); check_sbuffer(cd0100);        /* cd 01 00 */ | ||||
|     msgpack_pack_int16(x, 0x7FFF); check_sbuffer(cd7fff);       /* cd 7f ff */ | ||||
|  | ||||
|     msgpack_pack_int32(x, -0x7FFFFFFF-1); check_sbuffer(d280000000);    /* d2 80 00 00 00 */ | ||||
|     msgpack_pack_int32(x, -0x8001); check_sbuffer(d2ffff7fff);          /* d2 ff ff 7f ff */ | ||||
|     msgpack_pack_int32(x, -0x8000); check_sbuffer(d18000);              /* d1 80 00 */ | ||||
|     msgpack_pack_int32(x, -0x81); check_sbuffer(d1ff7f);                /* d1 ff 7f */ | ||||
|     msgpack_pack_int32(x, -0x80); check_sbuffer(d080);                  /* d0 80 */ | ||||
|     msgpack_pack_int32(x, -0x21); check_sbuffer(d0df);                  /* d0 df */ | ||||
|     msgpack_pack_int32(x, -0x20); check_sbuffer(e0);                    /* e0 */ | ||||
|     msgpack_pack_int32(x, -0x1); check_sbuffer(ff);                     /* ff */ | ||||
|     msgpack_pack_int32(x, 0); check_sbuffer(00);                        /* 00 */ | ||||
|     msgpack_pack_int32(x, 0x7F); check_sbuffer(7f);                     /* 7f */ | ||||
|     msgpack_pack_int32(x, 0x80); check_sbuffer(cc80);                   /* cc 80 */ | ||||
|     msgpack_pack_int32(x, 0xFF); check_sbuffer(ccff);                   /* cc ff */ | ||||
|     msgpack_pack_int32(x, 0x100); check_sbuffer(cd0100);                /* cd 01 00 */ | ||||
|     msgpack_pack_int32(x, 0xFFFF); check_sbuffer(cdffff);               /* cd ff ff */ | ||||
|     msgpack_pack_int32(x, 0x10000); check_sbuffer(ce00010000);          /* ce 00 01 00 00 */ | ||||
|     msgpack_pack_int32(x, 0x7FFFFFFF); check_sbuffer(ce7fffffff);       /* ce 7f ff ff ff */ | ||||
|  | ||||
|     msgpack_pack_int64(x, -0x7FFFFFFFFFFFFFFF-1); check_sbuffer(d38000000000000000);    /* d3 80 00 00 00 00 00 00 00 */ | ||||
|     msgpack_pack_int64(x, -((1LL<<31)+1)); check_sbuffer(d3ffffffff7fffffff);   /* d3 ff ff ff ff 7f ff ff ff */ | ||||
|     msgpack_pack_int64(x, -(1LL<<31)); check_sbuffer(d280000000);               /* d2 80 00 00 00 */ | ||||
|     msgpack_pack_int64(x, -0x8001); check_sbuffer(d2ffff7fff);                  /* d2 ff ff 7f ff */ | ||||
|     msgpack_pack_int64(x, -0x8000); check_sbuffer(d18000);                      /* d1 80 00 */ | ||||
|     msgpack_pack_int64(x, -0x81); check_sbuffer(d1ff7f);                        /* d1 ff 7f */ | ||||
|     msgpack_pack_int64(x, -0x80); check_sbuffer(d080);                          /* d0 80 */ | ||||
|     msgpack_pack_int64(x, -0x21); check_sbuffer(d0df);                          /* d0 df */ | ||||
|     msgpack_pack_int64(x, -0x20); check_sbuffer(e0);                            /* e0 */ | ||||
|     msgpack_pack_int64(x, -0x1); check_sbuffer(ff);                             /* ff */ | ||||
|     msgpack_pack_int64(x, 0); check_sbuffer(00);                                /* 00 */ | ||||
|     msgpack_pack_int64(x, 0x7F); check_sbuffer(7f);                             /* 7f */ | ||||
|     msgpack_pack_int64(x, 0x80); check_sbuffer(cc80);                           /* cc 80 */ | ||||
|     msgpack_pack_int64(x, 0xFF); check_sbuffer(ccff);                           /* cc ff */ | ||||
|     msgpack_pack_int64(x, 0x100); check_sbuffer(cd0100);                        /* cd 01 00 */ | ||||
|     msgpack_pack_int64(x, 0xFFFF); check_sbuffer(cdffff);                       /* cd ff ff */ | ||||
|     msgpack_pack_int64(x, 0x10000); check_sbuffer(ce00010000);                  /* ce 00 01 00 00 */ | ||||
|     msgpack_pack_int64(x, 0xFFFFFFFF); check_sbuffer(ceffffffff);               /* ce ff ff ff ff */ | ||||
|     msgpack_pack_int64(x, 0x100000000); check_sbuffer(cf0000000100000000);      /* cf 00 00 00 01 00 00 00 00 */ | ||||
|     msgpack_pack_int64(x, 0x7FFFFFFFFFFFFFFF); check_sbuffer(cf7fffffffffffffff);   /* cf 7f ff ff ff ff ff ff ff */ | ||||
|  | ||||
|     msgpack_pack_nil(x);    check_sbuffer(c0);          /* c0 */ | ||||
|     msgpack_pack_false(x);  check_sbuffer(c2);          /* c2 */ | ||||
|     msgpack_pack_true(x);   check_sbuffer(c3);          /* c3 */ | ||||
|  | ||||
|     msgpack_pack_float(x, 1.0); check_sbuffer(ca3f800000);          /* ca 3f 80 00 00 */ | ||||
|     msgpack_pack_double(x, 1.0); check_sbuffer(cb3ff0000000000000); /* cb 3f f0 00 00 00 00 00 00 */ | ||||
|  | ||||
|     msgpack_pack_unsigned_char(x, UINT8_MAX);       /* same as msgpack_pack_uint8() */ | ||||
|     msgpack_pack_unsigned_short(x, (unsigned short)UINT64_MAX); | ||||
|     msgpack_pack_unsigned_int(x, (unsigned int)UINT64_MAX); | ||||
|     msgpack_pack_unsigned_long(x, (unsigned long)UINT64_MAX); | ||||
|     msgpack_pack_unsigned_long_long(x, (unsigned long long)UINT64_MAX); | ||||
|  | ||||
|     msgpack_pack_signed_char(x, INT8_MAX);          /* same as msgpack_pack_int8() */ | ||||
|  | ||||
| #define check_sbuffer_n(b)                                   \ | ||||
|     do {                                                     \ | ||||
|         size_t len = strlen(#b);                             \ | ||||
|         assert(bytesncmp(sbuf.data + offset, #b, len) == 0); \ | ||||
|         offset = sbuf.size;                                  \ | ||||
|     } while (0) | ||||
|  | ||||
| #define fill_str(n) msgpack_pack_str_body(x, data, n) | ||||
|  | ||||
|     offset = sbuf.size; | ||||
|     msgpack_pack_str(x, 0); /* "" */ check_sbuffer(a0); /* a0 */ | ||||
|     msgpack_pack_str(x, 31); | ||||
|     fill_str(31); check_sbuffer_n(bf);                  /* bf ... */ | ||||
|     msgpack_pack_str(x, 32); | ||||
|     fill_str(32); check_sbuffer_n(d920);                /* d9 20 ... */ | ||||
|     msgpack_pack_str(x, 255); | ||||
|     fill_str(255); check_sbuffer_n(d9ff);               /* d9 ff ... */ | ||||
|     msgpack_pack_str(x, 256); | ||||
|     fill_str(256); check_sbuffer_n(da0100);             /* da 01 00 ... */ | ||||
|     msgpack_pack_str(x, 65535); | ||||
|     fill_str(65535); check_sbuffer_n(daffff);           /* da ff ff ... */ | ||||
|     msgpack_pack_str(x, 65536); | ||||
|     fill_str(65536); check_sbuffer_n(db00010000);       /* db 00 01 00 00 ... */ | ||||
|  | ||||
| #define fill_map(n)                                             \ | ||||
|     do {                                                        \ | ||||
|         size_t i = 0;                                           \ | ||||
|         for (; i < n * 2; i++) { msgpack_pack_int8(x, 0x1); }   \ | ||||
|     } while (0); | ||||
|  | ||||
|     msgpack_pack_map(x, 0); /* {} */ check_sbuffer(80); /* 80 */ | ||||
|     msgpack_pack_map(x, 1); | ||||
|     fill_map(1); check_sbuffer_n(81);                   /* 81 ... */ | ||||
|     msgpack_pack_map(x, 15); | ||||
|     fill_map(15); check_sbuffer_n(8f);                  /* 8f ... */ | ||||
|     msgpack_pack_map(x, 16); | ||||
|     fill_map(16); check_sbuffer_n(de0010);              /* de 00 10 ... */ | ||||
|     msgpack_pack_map(x, 65535); | ||||
|     fill_map(65535); check_sbuffer_n(deffff);           /* de ff ff ... */ | ||||
|     msgpack_pack_map(x, 65536); | ||||
|     fill_map(65536); check_sbuffer_n(df00010000);       /* df 00 01 00 00 ... */ | ||||
|  | ||||
| #define fill_array(n)                                       \ | ||||
|     do {                                                    \ | ||||
|         size_t i = 0;                                       \ | ||||
|         for (; i < n; i++) { msgpack_pack_int8(x, 0x1); }   \ | ||||
|     } while (0); | ||||
|  | ||||
|     msgpack_pack_array(x, 0); /* [] */ check_sbuffer(90);   /* 90 */ | ||||
|     msgpack_pack_array(x, 1); | ||||
|     fill_array(1); check_sbuffer_n(91);                 /* 91 ... */ | ||||
|     msgpack_pack_array(x, 15); | ||||
|     fill_array(15); check_sbuffer_n(9f);                /* 9f ... */ | ||||
|     msgpack_pack_array(x, 16); | ||||
|     fill_array(16); check_sbuffer_n(dc0010);            /* dc 00 10 ... */ | ||||
|     msgpack_pack_array(x, 65535); | ||||
|     fill_array(65535); check_sbuffer_n(dcffff);         /* dc ff ff ... */ | ||||
|     msgpack_pack_array(x, 65536); | ||||
|     fill_array(65536); check_sbuffer_n(dd00010000);     /* dd 00 01 00 00 ... */ | ||||
|  | ||||
| #define fill_bin(n) msgpack_pack_bin_body(x, data, n) | ||||
|  | ||||
|     msgpack_pack_bin(x, 0); check_sbuffer(c400);        /* c4 00 */ | ||||
|     msgpack_pack_bin(x, 1); | ||||
|     fill_bin(1); check_sbuffer_n(c401);                 /* c4 01 ... */ | ||||
|     msgpack_pack_bin(x, 255); | ||||
|     fill_bin(255); check_sbuffer_n(c4ff);               /* c4 ff ... */ | ||||
|     msgpack_pack_bin(x, 256); | ||||
|     fill_bin(256); check_sbuffer_n(c50100);             /* c5 01 00 ... */ | ||||
|     msgpack_pack_bin(x, 65535); | ||||
|     fill_bin(65535); check_sbuffer_n(c5ffff);           /* c5 ff ff ... */ | ||||
|     msgpack_pack_bin(x, 65536); | ||||
|     fill_bin(65536); check_sbuffer_n(c600010000);       /* c6 00 01 00 00 ... */ | ||||
|  | ||||
| #define fill_ext(n) msgpack_pack_ext_body(x, data, n) | ||||
|  | ||||
|     msgpack_pack_ext(x, 1, 0x7F); | ||||
|     fill_ext(1); check_sbuffer_n(d47f);                 /* d4 7f ... */ | ||||
|     msgpack_pack_ext(x, 2, 0x7F); | ||||
|     fill_ext(2); check_sbuffer_n(d57f);                 /* d5 7f ... */ | ||||
|     msgpack_pack_ext(x, 4, 0x7F); | ||||
|     fill_ext(4); check_sbuffer_n(d67f);                 /* d6 7f ... */ | ||||
|     msgpack_pack_ext(x, 8, 0x7F); | ||||
|     fill_ext(8); check_sbuffer_n(d77f);                 /* d7 7f ... */ | ||||
|     msgpack_pack_ext(x, 16, 0x7F); | ||||
|     fill_ext(16); check_sbuffer_n(d87f);                /* d8 7f ... */ | ||||
|  | ||||
|     msgpack_pack_ext(x, 0, 0x7F); check_sbuffer(c7007f); /* c7 00 7f */ | ||||
|     msgpack_pack_ext(x, 3, 0x7F); | ||||
|     fill_ext(3); check_sbuffer_n(c7037f);               /* c7 03 7f */ | ||||
|     msgpack_pack_ext(x, 5, 0x7F); | ||||
|     fill_ext(5); check_sbuffer_n(c7057f);               /* c7 05 7f */ | ||||
|     msgpack_pack_ext(x, 17, 0x7F); | ||||
|     fill_ext(17); check_sbuffer_n(c7117f);              /* c7 11 7f */ | ||||
|     msgpack_pack_ext(x, 255, 0x7F); | ||||
|     fill_ext(255); check_sbuffer_n(c7ff7f);             /* c7 ff 7f ... */ | ||||
|     msgpack_pack_ext(x, 256, 0x7F); | ||||
|     fill_ext(256); check_sbuffer_n(c801007f);           /* c8 01 00 7f ... */ | ||||
|     msgpack_pack_ext(x, 65535, 0x7F); | ||||
|     fill_ext(65535); check_sbuffer_n(c8ffff7f);         /* c8 ff ff 7f ... */ | ||||
|     msgpack_pack_ext(x, 65536, 0x7F); | ||||
|     fill_ext(65536); check_sbuffer_n(c9000100007f);     /* c9 00 01 00 00 7f ... */ | ||||
|  | ||||
|     msgpack_pack_timestamp(x, ts); check_sbuffer(d6ffffffffff); /* d6 ff ff ff ff ff */ | ||||
|     msgpack_pack_timestamp(x, ts + 1); check_sbuffer(d7ff0000000100000000); /* d7 ff 00 00 00 01 00 00 00 00 */ | ||||
|     msgpack_pack_timestamp(x, ts + 2); check_sbuffer(d7ff00000003ffffffff); /* d7 ff 00 00 00 03 ff ff ff ff */ | ||||
|     msgpack_pack_timestamp(x, ts + 3); check_sbuffer(c70cff000000000000000400000000);   /* c7 0c ff 00 00 00 00 00 00 00 04 00 00 00 00 */ | ||||
|     msgpack_pack_timestamp(x, ts + 4); check_sbuffer(c70cffffffffff7fffffffffffffff);   /* c7 0c ff ff ff ff ff 7f ff ff ff ff ff ff ff */ | ||||
|  | ||||
|     msgpack_sbuffer_destroy(&sbuf); | ||||
|     msgpack_packer_free(x); | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
| @@ -1,419 +0,0 @@ | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #include <string.h> | ||||
| #include <math.h> | ||||
| #include <msgpack.h> | ||||
| #include <cjson/cJSON.h> | ||||
|  | ||||
| #if defined(_MSC_VER) | ||||
| #if _MSC_VER >= 1800 | ||||
| #include <inttypes.h> | ||||
| #else | ||||
| #define PRIu64 "I64u" | ||||
| #define PRIi64 "I64i" | ||||
| #define PRIi8 "i" | ||||
| #endif | ||||
| #else | ||||
| #include <inttypes.h> | ||||
| #endif | ||||
|  | ||||
| #if defined(_KERNEL_MODE) | ||||
| #  undef  snprintf | ||||
| #  define snprintf _snprintf | ||||
| #endif | ||||
|  | ||||
| #define DEBUG(...) printf(__VA_ARGS__) | ||||
|  | ||||
| static char *format_string(const char *input) | ||||
| { | ||||
|     const char *inptr; | ||||
|     char *output; | ||||
|     char *outptr; | ||||
|     size_t output_length = 0; | ||||
|     /* numbers of additional characters*/ | ||||
|     size_t escape_characters = 0; | ||||
|  | ||||
|     if (input == NULL) { | ||||
|         return NULL; | ||||
|     } | ||||
|  | ||||
|     for (inptr = input; *inptr; inptr++) { | ||||
|         switch (*inptr) { | ||||
|         case '\"': | ||||
|         case '\\': | ||||
|         case '\b': | ||||
|         case '\f': | ||||
|         case '\n': | ||||
|         case '\r': | ||||
|         case '\t': | ||||
|             /* one character escape sequence */ | ||||
|             escape_characters++; | ||||
|             break; | ||||
|         default: | ||||
|             break; | ||||
|         } | ||||
|     } | ||||
|     output_length = (size_t)(inptr - input) + escape_characters; | ||||
|  | ||||
|     output = (char *)malloc(output_length + 1); | ||||
|     if (output == NULL) { | ||||
|         return NULL; | ||||
|     } | ||||
|  | ||||
|     /* no add characters*/ | ||||
|     if (escape_characters == 0) { | ||||
|         memcpy(output, input, output_length); | ||||
|         output[output_length] = '\0'; | ||||
|         return output; | ||||
|     } | ||||
|  | ||||
|     outptr = output; | ||||
|     /* copy string */ | ||||
|     for (inptr = input; *inptr != '\0'; (void)inptr++, outptr++) { | ||||
|         if ((*inptr > 31) && (*inptr != '\"') && (*inptr != '\\')) { | ||||
|             /* normal character, copy */ | ||||
|             *outptr = *inptr; | ||||
|         } else { | ||||
|             /* character needs to be escaped */ | ||||
|             *outptr++ = '\\'; | ||||
|             switch (*inptr) | ||||
|             { | ||||
|             case '\\': | ||||
|                 *outptr = '\\'; | ||||
|                 break; | ||||
|             case '\"': | ||||
|                 *outptr = '\"'; | ||||
|                 break; | ||||
|             case '\b': | ||||
|                 *outptr = 'b'; | ||||
|                 break; | ||||
|             case '\f': | ||||
|                 *outptr = 'f'; | ||||
|                 break; | ||||
|             case '\n': | ||||
|                 *outptr = 'n'; | ||||
|                 break; | ||||
|             case '\r': | ||||
|                 *outptr = 'r'; | ||||
|                 break; | ||||
|             case '\t': | ||||
|                 *outptr = 't'; | ||||
|                 break; | ||||
|             default: | ||||
|                 break; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     output[output_length] = '\0'; | ||||
|     return output; | ||||
| } | ||||
|  | ||||
| /* | ||||
|  * Pack cJSON object. | ||||
|  * return 0 success, others failed | ||||
|  */ | ||||
| static int parse_cjson_object(msgpack_packer *pk, cJSON *node) | ||||
| { | ||||
|     int ret, sz, i; | ||||
|     cJSON *child; | ||||
|     char *strvalue; | ||||
|  | ||||
|     if (node == NULL) { | ||||
|         return -1; | ||||
|     } | ||||
|  | ||||
|     switch (node->type & 0xFF) { | ||||
|     case cJSON_Invalid: | ||||
|         return -1; | ||||
|  | ||||
|     case cJSON_False: | ||||
|         return msgpack_pack_false(pk); | ||||
|  | ||||
|     case cJSON_True: | ||||
|         return msgpack_pack_true(pk); | ||||
|  | ||||
|     case cJSON_NULL: | ||||
|         return msgpack_pack_nil(pk); | ||||
|  | ||||
|     case cJSON_String: | ||||
|         strvalue = format_string(node->valuestring); | ||||
|         if (strvalue != NULL) { | ||||
|             ret = msgpack_pack_str_with_body(pk, strvalue, strlen(strvalue)); | ||||
|             free(strvalue); | ||||
|             return ret; | ||||
|         } else { | ||||
|             return -1; | ||||
|         } | ||||
|  | ||||
|     case cJSON_Number: | ||||
|         if (isnan(node->valuedouble) || isinf(node->valuedouble)) { | ||||
|             ret = msgpack_pack_nil(pk); | ||||
|         } else if (node->valuedouble == node->valueint) { | ||||
|             ret = msgpack_pack_int(pk, node->valueint); | ||||
|         } else { | ||||
|             ret = msgpack_pack_double(pk, node->valuedouble); | ||||
|         } | ||||
|         return ret; | ||||
|  | ||||
|     case cJSON_Array: | ||||
|         sz = cJSON_GetArraySize(node); | ||||
|         if (msgpack_pack_array(pk, sz) != 0) { | ||||
|             return -1; | ||||
|         } | ||||
|         for (i = 0; i < sz; i++) { | ||||
|             if (parse_cjson_object(pk, cJSON_GetArrayItem(node, i)) != 0) { | ||||
|                 return -1; | ||||
|             } | ||||
|         } | ||||
|         return 0; | ||||
|  | ||||
|     case cJSON_Object: | ||||
|         sz = cJSON_GetArraySize(node); | ||||
|         if (msgpack_pack_map(pk, sz) != 0) { | ||||
|             return -1; | ||||
|         } | ||||
|         for (i = 0; i < sz; i++) { | ||||
|             child = cJSON_GetArrayItem(node, i); | ||||
|             strvalue = format_string(child->string); | ||||
|             if (strvalue == NULL) { | ||||
|                 return -1; | ||||
|             } | ||||
|  | ||||
|             if (msgpack_pack_str_with_body(pk, strvalue, strlen(strvalue)) != 0) { | ||||
|                 free(strvalue); | ||||
|                 return -1; | ||||
|             } | ||||
|             free(strvalue); | ||||
|             if (parse_cjson_object(pk, child) != 0) { | ||||
|                 return -1; | ||||
|             } | ||||
|         } | ||||
|         return 0; | ||||
|  | ||||
|     default: | ||||
|         DEBUG("unknown type.\n"); | ||||
|         return -1; | ||||
|     } | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| /* | ||||
|  * Pack json string to msgpack format data. | ||||
|  * return 0 success, -1 failed | ||||
|  */ | ||||
| int msgpack_pack_jsonstr(msgpack_packer *pk, const char *jsonstr) | ||||
| { | ||||
|     int status; | ||||
|     cJSON *node; | ||||
|     const char *end = NULL; | ||||
|  | ||||
|     if (pk == NULL || jsonstr == NULL) { | ||||
|         return -1; | ||||
|     } | ||||
|  | ||||
|     node = cJSON_ParseWithOpts(jsonstr, &end, 1); | ||||
|     if (node == NULL) { | ||||
|         DEBUG("parse error: unexpected string `%s`\n", end); | ||||
|         return -1; | ||||
|     } | ||||
|     status = parse_cjson_object(pk, node); | ||||
|     cJSON_Delete(node); | ||||
|  | ||||
|     return status; | ||||
| } | ||||
|  | ||||
| static int bytes_contain_zero(const msgpack_object_bin *bin) | ||||
| { | ||||
|     size_t i; | ||||
|     for (i = 0; i < bin->size; i++) { | ||||
|         if (bin->ptr[i] == 0) { | ||||
|             return 1; | ||||
|         } | ||||
|     } | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| #define PRINT_JSONSTR_CALL(ret, func, aux_buffer, aux_buffer_size, ...) \ | ||||
|     ret = func(aux_buffer, aux_buffer_size, __VA_ARGS__);               \ | ||||
|     if (ret <= 0)                                                       \ | ||||
|         return ret;                                                     \ | ||||
|     if (ret > aux_buffer_size)                                          \ | ||||
|         return 0;                                                       \ | ||||
|     aux_buffer = aux_buffer + ret;                                      \ | ||||
|     aux_buffer_size = aux_buffer_size - ret | ||||
|  | ||||
| /* | ||||
|  * Convert msgpack format data to json string. | ||||
|  * return >0: success, 0: length of buffer not enough, -1: failed | ||||
|  */ | ||||
| size_t msgpack_object_print_jsonstr(char *buffer, size_t length, const msgpack_object o) | ||||
| { | ||||
|     char *aux_buffer = buffer; | ||||
|     size_t aux_buffer_size = length; | ||||
|     size_t ret; | ||||
|  | ||||
|     switch (o.type) { | ||||
|     case MSGPACK_OBJECT_NIL: | ||||
|         PRINT_JSONSTR_CALL(ret, snprintf, aux_buffer, aux_buffer_size, "null"); | ||||
|         break; | ||||
|  | ||||
|     case MSGPACK_OBJECT_BOOLEAN: | ||||
|         PRINT_JSONSTR_CALL(ret, snprintf, aux_buffer, aux_buffer_size, (o.via.boolean ? "true" : "false")); | ||||
|         break; | ||||
|  | ||||
|     case MSGPACK_OBJECT_POSITIVE_INTEGER: | ||||
| #if defined(PRIu64) | ||||
|         PRINT_JSONSTR_CALL(ret, snprintf, aux_buffer, aux_buffer_size, "%" PRIu64, o.via.u64); | ||||
| #else | ||||
|         if (o.via.u64 > ULONG_MAX) { | ||||
|             PRINT_JSONSTR_CALL(ret, snprintf, aux_buffer, aux_buffer_size, "%lu", ULONG_MAX); | ||||
|         } else { | ||||
|             PRINT_JSONSTR_CALL(ret, snprintf, aux_buffer, aux_buffer_size, "%lu", (unsigned long)o.via.u64); | ||||
|         } | ||||
| #endif | ||||
|         break; | ||||
|  | ||||
|     case MSGPACK_OBJECT_NEGATIVE_INTEGER: | ||||
| #if defined(PRIi64) | ||||
|         PRINT_JSONSTR_CALL(ret, snprintf, aux_buffer, aux_buffer_size, "%" PRIi64, o.via.i64); | ||||
| #else | ||||
|         if (o.via.i64 > LONG_MAX) { | ||||
|             PRINT_JSONSTR_CALL(ret, snprintf, aux_buffer, aux_buffer_size, "%ld", LONG_MAX); | ||||
|         } else if (o.via.i64 < LONG_MIN) { | ||||
|             PRINT_JSONSTR_CALL(ret, snprintf, aux_buffer, aux_buffer_size, "%ld", LONG_MIN); | ||||
|         } else { | ||||
|             PRINT_JSONSTR_CALL(ret, snprintf, aux_buffer, aux_buffer_size, "%ld", (signed long)o.via.i64); | ||||
|         } | ||||
| #endif | ||||
|         break; | ||||
|  | ||||
|     case MSGPACK_OBJECT_FLOAT32: | ||||
|     case MSGPACK_OBJECT_FLOAT64: | ||||
|         PRINT_JSONSTR_CALL(ret, snprintf, aux_buffer, aux_buffer_size, "%f", o.via.f64); | ||||
|         break; | ||||
|  | ||||
|     case MSGPACK_OBJECT_STR: | ||||
|         PRINT_JSONSTR_CALL(ret, snprintf, aux_buffer, aux_buffer_size, "\"%.*s\"", (int)o.via.str.size, o.via.str.ptr); | ||||
|         break; | ||||
|  | ||||
|     case MSGPACK_OBJECT_BIN: | ||||
|         if (bytes_contain_zero(&o.via.bin)) { | ||||
|             DEBUG("the value contains zero\n"); | ||||
|             return -1; | ||||
|         } | ||||
|         PRINT_JSONSTR_CALL(ret, snprintf, aux_buffer, aux_buffer_size, "\"%.*s\"", (int)o.via.bin.size, o.via.bin.ptr); | ||||
|         break; | ||||
|  | ||||
|     case MSGPACK_OBJECT_EXT: | ||||
|         DEBUG("not support type: MSGPACK_OBJECT_EXT.\n"); | ||||
|         return -1; | ||||
|  | ||||
|     case MSGPACK_OBJECT_ARRAY: | ||||
|         PRINT_JSONSTR_CALL(ret, snprintf, aux_buffer, aux_buffer_size, "["); | ||||
|         if (o.via.array.size != 0) { | ||||
|             msgpack_object *p = o.via.array.ptr; | ||||
|             msgpack_object *const pend = o.via.array.ptr + o.via.array.size; | ||||
|             PRINT_JSONSTR_CALL(ret, msgpack_object_print_jsonstr, aux_buffer, aux_buffer_size, *p); | ||||
|             ++p; | ||||
|             for (; p < pend; ++p) { | ||||
|                 PRINT_JSONSTR_CALL(ret, snprintf, aux_buffer, aux_buffer_size, ","); | ||||
|                 PRINT_JSONSTR_CALL(ret, msgpack_object_print_jsonstr, aux_buffer, aux_buffer_size, *p); | ||||
|             } | ||||
|         } | ||||
|         PRINT_JSONSTR_CALL(ret, snprintf, aux_buffer, aux_buffer_size, "]"); | ||||
|         break; | ||||
|  | ||||
|     case MSGPACK_OBJECT_MAP: | ||||
|         PRINT_JSONSTR_CALL(ret, snprintf, aux_buffer, aux_buffer_size, "{"); | ||||
|         if (o.via.map.size != 0) { | ||||
|             msgpack_object_kv *p = o.via.map.ptr; | ||||
|             msgpack_object_kv *const pend = o.via.map.ptr + o.via.map.size; | ||||
|  | ||||
|             for (; p < pend; ++p) { | ||||
|                 if (p->key.type != MSGPACK_OBJECT_STR) { | ||||
|                     DEBUG("the key of in a map must be string.\n"); | ||||
|                     return -1; | ||||
|                 } | ||||
|                 if (p != o.via.map.ptr) { | ||||
|                     PRINT_JSONSTR_CALL(ret, snprintf, aux_buffer, aux_buffer_size, ","); | ||||
|                 } | ||||
|                 PRINT_JSONSTR_CALL(ret, msgpack_object_print_jsonstr, aux_buffer, aux_buffer_size, p->key); | ||||
|                 PRINT_JSONSTR_CALL(ret, snprintf, aux_buffer, aux_buffer_size, ":"); | ||||
|                 PRINT_JSONSTR_CALL(ret, msgpack_object_print_jsonstr, aux_buffer, aux_buffer_size, p->val); | ||||
|             } | ||||
|         } | ||||
|         PRINT_JSONSTR_CALL(ret, snprintf, aux_buffer, aux_buffer_size, "}"); | ||||
|         break; | ||||
|  | ||||
|     default: | ||||
|         DEBUG("unknown type.\n"); | ||||
|         return -1; | ||||
|     } | ||||
|  | ||||
|     return length - aux_buffer_size; | ||||
| } | ||||
| #undef PRINT_JSONSTR_CALL | ||||
|  | ||||
| static void test(const char *name, const char *input, const char *expect) | ||||
| { | ||||
|     msgpack_sbuffer sbuf; | ||||
|     { | ||||
|         // pack | ||||
|         msgpack_packer pk; | ||||
|         msgpack_sbuffer_init(&sbuf); | ||||
|         msgpack_packer_init(&pk, &sbuf, msgpack_sbuffer_write); | ||||
|         if (msgpack_pack_jsonstr(&pk, input) < 0) { | ||||
|             msgpack_sbuffer_destroy(&sbuf); | ||||
|             printf("%s: invalid json string.\n", name); | ||||
|             return; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     { | ||||
|         // unpack | ||||
| #define MAX_JSONLEN 1024 | ||||
|         msgpack_zone z; | ||||
|         msgpack_object obj; | ||||
|         size_t jsonstrlen = MAX_JSONLEN - 1; | ||||
|         char jsonparsed[MAX_JSONLEN]; | ||||
|  | ||||
|         msgpack_zone_init(&z, jsonstrlen); | ||||
|         msgpack_unpack(sbuf.data, sbuf.size, NULL, &z, &obj); | ||||
|         jsonstrlen = msgpack_object_print_jsonstr(jsonparsed, jsonstrlen, obj); | ||||
|         jsonparsed[jsonstrlen] = '\0'; | ||||
|  | ||||
|         //compare input and output | ||||
|         if (expect == NULL) { | ||||
|             expect = input; | ||||
|         } | ||||
|         if (strcmp(expect, jsonparsed) == 0) { | ||||
|             printf("%s: ok\n", name); | ||||
|         } else { | ||||
|             printf("%s: failed\n", name); | ||||
|         } | ||||
|         msgpack_zone_destroy(&z); | ||||
|     } | ||||
|     msgpack_sbuffer_destroy(&sbuf); | ||||
| } | ||||
|  | ||||
| int main() | ||||
| { | ||||
|     test("null", "null", NULL); | ||||
|     test("boolean", "false", NULL); | ||||
|     test("single string", "\"frsyuki\"", NULL); | ||||
|     test("single number", "\"100\"", NULL); | ||||
|     test("space", "[{\"valuespace\":\"\",\"\":\"keyspace\"},\"\",[\"\"]]", NULL); | ||||
|     test("quote", "\"My name is Tom (\\\"Bee\\\") Kobe\"", NULL); | ||||
|     test("escape", "\"\\\\b\\f\\n\\r\\t\"", NULL); | ||||
|     test("escape2", "\"\b\f\n\r\t\"", "\"\\b\\f\\n\\r\\t\""); | ||||
|     test("map", "{\"name\":\"Tom (\\\"Bee\\\") Kobe\",\"type\":\"image\",\"data\":{\"width\":360,\"height\":460,\"title\":\"View me\",\"ips\":[116,943,256,711]}}", NULL); | ||||
|     test("array", "[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"]", NULL); | ||||
|     test("number array", "[[101,121,-33],[119,911,171],[0,2,-3]]", NULL); | ||||
|     test("mix array", "[{\"name\":\"Tom\",\"city\":\"London\",\"country\":\"UK\",\"longitude\":23},{\"name\":\"Jack\",\"city\":\"Birmingham\",\"country\":\"UK\",\"longitude\":-22}]", NULL); | ||||
|     test("unicode", "\"\\u5C71\\u5DDD\\u7570\\u57DF\\u98A8\\u6708\\u540C\\u5929\"", "\"山川異域風月同天\""); | ||||
|     test("utf8", "\"山川異域風月同天\"", NULL); | ||||
|     test("double", "12.34", "12.340000"); | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
| @@ -1,127 +0,0 @@ | ||||
| #include <msgpack.h> | ||||
| #include <stdio.h> | ||||
| #include <assert.h> | ||||
|  | ||||
|  | ||||
| typedef struct receiver { | ||||
|     msgpack_sbuffer sbuf; | ||||
|     size_t rest; | ||||
| } receiver; | ||||
|  | ||||
| void receiver_init(receiver *r) { | ||||
|     msgpack_packer pk; | ||||
|  | ||||
|     msgpack_sbuffer_init(&r->sbuf); | ||||
|     msgpack_packer_init(&pk, &r->sbuf, msgpack_sbuffer_write); | ||||
|     /* 1st object */ | ||||
|     msgpack_pack_array(&pk, 3); | ||||
|     msgpack_pack_int(&pk, 1); | ||||
|     msgpack_pack_true(&pk); | ||||
|     msgpack_pack_str(&pk, 7); | ||||
|     msgpack_pack_str_body(&pk, "example", 7); | ||||
|     /* 2nd object */ | ||||
|     msgpack_pack_str(&pk, 6); | ||||
|     msgpack_pack_str_body(&pk, "second", 6); | ||||
|     /* 3rd object */ | ||||
|     msgpack_pack_array(&pk, 2); | ||||
|     msgpack_pack_int(&pk, 42); | ||||
|     msgpack_pack_false(&pk); | ||||
|     r->rest = r->sbuf.size; | ||||
| } | ||||
|  | ||||
| size_t receiver_recv(receiver *r, char* buf, size_t try_size) { | ||||
|     size_t off = r->sbuf.size - r->rest; | ||||
|  | ||||
|     size_t actual_size = try_size; | ||||
|     if (actual_size > r->rest) actual_size = r->rest; | ||||
|  | ||||
|     memcpy(buf, r->sbuf.data + off, actual_size); | ||||
|     r->rest -= actual_size; | ||||
|  | ||||
|     return actual_size; | ||||
| } | ||||
|  | ||||
| size_t receiver_to_unpacker(receiver* r, size_t request_size, | ||||
|         msgpack_unpacker *unpacker) | ||||
| { | ||||
|     size_t recv_len; | ||||
|     // make sure there's enough room, or expand the unpacker accordingly | ||||
|     if (msgpack_unpacker_buffer_capacity(unpacker) < request_size) { | ||||
|         msgpack_unpacker_reserve_buffer(unpacker, request_size); | ||||
|         assert(msgpack_unpacker_buffer_capacity(unpacker) >= request_size); | ||||
|     } | ||||
|     recv_len = receiver_recv(r, msgpack_unpacker_buffer(unpacker), | ||||
|                              request_size); | ||||
|     msgpack_unpacker_buffer_consumed(unpacker, recv_len); | ||||
|     return recv_len; | ||||
| } | ||||
|  | ||||
| #define EACH_RECV_SIZE 4 | ||||
|  | ||||
| void unpack(receiver* r) { | ||||
|     /* buf is allocated by unpacker. */ | ||||
|     msgpack_unpacker* unp = msgpack_unpacker_new(100); | ||||
|     msgpack_unpacked result; | ||||
|     msgpack_unpack_return ret; | ||||
|     size_t recv_len; | ||||
|     int recv_count = 0; | ||||
|     int i = 0; | ||||
|  | ||||
|     msgpack_unpacked_init(&result); | ||||
|     while (true) { | ||||
|         recv_len = receiver_to_unpacker(r, EACH_RECV_SIZE, unp); | ||||
|         if (recv_len == 0) break; // (reached end of input) | ||||
| #if defined(_MSC_VER) || defined(__MINGW32__) | ||||
|         printf("receive count: %d %Id bytes received.\n", recv_count++, recv_len); | ||||
| #else // defined(_MSC_VER) || defined(__MINGW32__) | ||||
|         printf("receive count: %d %zd bytes received.\n", recv_count++, recv_len); | ||||
| #endif // defined(_MSC_VER) || defined(__MINGW32__) | ||||
|         ret = msgpack_unpacker_next(unp, &result); | ||||
|         while (ret == MSGPACK_UNPACK_SUCCESS) { | ||||
|             msgpack_object obj = result.data; | ||||
|  | ||||
|             /* Use obj. */ | ||||
|             printf("Object no %d:\n", ++i); | ||||
|             msgpack_object_print(stdout, obj); | ||||
|             printf("\n"); | ||||
|             /* If you want to allocate something on the zone, you can use zone. */ | ||||
|             /* msgpack_zone* zone = result.zone; */ | ||||
|             /* The lifetime of the obj and the zone,  */ | ||||
|  | ||||
|             ret = msgpack_unpacker_next(unp, &result); | ||||
|         } | ||||
|         if (ret == MSGPACK_UNPACK_PARSE_ERROR) { | ||||
|             printf("The data in the buf is invalid format.\n"); | ||||
|             msgpack_unpacked_destroy(&result); | ||||
|             return; | ||||
|         } | ||||
|     } | ||||
|     msgpack_unpacked_destroy(&result); | ||||
|     msgpack_unpacker_free(unp); | ||||
| } | ||||
|  | ||||
| int main(void) { | ||||
|     receiver r; | ||||
|     receiver_init(&r); | ||||
|  | ||||
|     unpack(&r); | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| /* Output */ | ||||
|  | ||||
| /* | ||||
| receive count: 0 4 bytes received. | ||||
| receive count: 1 4 bytes received. | ||||
| receive count: 2 4 bytes received. | ||||
| Object no 1: | ||||
| [1, true, "example"] | ||||
| receive count: 3 4 bytes received. | ||||
| receive count: 4 4 bytes received. | ||||
| Object no 2: | ||||
| "second" | ||||
| receive count: 5 1 bytes received. | ||||
| Object no 3: | ||||
| [42, false] | ||||
| */ | ||||
| @@ -1,47 +0,0 @@ | ||||
| #include <msgpack.h> | ||||
| #include <stdio.h> | ||||
|  | ||||
| void print(char const* buf,size_t len) | ||||
| { | ||||
|     size_t i = 0; | ||||
|     for(; i < len ; ++i) | ||||
|         printf("%02x ", 0xff & buf[i]); | ||||
|     printf("\n"); | ||||
| } | ||||
|  | ||||
| int main(void) | ||||
| { | ||||
|     msgpack_sbuffer sbuf; | ||||
|     msgpack_packer pk; | ||||
|     msgpack_zone mempool; | ||||
|     msgpack_object deserialized; | ||||
|  | ||||
|     /* msgpack::sbuffer is a simple buffer implementation. */ | ||||
|     msgpack_sbuffer_init(&sbuf); | ||||
|  | ||||
|     /* serialize values into the buffer using msgpack_sbuffer_write callback function. */ | ||||
|     msgpack_packer_init(&pk, &sbuf, msgpack_sbuffer_write); | ||||
|  | ||||
|     msgpack_pack_array(&pk, 3); | ||||
|     msgpack_pack_int(&pk, 1); | ||||
|     msgpack_pack_true(&pk); | ||||
|     msgpack_pack_str(&pk, 7); | ||||
|     msgpack_pack_str_body(&pk, "example", 7); | ||||
|  | ||||
|     print(sbuf.data, sbuf.size); | ||||
|  | ||||
|     /* deserialize the buffer into msgpack_object instance. */ | ||||
|     /* deserialized object is valid during the msgpack_zone instance alive. */ | ||||
|     msgpack_zone_init(&mempool, 2048); | ||||
|  | ||||
|     msgpack_unpack(sbuf.data, sbuf.size, NULL, &mempool, &deserialized); | ||||
|  | ||||
|     /* print the deserialized object. */ | ||||
|     msgpack_object_print(stdout, deserialized); | ||||
|     puts(""); | ||||
|  | ||||
|     msgpack_zone_destroy(&mempool); | ||||
|     msgpack_sbuffer_destroy(&sbuf); | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
| @@ -1,36 +0,0 @@ | ||||
| #include <msgpack.h> | ||||
|  | ||||
| void test() | ||||
| { | ||||
|     size_t size = 10000000; | ||||
|     msgpack_sbuffer buf; | ||||
|     msgpack_packer * pk; | ||||
|     size_t upk_pos = 0; | ||||
|     msgpack_unpacked msg; | ||||
|  | ||||
|     msgpack_sbuffer_init(&buf); | ||||
|  | ||||
|     pk = msgpack_packer_new(&buf, msgpack_sbuffer_write); | ||||
|  | ||||
|     msgpack_pack_array(pk, size); | ||||
|     { | ||||
|         size_t idx = 0; | ||||
|         for (; idx < size; ++idx) | ||||
|             msgpack_pack_uint32(pk, 1); | ||||
|     } | ||||
|     msgpack_packer_free(pk); | ||||
|  | ||||
|     msgpack_unpacked_init(&msg); | ||||
|  | ||||
|     while (msgpack_unpack_next(&msg, buf.data, buf.size, &upk_pos) == MSGPACK_UNPACK_SUCCESS) { | ||||
|     } | ||||
|  | ||||
|     msgpack_sbuffer_destroy(&buf); | ||||
| } | ||||
|  | ||||
| int main(void) | ||||
| { | ||||
|     int i = 0; | ||||
|     for (; i < 10; ++i) test(); | ||||
|     return 0; | ||||
| } | ||||
| @@ -1,37 +0,0 @@ | ||||
| #include <msgpack.h> | ||||
|  | ||||
| void test() | ||||
| { | ||||
|     uint64_t test_u64 = 0xFFF0000000000001LL; | ||||
|     size_t size = 10000000; | ||||
|     msgpack_sbuffer buf; | ||||
|     msgpack_packer * pk; | ||||
|     size_t upk_pos = 0; | ||||
|     msgpack_unpacked msg; | ||||
|  | ||||
|     msgpack_sbuffer_init(&buf); | ||||
|  | ||||
|     pk = msgpack_packer_new(&buf, msgpack_sbuffer_write); | ||||
|  | ||||
|     msgpack_pack_array(pk, size); | ||||
|     { | ||||
|         size_t idx = 0; | ||||
|         for (; idx < size; ++idx) | ||||
|             msgpack_pack_uint64(pk, test_u64); | ||||
|     } | ||||
|     msgpack_packer_free(pk); | ||||
|  | ||||
|     msgpack_unpacked_init(&msg); | ||||
|  | ||||
|     while (msgpack_unpack_next(&msg, buf.data, buf.size, &upk_pos) == MSGPACK_UNPACK_SUCCESS) { | ||||
|     } | ||||
|  | ||||
|     msgpack_sbuffer_destroy(&buf); | ||||
| } | ||||
|  | ||||
| int main(void) | ||||
| { | ||||
|     int i = 0; | ||||
|     for (; i < 10; ++i) test(); | ||||
|     return 0; | ||||
| } | ||||
| @@ -1,81 +0,0 @@ | ||||
| #include <msgpack.h> | ||||
| #include <stdio.h> | ||||
| #include <assert.h> | ||||
|  | ||||
| #define UNPACKED_BUFFER_SIZE 2048 | ||||
|  | ||||
| void prepare(msgpack_sbuffer* sbuf) { | ||||
|     msgpack_packer pk; | ||||
|  | ||||
|     msgpack_packer_init(&pk, sbuf, msgpack_sbuffer_write); | ||||
|     /* 1st object */ | ||||
|     msgpack_pack_array(&pk, 3); | ||||
|     msgpack_pack_int(&pk, 1); | ||||
|     msgpack_pack_true(&pk); | ||||
|     msgpack_pack_str(&pk, 7); | ||||
|     msgpack_pack_str_body(&pk, "example", 7); | ||||
|     /* 2nd object */ | ||||
|     msgpack_pack_str(&pk, 6); | ||||
|     msgpack_pack_str_body(&pk, "second", 6); | ||||
|     /* 3rd object */ | ||||
|     msgpack_pack_array(&pk, 2); | ||||
|     msgpack_pack_int(&pk, 42); | ||||
|     msgpack_pack_false(&pk); | ||||
| } | ||||
|  | ||||
| void unpack(char const* buf, size_t len) { | ||||
|     /* buf is allocated by client. */ | ||||
|     msgpack_unpacked result; | ||||
|     size_t off = 0; | ||||
|     msgpack_unpack_return ret; | ||||
|     int i = 0; | ||||
|     char unpacked_buffer[UNPACKED_BUFFER_SIZE]; | ||||
|     msgpack_unpacked_init(&result); | ||||
|     ret = msgpack_unpack_next(&result, buf, len, &off); | ||||
|     while (ret == MSGPACK_UNPACK_SUCCESS) { | ||||
|         msgpack_object obj = result.data; | ||||
|  | ||||
|         /* Use obj. */ | ||||
|         printf("Object no %d:\n", ++i); | ||||
|         msgpack_object_print(stdout, obj); | ||||
|         printf("\n"); | ||||
|         msgpack_object_print_buffer(unpacked_buffer, UNPACKED_BUFFER_SIZE, obj); | ||||
|         printf("%s\n", unpacked_buffer); | ||||
|         /* If you want to allocate something on the zone, you can use zone. */ | ||||
|         /* msgpack_zone* zone = result.zone; */ | ||||
|         /* The lifetime of the obj and the zone,  */ | ||||
|  | ||||
|         ret = msgpack_unpack_next(&result, buf, len, &off); | ||||
|     } | ||||
|     msgpack_unpacked_destroy(&result); | ||||
|  | ||||
|     if (ret == MSGPACK_UNPACK_CONTINUE) { | ||||
|         printf("All msgpack_object in the buffer is consumed.\n"); | ||||
|     } | ||||
|     else if (ret == MSGPACK_UNPACK_PARSE_ERROR) { | ||||
|         printf("The data in the buf is invalid format.\n"); | ||||
|     } | ||||
| } | ||||
|  | ||||
| int main(void) { | ||||
|     msgpack_sbuffer sbuf; | ||||
|     msgpack_sbuffer_init(&sbuf); | ||||
|  | ||||
|     prepare(&sbuf); | ||||
|     unpack(sbuf.data, sbuf.size); | ||||
|  | ||||
|     msgpack_sbuffer_destroy(&sbuf); | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| /* Output */ | ||||
|  | ||||
| /* | ||||
| Object no 1: | ||||
| [1, true, "example"] | ||||
| Object no 2: | ||||
| "second" | ||||
| Object no 3: | ||||
| [42, false] | ||||
| All msgpack_object in the buffer is consumed. | ||||
| */ | ||||
| @@ -1,17 +0,0 @@ | ||||
| cmake_minimum_required (VERSION 3.0) | ||||
| project (example) | ||||
|  | ||||
| if(EXAMPLE_MSGPACK_EMBEDDED) | ||||
|     add_subdirectory(msgpack-c) | ||||
|     set(msgpack_DIR ${CMAKE_CURRENT_BINARY_DIR}/msgpack-c) | ||||
| endif() | ||||
|  | ||||
| find_package(msgpack REQUIRED) | ||||
|  | ||||
| add_executable (${PROJECT_NAME} ${CMAKE_CURRENT_LIST_DIR}/../c/simple_c.c) | ||||
| target_link_libraries(${PROJECT_NAME} msgpackc) | ||||
|  | ||||
| if(TARGET msgpackc-static) | ||||
|     add_executable (${PROJECT_NAME}-static ${CMAKE_CURRENT_LIST_DIR}/../c/simple_c.c) | ||||
|     target_link_libraries(${PROJECT_NAME}-static msgpackc-static) | ||||
| endif() | ||||
| @@ -1,3 +1,7 @@ | ||||
| FIND_PACKAGE (Threads REQUIRED) | ||||
|  | ||||
| FIND_PACKAGE (Boost COMPONENTS timer) | ||||
|  | ||||
| LIST (APPEND exec_PROGRAMS | ||||
|     class_intrusive.cpp | ||||
|     class_intrusive_map.cpp | ||||
| @@ -22,12 +26,12 @@ IF (NOT MSVC) | ||||
|     ) | ||||
| ENDIF () | ||||
|  | ||||
| IF (MSGPACK_BOOST) | ||||
| if (Boost_TIMER_LIBRARY) | ||||
|     LIST (APPEND with_boost_lib_PROGRAMS | ||||
|         speed_test.cpp | ||||
|         speed_test_nested_array.cpp | ||||
|     ) | ||||
| ENDIF () | ||||
| endif() | ||||
|  | ||||
| FOREACH (source_file ${exec_PROGRAMS}) | ||||
|     GET_FILENAME_COMPONENT (source_file_we ${source_file} NAME_WE) | ||||
| @@ -35,11 +39,10 @@ FOREACH (source_file ${exec_PROGRAMS}) | ||||
|         ${source_file_we} | ||||
|         ${source_file} | ||||
|     ) | ||||
|     TARGET_INCLUDE_DIRECTORIES (${source_file_we} | ||||
|         PRIVATE | ||||
|             $<TARGET_PROPERTY:msgpackc-cxx,INTERFACE_INCLUDE_DIRECTORIES> | ||||
|     TARGET_LINK_LIBRARIES (${source_file_we} PRIVATE | ||||
|         msgpackc-cxx | ||||
|     ) | ||||
|     IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | ||||
|     IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | ||||
|         SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra") | ||||
|     ENDIF () | ||||
|     IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") | ||||
| @@ -57,14 +60,11 @@ FOREACH (source_file ${with_pthread_PROGRAMS}) | ||||
|         ${source_file_we} | ||||
|         ${source_file} | ||||
|     ) | ||||
|     TARGET_INCLUDE_DIRECTORIES (${source_file_we} | ||||
|         PRIVATE | ||||
|             $<TARGET_PROPERTY:msgpackc-cxx,INTERFACE_INCLUDE_DIRECTORIES> | ||||
|     TARGET_LINK_LIBRARIES (${source_file_we} PRIVATE | ||||
|         msgpackc-cxx | ||||
|         Threads::Threads | ||||
|     ) | ||||
|     TARGET_LINK_LIBRARIES (${source_file_we} | ||||
|         ${CMAKE_THREAD_LIBS_INIT} | ||||
|     ) | ||||
|     IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | ||||
|     IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | ||||
|         SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra") | ||||
|     ENDIF () | ||||
|     IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") | ||||
| @@ -77,36 +77,26 @@ FOREACH (source_file ${with_pthread_PROGRAMS}) | ||||
| ENDFOREACH () | ||||
|  | ||||
| FOREACH (source_file ${with_boost_lib_PROGRAMS}) | ||||
|     INCLUDE_DIRECTORIES ( | ||||
|         ../include | ||||
|         ${Boost_INCLUDE_DIRS} | ||||
|     ) | ||||
|     GET_FILENAME_COMPONENT (source_file_we ${source_file} NAME_WE) | ||||
|     ADD_EXECUTABLE ( | ||||
|         ${source_file_we} | ||||
|         ${source_file} | ||||
|     ) | ||||
|     TARGET_INCLUDE_DIRECTORIES (${source_file_we} | ||||
|         PRIVATE | ||||
|             $<TARGET_PROPERTY:msgpackc-cxx,INTERFACE_INCLUDE_DIRECTORIES> | ||||
|     ) | ||||
|     LINK_DIRECTORIES(${Boost_LIBRARY_DIRS}) | ||||
|     TARGET_LINK_LIBRARIES (${source_file_we} | ||||
|         ${Boost_TIMER_LIBRARY} | ||||
|         ${Boost_CHRONO_LIBRARY} | ||||
|         ${Boost_SYSTEM_LIBRARY} | ||||
|     TARGET_LINK_LIBRARIES (${source_file_we} PRIVATE | ||||
|         msgpackc-cxx | ||||
|         Boost::timer | ||||
|     ) | ||||
|     IF (NOT MSVC AND NOT APPLE) | ||||
|         TARGET_LINK_LIBRARIES (${source_file_we} | ||||
|         TARGET_LINK_LIBRARIES (${source_file_we} PRIVATE | ||||
|             rt | ||||
|         ) | ||||
|     ENDIF () | ||||
|  | ||||
|     IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | ||||
|     IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | ||||
|         SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -O3") | ||||
|     ENDIF () | ||||
|  | ||||
|     IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") | ||||
|     IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") | ||||
|         SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags") | ||||
|     ENDIF () | ||||
|  | ||||
|   | ||||
| @@ -1,8 +1,4 @@ | ||||
| IF (MSGPACK_CXX11 OR MSGPACK_CXX17) | ||||
|     INCLUDE_DIRECTORIES ( | ||||
|         ../include | ||||
|     ) | ||||
|  | ||||
| IF (MSGPACK_CXX11 OR MSGPACK_CXX14 OR MSGPACK_CXX17) | ||||
|     LIST (APPEND exec_PROGRAMS | ||||
|         container.cpp | ||||
|         non_def_con_class.cpp | ||||
| @@ -20,15 +16,14 @@ IF (MSGPACK_CXX11 OR MSGPACK_CXX17) | ||||
|             ${source_file_we} | ||||
|             ${source_file} | ||||
|         ) | ||||
|         TARGET_INCLUDE_DIRECTORIES (${source_file_we} | ||||
|             PRIVATE | ||||
|                 $<TARGET_PROPERTY:msgpackc-cxx,INTERFACE_INCLUDE_DIRECTORIES> | ||||
|         TARGET_LINK_LIBRARIES (${source_file_we} PRIVATE | ||||
|             msgpackc-cxx | ||||
|         ) | ||||
|         IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | ||||
|         IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | ||||
|             SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra") | ||||
|         ENDIF () | ||||
|  | ||||
|         IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") | ||||
|         IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") | ||||
|             SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags") | ||||
|         ENDIF () | ||||
|  | ||||
|   | ||||
| @@ -25,8 +25,9 @@ void array() { | ||||
|     std::stringstream ss; | ||||
|     msgpack::pack(ss, a); | ||||
|  | ||||
|     msgpack::object_handle oh = msgpack::unpack(ss.str().data(), ss.str().size()); | ||||
|     msgpack::object obj = oh.get(); | ||||
|     auto const& str = ss.str(); | ||||
|     auto oh = msgpack::unpack(str.data(), str.size()); | ||||
|     auto obj = oh.get(); | ||||
|  | ||||
|     std::cout << obj << std::endl; | ||||
|     assert((obj.as<std::array<int, 5>>()) == a); | ||||
|   | ||||
| @@ -1,32 +1,27 @@ | ||||
| IF (MSGPACK_USE_X3_PARSE AND MSGPACK_DEFAULT_API_VERSION VERSION_GREATER 1) | ||||
|     INCLUDE_DIRECTORIES ( | ||||
|         ../include | ||||
|     ) | ||||
|     FIND_PACKAGE (Boost REQUIRED COMPONENTS context system) | ||||
|     FIND_PACKAGE (Threads REQUIRED) | ||||
|  | ||||
|     LIST (APPEND exec_PROGRAMS | ||||
|         unpack.cpp | ||||
|         parse.cpp | ||||
|     ) | ||||
|     IF (MSGPACK_BOOST) | ||||
|     LIST (APPEND with_boost_PROGRAMS | ||||
|         stream_unpack.cpp | ||||
|     ) | ||||
|     ENDIF () | ||||
|     FOREACH (source_file ${exec_PROGRAMS}) | ||||
|         GET_FILENAME_COMPONENT (source_file_we ${source_file} NAME_WE) | ||||
|         ADD_EXECUTABLE ( | ||||
|             ${source_file_we} | ||||
|             ${source_file} | ||||
|         ) | ||||
|         TARGET_INCLUDE_DIRECTORIES (${source_file_we} | ||||
|             PRIVATE | ||||
|                 $<TARGET_PROPERTY:msgpackc-cxx,INTERFACE_INCLUDE_DIRECTORIES> | ||||
|         ) | ||||
|         IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | ||||
|         TARGET_LINK_LIBRARIES (${source_file_we} PRIVATE msgpackc-cxx) | ||||
|  | ||||
|         IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | ||||
|             SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra") | ||||
|         ENDIF () | ||||
|  | ||||
|         IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") | ||||
|         IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") | ||||
|             SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags") | ||||
|         ENDIF () | ||||
|  | ||||
| @@ -44,20 +39,17 @@ IF (MSGPACK_USE_X3_PARSE AND MSGPACK_DEFAULT_API_VERSION VERSION_GREATER 1) | ||||
|             ${source_file_we} | ||||
|             ${source_file} | ||||
|         ) | ||||
|         TARGET_INCLUDE_DIRECTORIES (${source_file_we} | ||||
|             PRIVATE | ||||
|                 $<TARGET_PROPERTY:msgpackc-cxx,INTERFACE_INCLUDE_DIRECTORIES> | ||||
|         TARGET_LINK_LIBRARIES (${source_file_we} PRIVATE | ||||
|             msgpackc-cxx | ||||
|             Boost::context | ||||
|             Boost::system | ||||
|             Threads::Threads | ||||
|         ) | ||||
|         TARGET_LINK_LIBRARIES (${source_file_we} | ||||
|             ${Boost_CONTEXT_LIBRARY} | ||||
|             ${Boost_SYSTEM_LIBRARY} | ||||
|             ${CMAKE_THREAD_LIBS_INIT} | ||||
|         ) | ||||
|         IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | ||||
|         IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | ||||
|             SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra") | ||||
|         ENDIF () | ||||
|  | ||||
|         IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") | ||||
|         IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") | ||||
|             SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags") | ||||
|         ENDIF () | ||||
|  | ||||
|   | ||||
							
								
								
									
										1
									
								
								external/boost/predef
									
									
									
									
										vendored
									
									
								
							
							
								
								
								
								
								
							
						
						
									
										1
									
								
								external/boost/predef
									
									
									
									
										vendored
									
									
								
							 Submodule external/boost/predef deleted from 560ff5298e
									
								
							
							
								
								
									
										1
									
								
								external/boost/preprocessor
									
									
									
									
										vendored
									
									
								
							
							
								
								
								
								
								
							
						
						
									
										1
									
								
								external/boost/preprocessor
									
									
									
									
										vendored
									
									
								
							 Submodule external/boost/preprocessor deleted from 56090c56b5
									
								
							| @@ -1,36 +1,31 @@ | ||||
| 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} | ||||
| ) | ||||
| FIND_PACKAGE (Threads REQUIRED) | ||||
| FIND_PACKAGE (Boost REQUIRED COMPONENTS system filesystem unit_test_framework) | ||||
|  | ||||
| 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_COMPILE_DEFINITIONS (${source_file_we} PRIVATE | ||||
|         $<IF:$<BOOL:${MSGPACK_USE_STATIC_BOOST}>,,BOOST_TEST_DYN_LINK>) | ||||
|  | ||||
|     TARGET_LINK_LIBRARIES (${source_file_we} | ||||
|         msgpackc | ||||
|         ${GTEST_BOTH_LIBRARIES} | ||||
|         ${ZLIB_LIBRARIES} | ||||
|         ${CMAKE_THREAD_LIBS_INIT} | ||||
|         ${Boost_LIBRARIES} | ||||
|         msgpackc-cxx | ||||
|         Threads::Threads | ||||
|         Boost::filesystem | ||||
|         Boost::system | ||||
|         Boost::unit_test_framework | ||||
|     ) | ||||
|  | ||||
|     ADD_TEST (${source_file_we} ${source_file_we}) | ||||
|     IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") | ||||
|  | ||||
|     IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "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") | ||||
|   | ||||
| @@ -1,50 +1,49 @@ | ||||
| #include <boost/filesystem.hpp> | ||||
| #include <gtest/gtest.h> | ||||
|  | ||||
| // Use parameterized tests instead of modern data-driven test cases | ||||
| // because BOOST_DATA_TEST_CASE requires C++11 or newer. See: | ||||
| // - https://www.boost.org/doc/libs/1_76_0/libs/test/doc/html/boost_test/tests_organization/test_cases/param_test.html | ||||
| // - https://www.boost.org/doc/libs/1_76_0/libs/test/doc/html/boost_test/tests_organization/test_cases/test_case_generation.html | ||||
| #include <boost/test/included/unit_test.hpp> | ||||
| #include <boost/test/parameterized_test.hpp> | ||||
|  | ||||
| #include <fstream> | ||||
| #include <iostream> | ||||
| #include <string> | ||||
| #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}; | ||||
|   boost::filesystem::directory_iterator f(p); | ||||
|  | ||||
|   if(boost::filesystem::is_directory(p)) { | ||||
|     while (f != boost::filesystem::directory_iterator{}) { | ||||
|   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); | ||||
| void UnpackPackFuzzerRegressionTest(const std::string& fpath) { | ||||
|   std::ifstream in(fpath.c_str(), std::ios_base::binary); | ||||
|   if (!in) { | ||||
|     FAIL() << fpath << " not found"; | ||||
|     BOOST_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())); | ||||
|   BOOST_REQUIRE(in); | ||||
|   BOOST_REQUIRE_EQUAL(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"))); | ||||
| boost::unit_test::test_suite* init_unit_test_suite(int /*argc*/, char* /*argv*/[]) | ||||
| { | ||||
|   std::vector<std::string> files = ListDirectory("../../fuzz/unpack_pack_fuzzer_regressions"); | ||||
|   boost::unit_test::framework::master_test_suite().add(BOOST_PARAM_TEST_CASE(&UnpackPackFuzzerRegressionTest, files.begin(), files.end())); | ||||
|   return 0; | ||||
| } | ||||
|   | ||||
| @@ -1,5 +1,9 @@ | ||||
| #include <msgpack.hpp> | ||||
|  | ||||
| // The function's signature must NOT be changed since other projects rely on it: | ||||
| // - libFuzzer | ||||
| // - AFL++ | ||||
| // - Google's oss-fuzz (uses the previous two ones) | ||||
| 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 | ||||
| @@ -7,8 +11,8 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { | ||||
|     const int test_limit = 1000; | ||||
|     msgpack::object_handle unpacked = msgpack::unpack(reinterpret_cast<const char *>(data), | ||||
|                                                       size, | ||||
|                                                       nullptr, | ||||
|                                                       nullptr, | ||||
|                                                       MSGPACK_NULLPTR, | ||||
|                                                       MSGPACK_NULLPTR, | ||||
|                                                       msgpack::unpack_limit(test_limit, | ||||
|                                                                             test_limit, | ||||
|                                                                             test_limit, | ||||
|   | ||||
| @@ -1,24 +0,0 @@ | ||||
| /* | ||||
|  * MessagePack for C | ||||
|  * | ||||
|  * Copyright (C) 2008-2009 FURUHASHI Sadayuki | ||||
|  * | ||||
|  *    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) | ||||
|  */ | ||||
| /** | ||||
|  * @defgroup msgpack MessagePack C | ||||
|  * @{ | ||||
|  * @} | ||||
|  */ | ||||
|  | ||||
| #include "msgpack/util.h" | ||||
| #include "msgpack/object.h" | ||||
| #include "msgpack/zone.h" | ||||
| #include "msgpack/pack.h" | ||||
| #include "msgpack/unpack.h" | ||||
| #include "msgpack/sbuffer.h" | ||||
| #include "msgpack/vrefbuffer.h" | ||||
| #include "msgpack/version.h" | ||||
|  | ||||
							
								
								
									
										15
									
								
								include/msgpack/adaptor/complex.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								include/msgpack/adaptor/complex.hpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| // | ||||
| // MessagePack for C++ static resolution routine | ||||
| // | ||||
| // Copyright (C) 2020 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_COMPLEX_HPP | ||||
| #define MSGPACK_TYPE_COMPLEX_HPP | ||||
|  | ||||
| #include "msgpack/v1/adaptor/complex.hpp" | ||||
|  | ||||
| #endif // MSGPACK_TYPE_COMPLEX_HPP | ||||
							
								
								
									
										16
									
								
								include/msgpack/adaptor/cpp17/array_byte.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								include/msgpack/adaptor/cpp17/array_byte.hpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| // | ||||
| // MessagePack for C++ static resolution routine | ||||
| // | ||||
| // Copyright (C) 2021 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_ARRAY_BYTE_HPP | ||||
| #define MSGPACK_TYPE_CPP17_ARRAY_BYTE_HPP | ||||
|  | ||||
| #include "msgpack/v1/adaptor/cpp17/array_byte.hpp" | ||||
|  | ||||
| #endif // MSGPACK_TYPE_CPP17_ARRAY_BYTE_HPP | ||||
							
								
								
									
										16
									
								
								include/msgpack/adaptor/cpp20/span.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								include/msgpack/adaptor/cpp20/span.hpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| // | ||||
| // MessagePack for C++ static resolution routine | ||||
| // | ||||
| // Copyright (C) 2021 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_CPP20_SPAN_HPP | ||||
| #define MSGPACK_TYPE_CPP20_SPAN_HPP | ||||
|  | ||||
| #include "msgpack/v1/adaptor/cpp20/span.hpp" | ||||
|  | ||||
| #endif // MSGPACK_TYPE_CPP20_SPAN_HPP | ||||
| @@ -14,11 +14,11 @@ | ||||
| // http://www.boost.org/libs/preprocessor/doc/ref/variadics.html | ||||
| // However, supporting compiler detection is not complete. msgpack-c requires | ||||
| // variadic macro arguments support. So BOOST_PP_VARIADICS is defined here explicitly. | ||||
| #if !defined(MSGPACK_PP_VARIADICS) | ||||
| #define MSGPACK_PP_VARIADICS | ||||
| #if !defined(BOOST_PP_VARIADICS) | ||||
| #define BOOST_PP_VARIADICS | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/preprocessor.hpp> | ||||
| #include <boost/preprocessor.hpp> | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
|  | ||||
| @@ -45,18 +45,18 @@ | ||||
| #define MSGPACK_NVP(name, value) (name) (value) | ||||
|  | ||||
| #define MSGPACK_DEFINE_MAP_EACH_PROC(r, data, elem) \ | ||||
|     MSGPACK_PP_IF( \ | ||||
|         MSGPACK_PP_IS_BEGIN_PARENS(elem), \ | ||||
|     BOOST_PP_IF( \ | ||||
|         BOOST_PP_IS_BEGIN_PARENS(elem), \ | ||||
|         elem, \ | ||||
|         (MSGPACK_PP_STRINGIZE(elem))(elem) \ | ||||
|         (BOOST_PP_STRINGIZE(elem))(elem) \ | ||||
|     ) | ||||
|  | ||||
| #define MSGPACK_DEFINE_MAP_IMPL(...) \ | ||||
|     MSGPACK_PP_SEQ_TO_TUPLE( \ | ||||
|         MSGPACK_PP_SEQ_FOR_EACH( \ | ||||
|     BOOST_PP_SEQ_TO_TUPLE( \ | ||||
|         BOOST_PP_SEQ_FOR_EACH( \ | ||||
|             MSGPACK_DEFINE_MAP_EACH_PROC, \ | ||||
|             0, \ | ||||
|             MSGPACK_PP_VARIADIC_TO_SEQ(__VA_ARGS__) \ | ||||
|             BOOST_PP_VARIADIC_TO_SEQ(__VA_ARGS__) \ | ||||
|         ) \ | ||||
|     ) | ||||
|  | ||||
| @@ -83,7 +83,7 @@ | ||||
|     } | ||||
|  | ||||
| #define MSGPACK_BASE_MAP(base) \ | ||||
|     (MSGPACK_PP_STRINGIZE(base))(*const_cast<base *>(static_cast<base const*>(this))) | ||||
|     (BOOST_PP_STRINGIZE(base))(*const_cast<base *>(static_cast<base const*>(this))) | ||||
|  | ||||
| // MSGPACK_ADD_ENUM must be used in the global namespace. | ||||
| #define MSGPACK_ADD_ENUM(enum_name) \ | ||||
|   | ||||
							
								
								
									
										18
									
								
								include/msgpack/cpp_version.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								include/msgpack/cpp_version.hpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| #ifndef MSGPACK_CPP_VERSION_HPP | ||||
| #define MSGPACK_CPP_VERSION_HPP | ||||
|  | ||||
| #if defined(_MSC_VER) | ||||
| #  if _MSC_VER < 1900 | ||||
| #    define MSGPACK_USE_CPP03 | ||||
| #  endif | ||||
| #elif (__cplusplus < 201103L) | ||||
| #  define MSGPACK_USE_CPP03 | ||||
| #endif | ||||
|  | ||||
| #if defined(_MSVC_LANG) | ||||
| #  define MSGPACK_CPP_VERSION _MSVC_LANG | ||||
| #else | ||||
| #  define MSGPACK_CPP_VERSION __cplusplus | ||||
| #endif | ||||
|  | ||||
| #endif // MSGPACK_CPP_VERSION_HPP | ||||
| @@ -1,38 +0,0 @@ | ||||
| /* | ||||
|  * MessagePack for C FILE* buffer adaptor | ||||
|  * | ||||
|  * Copyright (C) 2013 Vladimir Volodko | ||||
|  * | ||||
|  *    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_FBUFFER_H | ||||
| #define MSGPACK_FBUFFER_H | ||||
|  | ||||
| #include <stdio.h> | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| #endif | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * @defgroup msgpack_fbuffer FILE* buffer | ||||
|  * @ingroup msgpack_buffer | ||||
|  * @{ | ||||
|  */ | ||||
|  | ||||
| static inline int msgpack_fbuffer_write(void* data, const char* buf, size_t len) | ||||
| { | ||||
|     return (1 == fwrite(buf, len, 1, (FILE *)data)) ? 0 : -1; | ||||
| } | ||||
|  | ||||
| /** @} */ | ||||
|  | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
|  | ||||
| #endif /* msgpack/fbuffer.h */ | ||||
| @@ -1,25 +0,0 @@ | ||||
| /* | ||||
|  *    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_GCC_ATOMIC_H | ||||
| #define MSGPACK_GCC_ATOMIC_H | ||||
|  | ||||
| #if defined(__cplusplus) | ||||
| extern "C" { | ||||
| #endif | ||||
|  | ||||
| typedef int _msgpack_atomic_counter_t; | ||||
|  | ||||
| int _msgpack_sync_decr_and_fetch(volatile _msgpack_atomic_counter_t* ptr); | ||||
| int _msgpack_sync_incr_and_fetch(volatile _msgpack_atomic_counter_t* ptr); | ||||
|  | ||||
|  | ||||
| #if defined(__cplusplus) | ||||
| } | ||||
| #endif | ||||
|  | ||||
|  | ||||
| #endif // MSGPACK_GCC_ATOMIC_H | ||||
| @@ -13,7 +13,6 @@ | ||||
|  | ||||
| #if defined(__GNUC__) && ((__GNUC__*10 + __GNUC_MINOR__) < 41) | ||||
|  | ||||
| #include "msgpack/gcc_atomic.h" | ||||
| #include <bits/atomicity.h> | ||||
|  | ||||
| int _msgpack_sync_decr_and_fetch(volatile _msgpack_atomic_counter_t* ptr) | ||||
|   | ||||
| @@ -1,118 +0,0 @@ | ||||
| /* | ||||
|  * MessagePack for C dynamic typing routine | ||||
|  * | ||||
|  * Copyright (C) 2008-2009 FURUHASHI Sadayuki | ||||
|  * | ||||
|  *    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_OBJECT_H | ||||
| #define MSGPACK_OBJECT_H | ||||
|  | ||||
| #include "zone.h" | ||||
| #include <stdio.h> | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| #endif | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * @defgroup msgpack_object Dynamically typed object | ||||
|  * @ingroup msgpack | ||||
|  * @{ | ||||
|  */ | ||||
|  | ||||
| typedef enum { | ||||
|     MSGPACK_OBJECT_NIL                  = 0x00, | ||||
|     MSGPACK_OBJECT_BOOLEAN              = 0x01, | ||||
|     MSGPACK_OBJECT_POSITIVE_INTEGER     = 0x02, | ||||
|     MSGPACK_OBJECT_NEGATIVE_INTEGER     = 0x03, | ||||
|     MSGPACK_OBJECT_FLOAT32              = 0x0a, | ||||
|     MSGPACK_OBJECT_FLOAT64              = 0x04, | ||||
|     MSGPACK_OBJECT_FLOAT                = 0x04, | ||||
| #if defined(MSGPACK_USE_LEGACY_NAME_AS_FLOAT) | ||||
|     MSGPACK_OBJECT_DOUBLE               = MSGPACK_OBJECT_FLOAT, /* obsolete */ | ||||
| #endif /* MSGPACK_USE_LEGACY_NAME_AS_FLOAT */ | ||||
|     MSGPACK_OBJECT_STR                  = 0x05, | ||||
|     MSGPACK_OBJECT_ARRAY                = 0x06, | ||||
|     MSGPACK_OBJECT_MAP                  = 0x07, | ||||
|     MSGPACK_OBJECT_BIN                  = 0x08, | ||||
|     MSGPACK_OBJECT_EXT                  = 0x09 | ||||
| } msgpack_object_type; | ||||
|  | ||||
|  | ||||
| struct msgpack_object; | ||||
| struct msgpack_object_kv; | ||||
|  | ||||
| typedef struct { | ||||
|     uint32_t size; | ||||
|     struct msgpack_object* ptr; | ||||
| } msgpack_object_array; | ||||
|  | ||||
| typedef struct { | ||||
|     uint32_t size; | ||||
|     struct msgpack_object_kv* ptr; | ||||
| } msgpack_object_map; | ||||
|  | ||||
| typedef struct { | ||||
|     uint32_t size; | ||||
|     const char* ptr; | ||||
| } msgpack_object_str; | ||||
|  | ||||
| typedef struct { | ||||
|     uint32_t size; | ||||
|     const char* ptr; | ||||
| } msgpack_object_bin; | ||||
|  | ||||
| typedef struct { | ||||
|     int8_t type; | ||||
|     uint32_t size; | ||||
|     const char* ptr; | ||||
| } msgpack_object_ext; | ||||
|  | ||||
| typedef union { | ||||
|     bool boolean; | ||||
|     uint64_t u64; | ||||
|     int64_t  i64; | ||||
| #if defined(MSGPACK_USE_LEGACY_NAME_AS_FLOAT) | ||||
|     double   dec; /* obsolete*/ | ||||
| #endif /* MSGPACK_USE_LEGACY_NAME_AS_FLOAT */ | ||||
|     double   f64; | ||||
|     msgpack_object_array array; | ||||
|     msgpack_object_map map; | ||||
|     msgpack_object_str str; | ||||
|     msgpack_object_bin bin; | ||||
|     msgpack_object_ext ext; | ||||
| } msgpack_object_union; | ||||
|  | ||||
| typedef struct msgpack_object { | ||||
|     msgpack_object_type type; | ||||
|     msgpack_object_union via; | ||||
| } msgpack_object; | ||||
|  | ||||
| typedef struct msgpack_object_kv { | ||||
|     msgpack_object key; | ||||
|     msgpack_object val; | ||||
| } msgpack_object_kv; | ||||
|  | ||||
| #if !defined(_KERNEL_MODE) | ||||
| MSGPACK_DLLEXPORT | ||||
| void msgpack_object_print(FILE* out, msgpack_object o); | ||||
| #endif | ||||
|  | ||||
| MSGPACK_DLLEXPORT | ||||
| int msgpack_object_print_buffer(char *buffer, size_t buffer_size, msgpack_object o); | ||||
|  | ||||
| MSGPACK_DLLEXPORT | ||||
| bool msgpack_object_equal(const msgpack_object x, const msgpack_object y); | ||||
|  | ||||
| /** @} */ | ||||
|  | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
|  | ||||
| #endif /* msgpack/object.h */ | ||||
| @@ -1,174 +0,0 @@ | ||||
| /* | ||||
|  * MessagePack for C packing routine | ||||
|  * | ||||
|  * Copyright (C) 2008-2009 FURUHASHI Sadayuki | ||||
|  * | ||||
|  *    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_PACK_H | ||||
| #define MSGPACK_PACK_H | ||||
|  | ||||
| #include "pack_define.h" | ||||
| #include "object.h" | ||||
| #include "timestamp.h" | ||||
| #include <stdlib.h> | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| #endif | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * @defgroup msgpack_buffer Buffers | ||||
|  * @ingroup msgpack | ||||
|  * @{ | ||||
|  * @} | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * @defgroup msgpack_pack Serializer | ||||
|  * @ingroup msgpack | ||||
|  * @{ | ||||
|  */ | ||||
|  | ||||
| typedef int (*msgpack_packer_write)(void* data, const char* buf, size_t len); | ||||
|  | ||||
| typedef struct msgpack_packer { | ||||
|     void* data; | ||||
|     msgpack_packer_write callback; | ||||
| } msgpack_packer; | ||||
|  | ||||
| static void msgpack_packer_init(msgpack_packer* pk, void* data, msgpack_packer_write callback); | ||||
|  | ||||
| static msgpack_packer* msgpack_packer_new(void* data, msgpack_packer_write callback); | ||||
| static void msgpack_packer_free(msgpack_packer* pk); | ||||
|  | ||||
| static int msgpack_pack_char(msgpack_packer* pk, char d); | ||||
|  | ||||
| static int msgpack_pack_signed_char(msgpack_packer* pk, signed char d); | ||||
| static int msgpack_pack_short(msgpack_packer* pk, short d); | ||||
| static int msgpack_pack_int(msgpack_packer* pk, int d); | ||||
| static int msgpack_pack_long(msgpack_packer* pk, long d); | ||||
| static int msgpack_pack_long_long(msgpack_packer* pk, long long d); | ||||
| static int msgpack_pack_unsigned_char(msgpack_packer* pk, unsigned char d); | ||||
| static int msgpack_pack_unsigned_short(msgpack_packer* pk, unsigned short d); | ||||
| static int msgpack_pack_unsigned_int(msgpack_packer* pk, unsigned int d); | ||||
| static int msgpack_pack_unsigned_long(msgpack_packer* pk, unsigned long d); | ||||
| static int msgpack_pack_unsigned_long_long(msgpack_packer* pk, unsigned long long d); | ||||
|  | ||||
| static int msgpack_pack_uint8(msgpack_packer* pk, uint8_t d); | ||||
| static int msgpack_pack_uint16(msgpack_packer* pk, uint16_t d); | ||||
| static int msgpack_pack_uint32(msgpack_packer* pk, uint32_t d); | ||||
| static int msgpack_pack_uint64(msgpack_packer* pk, uint64_t d); | ||||
| static int msgpack_pack_int8(msgpack_packer* pk, int8_t d); | ||||
| static int msgpack_pack_int16(msgpack_packer* pk, int16_t d); | ||||
| static int msgpack_pack_int32(msgpack_packer* pk, int32_t d); | ||||
| static int msgpack_pack_int64(msgpack_packer* pk, int64_t d); | ||||
|  | ||||
| static int msgpack_pack_fix_uint8(msgpack_packer* pk, uint8_t d); | ||||
| static int msgpack_pack_fix_uint16(msgpack_packer* pk, uint16_t d); | ||||
| static int msgpack_pack_fix_uint32(msgpack_packer* pk, uint32_t d); | ||||
| static int msgpack_pack_fix_uint64(msgpack_packer* pk, uint64_t d); | ||||
| static int msgpack_pack_fix_int8(msgpack_packer* pk, int8_t d); | ||||
| static int msgpack_pack_fix_int16(msgpack_packer* pk, int16_t d); | ||||
| static int msgpack_pack_fix_int32(msgpack_packer* pk, int32_t d); | ||||
| static int msgpack_pack_fix_int64(msgpack_packer* pk, int64_t d); | ||||
|  | ||||
| static int msgpack_pack_float(msgpack_packer* pk, float d); | ||||
| static int msgpack_pack_double(msgpack_packer* pk, double d); | ||||
|  | ||||
| static int msgpack_pack_nil(msgpack_packer* pk); | ||||
| static int msgpack_pack_true(msgpack_packer* pk); | ||||
| static int msgpack_pack_false(msgpack_packer* pk); | ||||
|  | ||||
| static int msgpack_pack_array(msgpack_packer* pk, size_t n); | ||||
|  | ||||
| static int msgpack_pack_map(msgpack_packer* pk, size_t n); | ||||
|  | ||||
| static int msgpack_pack_str(msgpack_packer* pk, size_t l); | ||||
| static int msgpack_pack_str_body(msgpack_packer* pk, const void* b, size_t l); | ||||
| static int msgpack_pack_str_with_body(msgpack_packer* pk, const void* b, size_t l); | ||||
|  | ||||
| static int msgpack_pack_v4raw(msgpack_packer* pk, size_t l); | ||||
| static int msgpack_pack_v4raw_body(msgpack_packer* pk, const void* b, size_t l); | ||||
|  | ||||
| static int msgpack_pack_bin(msgpack_packer* pk, size_t l); | ||||
| static int msgpack_pack_bin_body(msgpack_packer* pk, const void* b, size_t l); | ||||
| static int msgpack_pack_bin_with_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_ext_with_body(msgpack_packer* pk, const void* b, size_t l, int8_t type); | ||||
|  | ||||
| static int msgpack_pack_timestamp(msgpack_packer* pk, const msgpack_timestamp* d); | ||||
|  | ||||
| MSGPACK_DLLEXPORT | ||||
| int msgpack_pack_object(msgpack_packer* pk, msgpack_object d); | ||||
|  | ||||
|  | ||||
| /** @} */ | ||||
|  | ||||
|  | ||||
| #define msgpack_pack_inline_func(name) \ | ||||
|     inline int msgpack_pack ## name | ||||
|  | ||||
| #define msgpack_pack_inline_func_cint(name) \ | ||||
|     inline int msgpack_pack ## name | ||||
|  | ||||
| #define msgpack_pack_inline_func_fixint(name) \ | ||||
|     inline int msgpack_pack_fix ## name | ||||
|  | ||||
| #define msgpack_pack_user msgpack_packer* | ||||
|  | ||||
| #define msgpack_pack_append_buffer(user, buf, len) \ | ||||
|     return (*(user)->callback)((user)->data, (const char*)buf, len) | ||||
|  | ||||
| #include "pack_template.h" | ||||
|  | ||||
| inline void msgpack_packer_init(msgpack_packer* pk, void* data, msgpack_packer_write callback) | ||||
| { | ||||
|     pk->data = data; | ||||
|     pk->callback = callback; | ||||
| } | ||||
|  | ||||
| inline msgpack_packer* msgpack_packer_new(void* data, msgpack_packer_write callback) | ||||
| { | ||||
|     msgpack_packer* pk = (msgpack_packer*)calloc(1, sizeof(msgpack_packer)); | ||||
|     if(!pk) { return NULL; } | ||||
|     msgpack_packer_init(pk, data, callback); | ||||
|     return pk; | ||||
| } | ||||
|  | ||||
| inline void msgpack_packer_free(msgpack_packer* pk) | ||||
| { | ||||
|     free(pk); | ||||
| } | ||||
|  | ||||
| inline int msgpack_pack_str_with_body(msgpack_packer* pk, const void* b, size_t l) | ||||
|  { | ||||
|      int ret = msgpack_pack_str(pk, l); | ||||
|      if (ret != 0) { return ret; } | ||||
|      return msgpack_pack_str_body(pk, b, l); | ||||
|  } | ||||
|  | ||||
|  inline int msgpack_pack_bin_with_body(msgpack_packer* pk, const void* b, size_t l) | ||||
|  { | ||||
|      int ret = msgpack_pack_bin(pk, l); | ||||
|      if (ret != 0) { return ret; } | ||||
|      return msgpack_pack_bin_body(pk, b, l); | ||||
|  } | ||||
|  | ||||
|  inline int msgpack_pack_ext_with_body(msgpack_packer* pk, const void* b, size_t l, int8_t type) | ||||
|  { | ||||
|      int ret = msgpack_pack_ext(pk, l, type); | ||||
|      if (ret != 0) { return ret; } | ||||
|      return msgpack_pack_ext_body(pk, b, l); | ||||
|  } | ||||
|   | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
|  | ||||
| #endif /* msgpack/pack.h */ | ||||
| @@ -1,18 +0,0 @@ | ||||
| /* | ||||
|  * MessagePack unpacking routine template | ||||
|  * | ||||
|  * Copyright (C) 2008-2010 FURUHASHI Sadayuki | ||||
|  * | ||||
|  *    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_PACK_DEFINE_H | ||||
| #define MSGPACK_PACK_DEFINE_H | ||||
|  | ||||
| #include "msgpack/sysdep.h" | ||||
| #include <limits.h> | ||||
| #include <string.h> | ||||
|  | ||||
| #endif /* msgpack/pack_define.h */ | ||||
|  | ||||
| @@ -1,945 +0,0 @@ | ||||
| /* | ||||
|  * MessagePack packing routine template | ||||
|  * | ||||
|  * Copyright (C) 2008-2010 FURUHASHI Sadayuki | ||||
|  * | ||||
|  *    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) | ||||
|  */ | ||||
|  | ||||
| #if MSGPACK_ENDIAN_LITTLE_BYTE | ||||
| #define TAKE8_8(d)  ((uint8_t*)&d)[0] | ||||
| #define TAKE8_16(d) ((uint8_t*)&d)[0] | ||||
| #define TAKE8_32(d) ((uint8_t*)&d)[0] | ||||
| #define TAKE8_64(d) ((uint8_t*)&d)[0] | ||||
| #elif MSGPACK_ENDIAN_BIG_BYTE | ||||
| #define TAKE8_8(d)  ((uint8_t*)&d)[0] | ||||
| #define TAKE8_16(d) ((uint8_t*)&d)[1] | ||||
| #define TAKE8_32(d) ((uint8_t*)&d)[3] | ||||
| #define TAKE8_64(d) ((uint8_t*)&d)[7] | ||||
| #else | ||||
| #error msgpack-c supports only big endian and little endian | ||||
| #endif | ||||
|  | ||||
| #ifndef msgpack_pack_inline_func | ||||
| #error msgpack_pack_inline_func template is not defined | ||||
| #endif | ||||
|  | ||||
| #ifndef msgpack_pack_user | ||||
| #error msgpack_pack_user type is not defined | ||||
| #endif | ||||
|  | ||||
| #ifndef msgpack_pack_append_buffer | ||||
| #error msgpack_pack_append_buffer callback is not defined | ||||
| #endif | ||||
|  | ||||
| #if defined(_MSC_VER) | ||||
| #   pragma warning(push) | ||||
| #   pragma warning(disable : 4204)   /* nonstandard extension used: non-constant aggregate initializer */ | ||||
| #endif | ||||
|  | ||||
| /* | ||||
|  * Integer | ||||
|  */ | ||||
|  | ||||
| #define msgpack_pack_real_uint8(x, d) \ | ||||
| do { \ | ||||
|     if(d < (1<<7)) { \ | ||||
|         /* fixnum */ \ | ||||
|         msgpack_pack_append_buffer(x, &TAKE8_8(d), 1); \ | ||||
|     } else { \ | ||||
|         /* unsigned 8 */ \ | ||||
|         unsigned char buf[2] = {0xcc, TAKE8_8(d)}; \ | ||||
|         msgpack_pack_append_buffer(x, buf, 2); \ | ||||
|     } \ | ||||
| } while(0) | ||||
|  | ||||
| #define msgpack_pack_real_uint16(x, d) \ | ||||
| do { \ | ||||
|     if(d < (1<<7)) { \ | ||||
|         /* fixnum */ \ | ||||
|         msgpack_pack_append_buffer(x, &TAKE8_16(d), 1); \ | ||||
|     } else if(d < (1<<8)) { \ | ||||
|         /* unsigned 8 */ \ | ||||
|         unsigned char buf[2] = {0xcc, TAKE8_16(d)}; \ | ||||
|         msgpack_pack_append_buffer(x, buf, 2); \ | ||||
|     } else { \ | ||||
|         /* unsigned 16 */ \ | ||||
|         unsigned char buf[3]; \ | ||||
|         buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \ | ||||
|         msgpack_pack_append_buffer(x, buf, 3); \ | ||||
|     } \ | ||||
| } while(0) | ||||
|  | ||||
| #define msgpack_pack_real_uint32(x, d) \ | ||||
| do { \ | ||||
|     if(d < (1<<8)) { \ | ||||
|         if(d < (1<<7)) { \ | ||||
|             /* fixnum */ \ | ||||
|             msgpack_pack_append_buffer(x, &TAKE8_32(d), 1); \ | ||||
|         } else { \ | ||||
|             /* unsigned 8 */ \ | ||||
|             unsigned char buf[2] = {0xcc, TAKE8_32(d)}; \ | ||||
|             msgpack_pack_append_buffer(x, buf, 2); \ | ||||
|         } \ | ||||
|     } else { \ | ||||
|         if(d < (1<<16)) { \ | ||||
|             /* unsigned 16 */ \ | ||||
|             unsigned char buf[3]; \ | ||||
|             buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \ | ||||
|             msgpack_pack_append_buffer(x, buf, 3); \ | ||||
|         } else { \ | ||||
|             /* unsigned 32 */ \ | ||||
|             unsigned char buf[5]; \ | ||||
|             buf[0] = 0xce; _msgpack_store32(&buf[1], (uint32_t)d); \ | ||||
|             msgpack_pack_append_buffer(x, buf, 5); \ | ||||
|         } \ | ||||
|     } \ | ||||
| } while(0) | ||||
|  | ||||
| #define msgpack_pack_real_uint64(x, d) \ | ||||
| do { \ | ||||
|     if(d < (1ULL<<8)) { \ | ||||
|         if(d < (1ULL<<7)) { \ | ||||
|             /* fixnum */ \ | ||||
|             msgpack_pack_append_buffer(x, &TAKE8_64(d), 1); \ | ||||
|         } else { \ | ||||
|             /* unsigned 8 */ \ | ||||
|             unsigned char buf[2] = {0xcc, TAKE8_64(d)}; \ | ||||
|             msgpack_pack_append_buffer(x, buf, 2); \ | ||||
|         } \ | ||||
|     } else { \ | ||||
|         if(d < (1ULL<<16)) { \ | ||||
|             /* unsigned 16 */ \ | ||||
|             unsigned char buf[3]; \ | ||||
|             buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \ | ||||
|             msgpack_pack_append_buffer(x, buf, 3); \ | ||||
|         } else if(d < (1ULL<<32)) { \ | ||||
|             /* unsigned 32 */ \ | ||||
|             unsigned char buf[5]; \ | ||||
|             buf[0] = 0xce; _msgpack_store32(&buf[1], (uint32_t)d); \ | ||||
|             msgpack_pack_append_buffer(x, buf, 5); \ | ||||
|         } else { \ | ||||
|             /* unsigned 64 */ \ | ||||
|             unsigned char buf[9]; \ | ||||
|             buf[0] = 0xcf; _msgpack_store64(&buf[1], d); \ | ||||
|             msgpack_pack_append_buffer(x, buf, 9); \ | ||||
|         } \ | ||||
|     } \ | ||||
| } while(0) | ||||
|  | ||||
| #define msgpack_pack_real_int8(x, d) \ | ||||
| do { \ | ||||
|     if(d < -(1<<5)) { \ | ||||
|         /* signed 8 */ \ | ||||
|         unsigned char buf[2] = {0xd0, TAKE8_8(d)}; \ | ||||
|         msgpack_pack_append_buffer(x, buf, 2); \ | ||||
|     } else { \ | ||||
|         /* fixnum */ \ | ||||
|         msgpack_pack_append_buffer(x, &TAKE8_8(d), 1); \ | ||||
|     } \ | ||||
| } while(0) | ||||
|  | ||||
| #define msgpack_pack_real_int16(x, d) \ | ||||
| do { \ | ||||
|     if(d < -(1<<5)) { \ | ||||
|         if(d < -(1<<7)) { \ | ||||
|             /* signed 16 */ \ | ||||
|             unsigned char buf[3]; \ | ||||
|             buf[0] = 0xd1; _msgpack_store16(&buf[1], (int16_t)d); \ | ||||
|             msgpack_pack_append_buffer(x, buf, 3); \ | ||||
|         } else { \ | ||||
|             /* signed 8 */ \ | ||||
|             unsigned char buf[2] = {0xd0, TAKE8_16(d)}; \ | ||||
|             msgpack_pack_append_buffer(x, buf, 2); \ | ||||
|         } \ | ||||
|     } else if(d < (1<<7)) { \ | ||||
|         /* fixnum */ \ | ||||
|         msgpack_pack_append_buffer(x, &TAKE8_16(d), 1); \ | ||||
|     } else { \ | ||||
|         if(d < (1<<8)) { \ | ||||
|             /* unsigned 8 */ \ | ||||
|             unsigned char buf[2] = {0xcc, TAKE8_16(d)}; \ | ||||
|             msgpack_pack_append_buffer(x, buf, 2); \ | ||||
|         } else { \ | ||||
|             /* unsigned 16 */ \ | ||||
|             unsigned char buf[3]; \ | ||||
|             buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \ | ||||
|             msgpack_pack_append_buffer(x, buf, 3); \ | ||||
|         } \ | ||||
|     } \ | ||||
| } while(0) | ||||
|  | ||||
| #define msgpack_pack_real_int32(x, d) \ | ||||
| do { \ | ||||
|     if(d < -(1<<5)) { \ | ||||
|         if(d < -(1<<15)) { \ | ||||
|             /* signed 32 */ \ | ||||
|             unsigned char buf[5]; \ | ||||
|             buf[0] = 0xd2; _msgpack_store32(&buf[1], (int32_t)d); \ | ||||
|             msgpack_pack_append_buffer(x, buf, 5); \ | ||||
|         } else if(d < -(1<<7)) { \ | ||||
|             /* signed 16 */ \ | ||||
|             unsigned char buf[3]; \ | ||||
|             buf[0] = 0xd1; _msgpack_store16(&buf[1], (int16_t)d); \ | ||||
|             msgpack_pack_append_buffer(x, buf, 3); \ | ||||
|         } else { \ | ||||
|             /* signed 8 */ \ | ||||
|             unsigned char buf[2] = {0xd0, TAKE8_32(d)}; \ | ||||
|             msgpack_pack_append_buffer(x, buf, 2); \ | ||||
|         } \ | ||||
|     } else if(d < (1<<7)) { \ | ||||
|         /* fixnum */ \ | ||||
|         msgpack_pack_append_buffer(x, &TAKE8_32(d), 1); \ | ||||
|     } else { \ | ||||
|         if(d < (1<<8)) { \ | ||||
|             /* unsigned 8 */ \ | ||||
|             unsigned char buf[2] = {0xcc, TAKE8_32(d)}; \ | ||||
|             msgpack_pack_append_buffer(x, buf, 2); \ | ||||
|         } else if(d < (1<<16)) { \ | ||||
|             /* unsigned 16 */ \ | ||||
|             unsigned char buf[3]; \ | ||||
|             buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \ | ||||
|             msgpack_pack_append_buffer(x, buf, 3); \ | ||||
|         } else { \ | ||||
|             /* unsigned 32 */ \ | ||||
|             unsigned char buf[5]; \ | ||||
|             buf[0] = 0xce; _msgpack_store32(&buf[1], (uint32_t)d); \ | ||||
|             msgpack_pack_append_buffer(x, buf, 5); \ | ||||
|         } \ | ||||
|     } \ | ||||
| } while(0) | ||||
|  | ||||
| #define msgpack_pack_real_int64(x, d) \ | ||||
| do { \ | ||||
|     if(d < -(1LL<<5)) { \ | ||||
|         if(d < -(1LL<<15)) { \ | ||||
|             if(d < -(1LL<<31)) { \ | ||||
|                 /* signed 64 */ \ | ||||
|                 unsigned char buf[9]; \ | ||||
|                 buf[0] = 0xd3; _msgpack_store64(&buf[1], d); \ | ||||
|                 msgpack_pack_append_buffer(x, buf, 9); \ | ||||
|             } else { \ | ||||
|                 /* signed 32 */ \ | ||||
|                 unsigned char buf[5]; \ | ||||
|                 buf[0] = 0xd2; _msgpack_store32(&buf[1], (int32_t)d); \ | ||||
|                 msgpack_pack_append_buffer(x, buf, 5); \ | ||||
|             } \ | ||||
|         } else { \ | ||||
|             if(d < -(1<<7)) { \ | ||||
|                 /* signed 16 */ \ | ||||
|                 unsigned char buf[3]; \ | ||||
|                 buf[0] = 0xd1; _msgpack_store16(&buf[1], (int16_t)d); \ | ||||
|                 msgpack_pack_append_buffer(x, buf, 3); \ | ||||
|             } else { \ | ||||
|                 /* signed 8 */ \ | ||||
|                 unsigned char buf[2] = {0xd0, TAKE8_64(d)}; \ | ||||
|                 msgpack_pack_append_buffer(x, buf, 2); \ | ||||
|             } \ | ||||
|         } \ | ||||
|     } else if(d < (1<<7)) { \ | ||||
|         /* fixnum */ \ | ||||
|         msgpack_pack_append_buffer(x, &TAKE8_64(d), 1); \ | ||||
|     } else { \ | ||||
|         if(d < (1LL<<16)) { \ | ||||
|             if(d < (1<<8)) { \ | ||||
|                 /* unsigned 8 */ \ | ||||
|                 unsigned char buf[2] = {0xcc, TAKE8_64(d)}; \ | ||||
|                 msgpack_pack_append_buffer(x, buf, 2); \ | ||||
|             } else { \ | ||||
|                 /* unsigned 16 */ \ | ||||
|                 unsigned char buf[3]; \ | ||||
|                 buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \ | ||||
|                 msgpack_pack_append_buffer(x, buf, 3); \ | ||||
|             } \ | ||||
|         } else { \ | ||||
|             if(d < (1LL<<32)) { \ | ||||
|                 /* unsigned 32 */ \ | ||||
|                 unsigned char buf[5]; \ | ||||
|                 buf[0] = 0xce; _msgpack_store32(&buf[1], (uint32_t)d); \ | ||||
|                 msgpack_pack_append_buffer(x, buf, 5); \ | ||||
|             } else { \ | ||||
|                 /* unsigned 64 */ \ | ||||
|                 unsigned char buf[9]; \ | ||||
|                 buf[0] = 0xcf; _msgpack_store64(&buf[1], d); \ | ||||
|                 msgpack_pack_append_buffer(x, buf, 9); \ | ||||
|             } \ | ||||
|         } \ | ||||
|     } \ | ||||
| } while(0) | ||||
|  | ||||
|  | ||||
| #ifdef msgpack_pack_inline_func_fixint | ||||
|  | ||||
| msgpack_pack_inline_func_fixint(_uint8)(msgpack_pack_user x, uint8_t d) | ||||
| { | ||||
|     unsigned char buf[2] = {0xcc, TAKE8_8(d)}; | ||||
|     msgpack_pack_append_buffer(x, buf, 2); | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func_fixint(_uint16)(msgpack_pack_user x, uint16_t d) | ||||
| { | ||||
|     unsigned char buf[3]; | ||||
|     buf[0] = 0xcd; _msgpack_store16(&buf[1], d); | ||||
|     msgpack_pack_append_buffer(x, buf, 3); | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func_fixint(_uint32)(msgpack_pack_user x, uint32_t d) | ||||
| { | ||||
|     unsigned char buf[5]; | ||||
|     buf[0] = 0xce; _msgpack_store32(&buf[1], d); | ||||
|     msgpack_pack_append_buffer(x, buf, 5); | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func_fixint(_uint64)(msgpack_pack_user x, uint64_t d) | ||||
| { | ||||
|     unsigned char buf[9]; | ||||
|     buf[0] = 0xcf; _msgpack_store64(&buf[1], d); | ||||
|     msgpack_pack_append_buffer(x, buf, 9); | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func_fixint(_int8)(msgpack_pack_user x, int8_t d) | ||||
| { | ||||
|     unsigned char buf[2] = {0xd0, TAKE8_8(d)}; | ||||
|     msgpack_pack_append_buffer(x, buf, 2); | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func_fixint(_int16)(msgpack_pack_user x, int16_t d) | ||||
| { | ||||
|     unsigned char buf[3]; | ||||
|     buf[0] = 0xd1; _msgpack_store16(&buf[1], d); | ||||
|     msgpack_pack_append_buffer(x, buf, 3); | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func_fixint(_int32)(msgpack_pack_user x, int32_t d) | ||||
| { | ||||
|     unsigned char buf[5]; | ||||
|     buf[0] = 0xd2; _msgpack_store32(&buf[1], d); | ||||
|     msgpack_pack_append_buffer(x, buf, 5); | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func_fixint(_int64)(msgpack_pack_user x, int64_t d) | ||||
| { | ||||
|     unsigned char buf[9]; | ||||
|     buf[0] = 0xd3; _msgpack_store64(&buf[1], d); | ||||
|     msgpack_pack_append_buffer(x, buf, 9); | ||||
| } | ||||
|  | ||||
| #undef msgpack_pack_inline_func_fixint | ||||
| #endif | ||||
|  | ||||
|  | ||||
| msgpack_pack_inline_func(_uint8)(msgpack_pack_user x, uint8_t d) | ||||
| { | ||||
|     msgpack_pack_real_uint8(x, d); | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func(_uint16)(msgpack_pack_user x, uint16_t d) | ||||
| { | ||||
|     msgpack_pack_real_uint16(x, d); | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func(_uint32)(msgpack_pack_user x, uint32_t d) | ||||
| { | ||||
|     msgpack_pack_real_uint32(x, d); | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func(_uint64)(msgpack_pack_user x, uint64_t d) | ||||
| { | ||||
|     msgpack_pack_real_uint64(x, d); | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func(_int8)(msgpack_pack_user x, int8_t d) | ||||
| { | ||||
|     msgpack_pack_real_int8(x, d); | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func(_int16)(msgpack_pack_user x, int16_t d) | ||||
| { | ||||
|     msgpack_pack_real_int16(x, d); | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func(_int32)(msgpack_pack_user x, int32_t d) | ||||
| { | ||||
|     msgpack_pack_real_int32(x, d); | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func(_int64)(msgpack_pack_user x, int64_t d) | ||||
| { | ||||
|     msgpack_pack_real_int64(x, d); | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func(_char)(msgpack_pack_user x, char d) | ||||
| { | ||||
| #if defined(CHAR_MIN) | ||||
| #if CHAR_MIN < 0 | ||||
|         msgpack_pack_real_int8(x, d); | ||||
| #else | ||||
|         msgpack_pack_real_uint8(x, d); | ||||
| #endif | ||||
| #else | ||||
| #error CHAR_MIN is not defined | ||||
| #endif | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func(_signed_char)(msgpack_pack_user x, signed char d) | ||||
| { | ||||
|     msgpack_pack_real_int8(x, d); | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func(_unsigned_char)(msgpack_pack_user x, unsigned char d) | ||||
| { | ||||
|     msgpack_pack_real_uint8(x, d); | ||||
| } | ||||
|  | ||||
| #ifdef msgpack_pack_inline_func_cint | ||||
|  | ||||
| msgpack_pack_inline_func_cint(_short)(msgpack_pack_user x, short d) | ||||
| { | ||||
| #if defined(SIZEOF_SHORT) | ||||
| #if SIZEOF_SHORT == 2 | ||||
|     msgpack_pack_real_int16(x, d); | ||||
| #elif SIZEOF_SHORT == 4 | ||||
|     msgpack_pack_real_int32(x, d); | ||||
| #else | ||||
|     msgpack_pack_real_int64(x, d); | ||||
| #endif | ||||
|  | ||||
| #elif defined(SHRT_MAX) | ||||
| #if SHRT_MAX == 0x7fff | ||||
|     msgpack_pack_real_int16(x, d); | ||||
| #elif SHRT_MAX == 0x7fffffff | ||||
|     msgpack_pack_real_int32(x, d); | ||||
| #else | ||||
|     msgpack_pack_real_int64(x, d); | ||||
| #endif | ||||
|  | ||||
| #else | ||||
| if(sizeof(short) == 2) { | ||||
|     msgpack_pack_real_int16(x, d); | ||||
| } else if(sizeof(short) == 4) { | ||||
|     msgpack_pack_real_int32(x, d); | ||||
| } else { | ||||
|     msgpack_pack_real_int64(x, d); | ||||
| } | ||||
| #endif | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func_cint(_int)(msgpack_pack_user x, int d) | ||||
| { | ||||
| #if defined(SIZEOF_INT) | ||||
| #if SIZEOF_INT == 2 | ||||
|     msgpack_pack_real_int16(x, d); | ||||
| #elif SIZEOF_INT == 4 | ||||
|     msgpack_pack_real_int32(x, d); | ||||
| #else | ||||
|     msgpack_pack_real_int64(x, d); | ||||
| #endif | ||||
|  | ||||
| #elif defined(INT_MAX) | ||||
| #if INT_MAX == 0x7fff | ||||
|     msgpack_pack_real_int16(x, d); | ||||
| #elif INT_MAX == 0x7fffffff | ||||
|     msgpack_pack_real_int32(x, d); | ||||
| #else | ||||
|     msgpack_pack_real_int64(x, d); | ||||
| #endif | ||||
|  | ||||
| #else | ||||
| if(sizeof(int) == 2) { | ||||
|     msgpack_pack_real_int16(x, d); | ||||
| } else if(sizeof(int) == 4) { | ||||
|     msgpack_pack_real_int32(x, d); | ||||
| } else { | ||||
|     msgpack_pack_real_int64(x, d); | ||||
| } | ||||
| #endif | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func_cint(_long)(msgpack_pack_user x, long d) | ||||
| { | ||||
| #if defined(SIZEOF_LONG) | ||||
| #if SIZEOF_LONG == 2 | ||||
|     msgpack_pack_real_int16(x, d); | ||||
| #elif SIZEOF_LONG == 4 | ||||
|     msgpack_pack_real_int32(x, d); | ||||
| #else | ||||
|     msgpack_pack_real_int64(x, d); | ||||
| #endif | ||||
|  | ||||
| #elif defined(LONG_MAX) | ||||
| #if LONG_MAX == 0x7fffL | ||||
|     msgpack_pack_real_int16(x, d); | ||||
| #elif LONG_MAX == 0x7fffffffL | ||||
|     msgpack_pack_real_int32(x, d); | ||||
| #else | ||||
|     msgpack_pack_real_int64(x, d); | ||||
| #endif | ||||
|  | ||||
| #else | ||||
| if(sizeof(long) == 2) { | ||||
|     msgpack_pack_real_int16(x, d); | ||||
| } else if(sizeof(long) == 4) { | ||||
|     msgpack_pack_real_int32(x, d); | ||||
| } else { | ||||
|     msgpack_pack_real_int64(x, d); | ||||
| } | ||||
| #endif | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func_cint(_long_long)(msgpack_pack_user x, long long d) | ||||
| { | ||||
| #if defined(SIZEOF_LONG_LONG) | ||||
| #if SIZEOF_LONG_LONG == 2 | ||||
|     msgpack_pack_real_int16(x, d); | ||||
| #elif SIZEOF_LONG_LONG == 4 | ||||
|     msgpack_pack_real_int32(x, d); | ||||
| #else | ||||
|     msgpack_pack_real_int64(x, d); | ||||
| #endif | ||||
|  | ||||
| #elif defined(LLONG_MAX) | ||||
| #if LLONG_MAX == 0x7fffL | ||||
|     msgpack_pack_real_int16(x, d); | ||||
| #elif LLONG_MAX == 0x7fffffffL | ||||
|     msgpack_pack_real_int32(x, d); | ||||
| #else | ||||
|     msgpack_pack_real_int64(x, d); | ||||
| #endif | ||||
|  | ||||
| #else | ||||
| if(sizeof(long long) == 2) { | ||||
|     msgpack_pack_real_int16(x, d); | ||||
| } else if(sizeof(long long) == 4) { | ||||
|     msgpack_pack_real_int32(x, d); | ||||
| } else { | ||||
|     msgpack_pack_real_int64(x, d); | ||||
| } | ||||
| #endif | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func_cint(_unsigned_short)(msgpack_pack_user x, unsigned short d) | ||||
| { | ||||
| #if defined(SIZEOF_SHORT) | ||||
| #if SIZEOF_SHORT == 2 | ||||
|     msgpack_pack_real_uint16(x, d); | ||||
| #elif SIZEOF_SHORT == 4 | ||||
|     msgpack_pack_real_uint32(x, d); | ||||
| #else | ||||
|     msgpack_pack_real_uint64(x, d); | ||||
| #endif | ||||
|  | ||||
| #elif defined(USHRT_MAX) | ||||
| #if USHRT_MAX == 0xffffU | ||||
|     msgpack_pack_real_uint16(x, d); | ||||
| #elif USHRT_MAX == 0xffffffffU | ||||
|     msgpack_pack_real_uint32(x, d); | ||||
| #else | ||||
|     msgpack_pack_real_uint64(x, d); | ||||
| #endif | ||||
|  | ||||
| #else | ||||
| if(sizeof(unsigned short) == 2) { | ||||
|     msgpack_pack_real_uint16(x, d); | ||||
| } else if(sizeof(unsigned short) == 4) { | ||||
|     msgpack_pack_real_uint32(x, d); | ||||
| } else { | ||||
|     msgpack_pack_real_uint64(x, d); | ||||
| } | ||||
| #endif | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func_cint(_unsigned_int)(msgpack_pack_user x, unsigned int d) | ||||
| { | ||||
| #if defined(SIZEOF_INT) | ||||
| #if SIZEOF_INT == 2 | ||||
|     msgpack_pack_real_uint16(x, d); | ||||
| #elif SIZEOF_INT == 4 | ||||
|     msgpack_pack_real_uint32(x, d); | ||||
| #else | ||||
|     msgpack_pack_real_uint64(x, d); | ||||
| #endif | ||||
|  | ||||
| #elif defined(UINT_MAX) | ||||
| #if UINT_MAX == 0xffffU | ||||
|     msgpack_pack_real_uint16(x, d); | ||||
| #elif UINT_MAX == 0xffffffffU | ||||
|     msgpack_pack_real_uint32(x, d); | ||||
| #else | ||||
|     msgpack_pack_real_uint64(x, d); | ||||
| #endif | ||||
|  | ||||
| #else | ||||
| if(sizeof(unsigned int) == 2) { | ||||
|     msgpack_pack_real_uint16(x, d); | ||||
| } else if(sizeof(unsigned int) == 4) { | ||||
|     msgpack_pack_real_uint32(x, d); | ||||
| } else { | ||||
|     msgpack_pack_real_uint64(x, d); | ||||
| } | ||||
| #endif | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func_cint(_unsigned_long)(msgpack_pack_user x, unsigned long d) | ||||
| { | ||||
| #if defined(SIZEOF_LONG) | ||||
| #if SIZEOF_LONG == 2 | ||||
|     msgpack_pack_real_uint16(x, d); | ||||
| #elif SIZEOF_LONG == 4 | ||||
|     msgpack_pack_real_uint32(x, d); | ||||
| #else | ||||
|     msgpack_pack_real_uint64(x, d); | ||||
| #endif | ||||
|  | ||||
| #elif defined(ULONG_MAX) | ||||
| #if ULONG_MAX == 0xffffUL | ||||
|     msgpack_pack_real_uint16(x, d); | ||||
| #elif ULONG_MAX == 0xffffffffUL | ||||
|     msgpack_pack_real_uint32(x, d); | ||||
| #else | ||||
|     msgpack_pack_real_uint64(x, d); | ||||
| #endif | ||||
|  | ||||
| #else | ||||
| if(sizeof(unsigned long) == 2) { | ||||
|     msgpack_pack_real_uint16(x, d); | ||||
| } else if(sizeof(unsigned long) == 4) { | ||||
|     msgpack_pack_real_uint32(x, d); | ||||
| } else { | ||||
|     msgpack_pack_real_uint64(x, d); | ||||
| } | ||||
| #endif | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func_cint(_unsigned_long_long)(msgpack_pack_user x, unsigned long long d) | ||||
| { | ||||
| #if defined(SIZEOF_LONG_LONG) | ||||
| #if SIZEOF_LONG_LONG == 2 | ||||
|     msgpack_pack_real_uint16(x, d); | ||||
| #elif SIZEOF_LONG_LONG == 4 | ||||
|     msgpack_pack_real_uint32(x, d); | ||||
| #else | ||||
|     msgpack_pack_real_uint64(x, d); | ||||
| #endif | ||||
|  | ||||
| #elif defined(ULLONG_MAX) | ||||
| #if ULLONG_MAX == 0xffffUL | ||||
|     msgpack_pack_real_uint16(x, d); | ||||
| #elif ULLONG_MAX == 0xffffffffUL | ||||
|     msgpack_pack_real_uint32(x, d); | ||||
| #else | ||||
|     msgpack_pack_real_uint64(x, d); | ||||
| #endif | ||||
|  | ||||
| #else | ||||
| if(sizeof(unsigned long long) == 2) { | ||||
|     msgpack_pack_real_uint16(x, d); | ||||
| } else if(sizeof(unsigned long long) == 4) { | ||||
|     msgpack_pack_real_uint32(x, d); | ||||
| } else { | ||||
|     msgpack_pack_real_uint64(x, d); | ||||
| } | ||||
| #endif | ||||
| } | ||||
|  | ||||
| #undef msgpack_pack_inline_func_cint | ||||
| #endif | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Float | ||||
|  */ | ||||
|  | ||||
| msgpack_pack_inline_func(_float)(msgpack_pack_user x, float d) | ||||
| { | ||||
|     unsigned char buf[5]; | ||||
|     union { float f; uint32_t i; } mem; | ||||
|     mem.f = d; | ||||
|     buf[0] = 0xca; _msgpack_store32(&buf[1], mem.i); | ||||
|     msgpack_pack_append_buffer(x, buf, 5); | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func(_double)(msgpack_pack_user x, double d) | ||||
| { | ||||
|     unsigned char buf[9]; | ||||
|     union { double f; uint64_t i; } mem; | ||||
|     mem.f = d; | ||||
|     buf[0] = 0xcb; | ||||
| #if defined(TARGET_OS_IPHONE) | ||||
|     // ok | ||||
| #elif defined(__arm__) && !(__ARM_EABI__) // arm-oabi | ||||
|     // https://github.com/msgpack/msgpack-perl/pull/1 | ||||
|     mem.i = (mem.i & 0xFFFFFFFFUL) << 32UL | (mem.i >> 32UL); | ||||
| #endif | ||||
|     _msgpack_store64(&buf[1], mem.i); | ||||
|     msgpack_pack_append_buffer(x, buf, 9); | ||||
| } | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Nil | ||||
|  */ | ||||
|  | ||||
| msgpack_pack_inline_func(_nil)(msgpack_pack_user x) | ||||
| { | ||||
|     static const unsigned char d = 0xc0; | ||||
|     msgpack_pack_append_buffer(x, &d, 1); | ||||
| } | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Boolean | ||||
|  */ | ||||
|  | ||||
| msgpack_pack_inline_func(_true)(msgpack_pack_user x) | ||||
| { | ||||
|     static const unsigned char d = 0xc3; | ||||
|     msgpack_pack_append_buffer(x, &d, 1); | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func(_false)(msgpack_pack_user x) | ||||
| { | ||||
|     static const unsigned char d = 0xc2; | ||||
|     msgpack_pack_append_buffer(x, &d, 1); | ||||
| } | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Array | ||||
|  */ | ||||
|  | ||||
| msgpack_pack_inline_func(_array)(msgpack_pack_user x, size_t n) | ||||
| { | ||||
|     if(n < 16) { | ||||
|         unsigned char d = 0x90 | (uint8_t)n; | ||||
|         msgpack_pack_append_buffer(x, &d, 1); | ||||
|     } else if(n < 65536) { | ||||
|         unsigned char buf[3]; | ||||
|         buf[0] = 0xdc; _msgpack_store16(&buf[1], (uint16_t)n); | ||||
|         msgpack_pack_append_buffer(x, buf, 3); | ||||
|     } else { | ||||
|         unsigned char buf[5]; | ||||
|         buf[0] = 0xdd; _msgpack_store32(&buf[1], (uint32_t)n); | ||||
|         msgpack_pack_append_buffer(x, buf, 5); | ||||
|     } | ||||
| } | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Map | ||||
|  */ | ||||
|  | ||||
| msgpack_pack_inline_func(_map)(msgpack_pack_user x, size_t n) | ||||
| { | ||||
|     if(n < 16) { | ||||
|         unsigned char d = 0x80 | (uint8_t)n; | ||||
|         msgpack_pack_append_buffer(x, &TAKE8_8(d), 1); | ||||
|     } else if(n < 65536) { | ||||
|         unsigned char buf[3]; | ||||
|         buf[0] = 0xde; _msgpack_store16(&buf[1], (uint16_t)n); | ||||
|         msgpack_pack_append_buffer(x, buf, 3); | ||||
|     } else { | ||||
|         unsigned char buf[5]; | ||||
|         buf[0] = 0xdf; _msgpack_store32(&buf[1], (uint32_t)n); | ||||
|         msgpack_pack_append_buffer(x, buf, 5); | ||||
|     } | ||||
| } | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Str | ||||
|  */ | ||||
|  | ||||
| msgpack_pack_inline_func(_str)(msgpack_pack_user x, size_t l) | ||||
| { | ||||
|     if(l < 32) { | ||||
|         unsigned char d = 0xa0 | (uint8_t)l; | ||||
|         msgpack_pack_append_buffer(x, &TAKE8_8(d), 1); | ||||
|     } else if(l < 256) { | ||||
|         unsigned char buf[2]; | ||||
|         buf[0] = 0xd9; buf[1] = (uint8_t)l; | ||||
|         msgpack_pack_append_buffer(x, buf, 2); | ||||
|     } else if(l < 65536) { | ||||
|         unsigned char buf[3]; | ||||
|         buf[0] = 0xda; _msgpack_store16(&buf[1], (uint16_t)l); | ||||
|         msgpack_pack_append_buffer(x, buf, 3); | ||||
|     } else { | ||||
|         unsigned char buf[5]; | ||||
|         buf[0] = 0xdb; _msgpack_store32(&buf[1], (uint32_t)l); | ||||
|         msgpack_pack_append_buffer(x, buf, 5); | ||||
|     } | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func(_str_body)(msgpack_pack_user x, const void* b, size_t l) | ||||
| { | ||||
|     msgpack_pack_append_buffer(x, (const unsigned char*)b, l); | ||||
| } | ||||
|  | ||||
| /* | ||||
|  * Raw (V4) | ||||
|  */ | ||||
|  | ||||
| msgpack_pack_inline_func(_v4raw)(msgpack_pack_user x, size_t l) | ||||
| { | ||||
|     if(l < 32) { | ||||
|         unsigned char d = 0xa0 | (uint8_t)l; | ||||
|         msgpack_pack_append_buffer(x, &TAKE8_8(d), 1); | ||||
|     } else if(l < 65536) { | ||||
|         unsigned char buf[3]; | ||||
|         buf[0] = 0xda; _msgpack_store16(&buf[1], (uint16_t)l); | ||||
|         msgpack_pack_append_buffer(x, buf, 3); | ||||
|     } else { | ||||
|         unsigned char buf[5]; | ||||
|         buf[0] = 0xdb; _msgpack_store32(&buf[1], (uint32_t)l); | ||||
|         msgpack_pack_append_buffer(x, buf, 5); | ||||
|     } | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func(_v4raw_body)(msgpack_pack_user x, const void* b, size_t l) | ||||
| { | ||||
|     msgpack_pack_append_buffer(x, (const unsigned char*)b, l); | ||||
| } | ||||
|  | ||||
| /* | ||||
|  * Bin | ||||
|  */ | ||||
|  | ||||
| msgpack_pack_inline_func(_bin)(msgpack_pack_user x, size_t l) | ||||
| { | ||||
|     if(l < 256) { | ||||
|         unsigned char buf[2]; | ||||
|         buf[0] = 0xc4; buf[1] = (uint8_t)l; | ||||
|         msgpack_pack_append_buffer(x, buf, 2); | ||||
|     } else if(l < 65536) { | ||||
|         unsigned char buf[3]; | ||||
|         buf[0] = 0xc5; _msgpack_store16(&buf[1], (uint16_t)l); | ||||
|         msgpack_pack_append_buffer(x, buf, 3); | ||||
|     } else { | ||||
|         unsigned char buf[5]; | ||||
|         buf[0] = 0xc6; _msgpack_store32(&buf[1], (uint32_t)l); | ||||
|         msgpack_pack_append_buffer(x, buf, 5); | ||||
|     } | ||||
| } | ||||
|  | ||||
| msgpack_pack_inline_func(_bin_body)(msgpack_pack_user x, const void* b, size_t l) | ||||
| { | ||||
|     msgpack_pack_append_buffer(x, (const unsigned char*)b, l); | ||||
| } | ||||
|  | ||||
| /* | ||||
|  * Ext | ||||
|  */ | ||||
|  | ||||
| msgpack_pack_inline_func(_ext)(msgpack_pack_user x, size_t l, int8_t type) | ||||
| { | ||||
|     switch(l) { | ||||
|     case 1: { | ||||
|         unsigned char buf[2]; | ||||
|         buf[0] = 0xd4; | ||||
|         buf[1] = (unsigned char)type; | ||||
|         msgpack_pack_append_buffer(x, buf, 2); | ||||
|     } break; | ||||
|     case 2: { | ||||
|         unsigned char buf[2]; | ||||
|         buf[0] = 0xd5; | ||||
|         buf[1] = (unsigned char)type; | ||||
|         msgpack_pack_append_buffer(x, buf, 2); | ||||
|     } break; | ||||
|     case 4: { | ||||
|         unsigned char buf[2]; | ||||
|         buf[0] = 0xd6; | ||||
|         buf[1] = (unsigned char)type; | ||||
|         msgpack_pack_append_buffer(x, buf, 2); | ||||
|     } break; | ||||
|     case 8: { | ||||
|         unsigned char buf[2]; | ||||
|         buf[0] = 0xd7; | ||||
|         buf[1] = (unsigned char)type; | ||||
|         msgpack_pack_append_buffer(x, buf, 2); | ||||
|     } break; | ||||
|     case 16: { | ||||
|         unsigned char buf[2]; | ||||
|         buf[0] = 0xd8; | ||||
|         buf[1] = (unsigned char)type; | ||||
|         msgpack_pack_append_buffer(x, buf, 2); | ||||
|     } break; | ||||
|     default: | ||||
|         if(l < 256) { | ||||
|             unsigned char buf[3]; | ||||
|             buf[0] = 0xc7; | ||||
|             buf[1] = (unsigned char)l; | ||||
|             buf[2] = (unsigned char)type; | ||||
|             msgpack_pack_append_buffer(x, buf, 3); | ||||
|         } else if(l < 65536) { | ||||
|             unsigned char buf[4]; | ||||
|             buf[0] = 0xc8; | ||||
|             _msgpack_store16(&buf[1], l); | ||||
|             buf[3] = (unsigned char)type; | ||||
|             msgpack_pack_append_buffer(x, buf, 4); | ||||
|         } else { | ||||
|             unsigned char buf[6]; | ||||
|             buf[0] = 0xc9; | ||||
|             _msgpack_store32(&buf[1], l); | ||||
|             buf[5] = (unsigned char)type; | ||||
|             msgpack_pack_append_buffer(x, buf, 6); | ||||
|         } | ||||
|         break; | ||||
|     } | ||||
| } | ||||
|  | ||||
| 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) | (uint64_t)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 | ||||
|  | ||||
| #undef TAKE8_8 | ||||
| #undef TAKE8_16 | ||||
| #undef TAKE8_32 | ||||
| #undef TAKE8_64 | ||||
|  | ||||
| #undef msgpack_pack_real_uint8 | ||||
| #undef msgpack_pack_real_uint16 | ||||
| #undef msgpack_pack_real_uint32 | ||||
| #undef msgpack_pack_real_uint64 | ||||
| #undef msgpack_pack_real_int8 | ||||
| #undef msgpack_pack_real_int16 | ||||
| #undef msgpack_pack_real_int32 | ||||
| #undef msgpack_pack_real_int64 | ||||
|  | ||||
| #if defined(_MSC_VER) | ||||
| #   pragma warning(pop) | ||||
| #endif | ||||
| @@ -1,24 +0,0 @@ | ||||
| /* | ||||
| 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) | ||||
| */ | ||||
|  | ||||
| #if !defined(MSGPACK_PREDEF_H) || defined(MSGPACK_PREDEF_INTERNAL_GENERATE_TESTS) | ||||
| #ifndef MSGPACK_PREDEF_H | ||||
| #define MSGPACK_PREDEF_H | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/language.h> | ||||
| #include <msgpack/predef/architecture.h> | ||||
| #include <msgpack/predef/compiler.h> | ||||
| #include <msgpack/predef/library.h> | ||||
| #include <msgpack/predef/os.h> | ||||
| #include <msgpack/predef/other.h> | ||||
| #include <msgpack/predef/platform.h> | ||||
| #include <msgpack/predef/hardware.h> | ||||
|  | ||||
| #include <msgpack/predef/version.h> | ||||
|  | ||||
| #endif | ||||
| @@ -1,33 +0,0 @@ | ||||
| /* | ||||
| 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) | ||||
| */ | ||||
|  | ||||
| #if !defined(MSGPACK_PREDEF_ARCHITECTURE_H) || defined(MSGPACK_PREDEF_INTERNAL_GENERATE_TESTS) | ||||
| #ifndef MSGPACK_PREDEF_ARCHITECTURE_H | ||||
| #define MSGPACK_PREDEF_ARCHITECTURE_H | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/architecture/alpha.h> | ||||
| #include <msgpack/predef/architecture/arm.h> | ||||
| #include <msgpack/predef/architecture/blackfin.h> | ||||
| #include <msgpack/predef/architecture/convex.h> | ||||
| #include <msgpack/predef/architecture/ia64.h> | ||||
| #include <msgpack/predef/architecture/m68k.h> | ||||
| #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> | ||||
| #include <msgpack/predef/architecture/superh.h> | ||||
| #include <msgpack/predef/architecture/sys370.h> | ||||
| #include <msgpack/predef/architecture/sys390.h> | ||||
| #include <msgpack/predef/architecture/x86.h> | ||||
| #include <msgpack/predef/architecture/z.h> | ||||
| /*#include <msgpack/predef/architecture/.h>*/ | ||||
|  | ||||
| #endif | ||||
| @@ -1,59 +0,0 @@ | ||||
| /* | ||||
| 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_ARCHITECTURE_ALPHA_H | ||||
| #define MSGPACK_PREDEF_ARCHITECTURE_ALPHA_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_ARCH_ALPHA`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/DEC_Alpha DEC Alpha] architecture. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|     [[`__alpha__`] [__predef_detection__]] | ||||
|     [[`__alpha`] [__predef_detection__]] | ||||
|     [[`_M_ALPHA`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__alpha_ev4__`] [4.0.0]] | ||||
|     [[`__alpha_ev5__`] [5.0.0]] | ||||
|     [[`__alpha_ev6__`] [6.0.0]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_ARCH_ALPHA MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__alpha__) || defined(__alpha) || \ | ||||
|     defined(_M_ALPHA) | ||||
| #   undef MSGPACK_ARCH_ALPHA | ||||
| #   if !defined(MSGPACK_ARCH_ALPHA) && defined(__alpha_ev4__) | ||||
| #       define MSGPACK_ARCH_ALPHA MSGPACK_VERSION_NUMBER(4,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_ALPHA) && defined(__alpha_ev5__) | ||||
| #       define MSGPACK_ARCH_ALPHA MSGPACK_VERSION_NUMBER(5,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_ALPHA) && defined(__alpha_ev6__) | ||||
| #       define MSGPACK_ARCH_ALPHA MSGPACK_VERSION_NUMBER(6,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_ALPHA) | ||||
| #       define MSGPACK_ARCH_ALPHA MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #   endif | ||||
| #endif | ||||
|  | ||||
| #if MSGPACK_ARCH_ALPHA | ||||
| #   define MSGPACK_ARCH_ALPHA_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_ARCH_ALPHA_NAME "DEC Alpha" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_ALPHA,MSGPACK_ARCH_ALPHA_NAME) | ||||
| @@ -1,80 +0,0 @@ | ||||
| /* | ||||
| Copyright Rene Rivera 2008-2015 | ||||
| Copyright Franz Detro 2014 | ||||
| Copyright (c) Microsoft Corporation 2014 | ||||
| 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_ARM_H | ||||
| #define MSGPACK_PREDEF_ARCHITECTURE_ARM_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_ARCH_ARM`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/ARM_architecture ARM] architecture. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__arm__`] [__predef_detection__]] | ||||
|     [[`__arm64`] [__predef_detection__]] | ||||
|     [[`__thumb__`] [__predef_detection__]] | ||||
|     [[`__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]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__arm__) || defined(__arm64) || defined(__thumb__) || \ | ||||
|     defined(__TARGET_ARCH_ARM) || defined(__TARGET_ARCH_THUMB) || \ | ||||
|     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) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_ARM) && defined(__TARGET_ARCH_ARM) | ||||
| #       define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER(__TARGET_ARCH_ARM,0,0) | ||||
| #   endif | ||||
| #   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 | ||||
| #   if !defined(MSGPACK_ARCH_ARM) | ||||
| #       define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #   endif | ||||
| #endif | ||||
|  | ||||
| #if MSGPACK_ARCH_ARM | ||||
| #   define MSGPACK_ARCH_ARM_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_ARCH_ARM_NAME "ARM" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_ARM,MSGPACK_ARCH_ARM_NAME) | ||||
| @@ -1,46 +0,0 @@ | ||||
| /* | ||||
| Copyright Rene Rivera 2013-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_ARCHITECTURE_BLACKFIN_H | ||||
| #define MSGPACK_PREDEF_ARCHITECTURE_BLACKFIN_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_ARCH_BLACKFIN`] | ||||
|  | ||||
| Blackfin Processors from Analog Devices. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__bfin__`] [__predef_detection__]] | ||||
|     [[`__BFIN__`] [__predef_detection__]] | ||||
|     [[`bfin`] [__predef_detection__]] | ||||
|     [[`BFIN`] [__predef_detection__]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_ARCH_BLACKFIN MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__bfin__) || defined(__BFIN__) || \ | ||||
|     defined(bfin) || defined(BFIN) | ||||
| #   undef MSGPACK_ARCH_BLACKFIN | ||||
| #   define MSGPACK_ARCH_BLACKFIN MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #if MSGPACK_ARCH_BLACKFIN | ||||
| #   define MSGPACK_ARCH_BLACKFIN_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_ARCH_BLACKFIN_NAME "Blackfin" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_BLACKFIN,MSGPACK_ARCH_BLACKFIN_NAME) | ||||
| @@ -1,65 +0,0 @@ | ||||
| /* | ||||
| Copyright Rene Rivera 2011-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_ARCHITECTURE_CONVEX_H | ||||
| #define MSGPACK_PREDEF_ARCHITECTURE_CONVEX_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_ARCH_CONVEX`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/Convex_Computer Convex Computer] architecture. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__convex__`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__convex_c1__`] [1.0.0]] | ||||
|     [[`__convex_c2__`] [2.0.0]] | ||||
|     [[`__convex_c32__`] [3.2.0]] | ||||
|     [[`__convex_c34__`] [3.4.0]] | ||||
|     [[`__convex_c38__`] [3.8.0]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__convex__) | ||||
| #   undef MSGPACK_ARCH_CONVEX | ||||
| #   if !defined(MSGPACK_ARCH_CONVEX) && defined(__convex_c1__) | ||||
| #       define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER(1,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_CONVEX) && defined(__convex_c2__) | ||||
| #       define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER(2,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_CONVEX) && defined(__convex_c32__) | ||||
| #       define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER(3,2,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_CONVEX) && defined(__convex_c34__) | ||||
| #       define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER(3,4,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_CONVEX) && defined(__convex_c38__) | ||||
| #       define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER(3,8,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_CONVEX) | ||||
| #       define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #   endif | ||||
| #endif | ||||
|  | ||||
| #if MSGPACK_ARCH_CONVEX | ||||
| #   define MSGPACK_ARCH_CONVEX_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_ARCH_CONVEX_NAME "Convex Computer" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_CONVEX,MSGPACK_ARCH_CONVEX_NAME) | ||||
| @@ -1,49 +0,0 @@ | ||||
| /* | ||||
| 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_ARCHITECTURE_IA64_H | ||||
| #define MSGPACK_PREDEF_ARCHITECTURE_IA64_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_ARCH_IA64`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/Ia64 Intel Itanium 64] architecture. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__ia64__`] [__predef_detection__]] | ||||
|     [[`_IA64`] [__predef_detection__]] | ||||
|     [[`__IA64__`] [__predef_detection__]] | ||||
|     [[`__ia64`] [__predef_detection__]] | ||||
|     [[`_M_IA64`] [__predef_detection__]] | ||||
|     [[`__itanium__`] [__predef_detection__]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_ARCH_IA64 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__ia64__) || defined(_IA64) || \ | ||||
|     defined(__IA64__) || defined(__ia64) || \ | ||||
|     defined(_M_IA64) || defined(__itanium__) | ||||
| #   undef MSGPACK_ARCH_IA64 | ||||
| #   define MSGPACK_ARCH_IA64 MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #if MSGPACK_ARCH_IA64 | ||||
| #   define MSGPACK_ARCH_IA64_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_ARCH_IA64_NAME "Intel Itanium 64" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_IA64,MSGPACK_ARCH_IA64_NAME) | ||||
| @@ -1,82 +0,0 @@ | ||||
| /* | ||||
| 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_ARCHITECTURE_M68K_H | ||||
| #define MSGPACK_PREDEF_ARCHITECTURE_M68K_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_ARCH_M68K`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/M68k Motorola 68k] architecture. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__m68k__`] [__predef_detection__]] | ||||
|     [[`M68000`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__mc68060__`] [6.0.0]] | ||||
|     [[`mc68060`] [6.0.0]] | ||||
|     [[`__mc68060`] [6.0.0]] | ||||
|     [[`__mc68040__`] [4.0.0]] | ||||
|     [[`mc68040`] [4.0.0]] | ||||
|     [[`__mc68040`] [4.0.0]] | ||||
|     [[`__mc68030__`] [3.0.0]] | ||||
|     [[`mc68030`] [3.0.0]] | ||||
|     [[`__mc68030`] [3.0.0]] | ||||
|     [[`__mc68020__`] [2.0.0]] | ||||
|     [[`mc68020`] [2.0.0]] | ||||
|     [[`__mc68020`] [2.0.0]] | ||||
|     [[`__mc68010__`] [1.0.0]] | ||||
|     [[`mc68010`] [1.0.0]] | ||||
|     [[`__mc68010`] [1.0.0]] | ||||
|     [[`__mc68000__`] [0.0.1]] | ||||
|     [[`mc68000`] [0.0.1]] | ||||
|     [[`__mc68000`] [0.0.1]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__m68k__) || defined(M68000) | ||||
| #   undef MSGPACK_ARCH_M68K | ||||
| #   if !defined(MSGPACK_ARCH_M68K) && (defined(__mc68060__) || defined(mc68060) || defined(__mc68060)) | ||||
| #       define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER(6,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_M68K) && (defined(__mc68040__) || defined(mc68040) || defined(__mc68040)) | ||||
| #       define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER(4,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_M68K) && (defined(__mc68030__) || defined(mc68030) || defined(__mc68030)) | ||||
| #       define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER(3,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_M68K) && (defined(__mc68020__) || defined(mc68020) || defined(__mc68020)) | ||||
| #       define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER(2,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_M68K) && (defined(__mc68010__) || defined(mc68010) || defined(__mc68010)) | ||||
| #       define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER(1,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_M68K) && (defined(__mc68000__) || defined(mc68000) || defined(__mc68000)) | ||||
| #       define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_M68K) | ||||
| #       define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #   endif | ||||
| #endif | ||||
|  | ||||
| #if MSGPACK_ARCH_M68K | ||||
| #   define MSGPACK_ARCH_M68K_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_ARCH_M68K_NAME "Motorola 68k" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_M68K,MSGPACK_ARCH_M68K_NAME) | ||||
| @@ -1,73 +0,0 @@ | ||||
| /* | ||||
| 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_ARCHITECTURE_MIPS_H | ||||
| #define MSGPACK_PREDEF_ARCHITECTURE_MIPS_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_ARCH_MIPS`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/MIPS_architecture MIPS] architecture. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__mips__`] [__predef_detection__]] | ||||
|     [[`__mips`] [__predef_detection__]] | ||||
|     [[`__MIPS__`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__mips`] [V.0.0]] | ||||
|     [[`_MIPS_ISA_MIPS1`] [1.0.0]] | ||||
|     [[`_R3000`] [1.0.0]] | ||||
|     [[`_MIPS_ISA_MIPS2`] [2.0.0]] | ||||
|     [[`__MIPS_ISA2__`] [2.0.0]] | ||||
|     [[`_R4000`] [2.0.0]] | ||||
|     [[`_MIPS_ISA_MIPS3`] [3.0.0]] | ||||
|     [[`__MIPS_ISA3__`] [3.0.0]] | ||||
|     [[`_MIPS_ISA_MIPS4`] [4.0.0]] | ||||
|     [[`__MIPS_ISA4__`] [4.0.0]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__mips__) || defined(__mips) || \ | ||||
|     defined(__MIPS__) | ||||
| #   undef MSGPACK_ARCH_MIPS | ||||
| #   if !defined(MSGPACK_ARCH_MIPS) && (defined(__mips)) | ||||
| #       define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER(__mips,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS1) || defined(_R3000)) | ||||
| #       define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER(1,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS2) || defined(__MIPS_ISA2__) || defined(_R4000)) | ||||
| #       define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER(2,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS3) || defined(__MIPS_ISA3__)) | ||||
| #       define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER(3,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS4) || defined(__MIPS_ISA4__)) | ||||
| #       define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER(4,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_MIPS) | ||||
| #       define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #   endif | ||||
| #endif | ||||
|  | ||||
| #if MSGPACK_ARCH_MIPS | ||||
| #   define MSGPACK_ARCH_MIPS_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_ARCH_MIPS_NAME "MIPS" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_MIPS,MSGPACK_ARCH_MIPS_NAME) | ||||
| @@ -1,64 +0,0 @@ | ||||
| /* | ||||
| 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_ARCHITECTURE_PARISC_H | ||||
| #define MSGPACK_PREDEF_ARCHITECTURE_PARISC_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_ARCH_PARISC`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/PA-RISC_family HP/PA RISC] architecture. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__hppa__`] [__predef_detection__]] | ||||
|     [[`__hppa`] [__predef_detection__]] | ||||
|     [[`__HPPA__`] [__predef_detection__]] | ||||
|  | ||||
|     [[`_PA_RISC1_0`] [1.0.0]] | ||||
|     [[`_PA_RISC1_1`] [1.1.0]] | ||||
|     [[`__HPPA11__`] [1.1.0]] | ||||
|     [[`__PA7100__`] [1.1.0]] | ||||
|     [[`_PA_RISC2_0`] [2.0.0]] | ||||
|     [[`__RISC2_0__`] [2.0.0]] | ||||
|     [[`__HPPA20__`] [2.0.0]] | ||||
|     [[`__PA8000__`] [2.0.0]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_ARCH_PARISC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__hppa__) || defined(__hppa) || defined(__HPPA__) | ||||
| #   undef MSGPACK_ARCH_PARISC | ||||
| #   if !defined(MSGPACK_ARCH_PARISC) && (defined(_PA_RISC1_0)) | ||||
| #       define MSGPACK_ARCH_PARISC MSGPACK_VERSION_NUMBER(1,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_PARISC) && (defined(_PA_RISC1_1) || defined(__HPPA11__) || defined(__PA7100__)) | ||||
| #       define MSGPACK_ARCH_PARISC MSGPACK_VERSION_NUMBER(1,1,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_PARISC) && (defined(_PA_RISC2_0) || defined(__RISC2_0__) || defined(__HPPA20__) || defined(__PA8000__)) | ||||
| #       define MSGPACK_ARCH_PARISC MSGPACK_VERSION_NUMBER(2,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_PARISC) | ||||
| #       define MSGPACK_ARCH_PARISC MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #   endif | ||||
| #endif | ||||
|  | ||||
| #if MSGPACK_ARCH_PARISC | ||||
| #   define MSGPACK_ARCH_PARISC_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_ARCH_PARISC_NAME "HP/PA RISC" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_PARISC,MSGPACK_ARCH_PARISC_NAME) | ||||
| @@ -1,72 +0,0 @@ | ||||
| /* | ||||
| 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_ARCHITECTURE_PPC_H | ||||
| #define MSGPACK_PREDEF_ARCHITECTURE_PPC_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_ARCH_PPC`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/PowerPC PowerPC] architecture. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__powerpc`] [__predef_detection__]] | ||||
|     [[`__powerpc__`] [__predef_detection__]] | ||||
|     [[`__POWERPC__`] [__predef_detection__]] | ||||
|     [[`__ppc__`] [__predef_detection__]] | ||||
|     [[`_M_PPC`] [__predef_detection__]] | ||||
|     [[`_ARCH_PPC`] [__predef_detection__]] | ||||
|     [[`__PPCGECKO__`] [__predef_detection__]] | ||||
|     [[`__PPCBROADWAY__`] [__predef_detection__]] | ||||
|     [[`_XENON`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__ppc601__`] [6.1.0]] | ||||
|     [[`_ARCH_601`] [6.1.0]] | ||||
|     [[`__ppc603__`] [6.3.0]] | ||||
|     [[`_ARCH_603`] [6.3.0]] | ||||
|     [[`__ppc604__`] [6.4.0]] | ||||
|     [[`__ppc604__`] [6.4.0]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_ARCH_PPC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__powerpc) || defined(__powerpc__) || \ | ||||
|     defined(__POWERPC__) || defined(__ppc__) || \ | ||||
|     defined(_M_PPC) || defined(_ARCH_PPC) || \ | ||||
|     defined(__PPCGECKO__) || defined(__PPCBROADWAY__) || \ | ||||
|     defined(_XENON) | ||||
| #   undef MSGPACK_ARCH_PPC | ||||
| #   if !defined (MSGPACK_ARCH_PPC) && (defined(__ppc601__) || defined(_ARCH_601)) | ||||
| #       define MSGPACK_ARCH_PPC MSGPACK_VERSION_NUMBER(6,1,0) | ||||
| #   endif | ||||
| #   if !defined (MSGPACK_ARCH_PPC) && (defined(__ppc603__) || defined(_ARCH_603)) | ||||
| #       define MSGPACK_ARCH_PPC MSGPACK_VERSION_NUMBER(6,3,0) | ||||
| #   endif | ||||
| #   if !defined (MSGPACK_ARCH_PPC) && (defined(__ppc604__) || defined(__ppc604__)) | ||||
| #       define MSGPACK_ARCH_PPC MSGPACK_VERSION_NUMBER(6,4,0) | ||||
| #   endif | ||||
| #   if !defined (MSGPACK_ARCH_PPC) | ||||
| #       define MSGPACK_ARCH_PPC MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #   endif | ||||
| #endif | ||||
|  | ||||
| #if MSGPACK_ARCH_PPC | ||||
| #   define MSGPACK_ARCH_PPC_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_ARCH_PPC_NAME "PowerPC" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_PPC,MSGPACK_ARCH_PPC_NAME) | ||||
| @@ -1,44 +0,0 @@ | ||||
| /* | ||||
| 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) | ||||
| @@ -1,42 +0,0 @@ | ||||
| /* | ||||
| Copyright Rene Rivera 2011-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_ARCHITECTURE_PYRAMID_H | ||||
| #define MSGPACK_PREDEF_ARCHITECTURE_PYRAMID_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_ARCH_PYRAMID`] | ||||
|  | ||||
| Pyramid 9810 architecture. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`pyr`] [__predef_detection__]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_ARCH_PYRAMID MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(pyr) | ||||
| #   undef MSGPACK_ARCH_PYRAMID | ||||
| #   define MSGPACK_ARCH_PYRAMID MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #if MSGPACK_ARCH_PYRAMID | ||||
| #   define MSGPACK_ARCH_PYRAMID_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_ARCH_PYRAMID_NAME "Pyramid 9810" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_PYRAMID,MSGPACK_ARCH_PYRAMID_NAME) | ||||
| @@ -1,56 +0,0 @@ | ||||
| /* | ||||
| 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_ARCHITECTURE_RS6K_H | ||||
| #define MSGPACK_PREDEF_ARCHITECTURE_RS6K_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_ARCH_RS6000`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/RS/6000 RS/6000] architecture. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__THW_RS6000`] [__predef_detection__]] | ||||
|     [[`_IBMR2`] [__predef_detection__]] | ||||
|     [[`_POWER`] [__predef_detection__]] | ||||
|     [[`_ARCH_PWR`] [__predef_detection__]] | ||||
|     [[`_ARCH_PWR2`] [__predef_detection__]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_ARCH_RS6000 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__THW_RS6000) || defined(_IBMR2) || \ | ||||
|     defined(_POWER) || defined(_ARCH_PWR) || \ | ||||
|     defined(_ARCH_PWR2) | ||||
| #   undef MSGPACK_ARCH_RS6000 | ||||
| #   define MSGPACK_ARCH_RS6000 MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #if MSGPACK_ARCH_RS6000 | ||||
| #   define MSGPACK_ARCH_RS6000_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_ARCH_RS6000_NAME "RS/6000" | ||||
|  | ||||
| #define MSGPACK_ARCH_PWR MSGPACK_ARCH_RS6000 | ||||
|  | ||||
| #if MSGPACK_ARCH_PWR | ||||
| #   define MSGPACK_ARCH_PWR_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_ARCH_PWR_NAME MSGPACK_ARCH_RS6000_NAME | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_RS6000,MSGPACK_ARCH_RS6000_NAME) | ||||
| @@ -1,54 +0,0 @@ | ||||
| /* | ||||
| 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_ARCHITECTURE_SPARC_H | ||||
| #define MSGPACK_PREDEF_ARCHITECTURE_SPARC_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_ARCH_SPARC`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/SPARC SPARC] architecture. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__sparc__`] [__predef_detection__]] | ||||
|     [[`__sparc`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__sparcv9`] [9.0.0]] | ||||
|     [[`__sparcv8`] [8.0.0]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_ARCH_SPARC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__sparc__) || defined(__sparc) | ||||
| #   undef MSGPACK_ARCH_SPARC | ||||
| #   if !defined(MSGPACK_ARCH_SPARC) && defined(__sparcv9) | ||||
| #       define MSGPACK_ARCH_SPARC MSGPACK_VERSION_NUMBER(9,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_SPARC) && defined(__sparcv8) | ||||
| #       define MSGPACK_ARCH_SPARC MSGPACK_VERSION_NUMBER(8,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_SPARC) | ||||
| #       define MSGPACK_ARCH_SPARC MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #   endif | ||||
| #endif | ||||
|  | ||||
| #if MSGPACK_ARCH_SPARC | ||||
| #   define MSGPACK_ARCH_SPARC_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_ARCH_SPARC_NAME "SPARC" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_SPARC,MSGPACK_ARCH_SPARC_NAME) | ||||
| @@ -1,67 +0,0 @@ | ||||
| /* | ||||
| 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_ARCHITECTURE_SUPERH_H | ||||
| #define MSGPACK_PREDEF_ARCHITECTURE_SUPERH_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_ARCH_SH`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/SuperH SuperH] architecture: | ||||
| If available versions \[1-5\] are specifically detected. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__sh__`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__SH5__`] [5.0.0]] | ||||
|     [[`__SH4__`] [4.0.0]] | ||||
|     [[`__sh3__`] [3.0.0]] | ||||
|     [[`__SH3__`] [3.0.0]] | ||||
|     [[`__sh2__`] [2.0.0]] | ||||
|     [[`__sh1__`] [1.0.0]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__sh__) | ||||
| #   undef MSGPACK_ARCH_SH | ||||
| #   if !defined(MSGPACK_ARCH_SH) && (defined(__SH5__)) | ||||
| #       define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER(5,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_SH) && (defined(__SH4__)) | ||||
| #       define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER(4,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_SH) && (defined(__sh3__) || defined(__SH3__)) | ||||
| #       define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER(3,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_SH) && (defined(__sh2__)) | ||||
| #       define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER(2,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_SH) && (defined(__sh1__)) | ||||
| #       define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER(1,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_SH) | ||||
| #       define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #   endif | ||||
| #endif | ||||
|  | ||||
| #if MSGPACK_ARCH_SH | ||||
| #   define MSGPACK_ARCH_SH_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_ARCH_SH_NAME "SuperH" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_SH,MSGPACK_ARCH_SH_NAME) | ||||
| @@ -1,43 +0,0 @@ | ||||
| /* | ||||
| 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_ARCHITECTURE_SYS370_H | ||||
| #define MSGPACK_PREDEF_ARCHITECTURE_SYS370_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_ARCH_SYS370`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/System/370 System/370] architecture. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__370__`] [__predef_detection__]] | ||||
|     [[`__THW_370__`] [__predef_detection__]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_ARCH_SYS370 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__370__) || defined(__THW_370__) | ||||
| #   undef MSGPACK_ARCH_SYS370 | ||||
| #   define MSGPACK_ARCH_SYS370 MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #if MSGPACK_ARCH_SYS370 | ||||
| #   define MSGPACK_ARCH_SYS370_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_ARCH_SYS370_NAME "System/370" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_SYS370,MSGPACK_ARCH_SYS370_NAME) | ||||
| @@ -1,43 +0,0 @@ | ||||
| /* | ||||
| 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_ARCHITECTURE_SYS390_H | ||||
| #define MSGPACK_PREDEF_ARCHITECTURE_SYS390_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_ARCH_SYS390`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/System/390 System/390] architecture. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__s390__`] [__predef_detection__]] | ||||
|     [[`__s390x__`] [__predef_detection__]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_ARCH_SYS390 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__s390__) || defined(__s390x__) | ||||
| #   undef MSGPACK_ARCH_SYS390 | ||||
| #   define MSGPACK_ARCH_SYS390 MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #if MSGPACK_ARCH_SYS390 | ||||
| #   define MSGPACK_ARCH_SYS390_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_ARCH_SYS390_NAME "System/390" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_SYS390,MSGPACK_ARCH_SYS390_NAME) | ||||
| @@ -1,38 +0,0 @@ | ||||
| /* | ||||
| 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) | ||||
| */ | ||||
|  | ||||
| #include <msgpack/predef/architecture/x86/32.h> | ||||
| #include <msgpack/predef/architecture/x86/64.h> | ||||
|  | ||||
| #ifndef MSGPACK_PREDEF_ARCHITECTURE_X86_H | ||||
| #define MSGPACK_PREDEF_ARCHITECTURE_X86_H | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_ARCH_X86`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/X86 Intel x86] architecture. This is | ||||
| a category to indicate that either `MSGPACK_ARCH_X86_32` or | ||||
| `MSGPACK_ARCH_X86_64` is detected. | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_ARCH_X86 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if MSGPACK_ARCH_X86_32 || MSGPACK_ARCH_X86_64 | ||||
| #   undef MSGPACK_ARCH_X86 | ||||
| #   define MSGPACK_ARCH_X86 MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #if MSGPACK_ARCH_X86 | ||||
| #   define MSGPACK_ARCH_X86_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_ARCH_X86_NAME "Intel x86" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_X86,MSGPACK_ARCH_X86_NAME) | ||||
| @@ -1,87 +0,0 @@ | ||||
| /* | ||||
| 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_ARCHITECTURE_X86_32_H | ||||
| #define MSGPACK_PREDEF_ARCHITECTURE_X86_32_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_ARCH_X86_32`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/X86 Intel x86] architecture: | ||||
| If available versions \[3-6\] are specifically detected. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`i386`] [__predef_detection__]] | ||||
|     [[`__i386__`] [__predef_detection__]] | ||||
|     [[`__i486__`] [__predef_detection__]] | ||||
|     [[`__i586__`] [__predef_detection__]] | ||||
|     [[`__i686__`] [__predef_detection__]] | ||||
|     [[`__i386`] [__predef_detection__]] | ||||
|     [[`_M_IX86`] [__predef_detection__]] | ||||
|     [[`_X86_`] [__predef_detection__]] | ||||
|     [[`__THW_INTEL__`] [__predef_detection__]] | ||||
|     [[`__I86__`] [__predef_detection__]] | ||||
|     [[`__INTEL__`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__I86__`] [V.0.0]] | ||||
|     [[`_M_IX86`] [V.0.0]] | ||||
|     [[`__i686__`] [6.0.0]] | ||||
|     [[`__i586__`] [5.0.0]] | ||||
|     [[`__i486__`] [4.0.0]] | ||||
|     [[`__i386__`] [3.0.0]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(i386) || defined(__i386__) || \ | ||||
|     defined(__i486__) || defined(__i586__) || \ | ||||
|     defined(__i686__) || defined(__i386) || \ | ||||
|     defined(_M_IX86) || defined(_X86_) || \ | ||||
|     defined(__THW_INTEL__) || defined(__I86__) || \ | ||||
|     defined(__INTEL__) | ||||
| #   undef MSGPACK_ARCH_X86_32 | ||||
| #   if !defined(MSGPACK_ARCH_X86_32) && defined(__I86__) | ||||
| #       define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER(__I86__,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_X86_32) && defined(_M_IX86) | ||||
| #       define MSGPACK_ARCH_X86_32 MSGPACK_PREDEF_MAKE_10_VV00(_M_IX86) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_X86_32) && defined(__i686__) | ||||
| #       define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER(6,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_X86_32) && defined(__i586__) | ||||
| #       define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER(5,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_X86_32) && defined(__i486__) | ||||
| #       define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER(4,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_X86_32) && defined(__i386__) | ||||
| #       define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER(3,0,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_ARCH_X86_32) | ||||
| #       define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #   endif | ||||
| #endif | ||||
|  | ||||
| #if MSGPACK_ARCH_X86_32 | ||||
| #   define MSGPACK_ARCH_X86_32_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_ARCH_X86_32_NAME "Intel x86-32" | ||||
|  | ||||
| #include <msgpack/predef/architecture/x86.h> | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_X86_32,MSGPACK_ARCH_X86_32_NAME) | ||||
| @@ -1,50 +0,0 @@ | ||||
| /* | ||||
| 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_ARCHITECTURE_X86_64_H | ||||
| #define MSGPACK_PREDEF_ARCHITECTURE_X86_64_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_ARCH_X86_64`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/Ia64 Intel IA-64] architecture. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__x86_64`] [__predef_detection__]] | ||||
|     [[`__x86_64__`] [__predef_detection__]] | ||||
|     [[`__amd64__`] [__predef_detection__]] | ||||
|     [[`__amd64`] [__predef_detection__]] | ||||
|     [[`_M_X64`] [__predef_detection__]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_ARCH_X86_64 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__x86_64) || defined(__x86_64__) || \ | ||||
|     defined(__amd64__) || defined(__amd64) || \ | ||||
|     defined(_M_X64) | ||||
| #   undef MSGPACK_ARCH_X86_64 | ||||
| #   define MSGPACK_ARCH_X86_64 MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #if MSGPACK_ARCH_X86_64 | ||||
| #   define MSGPACK_ARCH_X86_64_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_ARCH_X86_64_NAME "Intel x86-64" | ||||
|  | ||||
| #include <msgpack/predef/architecture/x86.h> | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_X86_64,MSGPACK_ARCH_X86_64_NAME) | ||||
| @@ -1,42 +0,0 @@ | ||||
| /* | ||||
| 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_ARCHITECTURE_Z_H | ||||
| #define MSGPACK_PREDEF_ARCHITECTURE_Z_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_ARCH_Z`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/Z/Architecture z/Architecture] architecture. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__SYSC_ZARCH__`] [__predef_detection__]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_ARCH_Z MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__SYSC_ZARCH__) | ||||
| #   undef MSGPACK_ARCH_Z | ||||
| #   define MSGPACK_ARCH_Z MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #if MSGPACK_ARCH_Z | ||||
| #   define MSGPACK_ARCH_Z_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_ARCH_Z_NAME "z/Architecture" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_Z,MSGPACK_ARCH_Z_NAME) | ||||
| @@ -1,44 +0,0 @@ | ||||
| /* | ||||
| 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) | ||||
| */ | ||||
|  | ||||
| #if !defined(MSGPACK_PREDEF_COMPILER_H) || defined(MSGPACK_PREDEF_INTERNAL_GENERATE_TESTS) | ||||
| #ifndef MSGPACK_PREDEF_COMPILER_H | ||||
| #define MSGPACK_PREDEF_COMPILER_H | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/compiler/borland.h> | ||||
| #include <msgpack/predef/compiler/clang.h> | ||||
| #include <msgpack/predef/compiler/comeau.h> | ||||
| #include <msgpack/predef/compiler/compaq.h> | ||||
| #include <msgpack/predef/compiler/diab.h> | ||||
| #include <msgpack/predef/compiler/digitalmars.h> | ||||
| #include <msgpack/predef/compiler/dignus.h> | ||||
| #include <msgpack/predef/compiler/edg.h> | ||||
| #include <msgpack/predef/compiler/ekopath.h> | ||||
| #include <msgpack/predef/compiler/gcc_xml.h> | ||||
| #include <msgpack/predef/compiler/gcc.h> | ||||
| #include <msgpack/predef/compiler/greenhills.h> | ||||
| #include <msgpack/predef/compiler/hp_acc.h> | ||||
| #include <msgpack/predef/compiler/iar.h> | ||||
| #include <msgpack/predef/compiler/ibm.h> | ||||
| #include <msgpack/predef/compiler/intel.h> | ||||
| #include <msgpack/predef/compiler/kai.h> | ||||
| #include <msgpack/predef/compiler/llvm.h> | ||||
| #include <msgpack/predef/compiler/metaware.h> | ||||
| #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> | ||||
| #include <msgpack/predef/compiler/sunpro.h> | ||||
| #include <msgpack/predef/compiler/tendra.h> | ||||
| #include <msgpack/predef/compiler/visualc.h> | ||||
| #include <msgpack/predef/compiler/watcom.h> | ||||
|  | ||||
| #endif | ||||
| @@ -1,63 +0,0 @@ | ||||
| /* | ||||
| 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_COMPILER_BORLAND_H | ||||
| #define MSGPACK_PREDEF_COMPILER_BORLAND_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_BORLAND`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/C_plus_plus_builder Borland C++] compiler. | ||||
| Version number available as major, minor, and patch. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__BORLANDC__`] [__predef_detection__]] | ||||
|     [[`__CODEGEARC__`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__BORLANDC__`] [V.R.P]] | ||||
|     [[`__CODEGEARC__`] [V.R.P]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_COMP_BORLAND MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__BORLANDC__) || defined(__CODEGEARC__) | ||||
| #   if !defined(MSGPACK_COMP_BORLAND_DETECTION) && (defined(__CODEGEARC__)) | ||||
| #       define MSGPACK_COMP_BORLAND_DETECTION MSGPACK_PREDEF_MAKE_0X_VVRP(__CODEGEARC__) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_COMP_BORLAND_DETECTION) | ||||
| #       define MSGPACK_COMP_BORLAND_DETECTION MSGPACK_PREDEF_MAKE_0X_VVRP(__BORLANDC__) | ||||
| #   endif | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_BORLAND_DETECTION | ||||
| #   define MSGPACK_COMP_BORLAND_AVAILABLE | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_BORLAND_EMULATED MSGPACK_COMP_BORLAND_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_BORLAND | ||||
| #       define MSGPACK_COMP_BORLAND MSGPACK_COMP_BORLAND_DETECTION | ||||
| #   endif | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_BORLAND_NAME "Borland C++" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_BORLAND,MSGPACK_COMP_BORLAND_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_BORLAND_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_BORLAND_EMULATED,MSGPACK_COMP_BORLAND_NAME) | ||||
| #endif | ||||
| @@ -1,56 +0,0 @@ | ||||
| /* | ||||
| 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_COMPILER_CLANG_H | ||||
| #define MSGPACK_PREDEF_COMPILER_CLANG_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_CLANG`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/Clang Clang] compiler. | ||||
| Version number available as major, minor, and patch. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__clang__`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__clang_major__`, `__clang_minor__`, `__clang_patchlevel__`] [V.R.P]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_COMP_CLANG MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__clang__) | ||||
| #   define MSGPACK_COMP_CLANG_DETECTION MSGPACK_VERSION_NUMBER(__clang_major__,__clang_minor__,__clang_patchlevel__) | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_CLANG_DETECTION | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_CLANG_EMULATED MSGPACK_COMP_CLANG_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_CLANG | ||||
| #       define MSGPACK_COMP_CLANG MSGPACK_COMP_CLANG_DETECTION | ||||
| #   endif | ||||
| #   define MSGPACK_COMP_CLANG_AVAILABLE | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_CLANG_NAME "Clang" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_CLANG,MSGPACK_COMP_CLANG_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_CLANG_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_CLANG_EMULATED,MSGPACK_COMP_CLANG_NAME) | ||||
| #endif | ||||
| @@ -1,61 +0,0 @@ | ||||
| /* | ||||
| 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_COMPILER_COMEAU_H | ||||
| #define MSGPACK_PREDEF_COMPILER_COMEAU_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| #define MSGPACK_COMP_COMO MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_COMO`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/Comeau_C/C%2B%2B Comeau C++] compiler. | ||||
| Version number available as major, minor, and patch. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__COMO__`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__COMO_VERSION__`] [V.R.P]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #if defined(__COMO__) | ||||
| #   if !defined(MSGPACK_COMP_COMO_DETECTION) && defined(__COMO_VERSION__) | ||||
| #       define MSGPACK_COMP_COMO_DETECTION MSGPACK_PREDEF_MAKE_0X_VRP(__COMO_VERSION__) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_COMP_COMO_DETECTION) | ||||
| #       define MSGPACK_COMP_COMO_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #   endif | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_COMO_DETECTION | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_COMO_EMULATED MSGPACK_COMP_COMO_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_COMO | ||||
| #       define MSGPACK_COMP_COMO MSGPACK_COMP_COMO_DETECTION | ||||
| #   endif | ||||
| #   define MSGPACK_COMP_COMO_AVAILABLE | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_COMO_NAME "Comeau C++" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_COMO,MSGPACK_COMP_COMO_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_COMO_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_COMO_EMULATED,MSGPACK_COMP_COMO_NAME) | ||||
| #endif | ||||
| @@ -1,66 +0,0 @@ | ||||
| /* | ||||
| 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_COMPILER_COMPAQ_H | ||||
| #define MSGPACK_PREDEF_COMPILER_COMPAQ_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_DEC`] | ||||
|  | ||||
| [@http://www.openvms.compaq.com/openvms/brochures/deccplus/ Compaq C/C++] compiler. | ||||
| Version number available as major, minor, and patch. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__DECCXX`] [__predef_detection__]] | ||||
|     [[`__DECC`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__DECCXX_VER`] [V.R.P]] | ||||
|     [[`__DECC_VER`] [V.R.P]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_COMP_DEC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__DECC) || defined(__DECCXX) | ||||
| #   if !defined(MSGPACK_COMP_DEC_DETECTION) && defined(__DECCXX_VER) | ||||
| #       define MSGPACK_COMP_DEC_DETECTION MSGPACK_PREDEF_MAKE_10_VVRR0PP00(__DECCXX_VER) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_COMP_DEC_DETECTION) && defined(__DECC_VER) | ||||
| #       define MSGPACK_COMP_DEC_DETECTION MSGPACK_PREDEF_MAKE_10_VVRR0PP00(__DECC_VER) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_COMP_DEC_DETECTION) | ||||
| #       define MSGPACK_COM_DEC_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #   endif | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_DEC_DETECTION | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_DEC_EMULATED MSGPACK_COMP_DEC_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_DEC | ||||
| #       define MSGPACK_COMP_DEC MSGPACK_COMP_DEC_DETECTION | ||||
| #   endif | ||||
| #   define MSGPACK_COMP_DEC_AVAILABLE | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_DEC_NAME "Compaq C/C++" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_DEC,MSGPACK_COMP_DEC_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_DEC_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_DEC_EMULATED,MSGPACK_COMP_DEC_NAME) | ||||
| #endif | ||||
| @@ -1,56 +0,0 @@ | ||||
| /* | ||||
| 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_COMPILER_DIAB_H | ||||
| #define MSGPACK_PREDEF_COMPILER_DIAB_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_DIAB`] | ||||
|  | ||||
| [@http://www.windriver.com/products/development_suite/wind_river_compiler/ Diab C/C++] compiler. | ||||
| Version number available as major, minor, and patch. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__DCC__`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__VERSION_NUMBER__`] [V.R.P]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_COMP_DIAB MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__DCC__) | ||||
| #   define MSGPACK_COMP_DIAB_DETECTION MSGPACK_PREDEF_MAKE_10_VRPP(__VERSION_NUMBER__) | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_DIAB_DETECTION | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_DIAB_EMULATED MSGPACK_COMP_DIAB_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_DIAB | ||||
| #       define MSGPACK_COMP_DIAB MSGPACK_COMP_DIAB_DETECTION | ||||
| #   endif | ||||
| #   define MSGPACK_COMP_DIAB_AVAILABLE | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_DIAB_NAME "Diab C/C++" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_DIAB,MSGPACK_COMP_DIAB_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_DIAB_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_DIAB_EMULATED,MSGPACK_COMP_DIAB_NAME) | ||||
| #endif | ||||
| @@ -1,56 +0,0 @@ | ||||
| /* | ||||
| 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_COMPILER_DIGITALMARS_H | ||||
| #define MSGPACK_PREDEF_COMPILER_DIGITALMARS_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_DMC`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/Digital_Mars Digital Mars] compiler. | ||||
| Version number available as major, minor, and patch. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__DMC__`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__DMC__`] [V.R.P]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_COMP_DMC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__DMC__) | ||||
| #   define MSGPACK_COMP_DMC_DETECTION MSGPACK_PREDEF_MAKE_0X_VRP(__DMC__) | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_DMC_DETECTION | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_DMC_EMULATED MSGPACK_COMP_DMC_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_DMC | ||||
| #       define MSGPACK_COMP_DMC MSGPACK_COMP_DMC_DETECTION | ||||
| #   endif | ||||
| #   define MSGPACK_COMP_DMC_AVAILABLE | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_DMC_NAME "Digital Mars" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_DMC,MSGPACK_COMP_DMC_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_DMC_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_DMC_EMULATED,MSGPACK_COMP_DMC_NAME) | ||||
| #endif | ||||
| @@ -1,56 +0,0 @@ | ||||
| /* | ||||
| 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_COMPILER_DIGNUS_H | ||||
| #define MSGPACK_PREDEF_COMPILER_DIGNUS_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_SYSC`] | ||||
|  | ||||
| [@http://www.dignus.com/dcxx/ Dignus Systems/C++] compiler. | ||||
| Version number available as major, minor, and patch. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__SYSC__`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__SYSC_VER__`] [V.R.P]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_COMP_SYSC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__SYSC__) | ||||
| #   define MSGPACK_COMP_SYSC_DETECTION MSGPACK_PREDEF_MAKE_10_VRRPP(__SYSC_VER__) | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_SYSC_DETECTION | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_SYSC_EMULATED MSGPACK_COMP_SYSC_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_SYSC | ||||
| #       define MSGPACK_COMP_SYSC MSGPACK_COMP_SYSC_DETECTION | ||||
| #   endif | ||||
| #   define MSGPACK_COMP_SYSC_AVAILABLE | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_SYSC_NAME "Dignus Systems/C++" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_SYSC,MSGPACK_COMP_SYSC_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_SYSC_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_SYSC_EMULATED,MSGPACK_COMP_SYSC_NAME) | ||||
| #endif | ||||
| @@ -1,56 +0,0 @@ | ||||
| /* | ||||
| 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_COMPILER_EDG_H | ||||
| #define MSGPACK_PREDEF_COMPILER_EDG_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_EDG`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/Edison_Design_Group EDG C++ Frontend] compiler. | ||||
| Version number available as major, minor, and patch. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__EDG__`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__EDG_VERSION__`] [V.R.0]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_COMP_EDG MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__EDG__) | ||||
| #   define MSGPACK_COMP_EDG_DETECTION MSGPACK_PREDEF_MAKE_10_VRR(__EDG_VERSION__) | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_EDG_DETECTION | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_EDG_EMULATED MSGPACK_COMP_EDG_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_EDG | ||||
| #       define MSGPACK_COMP_EDG MSGPACK_COMP_EDG_DETECTION | ||||
| #   endif | ||||
| #   define MSGPACK_COMP_EDG_AVAILABLE | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_EDG_NAME "EDG C++ Frontend" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_EDG,MSGPACK_COMP_EDG_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_EDG_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_EDG_EMULATED,MSGPACK_COMP_EDG_NAME) | ||||
| #endif | ||||
| @@ -1,57 +0,0 @@ | ||||
| /* | ||||
| 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_COMPILER_EKOPATH_H | ||||
| #define MSGPACK_PREDEF_COMPILER_EKOPATH_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_PATH`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/PathScale EKOpath] compiler. | ||||
| Version number available as major, minor, and patch. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__PATHCC__`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__PATHCC__`, `__PATHCC_MINOR__`, `__PATHCC_PATCHLEVEL__`] [V.R.P]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_COMP_PATH MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__PATHCC__) | ||||
| #   define MSGPACK_COMP_PATH_DETECTION \ | ||||
|         MSGPACK_VERSION_NUMBER(__PATHCC__,__PATHCC_MINOR__,__PATHCC_PATCHLEVEL__) | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_PATH_DETECTION | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_PATH_EMULATED MSGPACK_COMP_PATH_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_PATH | ||||
| #       define MSGPACK_COMP_PATH MSGPACK_COMP_PATH_DETECTION | ||||
| #   endif | ||||
| #   define MSGPACK_COMP_PATH_AVAILABLE | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_PATH_NAME "EKOpath" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_PATH,MSGPACK_COMP_PATH_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_PATH_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_PATH_EMULATED,MSGPACK_COMP_PATH_NAME) | ||||
| #endif | ||||
| @@ -1,68 +0,0 @@ | ||||
| /* | ||||
| 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_COMPILER_GCC_H | ||||
| #define MSGPACK_PREDEF_COMPILER_GCC_H | ||||
|  | ||||
| /* Other compilers that emulate this one need to be detected first. */ | ||||
|  | ||||
| #include <msgpack/predef/compiler/clang.h> | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_GNUC`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/GNU_Compiler_Collection Gnu GCC C/C++] compiler. | ||||
| Version number available as major, minor, and patch (if available). | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__GNUC__`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__GNUC__`, `__GNUC_MINOR__`, `__GNUC_PATCHLEVEL__`] [V.R.P]] | ||||
|     [[`__GNUC__`, `__GNUC_MINOR__`] [V.R.0]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_COMP_GNUC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__GNUC__) | ||||
| #   if !defined(MSGPACK_COMP_GNUC_DETECTION) && defined(__GNUC_PATCHLEVEL__) | ||||
| #       define MSGPACK_COMP_GNUC_DETECTION \ | ||||
|             MSGPACK_VERSION_NUMBER(__GNUC__,__GNUC_MINOR__,__GNUC_PATCHLEVEL__) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_COMP_GNUC_DETECTION) | ||||
| #       define MSGPACK_COMP_GNUC_DETECTION \ | ||||
|             MSGPACK_VERSION_NUMBER(__GNUC__,__GNUC_MINOR__,0) | ||||
| #   endif | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_GNUC_DETECTION | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_GNUC_EMULATED MSGPACK_COMP_GNUC_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_GNUC | ||||
| #       define MSGPACK_COMP_GNUC MSGPACK_COMP_GNUC_DETECTION | ||||
| #   endif | ||||
| #   define MSGPACK_COMP_GNUC_AVAILABLE | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_GNUC_NAME "Gnu GCC C/C++" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_GNUC,MSGPACK_COMP_GNUC_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_GNUC_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_GNUC_EMULATED,MSGPACK_COMP_GNUC_NAME) | ||||
| #endif | ||||
| @@ -1,53 +0,0 @@ | ||||
| /* | ||||
| 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_COMPILER_GCC_XML_H | ||||
| #define MSGPACK_PREDEF_COMPILER_GCC_XML_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_GCCXML`] | ||||
|  | ||||
| [@http://www.gccxml.org/ GCC XML] compiler. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__GCCXML__`] [__predef_detection__]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_COMP_GCCXML MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__GCCXML__) | ||||
| #   define MSGPACK_COMP_GCCXML_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_GCCXML_DETECTION | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_GCCXML_EMULATED MSGPACK_COMP_GCCXML_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_GCCXML | ||||
| #       define MSGPACK_COMP_GCCXML MSGPACK_COMP_GCCXML_DETECTION | ||||
| #   endif | ||||
| #   define MSGPACK_COMP_GCCXML_AVAILABLE | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_GCCXML_NAME "GCC XML" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_GCCXML,MSGPACK_COMP_GCCXML_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_GCCXML_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_GCCXML_EMULATED,MSGPACK_COMP_GCCXML_NAME) | ||||
| #endif | ||||
| @@ -1,66 +0,0 @@ | ||||
| /* | ||||
| 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_COMPILER_GREENHILLS_H | ||||
| #define MSGPACK_PREDEF_COMPILER_GREENHILLS_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_GHS`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/Green_Hills_Software Green Hills C/C++] compiler. | ||||
| Version number available as major, minor, and patch. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__ghs`] [__predef_detection__]] | ||||
|     [[`__ghs__`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__GHS_VERSION_NUMBER__`] [V.R.P]] | ||||
|     [[`__ghs`] [V.R.P]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_COMP_GHS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__ghs) || defined(__ghs__) | ||||
| #   if !defined(MSGPACK_COMP_GHS_DETECTION) && defined(__GHS_VERSION_NUMBER__) | ||||
| #       define MSGPACK_COMP_GHS_DETECTION MSGPACK_PREDEF_MAKE_10_VRP(__GHS_VERSION_NUMBER__) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_COMP_GHS_DETECTION) && defined(__ghs) | ||||
| #       define MSGPACK_COMP_GHS_DETECTION MSGPACK_PREDEF_MAKE_10_VRP(__ghs) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_COMP_GHS_DETECTION) | ||||
| #       define MSGPACK_COMP_GHS_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #   endif | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_GHS_DETECTION | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_GHS_EMULATED MSGPACK_COMP_GHS_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_GHS | ||||
| #       define MSGPACK_COMP_GHS MSGPACK_COMP_GHS_DETECTION | ||||
| #   endif | ||||
| #   define MSGPACK_COMP_GHS_AVAILABLE | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_GHS_NAME "Green Hills C/C++" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_GHS,MSGPACK_COMP_GHS_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_GHS_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_GHS_EMULATED,MSGPACK_COMP_GHS_NAME) | ||||
| #endif | ||||
| @@ -1,61 +0,0 @@ | ||||
| /* | ||||
| 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_COMPILER_HP_ACC_H | ||||
| #define MSGPACK_PREDEF_COMPILER_HP_ACC_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_HPACC`] | ||||
|  | ||||
| HP aC++ compiler. | ||||
| Version number available as major, minor, and patch. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__HP_aCC`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__HP_aCC`] [V.R.P]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_COMP_HPACC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__HP_aCC) | ||||
| #   if !defined(MSGPACK_COMP_HPACC_DETECTION) && (__HP_aCC > 1) | ||||
| #       define MSGPACK_COMP_HPACC_DETECTION MSGPACK_PREDEF_MAKE_10_VVRRPP(__HP_aCC) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_COMP_HPACC_DETECTION) | ||||
| #       define MSGPACK_COMP_HPACC_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #   endif | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_HPACC_DETECTION | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_HPACC_EMULATED MSGPACK_COMP_HPACC_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_HPACC | ||||
| #       define MSGPACK_COMP_HPACC MSGPACK_COMP_HPACC_DETECTION | ||||
| #   endif | ||||
| #   define MSGPACK_COMP_HPACC_AVAILABLE | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_HPACC_NAME "HP aC++" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_HPACC,MSGPACK_COMP_HPACC_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_HPACC_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_HPACC_EMULATED,MSGPACK_COMP_HPACC_NAME) | ||||
| #endif | ||||
| @@ -1,56 +0,0 @@ | ||||
| /* | ||||
| 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_COMPILER_IAR_H | ||||
| #define MSGPACK_PREDEF_COMPILER_IAR_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_IAR`] | ||||
|  | ||||
| IAR C/C++ compiler. | ||||
| Version number available as major, minor, and patch. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__IAR_SYSTEMS_ICC__`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__VER__`] [V.R.P]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_COMP_IAR MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__IAR_SYSTEMS_ICC__) | ||||
| #   define MSGPACK_COMP_IAR_DETECTION MSGPACK_PREDEF_MAKE_10_VVRR(__VER__) | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_IAR_DETECTION | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_IAR_EMULATED MSGPACK_COMP_IAR_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_IAR | ||||
| #       define MSGPACK_COMP_IAR MSGPACK_COMP_IAR_DETECTION | ||||
| #   endif | ||||
| #   define MSGPACK_COMP_IAR_AVAILABLE | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_IAR_NAME "IAR C/C++" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_IAR,MSGPACK_COMP_IAR_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_IAR_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_IAR_EMULATED,MSGPACK_COMP_IAR_NAME) | ||||
| #endif | ||||
| @@ -1,72 +0,0 @@ | ||||
| /* | ||||
| 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_COMPILER_IBM_H | ||||
| #define MSGPACK_PREDEF_COMPILER_IBM_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_IBM`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/VisualAge IBM XL C/C++] compiler. | ||||
| Version number available as major, minor, and patch. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__IBMCPP__`] [__predef_detection__]] | ||||
|     [[`__xlC__`] [__predef_detection__]] | ||||
|     [[`__xlc__`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__COMPILER_VER__`] [V.R.P]] | ||||
|     [[`__xlC__`] [V.R.P]] | ||||
|     [[`__xlc__`] [V.R.P]] | ||||
|     [[`__IBMCPP__`] [V.R.P]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_COMP_IBM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__IBMCPP__) || defined(__xlC__) || defined(__xlc__) | ||||
| #   if !defined(MSGPACK_COMP_IBM_DETECTION) && defined(__COMPILER_VER__) | ||||
| #       define MSGPACK_COMP_IBM_DETECTION MSGPACK_PREDEF_MAKE_0X_VRRPPPP(__COMPILER_VER__) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_COMP_IBM_DETECTION) && defined(__xlC__) | ||||
| #       define MSGPACK_COMP_IBM_DETECTION MSGPACK_PREDEF_MAKE_0X_VVRR(__xlC__) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_COMP_IBM_DETECTION) && defined(__xlc__) | ||||
| #       define MSGPACK_COMP_IBM_DETECTION MSGPACK_PREDEF_MAKE_0X_VVRR(__xlc__) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_COMP_IBM_DETECTION) | ||||
| #       define MSGPACK_COMP_IBM_DETECTION MSGPACK_PREDEF_MAKE_10_VRP(__IBMCPP__) | ||||
| #   endif | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_IBM_DETECTION | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_IBM_EMULATED MSGPACK_COMP_IBM_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_IBM | ||||
| #       define MSGPACK_COMP_IBM MSGPACK_COMP_IBM_DETECTION | ||||
| #   endif | ||||
| #   define MSGPACK_COMP_IBM_AVAILABLE | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_IBM_NAME "IBM XL C/C++" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_IBM,MSGPACK_COMP_IBM_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_IBM_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_IBM_EMULATED,MSGPACK_COMP_IBM_NAME) | ||||
| #endif | ||||
| @@ -1,79 +0,0 @@ | ||||
| /* | ||||
| 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) | ||||
| */ | ||||
|  | ||||
| #ifndef MSGPACK_PREDEF_COMPILER_INTEL_H | ||||
| #define MSGPACK_PREDEF_COMPILER_INTEL_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_INTEL`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/Intel_C%2B%2B Intel C/C++] compiler. | ||||
| Version number available as major, minor, and patch. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__INTEL_COMPILER`] [__predef_detection__]] | ||||
|     [[`__ICL`] [__predef_detection__]] | ||||
|     [[`__ICC`] [__predef_detection__]] | ||||
|     [[`__ECC`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__INTEL_COMPILER`] [V.R]] | ||||
|     [[`__INTEL_COMPILER` and `__INTEL_COMPILER_UPDATE`] [V.R.P]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_COMP_INTEL MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #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_VVRR(__INTEL_COMPILER) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_COMP_INTEL_DETECTION) | ||||
| #       define MSGPACK_COMP_INTEL_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #   endif | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_INTEL_DETECTION | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_INTEL_EMULATED MSGPACK_COMP_INTEL_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_INTEL | ||||
| #       define MSGPACK_COMP_INTEL MSGPACK_COMP_INTEL_DETECTION | ||||
| #   endif | ||||
| #   define MSGPACK_COMP_INTEL_AVAILABLE | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_INTEL_NAME "Intel C/C++" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_INTEL,MSGPACK_COMP_INTEL_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_INTEL_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_INTEL_EMULATED,MSGPACK_COMP_INTEL_NAME) | ||||
| #endif | ||||
| @@ -1,56 +0,0 @@ | ||||
| /* | ||||
| 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_COMPILER_KAI_H | ||||
| #define MSGPACK_PREDEF_COMPILER_KAI_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_KCC`] | ||||
|  | ||||
| Kai C++ compiler. | ||||
| Version number available as major, minor, and patch. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__KCC`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__KCC_VERSION`] [V.R.P]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_COMP_KCC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__KCC) | ||||
| #   define MSGPACK_COMP_KCC_DETECTION MSGPACK_PREDEF_MAKE_0X_VRPP(__KCC_VERSION) | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_KCC_DETECTION | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_KCC_EMULATED MSGPACK_COMP_KCC_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_KCC | ||||
| #       define MSGPACK_COMP_KCC MSGPACK_COMP_KCC_DETECTION | ||||
| #   endif | ||||
| #   define MSGPACK_COMP_KCC_AVAILABLE | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_KCC_NAME "Kai C++" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_KCC,MSGPACK_COMP_KCC_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_KCC_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_KCC_EMULATED,MSGPACK_COMP_KCC_NAME) | ||||
| #endif | ||||
| @@ -1,57 +0,0 @@ | ||||
| /* | ||||
| 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_COMPILER_LLVM_H | ||||
| #define MSGPACK_PREDEF_COMPILER_LLVM_H | ||||
|  | ||||
| /* Other compilers that emulate this one need to be detected first. */ | ||||
|  | ||||
| #include <msgpack/predef/compiler/clang.h> | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_LLVM`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/LLVM LLVM] compiler. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__llvm__`] [__predef_detection__]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_COMP_LLVM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__llvm__) | ||||
| #   define MSGPACK_COMP_LLVM_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_LLVM_DETECTION | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_LLVM_EMULATED MSGPACK_COMP_LLVM_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_LLVM | ||||
| #       define MSGPACK_COMP_LLVM MSGPACK_COMP_LLVM_DETECTION | ||||
| #   endif | ||||
| #   define MSGPACK_COMP_LLVM_AVAILABLE | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_LLVM_NAME "LLVM" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_LLVM,MSGPACK_COMP_LLVM_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_LLVM_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_LLVM_EMULATED,MSGPACK_COMP_LLVM_NAME) | ||||
| #endif | ||||
| @@ -1,53 +0,0 @@ | ||||
| /* | ||||
| 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_COMPILER_METAWARE_H | ||||
| #define MSGPACK_PREDEF_COMPILER_METAWARE_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_HIGHC`] | ||||
|  | ||||
| MetaWare High C/C++ compiler. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__HIGHC__`] [__predef_detection__]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_COMP_HIGHC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__HIGHC__) | ||||
| #   define MSGPACK_COMP_HIGHC_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_HIGHC_DETECTION | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_HIGHC_EMULATED MSGPACK_COMP_HIGHC_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_HIGHC | ||||
| #       define MSGPACK_COMP_HIGHC MSGPACK_COMP_HIGHC_DETECTION | ||||
| #   endif | ||||
| #   define MSGPACK_COMP_HIGHC_AVAILABLE | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_HIGHC_NAME "MetaWare High C/C++" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_HIGHC,MSGPACK_COMP_HIGHC_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_HIGHC_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_HIGHC_EMULATED,MSGPACK_COMP_HIGHC_NAME) | ||||
| #endif | ||||
| @@ -1,77 +0,0 @@ | ||||
| /* | ||||
| 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_COMPILER_METROWERKS_H | ||||
| #define MSGPACK_PREDEF_COMPILER_METROWERKS_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_MWERKS`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/CodeWarrior Metrowerks CodeWarrior] compiler. | ||||
| Version number available as major, minor, and patch. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__MWERKS__`] [__predef_detection__]] | ||||
|     [[`__CWCC__`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__CWCC__`] [V.R.P]] | ||||
|     [[`__MWERKS__`] [V.R.P >= 4.2.0]] | ||||
|     [[`__MWERKS__`] [9.R.0]] | ||||
|     [[`__MWERKS__`] [8.R.0]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_COMP_MWERKS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__MWERKS__) || defined(__CWCC__) | ||||
| #   if !defined(MSGPACK_COMP_MWERKS_DETECTION) && defined(__CWCC__) | ||||
| #       define MSGPACK_COMP_MWERKS_DETECTION MSGPACK_PREDEF_MAKE_0X_VRPP(__CWCC__) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_COMP_MWERKS_DETECTION) && (__MWERKS__ >= 0x4200) | ||||
| #       define MSGPACK_COMP_MWERKS_DETECTION MSGPACK_PREDEF_MAKE_0X_VRPP(__MWERKS__) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_COMP_MWERKS_DETECTION) && (__MWERKS__ >= 0x3204) // note the "skip": 04->9.3 | ||||
| #       define MSGPACK_COMP_MWERKS_DETECTION MSGPACK_VERSION_NUMBER(9,(__MWERKS__)%100-1,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_COMP_MWERKS_DETECTION) && (__MWERKS__ >= 0x3200) | ||||
| #       define MSGPACK_COMP_MWERKS_DETECTION MSGPACK_VERSION_NUMBER(9,(__MWERKS__)%100,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_COMP_MWERKS_DETECTION) && (__MWERKS__ >= 0x3000) | ||||
| #       define MSGPACK_COMP_MWERKS_DETECTION MSGPACK_VERSION_NUMBER(8,(__MWERKS__)%100,0) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_COMP_MWERKS_DETECTION) | ||||
| #       define MSGPACK_COMP_MWERKS_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #   endif | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_MWERKS_DETECTION | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_MWERKS_EMULATED MSGPACK_COMP_MWERKS_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_MWERKS | ||||
| #       define MSGPACK_COMP_MWERKS MSGPACK_COMP_MWERKS_DETECTION | ||||
| #   endif | ||||
| #   define MSGPACK_COMP_MWERKS_AVAILABLE | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_MWERKS_NAME "Metrowerks CodeWarrior" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MWERKS,MSGPACK_COMP_MWERKS_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_MWERKS_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MWERKS_EMULATED,MSGPACK_COMP_MWERKS_NAME) | ||||
| #endif | ||||
| @@ -1,53 +0,0 @@ | ||||
| /* | ||||
| 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_COMPILER_MICROTEC_H | ||||
| #define MSGPACK_PREDEF_COMPILER_MICROTEC_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_MRI`] | ||||
|  | ||||
| [@http://www.mentor.com/microtec/ Microtec C/C++] compiler. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`_MRI`] [__predef_detection__]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_COMP_MRI MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(_MRI) | ||||
| #   define MSGPACK_COMP_MRI_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_MRI_DETECTION | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_MRI_EMULATED MSGPACK_COMP_MRI_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_MRI | ||||
| #       define MSGPACK_COMP_MRI MSGPACK_COMP_MRI_DETECTION | ||||
| #   endif | ||||
| #   define MSGPACK_COMP_MRI_AVAILABLE | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_MRI_NAME "Microtec C/C++" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MRI,MSGPACK_COMP_MRI_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_MRI_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MRI_EMULATED,MSGPACK_COMP_MRI_NAME) | ||||
| #endif | ||||
| @@ -1,63 +0,0 @@ | ||||
| /* | ||||
| 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_COMPILER_MPW_H | ||||
| #define MSGPACK_PREDEF_COMPILER_MPW_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_MPW`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/Macintosh_Programmer%27s_Workshop MPW C++] compiler. | ||||
| Version number available as major, and minor. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__MRC__`] [__predef_detection__]] | ||||
|     [[`MPW_C`] [__predef_detection__]] | ||||
|     [[`MPW_CPLUS`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__MRC__`] [V.R.0]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_COMP_MPW MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__MRC__) || defined(MPW_C) || defined(MPW_CPLUS) | ||||
| #   if !defined(MSGPACK_COMP_MPW_DETECTION) && defined(__MRC__) | ||||
| #       define MSGPACK_COMP_MPW_DETECTION MSGPACK_PREDEF_MAKE_0X_VVRR(__MRC__) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_COMP_MPW_DETECTION) | ||||
| #       define MSGPACK_COMP_MPW_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #   endif | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_MPW_DETECTION | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_MPW_EMULATED MSGPACK_COMP_MPW_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_MPW | ||||
| #       define MSGPACK_COMP_MPW MSGPACK_COMP_MPW_DETECTION | ||||
| #   endif | ||||
| #   define MSGPACK_COMP_MPW_AVAILABLE | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_MPW_NAME "MPW C++" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MPW,MSGPACK_COMP_MPW_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_MPW_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MPW_EMULATED,MSGPACK_COMP_MPW_NAME) | ||||
| #endif | ||||
| @@ -1,60 +0,0 @@ | ||||
| /* | ||||
| 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 | ||||
| @@ -1,56 +0,0 @@ | ||||
| /* | ||||
| 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_COMPILER_PALM_H | ||||
| #define MSGPACK_PREDEF_COMPILER_PALM_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_PALM`] | ||||
|  | ||||
| Palm C/C++ compiler. | ||||
| Version number available as major, minor, and patch. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`_PACC_VER`] [__predef_detection__]] | ||||
|  | ||||
|     [[`_PACC_VER`] [V.R.P]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_COMP_PALM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(_PACC_VER) | ||||
| #   define MSGPACK_COMP_PALM_DETECTION MSGPACK_PREDEF_MAKE_0X_VRRPP000(_PACC_VER) | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_PALM_DETECTION | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_PALM_EMULATED MSGPACK_COMP_PALM_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_PALM | ||||
| #       define MSGPACK_COMP_PALM MSGPACK_COMP_PALM_DETECTION | ||||
| #   endif | ||||
| #   define MSGPACK_COMP_PALM_AVAILABLE | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_PALM_NAME "Palm C/C++" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_PALM,MSGPACK_COMP_PALM_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_PALM_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_PALM_EMULATED,MSGPACK_COMP_PALM_NAME) | ||||
| #endif | ||||
| @@ -1,60 +0,0 @@ | ||||
| /* | ||||
| 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_COMPILER_PGI_H | ||||
| #define MSGPACK_PREDEF_COMPILER_PGI_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_PGI`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/The_Portland_Group Portland Group C/C++] compiler. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__PGI`] [__predef_detection__]] | ||||
|  | ||||
|     [[`__PGIC__`, `__PGIC_MINOR__`, `__PGIC_PATCHLEVEL__`] [V.R.P]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_COMP_PGI MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__PGI) | ||||
| #   if !defined(MSGPACK_COMP_PGI_DETECTION) && (defined(__PGIC__) && defined(__PGIC_MINOR__) && defined(__PGIC_PATCHLEVEL__)) | ||||
| #       define MSGPACK_COMP_PGI_DETECTION MSGPACK_VERSION_NUMBER(__PGIC__,__PGIC_MINOR__,__PGIC_PATCHLEVEL__) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_COMP_PGI_DETECTION) | ||||
| #       define MSGPACK_COMP_PGI_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #   endif | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_PGI_DETECTION | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_PGI_EMULATED MSGPACK_COMP_PGI_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_PGI | ||||
| #       define MSGPACK_COMP_PGI MSGPACK_COMP_PGI_DETECTION | ||||
| #   endif | ||||
| #   define MSGPACK_COMP_PGI_AVAILABLE | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_PGI_NAME "Portland Group C/C++" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_PGI,MSGPACK_COMP_PGI_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_PGI_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_PGI_EMULATED,MSGPACK_COMP_PGI_NAME) | ||||
| #endif | ||||
| @@ -1,66 +0,0 @@ | ||||
| /* | ||||
| 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_COMPILER_SGI_MIPSPRO_H | ||||
| #define MSGPACK_PREDEF_COMPILER_SGI_MIPSPRO_H | ||||
|  | ||||
| #include <msgpack/predef/version_number.h> | ||||
| #include <msgpack/predef/make.h> | ||||
|  | ||||
| /*` | ||||
| [heading `MSGPACK_COMP_SGI`] | ||||
|  | ||||
| [@http://en.wikipedia.org/wiki/MIPSpro SGI MIPSpro] compiler. | ||||
| Version number available as major, minor, and patch. | ||||
|  | ||||
| [table | ||||
|     [[__predef_symbol__] [__predef_version__]] | ||||
|  | ||||
|     [[`__sgi`] [__predef_detection__]] | ||||
|     [[`sgi`] [__predef_detection__]] | ||||
|  | ||||
|     [[`_SGI_COMPILER_VERSION`] [V.R.P]] | ||||
|     [[`_COMPILER_VERSION`] [V.R.P]] | ||||
|     ] | ||||
|  */ | ||||
|  | ||||
| #define MSGPACK_COMP_SGI MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if defined(__sgi) || defined(sgi) | ||||
| #   if !defined(MSGPACK_COMP_SGI_DETECTION) && defined(_SGI_COMPILER_VERSION) | ||||
| #       define MSGPACK_COMP_SGI_DETECTION MSGPACK_PREDEF_MAKE_10_VRP(_SGI_COMPILER_VERSION) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_COMP_SGI_DETECTION) && defined(_COMPILER_VERSION) | ||||
| #       define MSGPACK_COMP_SGI_DETECTION MSGPACK_PREDEF_MAKE_10_VRP(_COMPILER_VERSION) | ||||
| #   endif | ||||
| #   if !defined(MSGPACK_COMP_SGI_DETECTION) | ||||
| #       define MSGPACK_COMP_SGI_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
| #   endif | ||||
| #endif | ||||
|  | ||||
| #ifdef MSGPACK_COMP_SGI_DETECTION | ||||
| #   if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) | ||||
| #       define MSGPACK_COMP_SGI_EMULATED MSGPACK_COMP_SGI_DETECTION | ||||
| #   else | ||||
| #       undef MSGPACK_COMP_SGI | ||||
| #       define MSGPACK_COMP_SGI MSGPACK_COMP_SGI_DETECTION | ||||
| #   endif | ||||
| #   define MSGPACK_COMP_SGI_AVAILABLE | ||||
| #   include <msgpack/predef/detail/comp_detected.h> | ||||
| #endif | ||||
|  | ||||
| #define MSGPACK_COMP_SGI_NAME "SGI MIPSpro" | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_SGI,MSGPACK_COMP_SGI_NAME) | ||||
|  | ||||
| #ifdef MSGPACK_COMP_SGI_EMULATED | ||||
| #include <msgpack/predef/detail/test.h> | ||||
| MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_SGI_EMULATED,MSGPACK_COMP_SGI_NAME) | ||||
| #endif | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user