diff options
Diffstat (limited to 'CMake/FindCairo.cmake')
-rw-r--r-- | CMake/FindCairo.cmake | 61 |
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 | ||
11 | INCLUDE(FindPkgConfig) | 11 | find_package(PkgConfig) |
12 | 12 | ||
13 | IF(Cairo_FIND_REQUIRED) | 13 | if(Cairo_FIND_REQUIRED) |
14 | SET(_pkgconfig_REQUIRED "REQUIRED") | 14 | set(_pkgconfig_REQUIRED "REQUIRED") |
15 | ELSE(Cairo_FIND_REQUIRED) | 15 | else(Cairo_FIND_REQUIRED) |
16 | SET(_pkgconfig_REQUIRED "") | 16 | set(_pkgconfig_REQUIRED "") |
17 | ENDIF(Cairo_FIND_REQUIRED) | 17 | endif(Cairo_FIND_REQUIRED) |
18 | 18 | ||
19 | IF(CAIRO_MIN_VERSION) | 19 | if(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}) |
21 | ELSE(CAIRO_MIN_VERSION) | 21 | else(CAIRO_MIN_VERSION) |
22 | PKG_SEARCH_MODULE(CAIRO ${_pkgconfig_REQUIRED} cairo) | 22 | pkg_check_modules(CAIRO ${_pkgconfig_REQUIRED} cairo) |
23 | ENDIF(CAIRO_MIN_VERSION) | 23 | endif(CAIRO_MIN_VERSION) |
24 | 24 | ||
25 | IF(NOT CAIRO_FOUND AND NOT PKG_CONFIG_FOUND) | 25 | if(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) |
28 | else(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}) | ||
38 | endif(NOT CAIRO_FOUND AND NOT PKG_CONFIG_FOUND) | ||
28 | 39 | ||
29 | # Report results | 40 | include(FindPackageHandleStandardArgs) |
30 | IF(CAIRO_LIBRARIES AND CAIRO_INCLUDE_DIRS) | 41 | find_package_handle_standard_args(CAIRO DEFAULT_MSG CAIRO_LIBRARIES CAIRO_INCLUDE_DIRS) |
31 | SET(CAIRO_FOUND 1) | 42 | mark_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) | ||
44 | ENDIF(NOT CAIRO_FOUND AND NOT PKG_CONFIG_FOUND) | ||
45 | |||
46 | # Hide advanced variables from CMake GUIs | ||
47 | MARK_AS_ADVANCED(CAIRO_LIBRARIES CAIRO_INCLUDE_DIRS) | ||