[CMake] Properly test if compiler supports compiler flags
[WebKit-https.git] / Source / ThirdParty / gtest / CMakeLists.txt
1 # This is an alternative CMakeLists.txt to the experimental one
2 # shipped with the original package. It builds only the essential
3 # for our tests. The WebKit version of gtest needs access to some
4 # headers from WTF and JSC for configuration.
5
6 set(GTEST_DIR "${THIRDPARTY_DIR}/gtest")
7
8 set(GTEST_INCLUDE_DIRECTORIES
9     "${GTEST_DIR}"
10     "${GTEST_DIR}/include"
11     "${JAVASCRIPTCORE_DIR}"
12     "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}"
13 )
14
15 set(GTEST_SOURCES
16     ${GTEST_DIR}/src/gtest.cc
17     ${GTEST_DIR}/src/gtest-death-test.cc
18     ${GTEST_DIR}/src/gtest-filepath.cc
19     ${GTEST_DIR}/src/gtest_main.cc
20     ${GTEST_DIR}/src/gtest-port.cc
21     ${GTEST_DIR}/src/gtest-test-part.cc
22     ${GTEST_DIR}/src/gtest-typed-test.cc
23 )
24
25 if (WIN32)
26     # MSVC 2015 requires this definition for INTMAX_MAX to be defined.
27     add_definitions(-D__STDC_LIMIT_MACROS -DGTEST_CREATE_SHARED_LIBRARY=0)
28     # gtest crashes on exit on Windows if it is a dll.
29     add_library(gtest STATIC ${GTEST_SOURCES})
30 else ()
31     add_definitions(-DGTEST_CREATE_SHARED_LIBRARY=1)
32     add_library(gtest SHARED ${GTEST_SOURCES})
33 endif ()
34
35 include_directories(${GTEST_INCLUDE_DIRECTORIES})
36 add_definitions(-DGTEST_HAS_RTTI=0)
37
38 WEBKIT_ADD_TARGET_CXX_FLAGS(gtest -Wno-undef
39                                   -Wno-suggest-attribute=format)
40
41 # FIXME: This works around compatibility problems in the old version of the third-pary
42 # googletest source code checkout. It should be removed once we upgrade to a newer version.
43 if (COMPILER_IS_CLANG)
44     add_definitions(-DGTEST_HAS_TR1_TUPLE=0)
45 endif ()
46
47 target_link_libraries(gtest
48     WTF
49 )
50
51 if (CMAKE_USE_PTHREADS_INIT)
52     target_link_libraries(gtest ${CMAKE_THREAD_LIBS_INIT})
53     add_definitions(-DGTEST_HAS_PTHREAD=1)
54 else ()
55     add_definitions(-DGTEST_HAS_PTHREAD=0)
56 endif ()