1# Retrieved from https://github.com/microsoft/vcpkg/blob/3b433e5081f35a32331492d98a8b0c1c2477048e/ports/suitesparse/FindCXSparse.cmake 2# 3# Distributed under the OSI-approved BSD 3-Clause License. 4# 5#.rst: 6# FindCXSparse 7# -------- 8# 9# Find the CXSparse library 10# 11# Result Variables 12# ^^^^^^^^^^^^^^^^ 13# 14# The following variables will be defined: 15# 16# ``CXSparse_FOUND`` 17# True if CXSparse found on the local system 18# 19# ``CXSPARSE_FOUND`` 20# True if CXSparse found on the local system 21# 22# ``CXSparse_INCLUDE_DIRS`` 23# Location of CXSparse header files 24# 25# ``CXSPARSE_INCLUDE_DIRS`` 26# Location of CXSparse header files 27# 28# ``CXSparse_LIBRARIES`` 29# List of the CXSparse libraries found 30# 31# ``CXSPARSE_LIBRARIES`` 32# List of the CXSparse libraries found 33# 34# 35 36include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake) 37include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake) 38 39find_path(CXSPARSE_INCLUDE_DIR NAMES cs.h PATH_SUFFIXES suitesparse) 40 41find_library(CXSPARSE_LIBRARY_RELEASE NAMES cxsparse libcxsparse) 42find_library(CXSPARSE_LIBRARY_DEBUG NAMES cxsparsed libcxsparsed) 43select_library_configurations(CXSPARSE) 44 45if(CXSPARSE_INCLUDE_DIR) 46 set(CXSPARSE_VERSION_FILE ${CXSPARSE_INCLUDE_DIR}/cs.h) 47 file(READ ${CXSPARSE_INCLUDE_DIR}/cs.h CXSPARSE_VERSION_FILE_CONTENTS) 48 49 string(REGEX MATCH "#define CS_VER [0-9]+" 50 CXSPARSE_MAIN_VERSION "${CXSPARSE_VERSION_FILE_CONTENTS}") 51 string(REGEX REPLACE "#define CS_VER ([0-9]+)" "\\1" 52 CXSPARSE_MAIN_VERSION "${CXSPARSE_MAIN_VERSION}") 53 54 string(REGEX MATCH "#define CS_SUBVER [0-9]+" 55 CXSPARSE_SUB_VERSION "${CXSPARSE_VERSION_FILE_CONTENTS}") 56 string(REGEX REPLACE "#define CS_SUBVER ([0-9]+)" "\\1" 57 CXSPARSE_SUB_VERSION "${CXSPARSE_SUB_VERSION}") 58 59 string(REGEX MATCH "#define CS_SUBSUB [0-9]+" 60 CXSPARSE_SUBSUB_VERSION "${CXSPARSE_VERSION_FILE_CONTENTS}") 61 string(REGEX REPLACE "#define CS_SUBSUB ([0-9]+)" "\\1" 62 CXSPARSE_SUBSUB_VERSION "${CXSPARSE_SUBSUB_VERSION}") 63 64 set(CXSPARSE_VERSION "${CXSPARSE_MAIN_VERSION}.${CXSPARSE_SUB_VERSION}.${CXSPARSE_SUBSUB_VERSION}") 65endif() 66 67include(FindPackageHandleStandardArgs) 68find_package_handle_standard_args(CXSparse 69 REQUIRED_VARS CXSPARSE_INCLUDE_DIR CXSPARSE_LIBRARIES 70 VERSION_VAR CXSPARSE_VERSION) 71 72set(CXSPARSE_FOUND ${CXSparse_FOUND}) 73set(CXSPARSE_INCLUDE_DIRS ${CXSPARSE_INCLUDE_DIR}) 74set(CXSparse_INCLUDE_DIRS ${CXSPARSE_INCLUDE_DIR}) 75set(CXSparse_LIBRARIES ${CXSPARSE_LIBRARIES}) 76