12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- include(CheckCXXCompilerFlag)
- set(UNITTEST_SOURCES
- allocatorstest.cpp
- bigintegertest.cpp
- documenttest.cpp
- dtoatest.cpp
- encodedstreamtest.cpp
- encodingstest.cpp
- fwdtest.cpp
- filestreamtest.cpp
- itoatest.cpp
- istreamwrappertest.cpp
- jsoncheckertest.cpp
- namespacetest.cpp
- pointertest.cpp
- prettywritertest.cpp
- ostreamwrappertest.cpp
- readertest.cpp
- regextest.cpp
- schematest.cpp
- simdtest.cpp
- strfunctest.cpp
- stringbuffertest.cpp
- strtodtest.cpp
- unittest.cpp
- valuetest.cpp
- writertest.cpp)
- find_program(CCACHE_FOUND ccache)
- if(CCACHE_FOUND)
- set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
- set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
- if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qunused-arguments -fcolor-diagnostics")
- endif()
- endif(CCACHE_FOUND)
- set_property(DIRECTORY PROPERTY COMPILE_OPTIONS ${EXTRA_CXX_FLAGS})
- if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
- # If the user is running a newer version of Clang that includes the
- # -Wdouble-promotion, we will ignore that warning.
- if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 3.7)
- CHECK_CXX_COMPILER_FLAG("-Wno-double-promotion" HAS_NO_DOUBLE_PROMOTION)
- if (HAS_NO_DOUBLE_PROMOTION)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-double-promotion")
- endif()
- endif()
- elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
- # Force to always compile with /W4
- if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
- string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
- else()
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
- endif()
- # Force to always compile with /WX
- if(CMAKE_CXX_FLAGS MATCHES "/WX-")
- string(REGEX REPLACE "/WX-" "/WX" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
- else()
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX")
- endif()
- endif()
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DRAPIDJSON_HAS_STDSTRING=1")
- add_library(namespacetest STATIC namespacetest.cpp)
- add_executable(unittest ${UNITTEST_SOURCES})
- target_link_libraries(unittest ${TEST_LIBRARIES} namespacetest)
- add_dependencies(tests unittest)
- add_test(NAME unittest
- COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
- if(NOT MSVC)
- # Not running SIMD.* unit test cases for Valgrind
- add_test(NAME valgrind_unittest
- COMMAND valgrind --suppressions=${CMAKE_SOURCE_DIR}/test/valgrind.supp --leak-check=full --error-exitcode=1 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest --gtest_filter=-SIMD.*
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
- 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)
|