CMakeLists.txt 1.76 KB
Newer Older
1
2
3
4
5
6
7
include(ExternalProject)

if(MSVC)
    # MS Visual Studio expects lib prefix on static libraries,
    # but CMake compiles them without prefix
    # See https://gitlab.kitware.com/cmake/cmake/issues/17338
    set(CMAKE_STATIC_LIBRARY_PREFIX "")
8
9
endif()

10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
ExternalProject_Add(
	googletest_project
	SOURCE_DIR "${CMAKE_SOURCE_DIR}/test/gtest-1.8.0"
	INSTALL_DIR "${CMAKE_BINARY_DIR}/prefix"
	CMAKE_ARGS
		-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
		-DBUILD_GMOCK=ON
		-Dgtest_force_shared_crt=ON
)

add_library(gmock UNKNOWN IMPORTED)
set_target_properties(gmock PROPERTIES
    IMPORTED_LOCATION
    ${PROJECT_BINARY_DIR}/prefix/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX}
)

find_package(Threads)

include_directories(SYSTEM "${PROJECT_BINARY_DIR}/prefix/include")

30
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR
31
32
33
34
35
36
	CMAKE_CXX_COMPILER_ID MATCHES "Clang")
	set(yaml_test_flags "-Wno-variadic-macros -Wno-sign-compare")

	if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
		set(yaml_test_flags "${yaml_test_flags} -Wno-c99-extensions")
	endif()
37
38
endif()

Jesse Beder's avatar
Jesse Beder committed
39
file(GLOB test_headers [a-z_]*.h)
Jesse Beder's avatar
Jesse Beder committed
40
file(GLOB test_sources [a-z_]*.cpp integration/[a-z_]*.cpp node/[a-z_]*.cpp)
41
file(GLOB test_new_api_sources new-api/[a-z]*.cpp)
Jesse Beder's avatar
Jesse Beder committed
42

43
list(APPEND test_sources ${test_new_api_sources})
44
add_sources(${test_sources} ${test_headers})
Jesse Beder's avatar
Jesse Beder committed
45

46
include_directories(${YAML_CPP_SOURCE_DIR}/src)
47
48
include_directories(${YAML_CPP_SOURCE_DIR}/test)

Jesse Beder's avatar
Jesse Beder committed
49
add_executable(run-tests
50
51
    ${test_sources}
    ${test_headers}
Jesse Beder's avatar
Jesse Beder committed
52
)
53
54
55

add_dependencies(run-tests googletest_project)

56
set_target_properties(run-tests PROPERTIES
57
    COMPILE_FLAGS "${yaml_c_flags} ${yaml_cxx_flags} ${yaml_test_flags}"
58
)
59
60
61
62
target_link_libraries(run-tests
    yaml-cpp
    gmock
    ${CMAKE_THREAD_LIBS_INIT})
Jesse Beder's avatar
Jesse Beder committed
63

Jesse Beder's avatar
Jesse Beder committed
64
add_test(yaml-test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/run-tests)