From 1f48d22f249ebf1300ffca9b5cc2108c9979e2e9 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Tue, 6 May 2008 11:18:20 +0200 Subject: [PATCH] Add cmake 2.6 compatible FindCheck module. --- cmake/Modules/FindCheck.cmake | 104 +++++++++++++++++++++++----------- 1 file changed, 72 insertions(+), 32 deletions(-) diff --git a/cmake/Modules/FindCheck.cmake b/cmake/Modules/FindCheck.cmake index e9e7f4d16..c25daacbd 100644 --- a/cmake/Modules/FindCheck.cmake +++ b/cmake/Modules/FindCheck.cmake @@ -1,46 +1,86 @@ -# - Try to find the CHECK libraries -# Once done this will define +# - Try to find Check +# Once done this will define # -# CHECK_FOUND - system has check -# CHECK_INCLUDE_DIR - the check include directory -# CHECK_LIBRARIES - check library -# -# Copyright (c) 2007 Daniel Gollub -# Copyright (c) 2007 Bjoern Ricks +# CHECK_FOUND - system has Check +# CHECK_INCLUDE_DIRS - the Check include directory +# CHECK_LIBRARIES - Link these to use Check +# CHECK_DEFINITIONS - Compiler switches required for using Check +# +# Copyright (c) 2008 Andreas Schneider # # Redistribution and use is allowed according to the terms of the New # BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# -INCLUDE( FindPkgConfig ) +if (CHECK_LIBRARIES AND CHECK_INCLUDE_DIRS) + # in cache already + set(CHECK_FOUND TRUE) +else (CHECK_LIBRARIES AND CHECK_INCLUDE_DIRS) + # use pkg-config to get the directories and then use these values + # in the FIND_PATH() and FIND_LIBRARY() calls + if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) + include(UsePkgConfig) + pkgconfig(check _CHECK_INCLUDEDIR _CHECK_LIBDIR _CHECK_LDFLAGS _CHECK_CFLAGS) + else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) + find_package(PkgConfig) + if (PKG_CONFIG_FOUND) + pkg_check_modules(_CHECK check) + endif (PKG_CONFIG_FOUND) + endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) + find_path(CHECK_INCLUDE_DIR + NAMES + check.h + PATHS + ${_CHECK_INCLUDEDIR} + /usr/include + /usr/local/include + /opt/local/include + /sw/include + ) -# Take care about check.pc settings -PKG_SEARCH_MODULE( CHECK check ) + find_library(CHECK_LIBRARY + NAMES + check + PATHS + ${_Check_LIBDIR} + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib + ) -# Look for CHECK include dir and libraries -IF( NOT CHECK_FOUND ) + if (CHECK_LIBRARY) + set(CHECK_FOUND TRUE) + endif (CHECK_LIBRARY) - FIND_PATH( CHECK_INCLUDE_DIR check.h ) + set(CHECK_INCLUDE_DIRS + ${CHECK_INCLUDE_DIR} + ) - FIND_LIBRARY( CHECK_LIBRARIES NAMES check ) + if (CHECK_FOUND) + set(CHECK_LIBRARIES + ${CHECK_LIBRARY} + ) + endif (CHECK_FOUND) - IF ( CHECK_INCLUDE_DIR AND CHECK_LIBRARIES ) - SET( CHECK_FOUND 1 ) - IF ( NOT Check_FIND_QUIETLY ) - MESSAGE ( STATUS "Found CHECK: ${CHECK_LIBRARIES}" ) - ENDIF ( NOT Check_FIND_QUIETLY ) - ELSE ( CHECK_INCLUDE_DIR AND CHECK_LIBRARIES ) - IF ( Check_FIND_REQUIRED ) - MESSAGE( FATAL_ERROR "Could NOT find CHECK" ) - ELSE ( Check_FIND_REQUIRED ) - IF ( NOT Check_FIND_QUIETLY ) - MESSAGE( STATUS "Could NOT find CHECK" ) - ENDIF ( NOT Check_FIND_QUIETLY ) - ENDIF ( Check_FIND_REQUIRED ) - ENDIF ( CHECK_INCLUDE_DIR AND CHECK_LIBRARIES ) -ENDIF( NOT CHECK_FOUND ) + if (CHECK_INCLUDE_DIRS AND CHECK_LIBRARIES) + set(CHECK_FOUND TRUE) + endif (CHECK_INCLUDE_DIRS AND CHECK_LIBRARIES) -# Hide advanced variables from CMake GUIs -MARK_AS_ADVANCED( CHECK_INCLUDE_DIR CHECK_LIBRARIES ) + if (CHECK_FOUND) + if (NOT Check_FIND_QUIETLY) + message(STATUS "Found Check: ${CHECK_LIBRARIES}") + endif (NOT Check_FIND_QUIETLY) + else (CHECK_FOUND) + if (Check_FIND_REQUIRED) + message(FATAL_ERROR "Could not find Check") + endif (Check_FIND_REQUIRED) + endif (CHECK_FOUND) + + # show the CHECK_INCLUDE_DIRS and CHECK_LIBRARIES variables only in the advanced view + mark_as_advanced(CHECK_INCLUDE_DIRS CHECK_LIBRARIES) + +endif (CHECK_LIBRARIES AND CHECK_INCLUDE_DIRS)