1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206
|
# ===========================================================================
# SeqAn - The Library for Sequence Analysis
# ===========================================================================
# File: /apps/yara/CMakeLists.txt
#
# CMakeLists.txt file for yara.
# ===========================================================================
cmake_minimum_required (VERSION 3.0.0)
project (seqan_apps_yara CXX)
message (STATUS "Configuring apps/yara")
if ("$ENV{DEB_BUILD_ARCH}" STREQUAL "mips")
message (STATUS " Not building yara on mips due to memory requirements.")
return ()
endif ()
if ("$ENV{DEB_BUILD_ARCH}" STREQUAL "mipsel")
message (STATUS " Not building yara on mipsel due to memory requirements.")
return ()
endif ()
if ("$ENV{DEB_BUILD_ARCH}" STREQUAL "armhf")
message (STATUS " Not building yara on armhf due to memory requirements.")
return ()
endif ()
if ("$ENV{DEB_BUILD_ARCH}" STREQUAL "sh4")
message (STATUS " Not building yara on sh4 due to memory requirements.")
return ()
endif ()
if ("$ENV{DEB_BUILD_ARCH}" STREQUAL "armel")
message (STATUS " Not building yara on armel due to memory requirements.")
return ()
endif ()
if ("$ENV{DEB_BUILD_ARCH}" STREQUAL "kfreebsd-i386")
message (STATUS " Not building yara on kfreebsd-i386 due to memory requirements.")
return ()
endif ()
if ("$ENV{DEB_BUILD_ARCH}" STREQUAL "hurd-i386")
message (STATUS " Not building yara on hurd-i386 due to memory requirements.")
return ()
endif ()
# ----------------------------------------------------------------------------
# Dependencies
# ----------------------------------------------------------------------------
if (COMPILER_MSVC)
message (STATUS "Yara is currently not build on Microsoft Visual because it requires OpenMP 3.0.")
return ()
endif ()
# Search SeqAn and select dependencies.
if (NOT "${SEQAN_BUILD_SYSTEM}" STREQUAL "DEVELOP")
find_package (OpenMP)
find_package (ZLIB)
find_package (BZip2)
find_package (SeqAn CONFIG REQUIRED)
endif ()
# Warn if OpenMP was not found.
if (NOT OPENMP_FOUND)
message (STATUS " OpenMP 3.0 not found: building yara without multi-threading.")
endif (NOT OPENMP_FOUND)
# Warn if Zlib was not found.
if (NOT ZLIB_FOUND)
message (STATUS " Zlib not found: building yara without gzipped input and BAM output.")
endif (NOT ZLIB_FOUND)
# Warn if BZip2 was not found.
if (NOT BZIP2_FOUND)
message (STATUS " BZip2 not found: building yara without bzipped input.")
endif (NOT BZIP2_FOUND)
# ----------------------------------------------------------------------------
# App-Level Configuration
# ----------------------------------------------------------------------------
set (SEQAN_APP_VERSION "0.9.11")
option (YARA_LARGE_CONTIGS "Set to OFF to disable support for more than 32k contigs or contigs longer than 4Gbp." ON)
if (YARA_LARGE_CONTIGS AND NOT SEQAN_TRAVIS_BUILD)
add_definitions (-DYARA_LARGE_CONTIGS=1)
endif (YARA_LARGE_CONTIGS AND NOT SEQAN_TRAVIS_BUILD)
# ----------------------------------------------------------------------------
# Disable Compiler Warnings
# ----------------------------------------------------------------------------
# Disables warning about conversion from 64 bit to 32 bit integrals.
# Note that there is a runtime exception thrown if the type is not sufficient.
# Unfortunately the VC does not detect it.
if (MSVC)
set (SEQAN_CXX_FLAGS "${SEQAN_CXX_FLAGS} /wd4244") # When compiling on 32 bit windows.
set (SEQAN_CXX_FLAGS "${SEQAN_CXX_FLAGS} /wd4267") # When compiling on 64 bit windows.
endif (MSVC)
# ----------------------------------------------------------------------------
# Build Setup
# ----------------------------------------------------------------------------
# Add include directories.
include_directories (${SEQAN_INCLUDE_DIRS})
# Add definitions set by find_package (SeqAn).
add_definitions (${SEQAN_DEFINITIONS})
# Add definitions set by the build system.
add_definitions (-DSEQAN_REVISION="${SEQAN_REVISION}")
add_definitions (-DSEQAN_DATE="${SEQAN_DATE}")
add_definitions (-DSEQAN_APP_VERSION="${SEQAN_APP_VERSION}")
# Add CXX flags found by find_package (SeqAn).
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SEQAN_CXX_FLAGS}")
# Update the list of file names below if you add source files to your application.
add_executable(yara_indexer indexer.cpp
misc_tags.h
misc_timer.h
misc_options.h
misc_types.h
store_seqs.h
bits_matches.h
index_fm.h)
add_executable(yara_mapper mapper.cpp
mapper.h
mapper_collector.h
mapper_classifier.h
mapper_ranker.h
mapper_filter.h
mapper_extender.h
mapper_verifier.h
mapper_aligner.h
mapper_writer.h
basic_alphabet.h
file_pair.h
file_prefetched.h
store_seqs.h
misc_tags.h
misc_timer.h
misc_options.h
misc_types.h
bits_reads.h
bits_hits.h
bits_matches.h
bits_context.h
bits_seeds.h
bits_bucket.h
find_extender.h
find_verifier.h
index_fm.h)
# Add dependencies found by find_package (SeqAn).
target_link_libraries (yara_indexer ${SEQAN_LIBRARIES})
target_link_libraries (yara_mapper ${SEQAN_LIBRARIES})
# ----------------------------------------------------------------------------
# Installation
# ----------------------------------------------------------------------------
# Set variables for installing, depending on the selected build type.
if (NOT SEQAN_PREFIX_SHARE_DOC)
seqan_setup_install_vars (yara)
endif (NOT SEQAN_PREFIX_SHARE_DOC)
# Install yara in ${PREFIX}/bin directory
install (TARGETS yara_indexer yara_mapper
DESTINATION ${CMAKE_INSTALL_BINDIR})
# Install non-binary files for the package to "." for app builds and
# ${PREFIX}/share/doc/yara for SeqAn release builds.
install (FILES LICENSE README.rst
DESTINATION ${SEQAN_PREFIX_SHARE_DOC})
# ----------------------------------------------------------------------------
# App Test
# ----------------------------------------------------------------------------
seqan_add_app_test (yara)
# ----------------------------------------------------------------------------
# Setup Common Tool Description for Generic Workflow Nodes
# ----------------------------------------------------------------------------
# Include executable yara_mapper in CTD structure.
set (SEQAN_CTD_EXECUTABLES ${SEQAN_CTD_EXECUTABLES}
yara_indexer yara_mapper CACHE INTERNAL "")
# ----------------------------------------------------------------------------
# CPack Install
# ----------------------------------------------------------------------------
if (SEQAN_BUILD_SYSTEM STREQUAL "APP:yara")
set (CPACK_PACKAGE_NAME "yara")
set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "Yara - Yet Another Read Aligner")
set (CPACK_DEBIAN_PACKAGE_MAINTAINER "Enrico Siragusa <enrico.siragusa@fu-berlin.de>")
set (CPACK_PACKAGE_VENDOR "SeqAn Team, FU Berlin")
set (CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.rst")
seqan_configure_cpack_app (yara "yara")
endif (SEQAN_BUILD_SYSTEM STREQUAL "APP:yara")
|