File: FindHSPELL.cmake

package info (click to toggle)
cmake 4.2.0-2
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 152,312 kB
  • sloc: ansic: 403,890; cpp: 303,778; sh: 4,097; python: 3,582; yacc: 3,106; lex: 1,279; f90: 534; asm: 471; lisp: 375; cs: 270; java: 266; fortran: 235; objc: 215; perl: 213; xml: 198; makefile: 108; javascript: 83; pascal: 63; tcl: 55; php: 25; ruby: 22
file content (88 lines) | stat: -rw-r--r-- 2,355 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
# file LICENSE.rst or https://cmake.org/licensing for details.

#[=======================================================================[.rst:
FindHSPELL
----------

Finds the Hebrew spell-checker and morphology engine (Hspell):

.. code-block:: cmake

  find_package(HSPELL [<version>] [...])

Result Variables
^^^^^^^^^^^^^^^^

This module defines the following variables:

``HSPELL_FOUND``
  Boolean indicating whether (the requested version of) Hspell was found.

``HSPELL_VERSION``
  .. versionadded:: 4.2

  The version of Hspell found (x.y).

``HSPELL_VERSION_MAJOR``
  The major version of Hspell found.

``HSPELL_VERSION_MINOR``
  The minor version of Hspell found.

Cache Variables
^^^^^^^^^^^^^^^

The following cache variables may also be set:

``HSPELL_INCLUDE_DIR``
  The Hspell include directory.

``HSPELL_LIBRARIES``
  The libraries needed to use Hspell.

Deprecated Variables
^^^^^^^^^^^^^^^^^^^^

The following variables are provided for backward compatibility:

``HSPELL_VERSION_STRING``
  .. deprecated:: 4.2
    Use ``HSPELL_VERSION``, which has the same value.

  The version of Hspell found (x.y).

Examples
^^^^^^^^

Finding Hspell:

.. code-block:: cmake

  find_package(HSPELL)
#]=======================================================================]

cmake_policy(PUSH)
cmake_policy(SET CMP0159 NEW) # file(STRINGS) with REGEX updates CMAKE_MATCH_<n>

find_path(HSPELL_INCLUDE_DIR hspell.h)

find_library(HSPELL_LIBRARIES NAMES hspell)

if (HSPELL_INCLUDE_DIR)
    file(STRINGS "${HSPELL_INCLUDE_DIR}/hspell.h" HSPELL_H REGEX "#define HSPELL_VERSION_M(AJO|INO)R [0-9]+")
    string(REGEX REPLACE ".*#define HSPELL_VERSION_MAJOR ([0-9]+).*" "\\1" HSPELL_VERSION_MAJOR "${HSPELL_H}")
    string(REGEX REPLACE ".*#define HSPELL_VERSION_MINOR ([0-9]+).*" "\\1" HSPELL_VERSION_MINOR "${HSPELL_H}")
    set(HSPELL_VERSION "${HSPELL_VERSION_MAJOR}.${HSPELL_VERSION_MINOR}")
    set(HSPELL_VERSION_STRING "${HSPELL_VERSION}")
    unset(HSPELL_H)
endif()

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(HSPELL
                                  REQUIRED_VARS HSPELL_LIBRARIES HSPELL_INCLUDE_DIR
                                  VERSION_VAR HSPELL_VERSION)

mark_as_advanced(HSPELL_INCLUDE_DIR HSPELL_LIBRARIES)

cmake_policy(POP)