Warning, /frameworks/kcalendarcore/cmake/FindLibIcal.cmake is written in an unsupported language. File is not indexed.
0001 #.rst: 0002 # FindLibIcal 0003 # ----------- 0004 # 0005 # Try to find the Ical libraries. 0006 # 0007 # This will define the following variables: 0008 # 0009 # ``LibIcal_FOUND`` 0010 # True if a suitable LibIcal was found 0011 # ``LibIcal_INCLUDE_DIRS`` 0012 # This should be passed to target_include_directories() if 0013 # the target is not used for linking 0014 # ``LibIcal_LIBRARIES`` 0015 # The Ical libraries (ical + icalss) 0016 # This can be passed to target_link_libraries() instead of 0017 # the ``LibIcal`` target 0018 # 0019 # ``LibIcal_VERSION`` 0020 # The LibIcal version defined in ical.h 0021 # If ``LibIcal_FOUND`` is TRUE, the following imported target 0022 # will be available: 0023 # 0024 # ``LibIcal`` 0025 # The Ical libraries 0026 # 0027 # The following variables are set for compatibility reason and will be 0028 # removed in the next major version 0029 # ``LibIcal_MAJOR_VERSION`` 0030 # The LibIcal major version 0031 # ``LibIcal_MINOR_VERSION`` 0032 # The LibIcal minor version 0033 # 0034 # SPDX-FileCopyrightText: 2008, 2010 Allen Winter <winter@kde.org> 0035 # 0036 # SPDX-License-Identifier: BSD-3-Clause 0037 #============================================================================= 0038 0039 if(NOT LibIcal_FIND_VERSION) 0040 set(LibIcal_FIND_VERSION "0.33") 0041 endif() 0042 0043 find_package(PkgConfig QUIET) 0044 pkg_check_modules(PC_LibIcal QUIET libical) 0045 0046 find_path(LibIcal_INCLUDE_DIRS 0047 NAMES libical/ical.h 0048 HINTS ${PC_LibIcal_INCLUDEDIR} 0049 ) 0050 0051 find_library(LibIcal_LIBRARY 0052 NAMES ical libical 0053 HINTS ${PC_LibIcal_LIBDIR} 0054 ) 0055 0056 find_library(LibIcalss_LIBRARY 0057 NAMES icalss libicalss 0058 HINTS ${PC_LibIcal_LIBDIR} 0059 ) 0060 0061 find_library(LibIcalvcal_LIBRARY 0062 NAMES icalvcal 0063 HINTS ${PC_LibIcal_LIBDIR} 0064 ) 0065 0066 # For backward compatibility 0067 set(LibIcal_INCLUDE_DIRS "${LibIcal_INCLUDE_DIRS}" "${LibIcal_INCLUDE_DIRS}/libical") 0068 0069 set(LibIcal_LIBRARIES ${LibIcal_LIBRARY} ${LibIcalss_LIBRARY} ${LibIcalvcal_LIBRARY}) 0070 0071 set(LibIcal_VERSION "${PC_LibIcal_VERSION}") 0072 0073 if(NOT ICAL_H) 0074 find_file(ICAL_H ical.h HINTS ${LibIcal_INCLUDE_DIRS}) 0075 endif() 0076 0077 if(NOT LibIcal_VERSION) 0078 if(EXISTS "${ICAL_H}") 0079 file(STRINGS "${ICAL_H}" _ICAL_H_VERSION REGEX "^#define[ ]+ICAL_VERSION[ ]+\"[0-9].[0-9]\"$") 0080 string(REGEX REPLACE "^#define[ ]+ICAL_VERSION[ ]+\"([0-9].[0-9])\"$" "\\1" LibIcal_VERSION "${_ICAL_H_VERSION}") 0081 file(STRINGS "${ICAL_H}" _ICAL_H_PATCH_VERSION REGEX "^#define[ ]+ICAL_PATCH_VERSION[ ]+\\([0-9]+\\)$") 0082 string(REGEX REPLACE "^#define[ ]+ICAL_PATCH_VERSION[ ]+\\(([0-9]+)\\)$" "\\1" LibIcal_PATCH_VERSION "${_ICAL_H_PATCH_VERSION}") 0083 unset(_ICAL_H_VERSION) 0084 unset(_ICAL_H_PATCH_VERSION) 0085 if(LibIcal_PATCH_VERSION) 0086 set(LibIcal_VERSION "${LibIcal_VERSION}.${LibIcal_PATCH_VERSION}") 0087 endif() 0088 endif() 0089 endif() 0090 0091 # For compatibility 0092 string(REGEX REPLACE "^([0-9]).[0-9]$" "\\1" LibIcal_MAJOR_VERSION "${LibIcal_VERSION}") 0093 string(REGEX REPLACE "^[0-9].([0-9])$" "\\1" LibIcal_MINOR_VERSION "${LibIcal_VERSION}") 0094 0095 if(NOT LibIcal_VERSION VERSION_LESS 0.46) 0096 set(USE_ICAL_0_46 TRUE) 0097 endif() 0098 if(NOT LibIcal_VERSION VERSION_LESS 1.00) 0099 set(USE_ICAL_1_0 TRUE) 0100 endif() 0101 0102 include(FindPackageHandleStandardArgs) 0103 0104 find_package_handle_standard_args(LibIcal 0105 FOUND_VAR LibIcal_FOUND 0106 REQUIRED_VARS LibIcal_LIBRARIES LibIcal_INCLUDE_DIRS 0107 VERSION_VAR LibIcal_VERSION 0108 ) 0109 0110 # Internal 0111 if(LibIcal_FOUND AND NOT TARGET LibIcalss) 0112 add_library(LibIcalss UNKNOWN IMPORTED) 0113 set_target_properties(LibIcalss PROPERTIES 0114 IMPORTED_LOCATION "${LibIcalss_LIBRARY}") 0115 endif() 0116 if(LibIcal_FOUND AND NOT TARGET LibIcalvcal) 0117 add_library(LibIcalvcal UNKNOWN IMPORTED) 0118 set_target_properties(LibIcalvcal PROPERTIES 0119 IMPORTED_LOCATION "${LibIcalvcal_LIBRARY}") 0120 endif() 0121 0122 # Public Target 0123 if(LibIcal_FOUND AND NOT TARGET LibIcal) 0124 add_library(LibIcal UNKNOWN IMPORTED) 0125 set_target_properties(LibIcal PROPERTIES 0126 IMPORTED_LOCATION "${LibIcal_LIBRARY}" 0127 INTERFACE_INCLUDE_DIRECTORIES "${LibIcal_INCLUDE_DIRS}" 0128 INTERFACE_LINK_LIBRARIES "LibIcalss;LibIcalvcal" 0129 ) 0130 endif() 0131 0132 mark_as_advanced(LibIcal_INCLUDE_DIRS LibIcal_LIBRARY LibIcalss_LIBRARY LibIcalvcal_LIBRARY LibIcal_LIBRARIES) 0133 0134 include(FeatureSummary) 0135 set_package_properties(LibIcal PROPERTIES 0136 URL "https://github.com/libical/libical" 0137 DESCRIPTION "Implementation of iCalendar protocols and data formats" 0138 )