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