1#.rst: 2# FindCheck 3# ----------- 4# 5# Find Check 6# 7# Find Check headers and libraries. 8# 9# :: 10# 11# CHECK_FOUND - True if Check found. 12# CHECK_INCLUDE_DIRS - Where to find check.h. 13# CHECK_LIBRARIES - List of libraries when using Check. 14# CHECK_VERSION_STRING - The version of Check found. 15 16#============================================================================= 17# Copyright 2018 Silvio Clecio <silvioprog@gmail.com> 18# 19# This program is free software; you can redistribute it and/or 20# modify it under the terms of the GNU Lesser General Public License 21# as published by the Free Software Foundation; 22# version 2.1 of the License. 23# 24# This library is distributed in the hope that it will be useful, 25# but WITHOUT ANY WARRANTY; without even the implied warranty of 26# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 27# GNU GENERAL PUBLIC LICENSE for more details. 28# 29# You should have received a copy of the GNU General Public 30# License along with this library. If not, see <http://www.gnu.org/licenses/>. 31#============================================================================= 32 33# Sat Jan 20 23:33:47 -03 2018 34 35find_package(PkgConfig QUIET) 36pkg_check_modules(PC_CHECK QUIET check) 37 38find_path(CHECK_INCLUDE_DIR 39 NAMES check.h 40 HINTS ${PC_CHECK_INCLUDEDIR} ${PC_CHECK_INCLUDE_DIRS}) 41 42find_library(CHECK_LIBRARY 43 NAMES check libcheck 44 HINTS ${PC_CHECK_LIBDIR} ${PC_CHECK_LIBRARY_DIRS}) 45 46if (PC_CHECK_VERSION) 47 set(CHECK_VERSION_STRING ${PC_CHECK_VERSION}) 48elseif (CHECK_INCLUDE_DIR AND EXISTS "${CHECK_INCLUDE_DIR}/check.h") 49 set(check_version_list MAJOR MINOR MICRO) 50 foreach (v ${check_version_list}) 51 set(regex_check_version "^#define CHECK_${v}_VERSION +\\(?([0-9]+)\\)?$") 52 file(STRINGS "${CHECK_INCLUDE_DIR}/check.h" check_version_${v} REGEX "${regex_check_version}") 53 string(REGEX REPLACE "${regex_check_version}" "\\1" check_version_${v} "${check_version_${v}}") 54 unset(regex_check_version) 55 endforeach () 56 set(CHECK_VERSION_STRING "${check_version_MAJOR}.${check_version_MINOR}.${check_version_MICRO}") 57 foreach (v check_version_list) 58 unset(check_version_${v}) 59 endforeach () 60 unset(check_version_list) 61endif () 62 63include(FindPackageHandleStandardArgs) 64find_package_handle_standard_args(Check 65 REQUIRED_VARS CHECK_LIBRARY CHECK_INCLUDE_DIR 66 VERSION_VAR CHECK_VERSION_STRING) 67 68if (CHECK_FOUND) 69 set(CHECK_LIBRARIES ${CHECK_LIBRARY}) 70 set(CHECK_INCLUDE_DIRS ${CHECK_INCLUDE_DIR}) 71endif () 72 73mark_as_advanced(CHECK_INCLUDE_DIR CHECK_LIBRARY)