summaryrefslogtreecommitdiffstats
path: root/CMake/FindCairo.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'CMake/FindCairo.cmake')
-rw-r--r--CMake/FindCairo.cmake61
1 files changed, 28 insertions, 33 deletions
diff --git a/CMake/FindCairo.cmake b/CMake/FindCairo.cmake
index 36c28095..10ab8fb0 100644
--- a/CMake/FindCairo.cmake
+++ b/CMake/FindCairo.cmake
@@ -8,40 +8,35 @@
8# Define CAIRO_MIN_VERSION for which version desired. 8# Define CAIRO_MIN_VERSION for which version desired.
9# 9#
10 10
11INCLUDE(FindPkgConfig) 11find_package(PkgConfig)
12 12
13IF(Cairo_FIND_REQUIRED) 13if(Cairo_FIND_REQUIRED)
14 SET(_pkgconfig_REQUIRED "REQUIRED") 14 set(_pkgconfig_REQUIRED "REQUIRED")
15ELSE(Cairo_FIND_REQUIRED) 15else(Cairo_FIND_REQUIRED)
16 SET(_pkgconfig_REQUIRED "") 16 set(_pkgconfig_REQUIRED "")
17ENDIF(Cairo_FIND_REQUIRED) 17endif(Cairo_FIND_REQUIRED)
18 18
19IF(CAIRO_MIN_VERSION) 19if(CAIRO_MIN_VERSION)
20 PKG_SEARCH_MODULE(CAIRO ${_pkgconfig_REQUIRED} cairo>=${CAIRO_MIN_VERSION}) 20 pkg_check_modules(CAIRO ${_pkgconfig_REQUIRED} cairo>=${CAIRO_MIN_VERSION})
21ELSE(CAIRO_MIN_VERSION) 21else(CAIRO_MIN_VERSION)
22 PKG_SEARCH_MODULE(CAIRO ${_pkgconfig_REQUIRED} cairo) 22 pkg_check_modules(CAIRO ${_pkgconfig_REQUIRED} cairo)
23ENDIF(CAIRO_MIN_VERSION) 23endif(CAIRO_MIN_VERSION)
24 24
25IF(NOT CAIRO_FOUND AND NOT PKG_CONFIG_FOUND) 25if(NOT CAIRO_FOUND AND NOT PKG_CONFIG_FOUND)
26 FIND_PATH(CAIRO_INCLUDE_DIRS cairo.h) 26 find_path(CAIRO_INCLUDE_DIRS cairo.h)
27 FIND_LIBRARY(CAIRO_LIBRARIES cairo) 27 find_library(CAIRO_LIBRARIES cairo)
28else(NOT CAIRO_FOUND AND NOT PKG_CONFIG_FOUND)
29 # Make paths absolute https://stackoverflow.com/a/35476270
30 # Important on FreeBSD because /usr/local/lib is not on /usr/bin/ld's default path
31 set(CAIRO_LIBS_ABSOLUTE)
32 foreach(lib ${CAIRO_LIBRARIES})
33 set(var_name CAIRO_${lib}_ABS)
34 find_library(${var_name} ${lib} ${CAIRO_LIBRARY_DIRS})
35 list(APPEND CAIRO_LIBS_ABSOLUTE ${${var_name}})
36 endforeach()
37 set(CAIRO_LIBRARIES ${CAIRO_LIBS_ABSOLUTE})
38endif(NOT CAIRO_FOUND AND NOT PKG_CONFIG_FOUND)
28 39
29 # Report results 40include(FindPackageHandleStandardArgs)
30 IF(CAIRO_LIBRARIES AND CAIRO_INCLUDE_DIRS) 41find_package_handle_standard_args(CAIRO DEFAULT_MSG CAIRO_LIBRARIES CAIRO_INCLUDE_DIRS)
31 SET(CAIRO_FOUND 1) 42mark_as_advanced(CAIRO_LIBRARIES CAIRO_INCLUDE_DIRS)
32 IF(NOT Cairo_FIND_QUIETLY)
33 MESSAGE(STATUS "Found Cairo: ${CAIRO_LIBRARIES}")
34 ENDIF(NOT Cairo_FIND_QUIETLY)
35 ELSE(CAIRO_LIBRARIES AND CAIRO_INCLUDE_DIRS)
36 IF(Cairo_FIND_REQUIRED)
37 MESSAGE(SEND_ERROR "Could not find Cairo")
38 ELSE(Cairo_FIND_REQUIRED)
39 IF(NOT Cairo_FIND_QUIETLY)
40 MESSAGE(STATUS "Could not find Cairo")
41 ENDIF(NOT Cairo_FIND_QUIETLY)
42 ENDIF(Cairo_FIND_REQUIRED)
43 ENDIF(CAIRO_LIBRARIES AND CAIRO_INCLUDE_DIRS)
44ENDIF(NOT CAIRO_FOUND AND NOT PKG_CONFIG_FOUND)
45
46# Hide advanced variables from CMake GUIs
47MARK_AS_ADVANCED(CAIRO_LIBRARIES CAIRO_INCLUDE_DIRS)