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)