CMakeLists.txt 1.7 KB
Newer Older
1
find_package(Threads REQUIRED)
2

3
4
5
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
set(BUILD_MOCK ON CACHE BOOL "" FORCE)
set(CMAKE_POLICY_DEFAULT_CMP0048 NEW)
6

7
add_subdirectory(
8
  "${CMAKE_CURRENT_SOURCE_DIR}/gtest-1.10.0"
9
  "${CMAKE_CURRENT_BINARY_DIR}/prefix")
10

11
include_directories(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/gtest-1.10.0/googletest/include")
12

13
14
15
16
17
set(test-new-api-pattern "new-api/*.cpp")
set(test-source-pattern "*.cpp" "integration/*.cpp" "node/*.cpp")
if (CMAKE_VERSION VERSION_GREATER 3.11)
  list(INSERT test-new-api-pattern 0 CONFIGURE_DEPENDS)
  list(INSERT test-source-pattern 0 CONFIGURE_DEPENDS)
18
19
endif()

20
21
22
file(GLOB test-new-api-sources ${test-new-api-pattern})
file(GLOB test-sources ${test-source-pattern})

23
add_executable(yaml-cpp-tests "")
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
target_sources(yaml-cpp-tests
  PRIVATE
    ${test-new-api-sources}
    ${test-sources})
target_include_directories(yaml-cpp-tests
  PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}/integration
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${PROJECT_SOURCE_DIR}/src)
target_compile_options(yaml-cpp-tests
  PRIVATE
    $<$<CXX_COMPILER_ID:Clang>:-Wno-c99-extensions -Wno-variadic-macros -Wno-sign-compare>
    $<$<CXX_COMPILER_ID:GNU>:-Wno-variadic-macros -Wno-sign-compare>)
target_link_libraries(yaml-cpp-tests
  PRIVATE
    Threads::Threads
    yaml-cpp
    gmock)
42

43
44
45
46
set_property(TARGET yaml-cpp-tests PROPERTY CXX_STANDARD_REQUIRED ON)
if (NOT DEFINED CMAKE_CXX_STANDARD)
  set_target_properties(yaml-cpp-tests PROPERTIES CXX_STANDARD 11)
endif()
47

Jesse Beder's avatar
Jesse Beder committed
48

49
add_test(yaml-cpp::test yaml-cpp-tests)
50
51
52
53
54
55
56

if (build-windows-dll)
  add_custom_command(
    TARGET yaml-cpp-tests
    POST_BUILD COMMAND ${CMAKE_COMMAND} -E
    copy_if_different "$<TARGET_FILE:yaml-cpp>" "$<TARGET_FILE_DIR:yaml-cpp-tests>")
endif()