diff --git a/CMakeLists.txt b/CMakeLists.txt index 8ed65c8..b30625f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -53,6 +53,10 @@ if(RAPIDJSON_BUILD_EXAMPLES) endif() if(RAPIDJSON_BUILD_TESTS) + if(MSVC11) + # required for VS2012 due to missing support for variadic templates + add_definitions(-D_VARIADIC_MAX=10) + endif(MSVC11) add_subdirectory(test) include(CTest) endif() diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 0000000..4c3928e --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,28 @@ +version: 0.12.{build} + +configuration: +- Debug +- Release + +environment: + matrix: + - VS_VERSION: 11 + VS_PLATFORM: win32 + - VS_VERSION: 11 + VS_PLATFORM: x64 + - VS_VERSION: 12 + VS_PLATFORM: win32 + - VS_VERSION: 12 + VS_PLATFORM: x64 + +before_build: +- git submodule update --init --recursive +- cmake -H. -BBuild/VS -G "Visual Studio %VS_VERSION%" -DCMAKE_GENERATOR_PLATFORM=%VS_PLATFORM% -DBUILD_SHARED_LIBS=true -Wno-dev + +build: + project: Build\VS\RapidJSON.sln + parallel: true + verbosity: minimal + +test_script: +- cd Build\VS && ctest --verbose --build-config %CONFIGURATION% diff --git a/readme.md b/readme.md index 05c0ec3..965f436 100644 --- a/readme.md +++ b/readme.md @@ -6,6 +6,10 @@ Copyright (c) 2011-2014 Milo Yip (miloyip@gmail.com) [RapidJSON Documentation](http://miloyip.github.io/rapidjson/) +## Build status +* Tavis CI (Linux): [![Travis Build status](https://travis-ci.org/miloyip/rapidjson.png)](https://travis-ci.org/miloyip/rapidjson) +* AppVeyor (Windows): [![AppVeyor Build status](https://ci.appveyor.com/api/projects/status/3xw2isxomp5r4do7/branch/master?svg=true)](https://ci.appveyor.com/project/Kosta-Github/rapidjson/branch/master) + ## Introduction RapidJSON is a JSON parser and generator for C++. It was inspired by [RapidXml](http://rapidxml.sourceforge.net/). @@ -43,7 +47,7 @@ RapidJSON is a header-only C++ library. Just copy the `include/rapidjson` folder RapidJSON uses following software as its dependencies: * [CMake](http://www.cmake.org) as a general build tool -* (optional)[Doxygen](http://www.goxygen.org) to build documentation +* (optional)[Doxygen](http://www.doxygen.org) to build documentation * (optional)[googletest](https://code.google.com/p/googletest/) for unit and performance testing To generate user documentation and run tests please proceed with the steps below: diff --git a/test/unittest/CMakeLists.txt b/test/unittest/CMakeLists.txt index 41e5695..66cf0c6 100644 --- a/test/unittest/CMakeLists.txt +++ b/test/unittest/CMakeLists.txt @@ -21,12 +21,15 @@ add_test(NAME unittest COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/bin) -add_test(NAME valgrind_unittest - COMMAND valgrind --leak-check=full --error-exitcode=1 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/bin) +if(NOT MSVC) + add_test(NAME valgrind_unittest + COMMAND valgrind --leak-check=full --error-exitcode=1 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/bin) -IF((NOT MSVC) AND (CMAKE_BUILD_TYPE STREQUAL "Debug")) -add_test(NAME symbol_check - COMMAND sh -c "objdump -t -C libnamespacetest.a | grep rapidjson ; test $? -ne 0" - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) -ENDIF() + if(CMAKE_BUILD_TYPE STREQUAL "Debug") + add_test(NAME symbol_check + COMMAND sh -c "objdump -t -C libnamespacetest.a | grep rapidjson ; test $? -ne 0" + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) + endif(CMAKE_BUILD_TYPE STREQUAL "Debug") + +endif(NOT MSVC) diff --git a/test/unittest/documenttest.cpp b/test/unittest/documenttest.cpp index f8be65a..93f7a3d 100644 --- a/test/unittest/documenttest.cpp +++ b/test/unittest/documenttest.cpp @@ -253,8 +253,8 @@ TEST(Document, Traits) { static_assert(!std::is_nothrow_constructible::value, ""); static_assert(!std::is_nothrow_default_constructible::value, ""); - static_assert(!std::is_nothrow_copy_constructible::value, ""); #ifndef _MSC_VER + static_assert(!std::is_nothrow_copy_constructible::value, ""); static_assert(std::is_nothrow_move_constructible::value, ""); #endif diff --git a/test/unittest/valuetest.cpp b/test/unittest/valuetest.cpp index 8644e1f..f09d4c1 100644 --- a/test/unittest/valuetest.cpp +++ b/test/unittest/valuetest.cpp @@ -54,9 +54,7 @@ TEST(Value, Traits) { #ifndef _MSC_VER static_assert(std::is_nothrow_constructible::value, ""); static_assert(std::is_nothrow_default_constructible::value, ""); -#endif static_assert(!std::is_nothrow_copy_constructible::value, ""); -#ifndef _MSC_VER static_assert(std::is_nothrow_move_constructible::value, ""); #endif