From 56cafce091aa85b7d303643eb0b02fb05e4c09bd Mon Sep 17 00:00:00 2001 From: Enrico Seiler Date: Fri, 22 Dec 2023 14:08:08 +0100 Subject: [PATCH] [WIP] Update --- .cmake-format.yaml | 70 ++++ .github/workflows/ci_coverage.yml | 2 +- .github/workflows/ci_linux.yml | 11 +- .github/workflows/ci_macos.yml | 2 +- .github/workflows/ci_misc.yml | 2 +- .github/workflows/ci_workflows.yml | 2 +- .gitmodules | 27 -- build_system/CPM.cmake | 23 ++ build_system/package-lock.cmake | 62 +++ build_system/raptor-config.cmake | 369 ++---------------- doc/setup/index.md | 2 +- doc/usage/03_layout/index.md | 6 - lib/chopper | 1 - lib/hibf | 1 - lib/robin-hood-hashing | 1 - lib/seqan3 | 1 - lib/sharg-parser | 1 - lib/simde | 1 - lib/submodules/cereal | 1 - lib/submodules/sdsl-lite | 1 - lib/tool_description_lib | 1 - src/CMakeLists.txt | 52 --- src/layout/raptor_layout.cpp | 2 +- src/prepare/compute_minimiser.cpp | 4 +- test/data/128bins19window.index | Bin 69022 -> 68758 bytes test/data/128bins23window.index | Bin 27806 -> 27542 bytes test/data/1bins19window.index | Bin 24343 -> 24333 bytes test/data/1bins23window.index | Bin 7335 -> 7325 bytes test/data/64bins19window.index | Bin 34566 -> 34430 bytes test/data/64bins23window.index | Bin 13958 -> 13822 bytes test/data/datasources.cmake | 36 +- test/data/hibf/128bins.pack | 1 + test/data/hibf/128bins19window.hibf | Bin 477470 -> 476694 bytes test/data/hibf/128bins23window.hibf | Bin 213910 -> 213134 bytes test/data/hibf/1bins.pack | 1 + test/data/hibf/1bins19window.hibf | Bin 4655 -> 4645 bytes test/data/hibf/1bins23window.hibf | Bin 2399 -> 2389 bytes test/data/hibf/64bins.pack | 1 + test/data/hibf/64bins19window.hibf | Bin 35638 -> 35502 bytes test/data/hibf/64bins23window.hibf | Bin 15030 -> 14894 bytes test/data/hibf/three_levels.hibf | Bin 854606 -> 853958 bytes test/data/hibf/three_levels.pack | 1 + test/data/test.layout | 1 + test/header/CMakeLists.txt | 2 +- test/util/collect_compile_stats.sh | 2 +- .../Genome_Biology/parse_user_bin_ids.hpp | 2 +- .../src/Genome_Biology/compare_to_truth.cpp | 4 +- .../normalise_yara_truth_file.cpp | 4 +- .../src/iScience/count_minimiser.cpp | 4 +- .../src/iScience/threshold_info.cpp | 4 +- util/iScience/thresholding/CMakeLists.txt | 10 +- 51 files changed, 228 insertions(+), 490 deletions(-) create mode 100644 build_system/CPM.cmake create mode 100644 build_system/package-lock.cmake delete mode 160000 lib/chopper delete mode 160000 lib/hibf delete mode 160000 lib/robin-hood-hashing delete mode 160000 lib/seqan3 delete mode 160000 lib/sharg-parser delete mode 160000 lib/simde delete mode 160000 lib/submodules/cereal delete mode 160000 lib/submodules/sdsl-lite delete mode 160000 lib/tool_description_lib diff --git a/.cmake-format.yaml b/.cmake-format.yaml index 2fb773c8..15c1d6bf 100644 --- a/.cmake-format.yaml +++ b/.cmake-format.yaml @@ -10,6 +10,76 @@ parse: URL: '*' URL_HASH: '*' CONFIGURE: '*' + cpmgetpackage: + pargs: 1 + spelling: CPMGetPackage + cpmaddpackage: + pargs: + nargs: '*' + flags: [] + spelling: CPMAddPackage + kwargs: &cpmaddpackagekwargs + NAME: 1 + FORCE: 1 + VERSION: 1 + GIT_TAG: 1 + DOWNLOAD_ONLY: 1 + GITHUB_REPOSITORY: 1 + GITLAB_REPOSITORY: 1 + GIT_REPOSITORY: 1 + SVN_REPOSITORY: 1 + SVN_REVISION: 1 + SOURCE_DIR: 1 + DOWNLOAD_COMMAND: 1 + FIND_PACKAGE_ARGUMENTS: 1 + NO_CACHE: 1 + GIT_SHALLOW: 1 + URL: 1 + URL_HASH: 1 + URL_MD5: 1 + DOWNLOAD_NAME: 1 + DOWNLOAD_NO_EXTRACT: 1 + HTTP_USERNAME: 1 + HTTP_PASSWORD: 1 + EXCLUDE_FROM_ALL: 1 + SYSTEM: 1 + SOURCE_SUBDIR: 1 + OPTIONS: + + cpmfindpackage: + pargs: + nargs: '*' + flags: [] + spelling: CPMFindPackage + kwargs: *cpmaddpackagekwargs + cpmdeclarepackage: + pargs: + nargs: '*' + flags: [] + spelling: CPMDeclarePackage + kwargs: *cpmaddpackagekwargs + packageproject: + pargs: + nargs: '*' + flags: [] + spelling: packageProject + kwargs: + NAME: 1 + VERSION: 1 + INCLUDE_DIR: 1 + INCLUDE_DESTINATION: 1 + BINARY_DIR: 1 + COMPATIBILITY: 1 + VERSION_HEADER: 1 + DEPENDENCIES: + + cpmusepackagelock: + pargs: 1 + spelling: CPMUsePackageLock + cpmregisterpackage: + pargs: 1 + spelling: CPMRegisterPackage + cpmgetpackageversion: + pargs: 2 + spelling: CPMGetPackageVersion _help_override_spec: - Override configurations per-command where available override_spec: {} diff --git a/.github/workflows/ci_coverage.yml b/.github/workflows/ci_coverage.yml index 7ed224bb..92dff613 100644 --- a/.github/workflows/ci_coverage.yml +++ b/.github/workflows/ci_coverage.yml @@ -74,7 +74,7 @@ jobs: cd build cmake ../raptor/test/${{ matrix.build }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ -DCMAKE_CXX_FLAGS="${{ matrix.cxx_flags }} -Wno-interference-size" \ - -DRAPTOR_NATIVE_BUILD=OFF + -DHIBF_NATIVE_BUILD=OFF make -j2 gtest_build - name: Build tests diff --git a/.github/workflows/ci_linux.yml b/.github/workflows/ci_linux.yml index 6369604c..07ca02a6 100644 --- a/.github/workflows/ci_linux.yml +++ b/.github/workflows/ci_linux.yml @@ -69,22 +69,13 @@ jobs: compiler: ${{ matrix.compiler }} ccache_size: 150M - - name: Install OpenMP - if: contains(matrix.name, 'clang') - run: install libomp-17-dev - - - name: Install CMake - uses: seqan/actions/setup-cmake@main - with: - cmake: 3.18.4 - - name: Configure tests run: | mkdir build cd build cmake ../raptor/test/${{ matrix.build }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ -DCMAKE_CXX_FLAGS="${{ matrix.cxx_flags }}" \ - -DRAPTOR_NATIVE_BUILD=OFF + -DHIBF_NATIVE_BUILD=OFF make -j2 gtest_build - name: Build tests diff --git a/.github/workflows/ci_macos.yml b/.github/workflows/ci_macos.yml index 5e6b6688..fce5fade 100644 --- a/.github/workflows/ci_macos.yml +++ b/.github/workflows/ci_macos.yml @@ -74,7 +74,7 @@ jobs: cd build cmake ../raptor/test/${{ matrix.build }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ -DCMAKE_CXX_FLAGS="${{ matrix.cxx_flags }} -Wno-interference-size" \ - -DRAPTOR_NATIVE_BUILD=OFF + -DHIBF_NATIVE_BUILD=OFF make -j2 gtest_build - name: Build tests diff --git a/.github/workflows/ci_misc.yml b/.github/workflows/ci_misc.yml index 9f3b873c..500d6eb1 100644 --- a/.github/workflows/ci_misc.yml +++ b/.github/workflows/ci_misc.yml @@ -80,7 +80,7 @@ jobs: cd build cmake ../raptor/test/${{ matrix.build }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ -DCMAKE_CXX_FLAGS="${{ matrix.cxx_flags }} -Wno-interference-size" \ - -DRAPTOR_NATIVE_BUILD=OFF + -DHIBF_NATIVE_BUILD=OFF case "${{ matrix.build }}" in snippet) make -j${{ matrix.build_threads }} gtest_build;; performance) make -j${{ matrix.build_threads }} gbenchmark_build;; diff --git a/.github/workflows/ci_workflows.yml b/.github/workflows/ci_workflows.yml index 5dc5fbca..e0dd5a84 100644 --- a/.github/workflows/ci_workflows.yml +++ b/.github/workflows/ci_workflows.yml @@ -77,7 +77,7 @@ jobs: cd build cmake ../raptor -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ -DCMAKE_CXX_FLAGS="${{ matrix.cxx_flags }} -Wno-interference-size" \ - -DRAPTOR_NATIVE_BUILD=OFF + -DHIBF_NATIVE_BUILD=OFF - name: Build Raptor run: | diff --git a/.gitmodules b/.gitmodules index 5b2b397e..c26c4266 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,30 +1,3 @@ -[submodule "lib/seqan3"] - path = lib/seqan3 - url = https://github.com/seqan/seqan3 -[submodule "lib/robin-hood-hashing"] - path = lib/robin-hood-hashing - url = https://github.com/martinus/robin-hood-hashing.git -[submodule "lib/submodules/cereal"] - path = lib/submodules/cereal - url = https://github.com/USCiLab/cereal -[submodule "lib/submodules/sdsl-lite"] - path = lib/submodules/sdsl-lite - url = https://github.com/xxsds/sdsl-lite -[submodule "lib/chopper"] - path = lib/chopper - url = https://github.com/seqan/chopper.git -[submodule "lib/simde"] - path = lib/simde - url = https://github.com/simd-everywhere/simde -[submodule "lib/sharg-parser"] - path = lib/sharg-parser - url = https://github.com/seqan/sharg-parser -[submodule "lib/tool_description_lib"] - path = lib/tool_description_lib - url = https://github.com/deNBI-cibi/tool_description_lib.git [submodule "include/raptor/contrib/std"] path = include/raptor/contrib/std url = https://github.com/seqan/seqan-std.git -[submodule "lib/hibf"] - path = lib/hibf - url = https://github.com/seqan/hibf.git diff --git a/build_system/CPM.cmake b/build_system/CPM.cmake new file mode 100644 index 00000000..94d83b47 --- /dev/null +++ b/build_system/CPM.cmake @@ -0,0 +1,23 @@ +# SPDX-License-Identifier: MIT +# +# SPDX-FileCopyrightText: Copyright (c) 2019-2023 Lars Melchior and contributors + +set (CPM_DOWNLOAD_VERSION 0.38.7) +set (CPM_HASH_SUM "83e5eb71b2bbb8b1f2ad38f1950287a057624e385c238f6087f94cdfc44af9c5") + +if (CPM_SOURCE_CACHE) + set (CPM_DOWNLOAD_LOCATION "${CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake") +elseif (DEFINED ENV{CPM_SOURCE_CACHE}) + set (CPM_DOWNLOAD_LOCATION "$ENV{CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake") +else () + set (CPM_DOWNLOAD_LOCATION "${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake") +endif () + +# Expand relative path. This is important if the provided path contains a tilde (~) +get_filename_component (CPM_DOWNLOAD_LOCATION ${CPM_DOWNLOAD_LOCATION} ABSOLUTE) + +file (DOWNLOAD https://github.com/cpm-cmake/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake + ${CPM_DOWNLOAD_LOCATION} EXPECTED_HASH SHA256=${CPM_HASH_SUM} +) + +include (${CPM_DOWNLOAD_LOCATION}) diff --git a/build_system/package-lock.cmake b/build_system/package-lock.cmake new file mode 100644 index 00000000..3d39c18a --- /dev/null +++ b/build_system/package-lock.cmake @@ -0,0 +1,62 @@ +# SPDX-FileCopyrightText: 2006-2023, Knut Reinert & Freie Universität Berlin +# SPDX-FileCopyrightText: 2016-2023, Knut Reinert & MPI für molekulare Genetik +# SPDX-License-Identifier: CC0-1.0 + +# CPM Package Lock +# This file should be committed to version control + +# hibf +set (RAPTOR_HIBF_VERSION 2075a68d10f571399b5ff885f0b4cb2c94845601) +CPMDeclarePackage (hibf + NAME hibf + GIT_TAG ${RAPTOR_HIBF_VERSION} + GITHUB_REPOSITORY seqan/hibf + SYSTEM TRUE + OPTIONS "INSTALL_HIBF OFF" +) +# sharg +set (RAPTOR_SHARG_VERSION 3e96d37387125bd876ace3fdd11a20039ed0d21c) +CPMDeclarePackage (sharg + NAME sharg + GIT_TAG ${RAPTOR_SHARG_VERSION} + GITHUB_REPOSITORY seqan/sharg-parser + SYSTEM TRUE + OPTIONS "INSTALL_SHARG OFF" "INSTALL_TDL OFF" +) +# seqan3 +set (RAPTOR_SEQAN3_VERSION 6268f1d11c58abf24c78c7f99a71817d13d5bddd) +CPMDeclarePackage (seqan3 + NAME seqan3 + GIT_TAG ${RAPTOR_SEQAN3_VERSION} + GITHUB_REPOSITORY seqan/seqan3 + SYSTEM TRUE + OPTIONS "INSTALL_SEQAN3 OFF" +) +# chopper +set (RAPTOR_CHOPPER_VERSION bdcecb6d0f022778ae690da419654f26c7989d2c) +CPMDeclarePackage (chopper + NAME chopper + GIT_TAG ${RAPTOR_CHOPPER_VERSION} + GITHUB_REPOSITORY seqan/chopper + SYSTEM TRUE + EXCLUDE_FROM_ALL TRUE + OPTIONS "CHOPPER_INSTALL OFF" "CHOPPER_BUILD_DOC OFF" "CHOPPER_BUILD_TEST OFF" +) +# benchmark +set (RAPTOR_BENCHMARK_VERSION 1.8.2) +CPMDeclarePackage (benchmark + NAME benchmark + VERSION ${RAPTOR_BENCHMARK_VERSION} + GITHUB_REPOSITORY google/benchmark + SYSTEM TRUE + OPTIONS "BENCHMARK_ENABLE_TESTING OFF" "BENCHMARK_ENABLE_WERROR OFF" +) +# googletest +set (RAPTOR_GOOGLETEST_VERSION 1.14.0) +CPMDeclarePackage (googletest + NAME GTest + VERSION ${RAPTOR_GOOGLETEST_VERSION} + GITHUB_REPOSITORY google/googletest + SYSTEM TRUE + OPTIONS "BUILD_GMOCK OFF" "INSTALL_GTEST OFF" +) diff --git a/build_system/raptor-config.cmake b/build_system/raptor-config.cmake index 8cfa0054..0168e080 100644 --- a/build_system/raptor-config.cmake +++ b/build_system/raptor-config.cmake @@ -61,30 +61,23 @@ cmake_minimum_required (VERSION 3.5...3.12) -# ---------------------------------------------------------------------------- -# Set initial variables -# ---------------------------------------------------------------------------- - -# make output globally quiet if required by find_package, this effects cmake functions like `check_*` -set (CMAKE_REQUIRED_QUIET_SAVE ${CMAKE_REQUIRED_QUIET}) -set (CMAKE_REQUIRED_QUIET ${${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY}) - # ---------------------------------------------------------------------------- # Greeter # ---------------------------------------------------------------------------- -string (ASCII 27 Esc) -set (ColourBold "${Esc}[1m") -set (ColourReset "${Esc}[m") - -if (NOT ${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY) - message (STATUS "${ColourBold}Finding RAPTOR and checking requirements:${ColourReset}") -endif () +message (STATUS "Finding Raptor and checking requirements") # ---------------------------------------------------------------------------- # Includes # ---------------------------------------------------------------------------- +include (${RAPTOR_CLONE_DIR}/test/cmake/raptor_require_ccache.cmake) +raptor_require_ccache () + +set (CPM_INDENT " CMake Package Manager CPM: ") +include (${CMAKE_CURRENT_LIST_DIR}/CPM.cmake) +CPMUsePackageLock (${CMAKE_CURRENT_LIST_DIR}/package-lock.cmake) + include (CheckIncludeFileCXX) include (CheckCXXSourceCompiles) include (FindPackageHandleStandardArgs) @@ -95,35 +88,22 @@ include (CheckCXXCompilerFlag) # ---------------------------------------------------------------------------- macro (raptor_config_print text) - if (NOT ${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY) - message (STATUS " ${text}") - endif () + message (STATUS " ${text}") endmacro () macro (raptor_config_error text) - if (${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED) - message (FATAL_ERROR ${text}) - else () - if (NOT ${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY) - message (WARNING ${text}) - endif () - return () - endif () + message (FATAL_ERROR " ${text}") + endmacro () # ---------------------------------------------------------------------------- -# Check CXX and C compiler versions. +# Find or add dependencies # ---------------------------------------------------------------------------- -string (REGEX MATCH "^[0-9]+" RAPTOR_CXX_MAJOR_VERSION "${CMAKE_CXX_COMPILER_VERSION}") -string (REGEX MATCH "^[0-9]+" RAPTOR_C_MAJOR_VERSION "${CMAKE_C_COMPILER_VERSION}") -if (NOT "${RAPTOR_CXX_MAJOR_VERSION}" STREQUAL "${RAPTOR_C_MAJOR_VERSION}") - raptor_config_error ("CXX and C compiler major versions differ (${RAPTOR_CXX_MAJOR_VERSION} and\ - ${RAPTOR_C_MAJOR_VERSION})! This will likely result in linker errors. Please set both\ - -DCMAKE_CXX_COMPILER and -DCMAKE_C_COMPILER to use the same major version, and/or set the\ - environment variables CXX and CC accordingly." - ) -endif () +CPMGetPackage (hibf) +CPMGetPackage (sharg) +CPMGetPackage (seqan3) +CPMGetPackage (chopper) # ---------------------------------------------------------------------------- # Find RAPTOR include path @@ -143,313 +123,6 @@ else () raptor_config_error ("RAPTOR include directory could not be found (RAPTOR_INCLUDE_DIR: '${RAPTOR_INCLUDE_DIR}')") endif () -# ---------------------------------------------------------------------------- -# Detect if we are a clone of repository and if yes auto-add submodules -# ---------------------------------------------------------------------------- - -if (RAPTOR_CLONE_DIR) - raptor_config_print ("Detected as running from a repository checkout…") -endif () - -if (RAPTOR_SUBMODULES_DIR) - file (GLOB - submodules - ${RAPTOR_SUBMODULES_DIR}/*/include - ${RAPTOR_SUBMODULES_DIR}/*/test/include - ${RAPTOR_SUBMODULES_DIR}/submodules/*/include - ${RAPTOR_SUBMODULES_DIR}/*/src/include - ${RAPTOR_SUBMODULES_DIR}/simde/simde - ) - foreach (submodule ${submodules}) - if (IS_DIRECTORY ${submodule}) - raptor_config_print (" …adding submodule include: ${submodule}") - set (RAPTOR_DEPENDENCY_INCLUDE_DIRS ${submodule} ${RAPTOR_DEPENDENCY_INCLUDE_DIRS}) - endif () - endforeach () - set (SHARG_HINT_TDL "${RAPTOR_SUBMODULES_DIR}/tool_description_lib") -endif () - -# ---------------------------------------------------------------------------- -# Options for CheckCXXSourceCompiles -# ---------------------------------------------------------------------------- - -# deactivate messages in check_* -set (CMAKE_REQUIRED_QUIET 1) -# use global variables in Check* calls -set (CMAKE_REQUIRED_INCLUDES ${CMAKE_INCLUDE_PATH} ${RAPTOR_INCLUDE_DIR} ${RAPTOR_DEPENDENCY_INCLUDE_DIRS}) -set (CMAKE_REQUIRED_FLAGS ${CMAKE_CXX_FLAGS}) - -# ---------------------------------------------------------------------------- -# Force-deactivate optional dependencies -# ---------------------------------------------------------------------------- - -# These two are "opt-in", because detected by CMake -# If you want to force-require these, just do find_package (zlib REQUIRED) before find_package (raptor) -option (RAPTOR_NO_ZLIB "Don't use ZLIB, even if present." OFF) -option (RAPTOR_NO_BZIP2 "Don't use BZip2, even if present." OFF) - -# ---------------------------------------------------------------------------- -# ccache -# ---------------------------------------------------------------------------- - -include (${RAPTOR_CLONE_DIR}/test/cmake/raptor_require_ccache.cmake) -raptor_require_ccache () - -# ---------------------------------------------------------------------------- -# Require C++20 -# ---------------------------------------------------------------------------- - -set (CMAKE_REQUIRED_FLAGS_SAVE ${CMAKE_REQUIRED_FLAGS}) - -set (CXXSTD_TEST_SOURCE - "#if !defined (__cplusplus) || (__cplusplus < 202002) - #error NOCXX20 - #endif - int main() {}" -) - -check_cxx_source_compiles ("${CXXSTD_TEST_SOURCE}" CXX20_BUILTIN) - -if (CXX20_BUILTIN) - raptor_config_print ("C++ Standard-20 support: builtin") -else () - set (CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS_SAVE} -std=c++20") - - check_cxx_source_compiles ("${CXXSTD_TEST_SOURCE}" CXX20_FLAG) - - if (CXX20_FLAG) - raptor_config_print ("C++ Standard-20 support: via -std=c++20") - else () - raptor_config_error ("Raptor requires C++20, but your compiler does not support it.") - endif () - - set (RAPTOR_CXX_FLAGS "${RAPTOR_CXX_FLAGS} -std=c++20") -endif () - -# ---------------------------------------------------------------------------- -# Required: Sharg (with TDL for CWL/CTD support) -# ---------------------------------------------------------------------------- - -option (INSTALL_TDL "Enable installation of TDL." OFF) -find_package (Sharg QUIET REQUIRED HINTS ${RAPTOR_SUBMODULES_DIR}/sharg-parser/build_system) - -# ---------------------------------------------------------------------------- -# Optional: OpenMP -# ---------------------------------------------------------------------------- - -check_cxx_compiler_flag ("-fopenmp" RAPTOR_HAS_OPENMP) -if (RAPTOR_HAS_OPENMP) - set (RAPTOR_CXX_FLAGS "${RAPTOR_CXX_FLAGS} -fopenmp") - raptor_config_print ("OpenMP Support: via -fopenmp") -else () - raptor_config_print ("OpenMP Support: not found") -endif () - -check_cxx_compiler_flag ("-fopenmp-simd" RAPTOR_HAS_OPENMP_SIMD) -if (RAPTOR_HAS_OPENMP_SIMD) - set (RAPTOR_CXX_FLAGS "${RAPTOR_CXX_FLAGS} -fopenmp-simd") - set (RAPTOR_DEFINITIONS ${RAPTOR_DEFINITIONS} "-DSIMDE_ENABLE_OPENMP") - raptor_config_print ("SIMD-OpenMP Support: via -fopenmp-simd") -else () - raptor_config_print ("SIMD-OpenMP Support: not found") -endif () - -check_cxx_compiler_flag ("-Wno-psabi" RAPTOR_SUPPRESS_GCC4_ABI) -if (RAPTOR_SUPPRESS_GCC4_ABI) - set (RAPTOR_CXX_FLAGS "${RAPTOR_CXX_FLAGS} -Wno-psabi") - raptor_config_print ("Suppressing GCC 4 warnings: via -Wno-psabi") -else () - raptor_config_print ("Suppressing GCC 4 warnings: not found") -endif () - -# ---------------------------------------------------------------------------- -# Optimizations -# ---------------------------------------------------------------------------- - -if ("${CMAKE_BUILD_TYPE}" MATCHES "Debug" OR "${CMAKE_BUILD_TYPE}" MATCHES "Coverage") - set (RAPTOR_IS_DEBUG TRUE) -else () - set (RAPTOR_IS_DEBUG FALSE) -endif () - -option (RAPTOR_NATIVE_BUILD "Optimize build for current architecture." ON) -if (RAPTOR_IS_DEBUG) - raptor_config_print ("Optimize build: disabled") -elseif (RAPTOR_NATIVE_BUILD) - set (RAPTOR_CXX_FLAGS "${RAPTOR_CXX_FLAGS} -march=native") - raptor_config_print ("Optimize build: via -march=native") -else () - check_cxx_compiler_flag ("-mpopcnt" RAPTOR_HAS_POPCNT) - if (RAPTOR_HAS_POPCNT) - set (RAPTOR_CXX_FLAGS "${RAPTOR_CXX_FLAGS} -mpopcnt") - raptor_config_print ("Optimize build: via -mpopcnt") - else () - raptor_config_print ("Optimize build: disabled") - endif () -endif () - -if (RAPTOR_IS_DEBUG) - raptor_config_print ("Link Time Optimization: disabled") -else () - # CMake's check_ipo_supported uses hardcoded lto flags - # macOS GCC supports -flto-auto, but not the hardcoded flag "-fno-fat-lto-objects" - if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND NOT "${CMAKE_SYSTEM_NAME}" MATCHES "Darwin") - set (RAPTOR_LTO_FLAGS "-flto=auto -ffat-lto-objects") - else () - set (RAPTOR_LTO_FLAGS "-flto=auto") - endif () - - set (LTO_CMAKE_SOURCE - "cmake_minimum_required(VERSION ${CMAKE_VERSION})\nproject(lto-test LANGUAGES CXX) - cmake_policy(SET CMP0069 NEW)\nadd_library(foo foo.cpp)\nadd_executable(boo main.cpp) - target_link_libraries(boo PUBLIC foo)" - ) - set (LTO_FOO_CPP "int foo(){return 0x42;}") - set (LTO_MAIN_CPP "int foo();int main(){return foo();}") - set (testdir "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/_CMakeLTOTest-CXX") - set (bindir "${testdir}/bin") - set (srcdir "${testdir}/src") - file (MAKE_DIRECTORY "${bindir}") - file (MAKE_DIRECTORY "${srcdir}") - file (WRITE "${srcdir}/foo.cpp" "${LTO_FOO_CPP}") - file (WRITE "${srcdir}/main.cpp" "${LTO_MAIN_CPP}") - file (WRITE "${srcdir}/CMakeLists.txt" "${LTO_CMAKE_SOURCE}") - try_compile (RAPTOR_HAS_LTO "${bindir}" - "${srcdir}" "lto-test" - CMAKE_FLAGS "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DCMAKE_CXX_FLAGS:STRING=${RAPTOR_LTO_FLAGS}" - OUTPUT_VARIABLE output - ) - - if (RAPTOR_HAS_LTO) - raptor_config_print ("Link Time Optimization: enabled") - set (RAPTOR_CXX_FLAGS "${RAPTOR_CXX_FLAGS} ${RAPTOR_LTO_FLAGS}") - else () - raptor_config_print ("Link Time Optimization: not available") - endif () -endif () - -option (RAPTOR_STRIP_BINARY "Enable binary-stripping. Not supported on macOS." ON) -if ("${CMAKE_SYSTEM_NAME}" MATCHES "Darwin" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") - raptor_config_print ("Binary-stripping: not supported") -elseif (RAPTOR_IS_DEBUG OR NOT RAPTOR_STRIP_BINARY) - raptor_config_print ("Binary-stripping: disabled") -else () - set (RAPTOR_CXX_FLAGS "${RAPTOR_CXX_FLAGS} -s") - raptor_config_print ("Binary-stripping: via -s") -endif () - -# ---------------------------------------------------------------------------- -# thread support (pthread, windows threads) -# ---------------------------------------------------------------------------- - -set (THREADS_PREFER_PTHREAD_FLAG TRUE) -find_package (Threads QUIET) - -if (Threads_FOUND) - set (RAPTOR_LIBRARIES ${RAPTOR_LIBRARIES} Threads::Threads) - if ("${CMAKE_THREAD_LIBS_INIT}" STREQUAL "") - raptor_config_print ("Thread support: builtin") - else () - raptor_config_print ("Thread support: via ${CMAKE_THREAD_LIBS_INIT}") - endif () -else () - raptor_config_print ("Thread support: not found") -endif () - -# ---------------------------------------------------------------------------- -# ZLIB dependency -# ---------------------------------------------------------------------------- - -if (NOT RAPTOR_NO_ZLIB) - find_package (ZLIB QUIET) -endif () - -if (ZLIB_FOUND) - set (RAPTOR_LIBRARIES ${RAPTOR_LIBRARIES} ${ZLIB_LIBRARIES}) - set (RAPTOR_DEPENDENCY_INCLUDE_DIRS ${RAPTOR_DEPENDENCY_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS}) - set (RAPTOR_DEFINITIONS ${RAPTOR_DEFINITIONS} "-DSEQAN3_HAS_ZLIB=1") - raptor_config_print ("Optional dependency: ZLIB-${ZLIB_VERSION_STRING} found") -else () - raptor_config_print ("Optional dependency: ZLIB not found") -endif () - -# ---------------------------------------------------------------------------- -# BZip2 dependency -# ---------------------------------------------------------------------------- - -if (NOT RAPTOR_NO_BZIP2) - find_package (BZip2 QUIET) -endif () - -if (NOT ZLIB_FOUND AND BZIP2_FOUND) - # NOTE (marehr): iostream_bzip2 uses the type `uInt`, which is defined by - # `zlib`. Therefore, `bzip2` will cause a ton of errors without `zlib`. - message (AUTHOR_WARNING "Disabling BZip2 [which was successfully found], " - "because ZLIB was not found BZip2 depends on ZLIB." - ) - unset (BZIP2_FOUND) -endif () - -if (BZIP2_FOUND) - set (RAPTOR_LIBRARIES ${RAPTOR_LIBRARIES} ${BZIP2_LIBRARIES}) - set (RAPTOR_DEPENDENCY_INCLUDE_DIRS ${RAPTOR_DEPENDENCY_INCLUDE_DIRS} ${BZIP2_INCLUDE_DIRS}) - set (RAPTOR_DEFINITIONS ${RAPTOR_DEFINITIONS} "-DSEQAN3_HAS_BZIP2=1") - raptor_config_print ("Optional dependency: BZip2-${BZIP2_VERSION_STRING} found") -else () - raptor_config_print ("Optional dependency: BZip2 not found") -endif () - -# ---------------------------------------------------------------------------- -# System dependencies -# ---------------------------------------------------------------------------- - -# librt -if ((${CMAKE_SYSTEM_NAME} STREQUAL "Linux") - OR (${CMAKE_SYSTEM_NAME} STREQUAL "kFreeBSD") - OR (${CMAKE_SYSTEM_NAME} STREQUAL "GNU") -) - set (RAPTOR_LIBRARIES ${RAPTOR_LIBRARIES} rt) -endif () - -# libexecinfo -- implicit -check_include_file_cxx (execinfo.h _RAPTOR_HAVE_EXECINFO) -mark_as_advanced (_RAPTOR_HAVE_EXECINFO) -if (_RAPTOR_HAVE_EXECINFO) - raptor_config_print ("Optional dependency: libexecinfo found") - if ((${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") OR (${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD")) - set (RAPTOR_LIBRARIES ${RAPTOR_LIBRARIES} execinfo elf) - endif () -else () - raptor_config_print ("Optional dependency: libexecinfo not found") -endif () - -# ---------------------------------------------------------------------------- -# Perform compilability test of platform.hpp (tests some requirements) -# ---------------------------------------------------------------------------- - -# set (CXXSTD_TEST_SOURCE -# "#include -# int main() {}") - -# # using try_compile instead of check_cxx_source_compiles to capture output in case of failure -# file (WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx" "${CXXSTD_TEST_SOURCE}\n") - -# try_compile (RAPTOR_PLATFORM_TEST -# ${CMAKE_BINARY_DIR} -# ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx -# CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${CMAKE_CXX_FLAGS} ${RAPTOR_CXX_FLAGS}" -# "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_INCLUDE_PATH};${RAPTOR_INCLUDE_DIR};${RAPTOR_DEPENDENCY_INCLUDE_DIRS}" -# COMPILE_DEFINITIONS ${RAPTOR_DEFINITIONS} -# LINK_LIBRARIES ${RAPTOR_LIBRARIES} -# OUTPUT_VARIABLE RAPTOR_PLATFORM_TEST_OUTPUT) - -# if (RAPTOR_PLATFORM_TEST) -# raptor_config_print ("RAPTOR platform.hpp build: passed.") -# else () -# raptor_config_error ("RAPTOR platform.hpp build: failed!\n\ -# ${RAPTOR_PLATFORM_TEST_OUTPUT}") -# endif () - # ---------------------------------------------------------------------------- # Finish find_package call # ---------------------------------------------------------------------------- @@ -488,12 +161,18 @@ if (RAPTOR_FOUND AND NOT TARGET raptor::raptor) target_compile_definitions (raptor_raptor INTERFACE ${RAPTOR_DEFINITIONS}) target_compile_options (raptor_raptor INTERFACE ${RAPTOR_CXX_FLAGS_LIST}) target_link_options (raptor_raptor INTERFACE ${RAPTOR_CXX_FLAGS_LIST}) - target_link_libraries (raptor_raptor INTERFACE "${RAPTOR_LIBRARIES}" sharg::sharg) + target_link_libraries (raptor_raptor INTERFACE "${RAPTOR_LIBRARIES}" seqan::hibf sharg::sharg seqan3::seqan3) # include raptor/include/ as -I, because raptor should never produce warnings. target_include_directories (raptor_raptor INTERFACE "${RAPTOR_INCLUDE_DIR}") # include everything except raptor/include/ as -isystem, i.e. # a system header which suppresses warnings of external libraries. - target_include_directories (raptor_raptor SYSTEM INTERFACE "${RAPTOR_DEPENDENCY_INCLUDE_DIRS}") + get_target_property (chopper_include_dir chopper_shared INCLUDE_DIRECTORIES) + target_include_directories (raptor_raptor SYSTEM INTERFACE "${chopper_include_dir}") + find_path (seqan3_test_include_dir + NAMES seqan3/test/tmp_directory.hpp + HINTS "${seqan3_SOURCE_DIR}/test/include" + ) + target_include_directories (raptor_raptor SYSTEM INTERFACE "${seqan3_test_include_dir}") add_library (raptor::raptor ALIAS raptor_raptor) endif () diff --git a/doc/setup/index.md b/doc/setup/index.md index 7ef3d723..ac638904 100644 --- a/doc/setup/index.md +++ b/doc/setup/index.md @@ -55,4 +55,4 @@ raptor --version ``` By default, Raptor will be built with host specific optimizations (`-march=native`). This behavior can be disabled by -passing `-DRAPTOR_NATIVE_BUILD=OFF` to CMake. +passing `-DHIBF_NATIVE_BUILD=OFF` to CMake. diff --git a/doc/usage/03_layout/index.md b/doc/usage/03_layout/index.md index c58f8aee..b04eca24 100644 --- a/doc/usage/03_layout/index.md +++ b/doc/usage/03_layout/index.md @@ -13,12 +13,6 @@ A layout is only needed if you want to build an HIBF (\ref hibf_vs_ibf). \include{doc} fragments/input_files_sequence.md -\note -Currently, `raptor build` accepts multiple paths per line in its input file. However, `raptor layout` does not. -A possible workaround is to concatenate your sequence files. To avoid changing your files, you can also use -`raptor prepare` to preprocess the files. `raptor prepare` accepts multiple paths per line, but only produces -one output file per bin, which can then be used with `raptor layout`. - ### List of preprocessed files \include{doc} fragments/input_files_preprocessed.md diff --git a/lib/chopper b/lib/chopper deleted file mode 160000 index f080ec8e..00000000 --- a/lib/chopper +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f080ec8ef1d3538cba5d44b5f1cee3ab045113ac diff --git a/lib/hibf b/lib/hibf deleted file mode 160000 index 84c4aead..00000000 --- a/lib/hibf +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 84c4aead1e48c30d37d57c050ee29bc8dbd01d40 diff --git a/lib/robin-hood-hashing b/lib/robin-hood-hashing deleted file mode 160000 index 9145f963..00000000 --- a/lib/robin-hood-hashing +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 9145f963d80d6a02f0f96a47758050a89184a3ed diff --git a/lib/seqan3 b/lib/seqan3 deleted file mode 160000 index baece6f4..00000000 --- a/lib/seqan3 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit baece6f427f6b178ec7876253246e531af15b102 diff --git a/lib/sharg-parser b/lib/sharg-parser deleted file mode 160000 index 710d11a2..00000000 --- a/lib/sharg-parser +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 710d11a24854bfa098e0236ec2dd40fd416168a6 diff --git a/lib/simde b/lib/simde deleted file mode 160000 index fefc7857..00000000 --- a/lib/simde +++ /dev/null @@ -1 +0,0 @@ -Subproject commit fefc7857ff3e785b988a61a8f5f3c5bd5eb24342 diff --git a/lib/submodules/cereal b/lib/submodules/cereal deleted file mode 160000 index ebef1e92..00000000 --- a/lib/submodules/cereal +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ebef1e929807629befafbb2918ea1a08c7194554 diff --git a/lib/submodules/sdsl-lite b/lib/submodules/sdsl-lite deleted file mode 160000 index d54d3890..00000000 --- a/lib/submodules/sdsl-lite +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d54d38908a14745eb93fd5304fc9b2b9c2542ee9 diff --git a/lib/tool_description_lib b/lib/tool_description_lib deleted file mode 160000 index 5b323bbc..00000000 --- a/lib/tool_description_lib +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5b323bbcf567a3299c41e72bc3dc161b32942829 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ed883d1a..880c11fa 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -5,63 +5,11 @@ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") set (CMAKE_INSTALL_BINDIR "bin") # For chopper -include (FetchContent) - -# Dependency: HIBF lib -set (HIBF_SUBMODULES_DIR - "${RAPTOR_SUBMODULES_DIR}" - CACHE STRING "Directory containing submodules." -) - -if (NOT TARGET seqan::hibf) - FetchContent_Declare (raptor_hibf_project SOURCE_DIR "${RAPTOR_SUBMODULES_DIR}/hibf") - option (INSTALL_HIBF "Enable installation of HIBF." OFF) - option (HIBF_NATIVE_BUILD "Optimize build for current architecture." ${RAPTOR_NATIVE_BUILD}) - set (STORED_CMAKE_MESSAGE_LOG_LEVEL "${CMAKE_MESSAGE_LOG_LEVEL}") - set (CMAKE_MESSAGE_LOG_LEVEL "ERROR") - FetchContent_MakeAvailable (raptor_hibf_project) - set (CMAKE_MESSAGE_LOG_LEVEL "${STORED_CMAKE_MESSAGE_LOG_LEVEL}") - unset (STORED_CMAKE_MESSAGE_LOG_LEVEL) -endif () - -# Dependency: Chopper -FetchContent_Declare (raptor_chopper_project SOURCE_DIR "${RAPTOR_SUBMODULES_DIR}/chopper") - -set (SEQAN3_SUBMODULES_DIR "${RAPTOR_SUBMODULES_DIR}") -set (CHOPPER_SUBMODULES_DIR - "${RAPTOR_SUBMODULES_DIR}" - CACHE STRING "Directory containing submodules." -) -set (CHOPPER_USE_CCACHE - OFF - CACHE BOOL "Use ccache if available." -) -set (CHOPPER_BUILD_DOC - OFF - CACHE BOOL "Build chopper documentation." -) -set (CHOPPER_BUILD_TEST - OFF - CACHE BOOL "Build chopper tests." -) -set (CHOPPER_INSTALL - OFF - CACHE BOOL "Install Chopper." -) - -set (STORED_CMAKE_MESSAGE_LOG_LEVEL "${CMAKE_MESSAGE_LOG_LEVEL}") -set (CMAKE_MESSAGE_LOG_LEVEL "ERROR") -FetchContent_MakeAvailable (raptor_chopper_project) -set_target_properties (chopper PROPERTIES EXCLUDE_FROM_ALL TRUE) -set (CMAKE_MESSAGE_LOG_LEVEL "${STORED_CMAKE_MESSAGE_LOG_LEVEL}") -unset (STORED_CMAKE_MESSAGE_LOG_LEVEL) - # Shared interface if (NOT TARGET raptor_interface) add_library ("raptor_interface" INTERFACE) target_link_libraries ("raptor_interface" INTERFACE raptor::raptor) target_compile_options ("raptor_interface" INTERFACE "-pedantic" "-Wall" "-Wextra") - target_compile_definitions ("raptor_interface" INTERFACE "RAPTOR_OLD_HIBF") endif () # Raptor library diff --git a/src/layout/raptor_layout.cpp b/src/layout/raptor_layout.cpp index 0eee9c91..d0e02de5 100644 --- a/src/layout/raptor_layout.cpp +++ b/src/layout/raptor_layout.cpp @@ -36,7 +36,7 @@ void chopper_layout(sharg::parser & parser) if (std::filesystem::is_empty(config.data_file)) throw sharg::parser_error{"The input file is empty."}; - std::vector filenames{}; + std::vector> filenames{}; chopper::sketch::read_data_file(config, filenames); chopper::sketch::check_filenames(filenames, config); diff --git a/src/prepare/compute_minimiser.cpp b/src/prepare/compute_minimiser.cpp index f84eb293..184bef3c 100644 --- a/src/prepare/compute_minimiser.cpp +++ b/src/prepare/compute_minimiser.cpp @@ -10,8 +10,6 @@ * \author Enrico Seiler */ -#include - #include #include #include @@ -24,6 +22,8 @@ #include #include +#include + namespace raptor { diff --git a/test/data/128bins19window.index b/test/data/128bins19window.index index 9e0f23ab9625db311f0d5290472974bd13d13e22..661c3fa09662120b48bef3cb8244e9584f792e6f 100644 GIT binary patch delta 2577 zcmbO?n`PQemI=Cy_LCJEO;}x0lSlV#p)mI=Cyj*|^pOxS}`b5awFQzzeN5`~D!LPhjb5=#>GlQQ#+^wJU;86W^v zk0VSE+>{9zBBSPxhVN)P8_gGxTre6Aqv3#D8jPlg(eyBy9!A?ykX%5&aG0U)#ym}i RVe>=vtxq@_RN29;TL6)-4)y>5 diff --git a/test/data/128bins23window.index b/test/data/128bins23window.index index c09bffb448b8897e777155fc1d0411c8fdadc960..2f6bb5968d15944abbfac895dd71672f2973e430 100644 GIT binary patch literal 27542 zcmeI&L2eaC5C-4}iIfAdV3iGfG9rdm7A&yDIc(V^PXZfRcG$Ay3UC9sLax9SxB^#j zLU`VMn}2G$2OH5Xp~p{E{Z;jMb+$|rJq217K)*&0uisgecv>V#Z zI%MPf-SR;h+70by9kTIWv3yX5c0;>ahitr8EFYAi-Oz5H?*5|$i{oc z@ym}}p0vrXe-*!CRpWd6 ze`LL3ePUsLQ>};XxHLZ5^-mbNU+Hf@=GQKk&v@<5SMoPLVfn0Ad*WN$t{&BV)qYy@ zrTVJ%$k!S#-`d#u;yU@5@>lznKkcXWS&w|$e>9x#OZ9O75_Z4zcR#e7e{F1jaqs;5 ztls?UU*%8n>ciKEPv+CVI)C!DV&vbi@>#$AiRDjr^-uotuZ>eZ>XYj6K1lwpcJ)p9 z?Kk1{JTkxiRPELyUlphNlihsQC)U4;t9;4d{*u4-R{f0^r~Ar!jTcwXr|}7Uo_s!7 zZ_+E(YrMExZ}Qh(&1ZZ%@2&jCi>)Ww_3w?-emg%Yf6~|Z*8W@Lt*46BC+XSBUyWBE z?+5D@8(+0ib2+mC$KYrOv78&3VFe$*%VCwpr>iNE*$^`8IU^|$t0jaLunL+t%f?ce&uiLYvx zKh3NCrhNLFPkZ7^cK0j!YqvhJ{@0DwuUfDE;?$q>lH#pb{uJM8H{VUeNgwNV-o1a+ zOS^pfYj4H!r+QL8`JBfTU-eIX-`ZZCmsFp6CjVA@>;9YH^PqigtbXF&`F)>n(!bh&^8d`TpHz?fs*gDFrFyl?uU%aI|Ac>7)qLhpxcWTW zW4V7-KI^kz((UPA#qw9#lt>u<%a z`%~>d)qCB1t$L*X*0!hnFnu4X&Zqsf#>z{CX-W#9vQBUK=Re$4C|4C2z#3?@Imrq=cuj*ChPy1WtvtM!Ib3XM?cJn1HfAUZE zv|mZ@#IN1@)BGBr{F7b2gsabg^|W90O#Z1p?XCS=kNjevw_^Q!5C-5OL?ZhvSY^W=o`_+UMHGR=o*NAEpp4|$$k=AsuGYhLTo|A1`X`Lsuk^Pc^J^E&XS{ajEBPCruzc35J@GAVSC4AGYCo;{ zQhn8WciKEkLJ_AI)C!DV&s2Z<+FbK6U(3M>Yx1OUmB-+)F;*BeUSWH?dqHI z+i$|@d1QY3soJeazA8@jC%gHqPpp3xSNW2^{Uv|vt@;};PWP4d8ZWM%PvaBzJo$XE z-lSKm*LZQY-sG>nn$P%j-dp*N7h6xV>)#uv{dRs*{-m$*t^K#gTTd0MPtvoMzZ$PT z-VfF*Holra`6vElmp|2Colp6#N36ft`m|U1jPH$?t|#%Q=W(@P_uuDd+8^UR|JIZG z)4z)4w;%be*LeNEH=O!U{isj!PxjV&5`XXg>plOy>u>G18m}JChuHg}+Q0RQ6JOOX zf0|eOP5JaUpZ3I;?Cw|c*KU1c{jVFVU$tKS#i>8%CB<8>{3*WGZoY2~Cw;8fdH4QN zFYWT_ue}w^pXy2Z z>gOG+T2JDy^7WoC>+3ylN&jm9$^R3}eo{T^t3Kkym+I9nzjkr;-xJ=ms`<>HaP@h# z$8!IweAZ{bq}$WKisi4yCx7Qn-248tp5Fa=-puFzYj+;R`irak-@AY7N&V_?J=Ol@ zTN+pUTe=?k(|wxeRleTX{gyx3^-uHS{qn8tpY>JGvwBo<(oepse)3oMx0+8qt-lqw z?oYM!Wx2n@_vA>fbxQ+Q0d~Hm>UB^V52(&uilouFjkLA@+XqyjYL%*2AyYJ{f=A*naIt f?0uH%SC8axKK+wj|5j|iYX7bI&wso6pFBPT=4g)& diff --git a/test/data/1bins19window.index b/test/data/1bins19window.index index 99400d3b2eff82b65de250b173a21eb6e5747f1a..8c07e11d80352561b5ff4f5c41a9c13cc812f613 100644 GIT binary patch delta 42 zcmV+_0M-AOz5$KC0gx>LKanmp1w>_Hb!U-jMgzd|0+F#blTR8zlivkMvu^>QT~O!{ A2mk;8 delta 60 zcmeC($2ff-;{;ts$BB9->_MqHsfop@6Vu(8PIFJb$ZR(GtboMiT%Ul62RJ65mDbo? P%QzvHw$jATz$m;!J n>Y@4hWd5?cfSKHgCI delta 1434 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 e5v9KZEuC-iyabox delta 4478 zcmeH`Pe>GD7{;C1b!JW7^-s>O+Pb@$u2E{6x@P7-2R9`+<5=_9ajco`oU+DP^Vo6hE{ST_Qt|ZDxWg;nexhEFD_YVm1jX~B9`p#; ziUig0qDGkB(<3N|G55iQn7U`um?1AhTaIXRNM5(UWJ$4u4i_^PIs3Jv-K$l&r2N~ub*wMr|;6$#iJZ#X z`~<;6U@a(ut>6jm?q|t6avEDVSPYhc2f=)>4wS$)FbamiFjxgvgAuTNlOtIk81-Nc zSP6Q;!{7l>01LoIFc)-y0k9Bk2g^(v)98Rv1U7*c;1SRXmV$X&;GE>Wd>mUDbb)@b z0rY`qz@y+vumx1W9Bpb!^6KtR$v3L^mB=np?|mb=L`@Oo4Xr|uUAkM8U4kC}YPfp0 z$B58I7o-g>wjjCm;SZAWY_^`xU6`YY!FQzVt>mo#qV;Hi){9MMOd)Cfm|Wo0mz!z* z{F@oGNIF(YPH!=3cY>Uua#}}U(K_~#bY+9I{k5UmM3vFwWR=n5cs2Dn|DB#CR!Ilu zNhiW|J`o|6I;raTC-R5=;& zWZg?zx98J(zJYXhg`5E|trZ99#4AaavGu@WupC#JV)S3TNH-+e-2P+JHDT5$;35hVN2u%p{Nu8u`moMG8;tsO(-FOGjV_%Z?{qM#*YaVB9+WVGSwDESIZ`bc%pRd=C z-g(j1N9z}@zo-{u@qE2ltk;W0KRvzpT&&lN_3HJWi~ify|L^*L?LTa9HB7WgV?q1x zLibXOgT*-ALA!OV@!V*<+c~=yEAzJ`NGuFH*hE=a(3Nj=ci#Sc95&#=A;~)C=!-aR zNNjSXdCYnKQT%#K5MPBj(vl`t8Hz2b3p9pX-7zu*u>&g&K`qd+qi@J+fiLobX>o*x&Y@+L-5;ExVMSPQWZa4&n&&RnDDQRXdya@ zwZszQabhg-C^3l`M=U1h5DyX$5#z(`jj5(YAu)@1j95p^BQ_AziHXD_qLElil!%$c zT%svNi1H~>K$M9UM8;=YU{Ed!6NnCCIWd)(P25jRBOW295DyTOiDqI3v7T5NW=2d6 zB@Pq!5bb>RBC{x-2DU75Zv&H+K^L>$Q}~P$>&9aP9et6>}y~1WcfqPDVvl0lG~k;@aPUtN$sgTg!0Y`W5$P8}57R za9w$gnfyH5k350B&vO@Ao1TW_eV!%*~%pr*oe34UdH1`VzFZBCG36OH}TL9A?J7a(D(+|xfGO)Kf}HA6Rg~C1gmi)SdGS` z)k+2`+P|Tq>SIV(gqe;?Tmz}0`UG6P3|C_&u6`L--%=YKx;Tf2E~G(%o3p_@E88IZ IOgRSW4+&6a?f?J) delta 4541 zcmeH`Ur19?9LIOhbk21CDc#g;soA#tvpLgS{%I+cPcb551=6AieJUY>9B#}b=AE)RI%{#aHnPzaBLTpQA?Mlhsu59zI8nq9#X;hwrsfRsS<* z^LpK~df3@?f4;+Z(@_+vvyE42Cr%0e_Sr^Z&A(zT4qbU0%wQUqzin2GDyERvH~Nc` z$m1T4dZfV#K@_HH7*a>mMi4 zKrADs6Auxyi2I27#JxlvF`KxJSWVnP+`mrg=rYUi+eu<0v6Lth3yI}K6S0z5M9d>r z5Y5CKqCnIWbJy9Y*+oJt@i4K8SWB!Swh$e}D&lUUjkt&CB5H|g#Dh_GYBbwPXdu=T zt;9MaBif0@#Aae9v4nU)x--B`a(^=`>X*GMOwZ*0uQ*!Xz!;c0#st||uGI?xxDA3F ze8}{I-2D+9mp|h;ENH>!z5tV}&tWpKdJ=y2wm^xzRETrIBOth!uuxYDf;^(dacLGC z7|+0Dqy*iQStzfXaCBASXs&?KUwys6U*>Sdee0#X`$C$0?*U5_PdN~4vAdf%7O@yD~IP@J$BDbNWyAikS4#LmH z0$iM>61$l1f^fMB1#dleF}}h=-3uIZ%xH<628+jumi|^0yca8&-`)$^ delta 40 wcmcaAbYEzKE~Dc_Jrnkz)ST4B;?#-hVT^r~9a%*-UP@+RYEa&+&#J}(03K@${Qv*} diff --git a/test/data/hibf/64bins.pack b/test/data/hibf/64bins.pack index ca71abda..2af4e9d7 100644 --- a/test/data/hibf/64bins.pack +++ b/test/data/hibf/64bins.pack @@ -76,6 +76,7 @@ @ "value0": "" @ }, @ "k": 19, +@ "window_size" : 19, @ "disable_sketch_output": true, @ "precomputed_files": false, @ "output_filename": { diff --git a/test/data/hibf/64bins19window.hibf b/test/data/hibf/64bins19window.hibf index 8232858acb2c34be0a127f84d2f982d338597867..e4c4841d09f4473df4d88cb123bc9c0b3f5a6b0b 100644 GIT binary patch delta 1080 zcmdlsjcMIfrU|-?_LCJEO;}x0lS@(IaPTRkEB zNR=m~o{;+~)sJpII-gSW3F$|dj}QrCJ}`-S^G1=_B2GpI2ymEu(YtW+1Meghd_jb7 Jvs$MB696irBM|@q delta 1182 zcmZ2Cm1)~FrU|-?j*|^pOxS}`b5awFQzttziH?fk2@OMb^za!KK~6vWdC6F>c-{a#wNkJ`0Y`^UNez0Ig0J#Q*>R delta 1183 zcmZ2ivaNK2E~DdQLlzVEpwyhy#NyP+j!dGXB6vc>kR3gIMn#a*&wd{C@KMANAw~`D zbP;1ad1{E!MU20wWe%oYm?G4&ix_h-)!YycW3pzMyir79bAZS`Mdky1jFUeKi*A-P H6JP-VHfBw8 diff --git a/test/data/hibf/three_levels.hibf b/test/data/hibf/three_levels.hibf index 82af0ed45276bcbf54e07d282a8517ed82475669..5d40aaefc17281ea3b479c6da5aa47ab7c4a8692 100644 GIT binary patch delta 6197 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 #include -#include +#include inline robin_hood::unordered_map parse_user_bin_ids(std::filesystem::path const & user_bin_ids_file) diff --git a/util/applications/src/Genome_Biology/compare_to_truth.cpp b/util/applications/src/Genome_Biology/compare_to_truth.cpp index 20de506e..ef61ec40 100644 --- a/util/applications/src/Genome_Biology/compare_to_truth.cpp +++ b/util/applications/src/Genome_Biology/compare_to_truth.cpp @@ -15,10 +15,10 @@ #include #include -#include - #include +#include + // #include struct parser_options diff --git a/util/applications/src/Genome_Biology/normalise_yara_truth_file.cpp b/util/applications/src/Genome_Biology/normalise_yara_truth_file.cpp index e9fc91cf..4abddf3c 100644 --- a/util/applications/src/Genome_Biology/normalise_yara_truth_file.cpp +++ b/util/applications/src/Genome_Biology/normalise_yara_truth_file.cpp @@ -12,10 +12,10 @@ #include #include -#include - #include +#include + inline void check_output_file(std::filesystem::path const & output_file) { std::filesystem::path const output_directory = output_file.parent_path(); diff --git a/util/applications/src/iScience/count_minimiser.cpp b/util/applications/src/iScience/count_minimiser.cpp index 92634cae..4c57e09e 100644 --- a/util/applications/src/iScience/count_minimiser.cpp +++ b/util/applications/src/iScience/count_minimiser.cpp @@ -9,8 +9,6 @@ #include #include -#include - #include #include @@ -22,6 +20,8 @@ #include #include +#include + struct config { uint32_t window_size{}; diff --git a/util/applications/src/iScience/threshold_info.cpp b/util/applications/src/iScience/threshold_info.cpp index 7ef33509..c32e131a 100644 --- a/util/applications/src/iScience/threshold_info.cpp +++ b/util/applications/src/iScience/threshold_info.cpp @@ -9,8 +9,6 @@ #include #include -#include - #include #include @@ -26,6 +24,8 @@ #include #include +#include + void threshold_info(raptor::search_arguments const & arguments, std::string const & shape_string) { uint8_t const kmer_size{arguments.shape.size()}; diff --git a/util/iScience/thresholding/CMakeLists.txt b/util/iScience/thresholding/CMakeLists.txt index d8ca2dba..43d61278 100644 --- a/util/iScience/thresholding/CMakeLists.txt +++ b/util/iScience/thresholding/CMakeLists.txt @@ -23,10 +23,12 @@ set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") -# Dependency: SeqAn3. -set (SEQAN3_SUBMODULES_DIR "../../../lib") -find_package (SeqAn3 QUIET REQUIRED HINTS ../../../lib/seqan3/build_system) -find_package (Sharg QUIET REQUIRED HINTS ../../../lib/sharg-parser/build_system) +# Dependencies +include (${CMAKE_CURRENT_LIST_DIR}/../../../build_system/CPM.cmake) +CPMUsePackageLock (${CMAKE_CURRENT_LIST_DIR}/../../../build_system/package-lock.cmake) + +CPMGetPackage (sharg) +CPMGetPackage (seqan3) add_library (common_thresholding INTERFACE) target_link_libraries ("common_thresholding" INTERFACE seqan3::seqan3 sharg::sharg)