Warning, /education/labplot/cmake/FindCantor.cmake is written in an unsupported language. File is not indexed.
0001 #=============================================================================
0002 # SPDX-FileCopyrightText: 2019 Harald Sitter <sitter@kde.org>
0003 #
0004 # SPDX-License-Identifier: BSD-3-Clause
0005 #=============================================================================
0006
0007 include(FeatureSummary)
0008 SET_PACKAGE_PROPERTIES(Cantor PROPERTIES
0009 DESCRIPTION "Provide a nice Interface for doing Mathematics and Scientific Computing"
0010 URL "https://edu.kde.org/cantor/"
0011 )
0012 # Try to find via config. If that isn't available fall back to manual lookup.
0013 # Config is vastly preferable because it will also make sure link dependencies
0014 # are found and actually in the target link interface.
0015 find_package(Cantor ${Cantor_FIND_VERSION} ${Cantor_FIND_REQUIRED} CONFIG)
0016 if(Cantor_FOUND)
0017 return()
0018 endif()
0019
0020 find_library(Cantor_LIBRARIES cantorlibs)
0021 find_path(Cantor_INCLUDE_DIR cantor/worksheetaccess.h)
0022
0023 if(EXISTS "${Cantor_INCLUDE_DIR}/cantor/cantorlibs_version.h")
0024 file(READ "${Cantor_INCLUDE_DIR}/cantor/cantorlibs_version.h" Cantorlibs_version_H_CONTENT)
0025
0026 string(REGEX MATCH "#define CANTOR_VERSION_MAJOR[ ]+[0-9]+" Cantor_VERSION_MAJOR_MATCH ${Cantorlibs_version_H_CONTENT})
0027 string(REGEX MATCH "#define CANTOR_VERSION_MINOR[ ]+[0-9]+" Cantor_VERSION_MINOR_MATCH ${Cantorlibs_version_H_CONTENT})
0028 string(REGEX MATCH "#define CANTOR_VERSION_PATCH[ ]+[0-9]+" Cantor_VERSION_PATCH_MATCH ${Cantorlibs_version_H_CONTENT})
0029
0030 string(REGEX REPLACE ".*_MAJOR[ ]+(.*)" "\\1" Cantor_VERSION_MAJOR ${Cantor_VERSION_MAJOR_MATCH})
0031 string(REGEX REPLACE ".*_MINOR[ ]+(.*)" "\\1" Cantor_VERSION_MINOR ${Cantor_VERSION_MINOR_MATCH})
0032 string(REGEX REPLACE ".*_PATCH[ ]+(.*)" "\\1" Cantor_VERSION_PATCH ${Cantor_VERSION_PATCH_MATCH})
0033
0034 set(Cantor_VERSION "${Cantor_VERSION_MAJOR}.${Cantor_VERSION_MINOR}.${Cantor_VERSION_PATCH}")
0035 else()
0036 set(Cantor_VERSION "0.0.0")
0037 endif()
0038
0039 include(FindPackageHandleStandardArgs)
0040 find_package_handle_standard_args(Cantor
0041 FOUND_VAR
0042 Cantor_FOUND
0043 REQUIRED_VARS
0044 Cantor_LIBRARIES
0045 Cantor_INCLUDE_DIR
0046 VERSION_VAR
0047 Cantor_VERSION
0048 )
0049
0050 if(Cantor_FOUND AND NOT TARGET Cantor::cantorlibs)
0051 add_library(Cantor::cantorlibs UNKNOWN IMPORTED)
0052 set_target_properties(Cantor::cantorlibs PROPERTIES
0053 IMPORTED_LOCATION "${Cantor_LIBRARIES}"
0054 INTERFACE_INCLUDE_DIRECTORIES "${Cantor_INCLUDE_DIR}"
0055 )
0056 endif()
0057
0058 mark_as_advanced(Cantor_LIBRARIES Cantor_INCLUDE_DIR Cantor_VERSION)
0059