From 9122a78a46fe2f08ff520d075806e918eda7cfa5 Mon Sep 17 00:00:00 2001 From: Andrii Senkovych Date: Wed, 11 Feb 2015 12:50:36 +0200 Subject: [PATCH 01/12] Add new unittests. Refs #240. --- test/unittest/CMakeLists.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test/unittest/CMakeLists.txt b/test/unittest/CMakeLists.txt index 66cf0c6..fb98d14 100644 --- a/test/unittest/CMakeLists.txt +++ b/test/unittest/CMakeLists.txt @@ -1,12 +1,15 @@ set(UNITTEST_SOURCES + bigintegertest.cpp documenttest.cpp encodedstreamtest.cpp encodingstest.cpp filestreamtest.cpp jsoncheckertest.cpp + namespacetest.cpp readertest.cpp + stringbuffertest.cpp + strtodtest.cpp unittest.cpp - unittest.h valuetest.cpp writertest.cpp) From 3ae2a29986c56cdb4dc50b1b903b72aeb433bb97 Mon Sep 17 00:00:00 2001 From: Andrii Senkovych Date: Wed, 11 Feb 2015 14:10:09 +0200 Subject: [PATCH 02/12] Backport compiler options from premake configuration. Refs #240. --- CMakeLists.txt | 9 +++++++-- example/CMakeLists.txt | 8 ++++++++ test/unittest/CMakeLists.txt | 8 ++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b30625f..9ae444c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,6 +23,13 @@ if(RAPIDJSON_HAS_STDSTRING) add_definitions(-DRAPIDJSON_HAS_STDSTRING) endif() +if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -Wall -Wextra") +elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -Wall -Wextra") +elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") + add_definitions(_CRT_SECURE_NO_WARNINGS) +endif() #add extra search paths for libraries and includes SET(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "The directory the headers are installed in") @@ -36,9 +43,7 @@ ELSEIF(WIN32) ENDIF() SET(CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" CACHE PATH "The directory cmake fiels are installed in") - include_directories(${CMAKE_SOURCE_DIR}/include) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${RAPIDJSON_CXX_FLAGS}") if(RAPIDJSON_BUILD_DOC) add_subdirectory(doc) diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index ae49834..2856e6b 100644 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -14,6 +14,14 @@ set(EXAMPLES simplewriter tutorial) +if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wall -Wextra -Weffc++ -Wswitch-default") +elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wall -Wextra -Weffc++ -Wswitch-default") +elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") + add_definitions(_CRT_SECURE_NO_WARNINGS) +endif() + foreach (example ${EXAMPLES}) add_executable(${example} ${example}/${example}.cpp) endforeach() diff --git a/test/unittest/CMakeLists.txt b/test/unittest/CMakeLists.txt index fb98d14..3e9752d 100644 --- a/test/unittest/CMakeLists.txt +++ b/test/unittest/CMakeLists.txt @@ -13,6 +13,14 @@ set(UNITTEST_SOURCES valuetest.cpp writertest.cpp) +if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Weffc++ -Wswitch-default") +elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Weffc++ -Wswitch-default") +elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") + add_definitions(_CRT_SECURE_NO_WARNINGS) +endif() + add_library(namespacetest STATIC namespacetest.cpp) add_executable(unittest ${UNITTEST_SOURCES}) From aa0fdd3b0dbe9929d186a7c5b562bb93d1630e84 Mon Sep 17 00:00:00 2001 From: Andrii Senkovych Date: Wed, 11 Feb 2015 17:18:27 +0200 Subject: [PATCH 03/12] Cleaning up gitignore. Refs #240. --- .gitignore | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index e4478e0..95acb0c 100644 --- a/.gitignore +++ b/.gitignore @@ -2,10 +2,10 @@ !/bin/data !/bin/encodings !/bin/jsonchecker +/build /doc/html /doc/doxygen_*.db -/thirdparty/lib -/intermediate +*.a # Temporary files created during CMake build CMakeCache.txt @@ -20,4 +20,3 @@ Testing install_manifest.txt Doxyfile DartConfiguration.tcl -/build/* \ No newline at end of file From 553dc0a8b09e883e2fe6dd6faa2fa341e021f056 Mon Sep 17 00:00:00 2001 From: Andrii Senkovych Date: Thu, 19 Feb 2015 18:09:14 +0200 Subject: [PATCH 04/12] Add a workaround for valgrind bug. Refs: #171, #240 --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index cbc5c0f..aa65e16 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,6 +21,7 @@ before_install: install: true before_script: + - sed -i 's/march=native/msse4.2/' CMakeLists.txt - mkdir build - > (cd build && cmake From 122170b362e98aaec401764cd89000a628ff3d50 Mon Sep 17 00:00:00 2001 From: Andrii Senkovych Date: Thu, 19 Feb 2015 22:41:31 +0200 Subject: [PATCH 05/12] Fix definitions for VS compiler --- CMakeLists.txt | 2 +- example/CMakeLists.txt | 2 +- test/unittest/CMakeLists.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9ae444c..4cde7e2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,7 +28,7 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -Wall -Wextra") elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") - add_definitions(_CRT_SECURE_NO_WARNINGS) + add_definitions(-D_CRT_SECURE_NO_WARNINGS=1) endif() #add extra search paths for libraries and includes diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index 2856e6b..6463212 100644 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -19,7 +19,7 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wall -Wextra -Weffc++ -Wswitch-default") elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") - add_definitions(_CRT_SECURE_NO_WARNINGS) + add_definitions(-D_CRT_SECURE_NO_WARNINGS=1) endif() foreach (example ${EXAMPLES}) diff --git a/test/unittest/CMakeLists.txt b/test/unittest/CMakeLists.txt index 3e9752d..5e4a3e9 100644 --- a/test/unittest/CMakeLists.txt +++ b/test/unittest/CMakeLists.txt @@ -18,7 +18,7 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Weffc++ -Wswitch-default") elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") - add_definitions(_CRT_SECURE_NO_WARNINGS) + add_definitions(-D_CRT_SECURE_NO_WARNINGS=1) endif() add_library(namespacetest STATIC namespacetest.cpp) From 242b393aae8bf74ca05acc8f7d94e0c53f9e71a3 Mon Sep 17 00:00:00 2001 From: "Philipp A. Hartmann" Date: Tue, 10 Mar 2015 20:25:04 +0100 Subject: [PATCH 06/12] .travis.yml: cleanup ARCH configuration --- .travis.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index aa65e16..fcba9da 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,11 +6,13 @@ compiler: env: matrix: - - CONF=debug ARCH=x86_64 ARCH_FLAGS="" - - CONF=release ARCH=x86_64 ARCH_FLAGS="" - - CONF=debug ARCH=x86 ARCH_FLAGS="-m32" - - CONF=release ARCH=x86 ARCH_FLAGS="-m32" + - CONF=debug ARCH=x86_64 + - CONF=release ARCH=x86_64 + - CONF=debug ARCH=x86 + - CONF=release ARCH=x86 global: + - ARCH_FLAGS_x86='-m32' + - ARCH_FLAGS_x86_64='' - GITHUB_REPO='miloyip/rapidjson' - secure: "HrsaCb+N66EG1HR+LWH1u51SjaJyRwJEDzqJGYMB7LJ/bfqb9mWKF1fLvZGk46W5t7TVaXRDD5KHFx9DPWvKn4gRUVkwTHEy262ah5ORh8M6n/6VVVajeV/AYt2C0sswdkDBDO4Xq+xy5gdw3G8s1A4Inbm73pUh+6vx+7ltBbk=" @@ -24,6 +26,7 @@ before_script: - sed -i 's/march=native/msse4.2/' CMakeLists.txt - mkdir build - > + eval "ARCH_FLAGS=\${ARCH_FLAGS_${ARCH}}" (cd build && cmake -DRAPIDJSON_HAS_STDSTRING=ON -DCMAKE_VERBOSE_MAKEFILE=ON From 429b3dcfab258fd4c0b42f5ba3e97e228e5ef87e Mon Sep 17 00:00:00 2001 From: "Philipp A. Hartmann" Date: Tue, 10 Mar 2015 20:26:26 +0100 Subject: [PATCH 07/12] .travis.yml: move comment of workaround for #163 --- .travis.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index fcba9da..f0a62eb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,6 +23,8 @@ before_install: install: true before_script: +# hack to avoid Valgrind bug (https://bugs.kde.org/show_bug.cgi?id=326469), +# exposed by merging PR#163 (using -march=native) - sed -i 's/march=native/msse4.2/' CMakeLists.txt - mkdir build - > @@ -32,9 +34,6 @@ before_script: -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=$CONF -DCMAKE_C_FLAGS="$ARCH_FLAGS" ..) -# hack to avoid Valgrind bug (https://bugs.kde.org/show_bug.cgi?id=326469), -# exposed by merging PR#163 (using -march=native) -# - (cd build/gmake && sed -i 's/march=native/msse4.2/' *.make) script: - cd build From c26a2a64af7d498dc811c8fee5689ebd84065053 Mon Sep 17 00:00:00 2001 From: "Philipp A. Hartmann" Date: Tue, 10 Mar 2015 20:26:52 +0100 Subject: [PATCH 08/12] .travis.yml: skip perftest on debug builds --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f0a62eb..f0e9233 100644 --- a/.travis.yml +++ b/.travis.yml @@ -39,5 +39,5 @@ script: - cd build - make tests - make examples - - ctest -V + - ctest -V `[ "$CONF" = "release" ] || echo "-E perftest"` - make travis_doc From 0ed4cdfa463ff8038fec76ec4cfeb7692119ca5f Mon Sep 17 00:00:00 2001 From: "Philipp A. Hartmann" Date: Tue, 10 Mar 2015 20:32:39 +0100 Subject: [PATCH 09/12] appveyor.yml: skip perftest on debug builds --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 4c3928e..d1a9108 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -25,4 +25,4 @@ build: verbosity: minimal test_script: -- cd Build\VS && ctest --verbose --build-config %CONFIGURATION% +- cd Build\VS && if %CONFIGURATION%==Debug (ctest --verbose -E perftest --build-config %CONFIGURATION%) else (ctest --verbose --build-config %CONFIGURATION%) From aae07f62388093c606ca2e9c7c2aaffc5470ea55 Mon Sep 17 00:00:00 2001 From: "Philipp A. Hartmann" Date: Tue, 10 Mar 2015 20:48:39 +0100 Subject: [PATCH 10/12] .travis.yml: re-add missing "apt-get update" call (Accidentally dropped in 40c03114) --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index f0e9233..34591d5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,6 +17,7 @@ env: - secure: "HrsaCb+N66EG1HR+LWH1u51SjaJyRwJEDzqJGYMB7LJ/bfqb9mWKF1fLvZGk46W5t7TVaXRDD5KHFx9DPWvKn4gRUVkwTHEy262ah5ORh8M6n/6VVVajeV/AYt2C0sswdkDBDO4Xq+xy5gdw3G8s1A4Inbm73pUh+6vx+7ltBbk=" before_install: + - sudo apt-get update -qq - sudo apt-get install -qq cmake doxygen valgrind - if [ "$ARCH" = "x86" ]; then sudo apt-get install -qq g++-multilib libc6-dbg:i386; fi From 66a2ccdd1d0831ff4a0efb87f0394d146f336d0b Mon Sep 17 00:00:00 2001 From: "Philipp A. Hartmann" Date: Tue, 10 Mar 2015 21:15:41 +0100 Subject: [PATCH 11/12] .travis.yml: add missing semicolon --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 34591d5..fc9d64a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -29,7 +29,7 @@ before_script: - sed -i 's/march=native/msse4.2/' CMakeLists.txt - mkdir build - > - eval "ARCH_FLAGS=\${ARCH_FLAGS_${ARCH}}" + eval "ARCH_FLAGS=\${ARCH_FLAGS_${ARCH}}" ; (cd build && cmake -DRAPIDJSON_HAS_STDSTRING=ON -DCMAKE_VERBOSE_MAKEFILE=ON From 2b5654692c10d6a895d1b350d91a5b75c0e9dd99 Mon Sep 17 00:00:00 2001 From: "Philipp A. Hartmann" Date: Tue, 10 Mar 2015 21:53:46 +0100 Subject: [PATCH 12/12] .travis.yml: properly pass $ARCH_FLAGS RapidJSON is C++, need to set CMAKE_CXX_FLAGS instead of CMAKE_C_FLAGS when configuring the build environment. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index fc9d64a..54f9d90 100644 --- a/.travis.yml +++ b/.travis.yml @@ -34,7 +34,7 @@ before_script: -DRAPIDJSON_HAS_STDSTRING=ON -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=$CONF - -DCMAKE_C_FLAGS="$ARCH_FLAGS" ..) + -DCMAKE_CXX_FLAGS="$ARCH_FLAGS" ..) script: - cd build