35 lines
1.4 KiB
CMake
35 lines
1.4 KiB
CMake
find_path(GMime_INCLUDE_DIR NAMES gmime/gmime.h
|
|
PATH_SUFFIXES gmime-2.6 gmime-2.4 gmime-2.2 gmime-2.0 gmime)
|
|
find_library(GMime_LIBRARY NAMES gmime-2.6 gmime-2.4 gmime-2.2 gmime-2.0 gmime)
|
|
|
|
if(GMime_INCLUDE_DIR AND EXISTS "${GMime_INCLUDE_DIR}/gmime/gmime-version.h")
|
|
file(STRINGS "${GMime_INCLUDE_DIR}/gmime/gmime-version.h"
|
|
_GMime_VERSION_LINES
|
|
REGEX "^#define GMIME_(MAJOR|MINOR|MICRO)_VERSION[ \t]+\\([0-9]+\\)")
|
|
foreach(_component MAJOR MINOR MICRO)
|
|
string(REGEX MATCH "GMIME_${_component}_VERSION[ \t]+\\(([0-9]+)\\)"
|
|
_GMime_VERSION_MATCH "${_GMime_VERSION_LINES}")
|
|
set(_GMime_VERSION_${_component} "${CMAKE_MATCH_1}")
|
|
endforeach()
|
|
if(DEFINED _GMime_VERSION_MAJOR AND DEFINED _GMime_VERSION_MINOR AND
|
|
DEFINED _GMime_VERSION_MICRO)
|
|
set(GMime_VERSION
|
|
"${_GMime_VERSION_MAJOR}.${_GMime_VERSION_MINOR}.${_GMime_VERSION_MICRO}")
|
|
endif()
|
|
endif()
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args(GMime
|
|
REQUIRED_VARS GMime_LIBRARY GMime_INCLUDE_DIR
|
|
VERSION_VAR GMime_VERSION)
|
|
|
|
if(GMime_FOUND AND NOT TARGET GMime::GMime)
|
|
add_library(GMime::GMime UNKNOWN IMPORTED)
|
|
set_target_properties(GMime::GMime PROPERTIES
|
|
IMPORTED_LOCATION "${GMime_LIBRARY}"
|
|
INTERFACE_INCLUDE_DIRECTORIES "${GMime_INCLUDE_DIR}"
|
|
INTERFACE_LINK_LIBRARIES "GLib2::GObject")
|
|
endif()
|
|
|
|
mark_as_advanced(GMime_INCLUDE_DIR GMime_LIBRARY)
|