1 FIND_PACKAGE(PythonInterp)
3 IF(NOT PYTHONINTERP_FOUND)
4 MESSAGE(FATAL_ERROR "Could not find a python interpeter, which is needed to build the tests. "
5 "Make sure python is available, or pass -DBUILD_CLAR=OFF to skip building the tests")
8 SET(CLAR_FIXTURES "${CMAKE_CURRENT_SOURCE_DIR}/resources/")
9 SET(CLAR_PATH "${CMAKE_CURRENT_SOURCE_DIR}")
10 ADD_DEFINITIONS(-DCLAR_FIXTURE_PATH=\"${CLAR_FIXTURES}\")
11 ADD_DEFINITIONS(-DCLAR_TMPDIR=\"libgit2_tests\")
12 ADD_DEFINITIONS(-D_FILE_OFFSET_BITS=64)
14 # Ensure that we do not use deprecated functions internally
15 ADD_DEFINITIONS(-DGIT_DEPRECATE_HARD)
17 INCLUDE_DIRECTORIES(${CLAR_PATH} ${libgit2_BINARY_DIR}/src)
18 FILE(GLOB_RECURSE SRC_TEST ${CLAR_PATH}/*/*.c ${CLAR_PATH}/*/*.h)
19 SET(SRC_CLAR "main.c" "clar_libgit2.c" "clar_libgit2_trace.c" "clar_libgit2_timer.c" "clar.c")
22 LIST(APPEND SRC_CLAR "precompiled.c")
26 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/clar.suite
27 COMMAND ${PYTHON_EXECUTABLE} generate.py -o "${CMAKE_CURRENT_BINARY_DIR}" -f -xonline -xstress -xperf .
29 WORKING_DIRECTORY ${CLAR_PATH}
31 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
33 SET_SOURCE_FILES_PROPERTIES(
35 PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/clar.suite)
37 INCLUDE_DIRECTORIES(${LIBGIT2_INCLUDES})
38 INCLUDE_DIRECTORIES(SYSTEM ${LIBGIT2_SYSTEM_INCLUDES})
40 ADD_EXECUTABLE(libgit2_clar ${SRC_CLAR} ${SRC_TEST} ${LIBGIT2_OBJECTS})
42 SET_TARGET_PROPERTIES(libgit2_clar PROPERTIES C_STANDARD 90)
43 SET_TARGET_PROPERTIES(libgit2_clar PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${libgit2_BINARY_DIR})
45 IF (${CMAKE_VERSION} VERSION_LESS 2.8.12)
46 # Already handled by a global INCLUDE_DIRECTORY()
48 TARGET_INCLUDE_DIRECTORIES(libgit2_clar PRIVATE ../src PUBLIC ../include)
51 TARGET_LINK_LIBRARIES(libgit2_clar ${LIBGIT2_LIBS})
52 IDE_SPLIT_SOURCES(libgit2_clar)
56 SET_TARGET_PROPERTIES(libgit2_clar PROPERTIES COMPILE_FLAGS "/Yuprecompiled.h /FIprecompiled.h")
57 SET_SOURCE_FILES_PROPERTIES("precompiled.c" COMPILE_FLAGS "/Ycprecompiled.h")
60 ADD_TEST(offline "${libgit2_BINARY_DIR}/libgit2_clar" -v -xonline)
61 ADD_TEST(invasive "${libgit2_BINARY_DIR}/libgit2_clar" -v -score::ftruncate -sfilter::stream::bigfile -sodb::largefiles -siterator::workdir::filesystem_gunk -srepo::init -srepo::init::at_filesystem_root)
62 ADD_TEST(online "${libgit2_BINARY_DIR}/libgit2_clar" -v -sonline)
63 ADD_TEST(gitdaemon "${libgit2_BINARY_DIR}/libgit2_clar" -v -sonline::push)
64 ADD_TEST(ssh "${libgit2_BINARY_DIR}/libgit2_clar" -v -sonline::push -sonline::clone::ssh_cert -sonline::clone::ssh_with_paths)
65 ADD_TEST(proxy "${libgit2_BINARY_DIR}/libgit2_clar" -v -sonline::clone::proxy_credentials_in_url -sonline::clone::proxy_credentials_request)