@@ -19,6 +19,7 @@ CMAKE_POLICY(SET CMP0015 NEW)
1919SET (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR} /cmake/Modules/" )
2020
2121INCLUDE (CheckLibraryExists )
22+ INCLUDE (CheckFunctionExists )
2223INCLUDE (AddCFlagIfSupported )
2324INCLUDE (FindPkgConfig )
2425
@@ -95,6 +96,23 @@ SET(BIN_INSTALL_DIR bin CACHE PATH "Where to install binaries to.")
9596SET (LIB_INSTALL_DIR lib CACHE PATH "Where to install libraries to." )
9697SET (INCLUDE_INSTALL_DIR include CACHE PATH "Where to install headers to." )
9798
99+ # Set a couple variables to be substituted inside the .pc file.
100+ # We can't just use LIB_INSTALL_DIR in the .pc file, as passing them as absolue
101+ # or relative paths is both valid and supported by cmake.
102+ SET (PKGCONFIG_PREFIX ${CMAKE_INSTALL_PREFIX} )
103+
104+ IF (IS_ABSOLUTE ${LIB_INSTALL_DIR} )
105+ SET (PKGCONFIG_LIBDIR ${LIB_INSTALL_DIR} )
106+ ELSE (IS_ABSOLUTE ${LIB_INSTALL_DIR} )
107+ SET (PKGCONFIG_LIBDIR "\$ {prefix}/${LIB_INSTALL_DIR} " )
108+ ENDIF (IS_ABSOLUTE ${LIB_INSTALL_DIR} )
109+
110+ IF (IS_ABSOLUTE ${INCLUDE_INSTALL_DIR} )
111+ SET (PKGCONFIG_INCLUDEDIR ${INCLUDE_INSTALL_DIR} )
112+ ELSE (IS_ABSOLUTE ${INCLUDE_INSTALL_DIR} )
113+ SET (PKGCONFIG_INCLUDEDIR "\$ {prefix}/${INCLUDE_INSTALL_DIR} " )
114+ ENDIF (IS_ABSOLUTE ${INCLUDE_INSTALL_DIR} )
115+
98116FUNCTION (TARGET_OS_LIBRARIES target )
99117 IF (WIN32 )
100118 TARGET_LINK_LIBRARIES (${target} ws2_32 )
@@ -440,6 +458,21 @@ ELSE ()
440458 ENDIF ()
441459ENDIF ()
442460
461+ CHECK_FUNCTION_EXISTS (futimens HAVE_FUTIMENS )
462+ IF (HAVE_FUTIMENS)
463+ ADD_DEFINITIONS (-DHAVE_FUTIMENS )
464+ ENDIF ()
465+
466+ CHECK_FUNCTION_EXISTS (qsort_r HAVE_QSORT_R )
467+ IF (HAVE_QSORT_R)
468+ ADD_DEFINITIONS (-DHAVE_QSORT_R )
469+ ENDIF ()
470+
471+ CHECK_FUNCTION_EXISTS (qsort_s HAVE_QSORT_S )
472+ IF (HAVE_QSORT_S)
473+ ADD_DEFINITIONS (-DHAVE_QSORT_S )
474+ ENDIF ()
475+
443476IF ( NOT CMAKE_CONFIGURATION_TYPES )
444477 # Build Debug by default
445478 IF (NOT CMAKE_BUILD_TYPE )
@@ -546,7 +579,12 @@ INSTALL(FILES include/git2.h DESTINATION ${INCLUDE_INSTALL_DIR} )
546579
547580# Tests
548581IF (BUILD_CLAR)
549- FIND_PACKAGE(PythonInterp REQUIRED)
582+ FIND_PACKAGE(PythonInterp)
583+
584+ IF(NOT PYTHONINTERP_FOUND)
585+ MESSAGE(FATAL_ERROR " Could not find a python interpeter, which is needed to build the tests. "
586+ " Make sure python is available, or pass -DBUILD_CLAR=OFF to skip building the tests ")
587+ ENDIF()
550588
551589 SET(CLAR_FIXTURES " ${CMAKE_CURRENT_SOURCE_DIR} /tests/resources/ ")
552590 SET(CLAR_PATH " ${CMAKE_CURRENT_SOURCE_DIR} /tests ")
0 commit comments