diff --git a/CMakeLists.txt b/CMakeLists.txt index af3fe67..f237563 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -63,8 +63,10 @@ set_package_properties(ZLIB PROPERTIES TYPE REQUIRED) find_package(Threads) set_package_properties(Threads PROPERTIES TYPE REQUIRED) -pkg_check_modules(htslib IMPORTED_TARGET htslib) # Optionally builds from contrib/ -pkg_check_modules(tabixpp IMPORTED_TARGET tabixpp) # Optionally builds from contrib/ +pkg_check_modules(htslib IMPORTED_TARGET htslib) # Optionally builds from contrib/ +pkg_check_modules(tabixpp IMPORTED_TARGET tabixpp) # Optionally builds from contrib/ +pkg_check_modules(fastahack IMPORTED_TARGET fastahack) # Optionally builds from contrib/ +pkg_check_modules(smithwaterman IMPORTED_TARGET smithwaterman) # Optionally builds from contrib/ # ---- Build switches set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ${ipo_supported}) @@ -113,12 +115,20 @@ endif(ZIG) # ---- Include files include_directories(include) -include_directories(contrib/fastahack) include_directories(contrib/intervaltree) -include_directories(contrib/smithwaterman) include_directories(contrib/filevercmp) include_directories(contrib/c-progress-bar) +if(NOT fastahack_FOUND) + message(STATUS "Using included fastahack") + include_directories(contrib/fastahack) +endif() + +if(NOT smithwaterman_FOUND) + message(STATUS "Using included smithwaterman") + include_directories(contrib/smithwaterman) +endif() + if(NOT htslib_FOUND) message(STATUS "Using included htslib") include(FindCURL) # for htslib @@ -142,11 +152,19 @@ endif() file(GLOB INCLUDES src/*.h* contrib/intervaltree/*.h* - contrib/smithwaterman/*.h* - contrib/fastahack/*.h* contrib/filevercmp/*.h* ) +if(NOT fastahack_FOUND) + file(GLOB FASTAHACK_INCLUDES contrib/fastahack/*.h*) + list(APPEND INCLUDES ${FASTAHACK_INCLUDES}) +endif() + +if(NOT smithwaterman_FOUND) + file(GLOB SW_INCLUDES contrib/smithwaterman/*.h*) + list(APPEND INCLUDES ${SW_INCLUDES}) +endif() + set(vcfwfa_SOURCE src/legacy.cpp # introduces a WFA dependency src/vcf-wfa.cpp @@ -170,16 +188,24 @@ set(vcflib_SOURCE src/LeftAlign.cpp src/cigar.cpp src/allele.cpp - contrib/fastahack/Fasta.cpp + contrib/fsom/fsom.c + contrib/filevercmp/filevercmp.c + contrib/c-progress-bar/progress.c +) + +if(NOT fastahack_FOUND) + list(APPEND vcflib_SOURCE contrib/fastahack/Fasta.cpp) +endif() + +if(NOT smithwaterman_FOUND) + list(APPEND vcflib_SOURCE contrib/smithwaterman/SmithWatermanGotoh.cpp contrib/smithwaterman/Repeats.cpp contrib/smithwaterman/IndelAllele.cpp contrib/smithwaterman/disorder.cpp contrib/smithwaterman/LeftAlign.cpp - contrib/fsom/fsom.c - contrib/filevercmp/filevercmp.c - contrib/c-progress-bar/progress.c -) + ) +endif() if (tabixpp_LOCAL) # add the tabixpp source file list(APPEND vcflib_SOURCE ${tabixpp_SOURCE}) @@ -440,6 +466,14 @@ if (NOT tabixpp_LOCAL) target_link_libraries(vcflib PkgConfig::tabixpp) endif() +if(fastahack_FOUND) + target_link_libraries(vcflib PkgConfig::fastahack) +endif() + +if(smithwaterman_FOUND) + target_link_libraries(vcflib PkgConfig::smithwaterman) +endif() + if(OPENMP) target_link_libraries(vcflib OpenMP::OpenMP_CXX) endif()