From f6778a0a11526121ad843456835d6c9b53b17547 Mon Sep 17 00:00:00 2001 From: Andrew D Smith Date: Tue, 16 Dec 2025 18:32:13 -0800 Subject: [PATCH 1/3] cmake/FindLIBDEFLATE.cmake: adding --- cmake/FindLIBDEFLATE.cmake | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 cmake/FindLIBDEFLATE.cmake diff --git a/cmake/FindLIBDEFLATE.cmake b/cmake/FindLIBDEFLATE.cmake new file mode 100644 index 0000000..5584ebc --- /dev/null +++ b/cmake/FindLIBDEFLATE.cmake @@ -0,0 +1,49 @@ +# SPDX-License-Identifier: GPL-3.0-or-later; (c) 2025 Andrew D Smith (author) +#[=======================================================================[.rst: +FindLIBDEFLATE +-------------- + +Find the native libdeflate includes and library. + +#]=======================================================================] + +# FindLIBDEFLATE.cmake +# Custom CMake module to find libdeflate + +# Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES +# ADS: this is taken from the FindBoost.cmake file +if(LIBDEFLATE_USE_STATIC_LIBS) + set(_libdeflate_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES + ${CMAKE_FIND_LIBRARY_SUFFIXES} + ) + if(WIN32) + list(INSERT CMAKE_FIND_LIBRARY_SUFFIXES 0 .lib .a) + else() + set(CMAKE_FIND_LIBRARY_SUFFIXES .a) + endif() +endif() + +find_path(LIBDEFLATE_INCLUDE_DIR NAMES libdeflate.h) +find_library(LIBDEFLATE_LIBRARY NAMES deflate libdeflate) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(LIBDEFLATE + REQUIRED_VARS LIBDEFLATE_LIBRARY LIBDEFLATE_INCLUDE_DIR + VERSION_VAR LIBDEFLATE_VERSION +) + +if(LIBDEFLATE_FOUND AND NOT TARGET LIBDEFLATE::LIBDEFLATE) + add_library(LIBDEFLATE::LIBDEFLATE UNKNOWN IMPORTED) + set_target_properties(LIBDEFLATE::LIBDEFLATE PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${LIBDEFLATE_INCLUDE_DIR}" + IMPORTED_LOCATION "${LIBDEFLATE_LIBRARY}" + ) +endif() + +# Restore the original find library ordering +# ADS: this is take from the FindBoost.cmake file +if(LIBDEFLATE_USE_STATIC_LIBS) + set(CMAKE_FIND_LIBRARY_SUFFIXES + ${_libdeflate_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES} + ) +endif() From 15229ac020f1b56acf06e714b0cb6f96e02deda2 Mon Sep 17 00:00:00 2001 From: Andrew D Smith Date: Tue, 16 Dec 2025 18:36:32 -0800 Subject: [PATCH 2/3] src/bamxx: updating submodule --- src/bamxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bamxx b/src/bamxx index 684f4cd..a15ac9b 160000 --- a/src/bamxx +++ b/src/bamxx @@ -1 +1 @@ -Subproject commit 684f4cd6956b384632a4b4778ffc57d256c46a9a +Subproject commit a15ac9b86d87fea0df8c040ddf75122f7401ec92 From 95ec67c1b0990f5ba6df6b3cb2014dbde663b5d5 Mon Sep 17 00:00:00 2001 From: Andrew D Smith Date: Tue, 16 Dec 2025 18:36:57 -0800 Subject: [PATCH 3/3] src/CMakeLists.txt: updating dependencies for targets --- src/CMakeLists.txt | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5fa17b8..403e378 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -13,16 +13,22 @@ # You should have received a copy of the GNU General Public License along with # this program. If not, see . +if(USE_LIBDEFLATE) + find_package(LIBDEFLATE REQUIRED) +endif() + find_package(HTSLIB REQUIRED) find_package(Threads REQUIRED) +find_package(ZLIB REQUIRED) -if(NOT TARGET bamxx) - add_subdirectory(bamxx) -endif() if(NOT TARGET smithlab_cpp) add_subdirectory(smithlab_cpp) endif() +if(NOT TARGET bamxx) + add_subdirectory(bamxx) +endif() + add_library(abismal_objs OBJECT abismal.cpp abismalidx.cpp @@ -33,8 +39,14 @@ target_link_libraries(abismal_objs PUBLIC bamxx smithlab_cpp HTSLIB::HTSLIB + ZLIB::ZLIB Threads::Threads ) +if(USE_LIBDEFLATE) + target_link_libraries(abismal_objs PUBLIC + LIBDEFLATE::LIBDEFLATE + ) +endif() # ADS: CMAKE_BINARY_DIR for config.h target_include_directories(abismal_objs PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}