summaryrefslogtreecommitdiffstats
path: root/src/fmt/test/gtest/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/fmt/test/gtest/CMakeLists.txt')
-rw-r--r--src/fmt/test/gtest/CMakeLists.txt38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/fmt/test/gtest/CMakeLists.txt b/src/fmt/test/gtest/CMakeLists.txt
new file mode 100644
index 000000000..ed0e59d5f
--- /dev/null
+++ b/src/fmt/test/gtest/CMakeLists.txt
@@ -0,0 +1,38 @@
+#------------------------------------------------------------------------------
+# Build the google test library
+
+# We compile Google Test ourselves instead of using pre-compiled libraries.
+# See the Google Test FAQ "Why is it not recommended to install a
+# pre-compiled copy of Google Test (for example, into /usr/local)?"
+# at http://code.google.com/p/googletest/wiki/FAQ for more details.
+add_library(gtest STATIC
+ gmock-gtest-all.cc gmock/gmock.h gtest/gtest.h gtest/gtest-spi.h)
+target_compile_definitions(gtest PUBLIC GTEST_HAS_STD_WSTRING=1)
+target_include_directories(gtest SYSTEM PUBLIC .)
+
+find_package(Threads)
+if (Threads_FOUND)
+ target_link_libraries(gtest ${CMAKE_THREAD_LIBS_INIT})
+else ()
+ target_compile_definitions(gtest PUBLIC GTEST_HAS_PTHREAD=0)
+endif ()
+
+# Workaround GTest bug https://github.com/google/googletest/issues/705.
+fmt_check_cxx_compiler_flag(
+ -fno-delete-null-pointer-checks HAVE_FNO_DELETE_NULL_POINTER_CHECKS)
+if (HAVE_FNO_DELETE_NULL_POINTER_CHECKS)
+ target_compile_options(gtest PUBLIC -fno-delete-null-pointer-checks)
+endif ()
+
+if (MSVC)
+ # Disable MSVC warnings of _CRT_INSECURE_DEPRECATE functions.
+ target_compile_definitions(gtest PRIVATE _CRT_SECURE_NO_WARNINGS)
+ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ # Disable MSVC warnings of POSIX functions.
+ target_compile_options(gtest PUBLIC -Wno-deprecated-declarations)
+ endif ()
+endif ()
+
+# Silence MSVC tr1 deprecation warning in gmock.
+target_compile_definitions(gtest
+ PUBLIC _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING=1)