File: FindMuPDF.cmake

package info (click to toggle)
texworks 0.6.11%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 24,896 kB
  • sloc: cpp: 32,194; ansic: 8,499; javascript: 972; xml: 345; python: 208; sh: 157; makefile: 24
file content (146 lines) | stat: -rw-r--r-- 3,911 bytes parent folder | download | duplicates (7)
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# - Try to find MuPDF
# Once done this will define
#
#  MUPDF_FOUND - system has MuPDF
#  MUPDF_INCLUDE_DIR - The include directory for MuPDF headers
#  MUPDF_LIBRARIES - Link these to use MuPDF
#
# Redistribution and use is allowed according to the terms of the BSD license.
#

if ( MUPDF_LIBRARIES )
   # in cache already
   SET(MuPDF_FIND_QUIETLY TRUE)
endif ( MUPDF_LIBRARIES )

# use pkg-config to get the directories and then use these values
# in the FIND_PATH() and FIND_LIBRARY() calls
find_package(PkgConfig)
if( PKG_CONFIG_FOUND )
  pkg_check_modules(MUPDF_PKG QUIET mupdf)
endif( PKG_CONFIG_FOUND )

FIND_PATH(MUPDF_INCLUDE_DIR NAMES mupdf/pdf.h
  PATHS
    /usr/local/include
    /usr/include
  HINTS
    ${MUPDF_PKG_INCLUDE_DIRS} # Generated by pkg-config
)
IF ( NOT(MUPDF_INCLUDE_DIR) )
  FIND_PATH(MUPDF_INCLUDE_DIR NAMES mupdf.h
    PATHS
      /usr/local/include
      /usr/include
    HINTS
      ${MUPDF_PKG_INCLUDE_DIRS} # Generated by pkg-config
  )
ENDIF()
IF ( NOT(MUPDF_INCLUDE_DIR) )
  MESSAGE(STATUS "Could not find MuPDF headers." )
ENDIF ()

IF (MUPDF_INCLUDE_DIR)
  IF (EXISTS "${MUPDF_INCLUDE_DIR}/mupdf/pdf.h")
    SET(MUPDF_VERSION_STRING "1.3")
  ELSEIF (EXISTS "${MUPDF_INCLUDE_DIR}/mupdf.h")
    FILE(STRINGS "${MUPDF_INCLUDE_DIR}/mupdf.h" MUPDF_H)
    STRING(FIND "${MUPDF_H}" "pdf_new_obj_from_str" MUPDF_H_NEW_OBJ)
    STRING(FIND "${MUPDF_H}" "pdf_new_rect" MUPDF_H_NEW_RECT)
    STRING(FIND "${MUPDF_H}" "pdf_new_null" MUPDF_H_NEW_NULL)
    IF (MUPDF_H_NEW_OBJ GREATER -1)
      SET(MUPDF_VERSION_STRING "1.2")
    ELSEIF (MUPDF_H_NEW_RECT GREATER -1)
      SET(MUPDF_VERSION_STRING "1.1")
    ELSEIF (MUPDF_H_NEW_NULL GREATER -1)
      SET(MUPDF_VERSION_STRING "1.0")
    ELSE()
      SET(MUPDF_VERSION_STRING "0.9")
    ENDIF()
  ENDIF()
ENDIF()

# Find the libraries (Required; these vary between versions)
IF ("${MUPDF_VERSION_STRING}" VERSION_LESS "1.0")
  FIND_LIBRARY(MUPDF_LIBRARY NAMES mupdf
    PATHS
      /usr/local
      /usr
    HINTS
      ${MUPDF_PKG_LIBRARY_DIRS} # Generated by pkg-config
    PATH_SUFFIXES
      lib64
      lib
  )
  FIND_LIBRARY(FITZ_LIBRARY NAMES fitz
    PATHS
      /usr/local
      /usr
    HINTS
      ${MUPDF_PKG_LIBRARY_DIRS} # Generated by pkg-config
    PATH_SUFFIXES
      lib64
      lib
  )
  MARK_AS_ADVANCED(MUPDF_LIBRARY)
  MARK_AS_ADVANCED(FITZ_LIBRARY)
  IF ( NOT(MUPDF_LIBRARY) OR NOT(FITZ_LIBRARY) )
    MESSAGE(STATUS "Could not find MuPDF libraries." )
  ELSE()
    SET(MUPDF_LIBRARIES ${MUPDF_LIBRARY} ${FITZ_LIBRARY})
  ENDIF()
ELSEIF( "${MUPDF_VERSION_STRING}" VERSION_LESS "1.3" )
  FIND_LIBRARY(FITZ_LIBRARY NAMES fitz
    PATHS
      /usr/local
      /usr
    HINTS
      ${MUPDF_PKG_LIBRARY_DIRS} # Generated by pkg-config
    PATH_SUFFIXES
      lib64
      lib
  )
  MARK_AS_ADVANCED(FITZ_LIBRARY)
  IF ( NOT(FITZ_LIBRARY) )
    MESSAGE(STATUS "Could not find MuPDF libraries." )
  ELSE()
    SET(MUPDF_LIBRARIES ${FITZ_LIBRARY})
  ENDIF()
ELSE()
  FIND_LIBRARY(MUPDF_LIBRARY NAMES mupdf
    PATHS
      /usr/local
      /usr
    HINTS
      ${MUPDF_PKG_LIBRARY_DIRS} # Generated by pkg-config
    PATH_SUFFIXES
      lib64
      lib
  )
  FIND_LIBRARY(MUPDF_JS_LIBRARY NAMES mupdf-js-none
    PATHS
      /usr/local
      /usr
    HINTS
      ${MUPDF_PKG_LIBRARY_DIRS} # Generated by pkg-config
    PATH_SUFFIXES
      lib64
      lib
  )
  MARK_AS_ADVANCED(MUPDF_LIBRARY MUPDF_JS_LIBRARY)
  IF ( NOT(MUPDF_LIBRARY) OR NOT(MUPDF_JS_LIBRARY) )
    MESSAGE(STATUS "Could not find MuPDF libraries." )
  ELSE()
    SET(MUPDF_LIBRARIES ${MUPDF_LIBRARY} ${MUPDF_JS_LIBRARY})
  ENDIF()
ENDIF()



include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(MuPDF REQUIRED_VARS MUPDF_LIBRARIES MUPDF_INCLUDE_DIR VERSION_VAR MUPDF_VERSION_STRING)


# show the MUPDF_(XPDF/QT4)_INCLUDE_DIR and MUPDF_LIBRARIES variables only in the advanced view
MARK_AS_ADVANCED(MUPDF_INCLUDE_DIR MUPDF_LIBRARIES)