aboutsummaryrefslogtreecommitdiff
path: root/ports/suitesparse/FindCXSparse.cmake
diff options
context:
space:
mode:
authorBilly Robert O'Neal III <bion@microsoft.com>2020-08-28 16:31:27 -0700
committerBilly Robert O'Neal III <bion@microsoft.com>2020-08-28 16:31:27 -0700
commitc828f3634723996e6031fb2e3c3d1ac3f4de0cad (patch)
treeb3fe00a043d5b9351868a0d1f8aead41bb52d2be /ports/suitesparse/FindCXSparse.cmake
parent6635a2fa596ca457565eebc2a45664309cd24d77 (diff)
parentf3f329a048eaff759c1992c458f2e12351486bc7 (diff)
downloadvcpkg-c828f3634723996e6031fb2e3c3d1ac3f4de0cad.tar.gz
vcpkg-c828f3634723996e6031fb2e3c3d1ac3f4de0cad.zip
Merge remote-tracking branch 'origin/master' into HEADupdate-geos-381
Diffstat (limited to 'ports/suitesparse/FindCXSparse.cmake')
-rw-r--r--ports/suitesparse/FindCXSparse.cmake75
1 files changed, 75 insertions, 0 deletions
diff --git a/ports/suitesparse/FindCXSparse.cmake b/ports/suitesparse/FindCXSparse.cmake
new file mode 100644
index 000000000..94ba41e04
--- /dev/null
+++ b/ports/suitesparse/FindCXSparse.cmake
@@ -0,0 +1,75 @@
+# Distributed under the OSI-approved BSD 3-Clause License.
+#
+#.rst:
+# FindCXSparse
+# --------
+#
+# Find the CXSparse library
+#
+# Result Variables
+# ^^^^^^^^^^^^^^^^
+#
+# The following variables will be defined:
+#
+# ``CXSparse_FOUND``
+# True if CXSparse found on the local system
+#
+# ``CXSPARSE_FOUND``
+# True if CXSparse found on the local system
+#
+# ``CXSparse_INCLUDE_DIRS``
+# Location of CXSparse header files
+#
+# ``CXSPARSE_INCLUDE_DIRS``
+# Location of CXSparse header files
+#
+# ``CXSparse_LIBRARIES``
+# List of the CXSparse libraries found
+#
+# ``CXSPARSE_LIBRARIES``
+# List of the CXSparse libraries found
+#
+#
+
+include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
+include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake)
+include(${CMAKE_ROOT}/Modules/CMakeFindDependencyMacro.cmake)
+
+find_path(CXSPARSE_INCLUDE_DIR NAMES cs.h)
+
+find_library(CXSPARSE_LIBRARY_RELEASE NAMES cxsparse libcxsparse)
+find_library(CXSPARSE_LIBRARY_DEBUG NAMES cxsparsed libcxsparsed)
+select_library_configurations(CXSPARSE)
+
+if(CXSPARSE_INCLUDE_DIR)
+ set(CXSPARSE_VERSION_FILE ${CXSPARSE_INCLUDE_DIR}/cs.h)
+ file(READ ${CXSPARSE_INCLUDE_DIR}/cs.h CXSPARSE_VERSION_FILE_CONTENTS)
+
+ string(REGEX MATCH "#define CS_VER [0-9]+"
+ CXSPARSE_MAIN_VERSION "${CXSPARSE_VERSION_FILE_CONTENTS}")
+ string(REGEX REPLACE "#define CS_VER ([0-9]+)" "\\1"
+ CXSPARSE_MAIN_VERSION "${CXSPARSE_MAIN_VERSION}")
+
+ string(REGEX MATCH "#define CS_SUBVER [0-9]+"
+ CXSPARSE_SUB_VERSION "${CXSPARSE_VERSION_FILE_CONTENTS}")
+ string(REGEX REPLACE "#define CS_SUBVER ([0-9]+)" "\\1"
+ CXSPARSE_SUB_VERSION "${CXSPARSE_SUB_VERSION}")
+
+ string(REGEX MATCH "#define CS_SUBSUB [0-9]+"
+ CXSPARSE_SUBSUB_VERSION "${CXSPARSE_VERSION_FILE_CONTENTS}")
+ string(REGEX REPLACE "#define CS_SUBSUB ([0-9]+)" "\\1"
+ CXSPARSE_SUBSUB_VERSION "${CXSPARSE_SUBSUB_VERSION}")
+
+ set(CXSPARSE_VERSION "${CXSPARSE_MAIN_VERSION}.${CXSPARSE_SUB_VERSION}.${CXSPARSE_SUBSUB_VERSION}")
+endif()
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(CXSparse
+ REQUIRED_VARS CXSPARSE_INCLUDE_DIRS CXSPARSE_LIBRARIES
+ VERSION_VAR CXSPARSE_VERSION)
+
+set(CXSPARSE_FOUND ${CXSparse_FOUND})
+set(CXSPARSE_INCLUDE_DIRS ${CXSPARSE_INCLUDE_DIR})
+set(CXSPARSE_LIBRARIES ${CXSPARSE_LIBRARY})
+set(CXSparse_INCLUDE_DIRS ${CXSPARSE_INCLUDE_DIR})
+set(CXSparse_LIBRARIES ${CXSPARSE_LIBRARY})