Changeset: 9646a29e5500 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/9646a29e5500
Added Files:
        cmake/Modules/FindHTSLIB.cmake
Modified Files:
        cmake/monetdb-defines.cmake
        cmake/monetdb-findpackages.cmake
        cmake/monetdb-functions.cmake
        cmake/monetdb-options.cmake
Branch: samloader
Log Message:

add cmake support for detecting htslib


diffs (102 lines):

diff --git a/cmake/Modules/FindHTSLIB.cmake b/cmake/Modules/FindHTSLIB.cmake
new file mode 100644
--- /dev/null
+++ b/cmake/Modules/FindHTSLIB.cmake
@@ -0,0 +1,47 @@
+# - Find htslib
+# Find the native htslib headers and libraries.
+#
+# HTSLIB_INCLUDE_DIRS  - where to find hts.h, etc.
+# HTSLIB_LIBRARIES     - List of libraries when using htslib.
+# HTSLIB_FOUND - True if htslib found.
+
+find_package(PkgConfig QUIET)
+pkg_check_modules(PC_HTSLIB QUIET htslib>=1.10)
+
+if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" OR PC_HTSLIB_FOUND)
+  if(NOT WIN32)
+
+    # Look for the header file.
+    find_path(HTSLIB_INCLUDE_DIR NAMES htslib/hts.h
+      HINTS
+      ${PC_HTSLIB_INCLUDEDIR}
+      ${PC_HTSLIB_INCLUDE_DIRS}
+      PATH_SUFFIXES htslib
+      )
+
+    # Look for the library.
+    find_library(HTSLIB_LIBRARIES NAMES hts
+      HINTS
+      ${PC_HTSLIB_LIBDIR}
+      ${PC_HTSLIB_LIBRARY_DIRS}
+      )
+
+  endif()
+endif()
+
+# Handle the QUIETLY and REQUIRED arguments and set HTSLIB_FOUND to TRUE if 
all listed variables are TRUE.
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(HTSLIB DEFAULT_MSG HTSLIB_LIBRARIES 
HTSLIB_INCLUDE_DIR)
+
+mark_as_advanced(HTSLIB_INCLUDE_DIR HTSLIB_LIBRARIES)
+
+if(HTSLIB_FOUND)
+  add_library(HTSLIB::HTSLIB UNKNOWN IMPORTED)
+  set_target_properties(HTSLIB::HTSLIB
+    PROPERTIES
+    INTERFACE_INCLUDE_DIRECTORIES "${HTSLIB_INCLUDE_DIR}")
+  set_target_properties(HTSLIB::HTSLIB
+    PROPERTIES
+    IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+    IMPORTED_LOCATION "${HTSLIB_LIBRARIES}")
+endif()
diff --git a/cmake/monetdb-defines.cmake b/cmake/monetdb-defines.cmake
--- a/cmake/monetdb-defines.cmake
+++ b/cmake/monetdb-defines.cmake
@@ -150,6 +150,7 @@ macro(monetdb_macro_variables)
   set(SANITIZER ${SANITIZER})
   set(HAVE_RTREE ${RTREE_FOUND})
   set(HAVE_OPENSSL ${OPENSSL_FOUND})
+  set(HAVE_HTSLIB ${HTSLIB_FOUND})
 
   set(BUILD_TYPE "${CMAKE_BUILD_TYPE}")
   if(CMAKE_BUILD_TYPE)
diff --git a/cmake/monetdb-findpackages.cmake b/cmake/monetdb-findpackages.cmake
--- a/cmake/monetdb-findpackages.cmake
+++ b/cmake/monetdb-findpackages.cmake
@@ -138,6 +138,10 @@ if(WITH_OPENSSL)
   find_package(OpenSSL 1.1.1)
 endif()
 
+if(WITH_HTSLIB)
+  find_package(HTSLIB)
+endif()
+
 find_package(Sphinx)
 find_package(Semodule)
 find_package(Awk)
diff --git a/cmake/monetdb-functions.cmake b/cmake/monetdb-functions.cmake
--- a/cmake/monetdb-functions.cmake
+++ b/cmake/monetdb-functions.cmake
@@ -81,6 +81,7 @@ function(monetdb_cmake_summary)
     message(STATUS "Linux distro: ${LINUX_DISTRO}")
     message(STATUS "Linux distro version: ${LINUX_DISTRO_VERSION}")
   endif()
+  message(STATUS "hts library: ${HTSLIB_FOUND}")
   message(STATUS "Iconv library: ${Iconv_FOUND}")
   message(STATUS "Pthread library: ${CMAKE_USE_PTHREADS_INIT}")
   message(STATUS "Pcre library: ${PCRE_FOUND}")
diff --git a/cmake/monetdb-options.cmake b/cmake/monetdb-options.cmake
--- a/cmake/monetdb-options.cmake
+++ b/cmake/monetdb-options.cmake
@@ -149,6 +149,10 @@ option(WITH_OPENSSL
   "Include TLS support"
   ON)
 
+option(WITH_HTSLIB
+  "Include htslib support"
+  ON)
+
 option(CMAKE_SUMMARY
   "Show a summary of the cmake configuration (for debug purposes)"
   OFF)
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to