Warning, /education/kstars/cmake/modules/FindINDI.cmake is written in an unsupported language. File is not indexed.
0001 # - Try to find INDI 0002 # Once done this will define 0003 # 0004 # INDI_FOUND - system has INDI 0005 # INDI_INCLUDE_DIR - the INDI include directory 0006 # For Android 0007 # INDI_CLIENT_ANDROID_LIBRARIES - Link to these for INDI Android client 0008 # For other platforms 0009 # INDI_LIBRARIES - Link to these for XML and INDI Common support (INDI < 1.4 only) 0010 # INDI_CLIENT_LIBRARIES - Link to these to build INDI clients 0011 # INDI_CLIENT_QT_LIBRARIES - Link to these to build INDI clients with Qt5 backend 0012 # INDI_CLIENT_ANDROID_LIBRARIES - Link to these to build INDI clients with Qt5 backend on Android 0013 # SPDX-FileCopyrightText: 2012-2017 Jasem Mutlaq <mutlaqja@ikarustech.com> 0014 # SPDX-FileCopyrightText: 2012 Pino Toscano <pino@kde.org> 0015 # 0016 # Based on FindLibfacile: 0017 # SPDX-FileCopyrightText: Carsten Niehaus, <cniehaus@gmx.de> 0018 # 0019 # SPDX-License-Identifier: BSD-3-Clause 0020 0021 macro(_INDI_check_version) 0022 file(READ "${INDI_INCLUDE_DIR}/indiapi.h" _INDI_version_header) 0023 0024 string(REGEX MATCH "#define INDI_VERSION_MAJOR[ \t]+([0-9]+)" _INDI_version_major_match "${_INDI_version_header}") 0025 set(INDI_VERSION_MAJOR "${CMAKE_MATCH_1}") 0026 string(REGEX MATCH "#define INDI_VERSION_MINOR[ \t]+([0-9]+)" _INDI_version_minor_match "${_INDI_version_header}") 0027 set(INDI_VERSION_MINOR "${CMAKE_MATCH_1}") 0028 string(REGEX MATCH "#define INDI_VERSION_RELEASE[ \t]+([0-9]+)" _INDI_version_release_match "${_INDI_version_header}") 0029 set(INDI_VERSION_RELEASE "${CMAKE_MATCH_1}") 0030 0031 set(INDI_VERSION ${INDI_VERSION_MAJOR}.${INDI_VERSION_MINOR}.${INDI_VERSION_RELEASE}) 0032 if(${INDI_VERSION} VERSION_LESS ${INDI_FIND_VERSION}) 0033 set(INDI_VERSION_OK FALSE) 0034 else(${INDI_VERSION} VERSION_LESS ${INDI_FIND_VERSION}) 0035 set(INDI_VERSION_OK TRUE) 0036 endif(${INDI_VERSION} VERSION_LESS ${INDI_FIND_VERSION}) 0037 0038 if(NOT INDI_VERSION_OK) 0039 message(STATUS "INDI version ${INDI_VERSION} found in ${INDI_INCLUDE_DIR}, " 0040 "but at least version ${INDI_FIND_VERSION} is required") 0041 else(NOT INDI_VERSION_OK) 0042 mark_as_advanced(INDI_VERSION_MAJOR INDI_VERSION_MINOR INDI_VERSION_RELEASE) 0043 endif(NOT INDI_VERSION_OK) 0044 endmacro(_INDI_check_version) 0045 0046 if(NOT INDI_FOUND) 0047 if (NOT WIN32 AND NOT ANDROID) 0048 find_package(PkgConfig) 0049 if (PKG_CONFIG_FOUND) 0050 pkg_check_modules(PC_INDI libindi) 0051 endif (PKG_CONFIG_FOUND) 0052 endif (NOT WIN32 AND NOT ANDROID) 0053 0054 find_path(INDI_INCLUDE_DIR indidevapi.h 0055 PATH_SUFFIXES libindi 0056 PATHS ${PC_INDI_INCLUDE_DIRS} 0057 ${_obIncDir} 0058 ${GNUWIN32_DIR}/include 0059 ) 0060 0061 if (INDI_INCLUDE_DIR) 0062 _INDI_check_version() 0063 0064 if(ANDROID) 0065 find_library(INDI_CLIENT_ANDROID_LIBRARIES NAMES indiclientandroid 0066 PATHS 0067 ${BUILD_KSTARSLITE_DIR}/android_libs/${ANDROID_ARCHITECTURE}/ 0068 ) 0069 else(ANDROID) 0070 0071 if (INDI_VERSION VERSION_LESS "1.4") 0072 find_library(INDI_LIBRARIES NAMES indi 0073 PATHS 0074 ${PC_INDI_LIBRARY_DIRS} 0075 ${_obLinkDir} 0076 ${GNUWIN32_DIR}/lib 0077 ) 0078 endif(INDI_VERSION VERSION_LESS "1.4") 0079 0080 find_library(INDI_CLIENT_LIBRARIES NAMES indiclient 0081 PATHS 0082 ${PC_INDI_LIBRARY_DIRS} 0083 ${_obLinkDir} 0084 ${GNUWIN32_DIR}/lib 0085 ) 0086 0087 find_library(INDI_CLIENT_QT_LIBRARIES NAMES indiclientqt 0088 PATHS 0089 ${PC_INDI_LIBRARY_DIRS} 0090 ${_obLinkDir} 0091 ${GNUWIN32_DIR}/lib 0092 ) 0093 endif(ANDROID) 0094 endif(INDI_INCLUDE_DIR) 0095 0096 if(ANDROID) 0097 if(INDI_INCLUDE_DIR AND INDI_CLIENT_ANDROID_LIBRARIES) 0098 set(INDI_FOUND TRUE) 0099 else() 0100 set(INDI_FOUND FALSE) 0101 endif() 0102 else(ANDROID) 0103 if (INDI_INCLUDE_DIR AND (INDI_VERSION VERSION_GREATER "1.4" OR INDI_LIBRARIES) AND (INDI_CLIENT_LIBRARIES OR INDI_CLIENT_QT_LIBRARIES) AND INDI_VERSION_OK) 0104 # If INDI is found we need to make sure on WIN32 we have INDI Client Qt backend otherwise we can't use INDI 0105 if (WIN32) 0106 if (INDI_CLIENT_QT_LIBRARIES) 0107 set(INDI_FOUND TRUE) 0108 else(INDI_CLIENT_QT_LIBRARIES) 0109 set(INDI_FOUND FALSE) 0110 endif(INDI_CLIENT_QT_LIBRARIES) 0111 else (WIN32) 0112 set(INDI_FOUND TRUE) 0113 endif(WIN32) 0114 else(INDI_INCLUDE_DIR AND (INDI_VERSION VERSION_GREATER "1.4" OR INDI_LIBRARIES) AND (INDI_CLIENT_LIBRARIES OR INDI_CLIENT_QT_LIBRARIES) AND INDI_VERSION_OK) 0115 set(INDI_FOUND FALSE) 0116 endif(INDI_INCLUDE_DIR AND (INDI_VERSION VERSION_GREATER "1.4" OR INDI_LIBRARIES) AND (INDI_CLIENT_LIBRARIES OR INDI_CLIENT_QT_LIBRARIES) AND INDI_VERSION_OK) 0117 endif(ANDROID) 0118 0119 if (INDI_FOUND) 0120 if (NOT INDI_FIND_QUIETLY) 0121 if(ANDROID) 0122 message(STATUS "Found INDI Android Client: ${INDI_CLIENT_ANDROID_LIBRARIES}") 0123 else(ANDROID) 0124 message(STATUS "Found INDI: ${INDI_LIBRARIES}, ${INDI_INCLUDE_DIR}") 0125 0126 if (INDI_CLIENT_LIBRARIES) 0127 message(STATUS "Found INDI Client Library: ${INDI_CLIENT_LIBRARIES}") 0128 endif (INDI_CLIENT_LIBRARIES) 0129 if (INDI_CLIENT_QT_LIBRARIES) 0130 message(STATUS "Found INDI Qt5 Client Library: ${INDI_CLIENT_QT_LIBRARIES}") 0131 endif (INDI_CLIENT_QT_LIBRARIES) 0132 endif(ANDROID) 0133 endif (NOT INDI_FIND_QUIETLY) 0134 else (INDI_FOUND) 0135 if (INDI_FIND_REQUIRED) 0136 message(FATAL_ERROR "INDI not found. Please install INDI and try again.") 0137 endif (INDI_FIND_REQUIRED) 0138 endif (INDI_FOUND) 0139 0140 if(ANDROID) 0141 mark_as_advanced(INDI_INCLUDE_DIR INDI_CLIENT_ANDROID_LIBRARIES) 0142 else(ANDROID) 0143 if (INDI_VERSION VERSION_LESS "1.4") 0144 mark_as_advanced(INDI_INCLUDE_DIR INDI_LIBRARIES INDI_CLIENT_LIBRARIES INDI_CLIENT_QT_LIBRARIES) 0145 else(INDI_VERSION VERSION_LESS "1.4") 0146 mark_as_advanced(INDI_INCLUDE_DIR INDI_CLIENT_LIBRARIES INDI_CLIENT_QT_LIBRARIES) 0147 endif(INDI_VERSION VERSION_LESS "1.4") 0148 endif(ANDROID) 0149 endif(NOT INDI_FOUND) 0150 0151 if (INDI_INCLUDE_DIR) 0152 # in cache already 0153 _INDI_check_version() 0154 if(ANDROID) 0155 if(INDI_CLIENT_ANDROID_LIBRARIES) 0156 set(INDI_FOUND ${INDI_VERSION_OK}) 0157 message(STATUS "Found INDI: ${INDI_CLIENT_ANDROID_LIBRARIES}") 0158 endif(INDI_CLIENT_ANDROID_LIBRARIES) 0159 else(ANDROID) 0160 if (INDI_VERSION VERSION_LESS "1.4" AND INDI_LIBRARIES AND (INDI_CLIENT_LIBRARIES OR INDI_CLIENT_QT_LIBRARIES)) 0161 set(INDI_FOUND ${INDI_VERSION_OK}) 0162 message(STATUS "Found INDI: ${INDI_LIBRARIES}, ${INDI_CLIENT_LIBRARIES}, ${INDI_INCLUDE_DIR}") 0163 elseif (INDI_CLIENT_LIBRARIES OR INDI_CLIENT_QT_LIBRARIES) 0164 set(INDI_FOUND ${INDI_VERSION_OK}) 0165 message(STATUS "Found INDI: ${INDI_CLIENT_LIBRARIES}, ${INDI_INCLUDE_DIR}") 0166 endif(INDI_VERSION VERSION_LESS "1.4" AND INDI_LIBRARIES AND (INDI_CLIENT_LIBRARIES OR INDI_CLIENT_QT_LIBRARIES)) 0167 endif(ANDROID) 0168 endif(INDI_INCLUDE_DIR)