fixed adding file problem
[c11concurrency-benchmarks.git] / gdax-orderbook-hpp / demo / dependencies / rapidjson-1.1.0 / test / unittest / CMakeLists.txt
diff --git a/gdax-orderbook-hpp/demo/dependencies/rapidjson-1.1.0/test/unittest/CMakeLists.txt b/gdax-orderbook-hpp/demo/dependencies/rapidjson-1.1.0/test/unittest/CMakeLists.txt
new file mode 100644 (file)
index 0000000..b3204d6
--- /dev/null
@@ -0,0 +1,92 @@
+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)
+
+if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wall -Wextra -Weffc++ -Wswitch-default -Wfloat-equal")
+elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wall -Wextra -Weffc++ -Wswitch-default -Wfloat-equal -Wimplicit-fallthrough -Weverything")
+    # 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 --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)