CMakeLists.txt 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. project(nvBio)
  2. cmake_minimum_required(VERSION 2.8)
  3. # available options
  4. option(CUDA_VERBOSE_PTXAS
  5. "Enable verbose output from PTXAS"
  6. ON)
  7. option(PROFILING
  8. "Enable profiling"
  9. OFF)
  10. option(WERROR
  11. "Treat compiler warnings as errors"
  12. OFF)
  13. set(GPU_ARCHITECTURE "sm_35" CACHE STRING "Target GPU architecture")
  14. set(NVBIO_SOURCE_ROOT ${CMAKE_CURRENT_SOURCE_DIR})
  15. # import our own nvbio_* macros
  16. include("${NVBIO_SOURCE_ROOT}/cmake-local/nvbio.cmake")
  17. # grab gcc flags
  18. include("${NVBIO_SOURCE_ROOT}/cmake-local/gcc.cmake")
  19. # default to release builds
  20. if (NOT CMAKE_BUILD_TYPE)
  21. set(CMAKE_BUILD_TYPE "Release")
  22. endif()
  23. message(STATUS "Building ${CMAKE_BUILD_TYPE}")
  24. if (CMAKE_BUILD_TYPE MATCHES "Debug")
  25. add_definitions(-DTHRUST_DEBUG)
  26. add_definitions(-DCUDA_DEBUG)
  27. set(CUDA_NVCC_DEBUG_FLAGS "-g -lineinfo")
  28. else()
  29. set(CUDA_NVCC_DEBUG_FLAGS "")
  30. endif()
  31. if (CMAKE_SYSTEM_PROCESSOR MATCHES "Intel" OR CMAKE_SYSTEM_PROCESSOR MATCHES "x86")
  32. add_definitions(-DPLATFORM_X86)
  33. endif()
  34. find_package(CUDA)
  35. find_package(Doxygen)
  36. find_package(OpenMP)
  37. if (OPENMP_FOUND)
  38. set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
  39. set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
  40. endif()
  41. # set up required system libs
  42. set(SYSTEM_LINK_LIBRARIES "")
  43. if (CMAKE_SYSTEM_NAME MATCHES "Linux")
  44. # shm_* live in librt on Linux
  45. list(APPEND SYSTEM_LINK_LIBRARIES rt)
  46. endif()
  47. if (MSVC_IDE)
  48. # suppress automatic regeneration of VS project files
  49. #set(CMAKE_SUPPRESS_REGENERATION ON)
  50. endif()
  51. if (APPLE AND "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
  52. find_program(CLANG_BIN clang)
  53. set(CUDA_NVCC_FLAGS " -ccbin ${CLANG_BIN} -Xcompiler -stdlib=libstdc++")
  54. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -stdlib=libstdc++")
  55. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libstdc++")
  56. endif()
  57. set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} ${CUDA_NVCC_DEBUG_FLAGS} --gpu-architecture=${GPU_ARCHITECTURE} -use_fast_math)
  58. set(cudpp_INCLUDE_DIRS ${NVBIO_SOURCE_ROOT})
  59. set(INCLUDE_DIRS ${NVBIO_SOURCE_ROOT} ${NVBIO_SOURCE_ROOT}/contrib ${CMAKE_BINARY_DIR}/contrib/zlib-1.2.7 ${NVBIO_SOURCE_ROOT}/contrib/crc ${NVBIO_SOURCE_ROOT}/contrib/bamtools ${NVBIO_SOURCE_ROOT}/contrib/moderngpu/include)
  60. include_directories(${INCLUDE_DIRS})
  61. # export our include directories in the cache for external projects to pick up
  62. set(nvbio_INCLUDE_DIRECTORIES ${INCLUDE_DIRS} CACHE STRING "nvbio include paths")
  63. add_subdirectory(contrib/zlib-1.2.7)
  64. add_subdirectory(contrib/lz4)
  65. add_subdirectory(contrib/crc)
  66. add_subdirectory(contrib/bamtools)
  67. add_subdirectory(contrib/moderngpu)
  68. add_subdirectory(contrib/htslib)
  69. add_subdirectory(nvbio)
  70. add_subdirectory(nvBowtie)
  71. add_subdirectory(nvFM-server)
  72. add_subdirectory(nvBWT)
  73. add_subdirectory(nvSetBWT)
  74. add_subdirectory(nvSSA)
  75. add_subdirectory(nvExtractReads)
  76. add_subdirectory(nvLighter)
  77. add_subdirectory(nvmem)
  78. add_subdirectory(nvbio-test)
  79. add_subdirectory(nvbio-aln-diff)
  80. add_subdirectory(nvMicroAssembly)
  81. add_subdirectory(sufsort-test)
  82. add_subdirectory(sw-benchmark)
  83. add_subdirectory(examples/waveletfm)
  84. add_subdirectory(examples/proteinsw)
  85. add_subdirectory(examples/seeding)
  86. add_subdirectory(examples/fmmap)
  87. add_subdirectory(examples/qmap)
  88. add_subdirectory(examples/mem)
  89. nvbio_module(nvbio-project)
  90. nvbio_doxygen()