forked from mirror/yaml-cpp
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.5 KiB
CMake
50 lines
1.5 KiB
CMake
find_package(Threads REQUIRED)
|
|
|
|
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
|
set(BUILD_MOCK ON CACHE BOOL "" FORCE)
|
|
set(CMAKE_POLICY_DEFAULT_CMP0048 NEW)
|
|
|
|
add_subdirectory(
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/gtest-1.10.0"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/prefix")
|
|
|
|
include_directories(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/gtest-1.10.0/googletest/include")
|
|
|
|
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)
|
|
endif()
|
|
|
|
file(GLOB test-new-api-sources ${test-new-api-pattern})
|
|
file(GLOB test-sources ${test-source-pattern})
|
|
|
|
add_executable(yaml-cpp-tests "")
|
|
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)
|
|
|
|
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()
|
|
|
|
|
|
add_test(yaml-cpp::test yaml-cpp-tests)
|