Skip to content
Commits on Source (5)
# Find HTSlib
find_package(PkgConfig REQUIRED)
pkg_check_modules(HTSlib REQUIRED htslib)
# because CMake is trying to be extra clever,
# it will not properly load libraries with
# absolute paths in *_LIBRARIES
set(HTSlib_LIBRARIES "${HTSlib_LDFLAGS}")
message(STATUS " HTSlib include dirs: ${HTSlib_INCLUDE_DIRS}")
message(STATUS " HTSlib libraries: ${HTSlib_LIBRARIES}")
include(CMakeParseArguments)
function(create_pbbam_tool)
# parse args
set(oneValueArgs TARGET)
set(multiValueArgs SOURCES)
cmake_parse_arguments(create_pbbam_tool "" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
# create executable
include_directories(
${ToolsCommonDir} # shared tool code
${GeneratedDir} # generated version headers
${PacBioBAM_INCLUDE_DIRS} # pbbam/htslib includes
)
add_executable(${create_pbbam_tool_TARGET} ${create_pbbam_tool_SOURCES})
set_target_properties(
${create_pbbam_tool_TARGET} PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${PacBioBAM_BinDir}
)
target_link_libraries(${create_pbbam_tool_TARGET} pbbam)
endfunction(create_pbbam_tool)
if(PacBioBAM_use_ccache)
find_program(CCACHE_FOUND ccache)
if(CCACHE_FOUND)
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
endif()
endif()
include(CheckCXXCompilerFlag)
# C++11 check & enabling
if (CMAKE_VERSION VERSION_LESS "3.1")
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") # clang
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") # gcc
endif()
else() # 3.1+
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
endif()
# shared CXX flags for src & tests
if (MSVC)
set(PacBioBAM_CXX_FLAGS "/Wall")
else()
set(PacBioBAM_CXX_FLAGS "-Wall")
endif()
# NOTE: -Wno-unused-local-typedefs used to quash clang warnings w/ Boost
check_cxx_compiler_flag("-Wno-unused-local-typedefs" HAS_NO_UNUSED_LOCAL_TYPEDEFS)
if(HAS_NO_UNUSED_LOCAL_TYPEDEFS)
set(PacBioBAM_CXX_FLAGS "${PacBioBAM_CXX_FLAGS} -Wno-unused-local-typedefs")
endif()
check_cxx_compiler_flag("-Wno-sign-compare" HAS_NO_SIGN_COMPARE)
if(HAS_NO_SIGN_COMPARE)
set(PacBioBAM_CXX_FLAGS "${PacBioBAM_CXX_FLAGS} -Wno-sign-compare")
endif()
# Turn on windows-style filepath resolution.
# We need to add this #define early (not just in the C# SWIG wrapper)
if(WIN32)
add_definitions(-DPBBAM_WIN_FILEPATHS)
endif()
# For now, keep @rpath out of install names on OS X, as it causes SWIG
# tests to fail.
if(APPLE)
set(CMAKE_MACOSX_RPATH OFF)
endif()
# pthreads
find_package(Threads REQUIRED)
# boost
if(NOT Boost_INCLUDE_DIRS)
find_package(Boost REQUIRED)
endif()
# Winsock for htslib on Windows
if(WIN32)
set(SOCKET_LIBRARIES "ws2_32")
endif()
# zlib
if (NOT ZLIB_INCLUDE_DIRS OR NOT ZLIB_LIBRARIES)
find_package(PkgConfig REQUIRED)
pkg_check_modules(ZLIB zlib)
set(ZLIB_LIBRARIES ${ZLIB_LDFLAGS})
else()
set(ZLIB_LDFLAGS ${ZLIB_LIBRARIES})
endif()
# htslib
if(NOT HTSLIB_INCLUDE_DIRS OR NOT HTSLIB_LIBRARIES)
find_package(HTSlib)
set(hts_INCLUDE_DIRS ${HTSlib_INCLUDE_DIRS})
set(hts_LIBRARIES ${HTSlib_LIBRARIES})
else()
set(hts_INCLUDE_DIRS ${HTSLIB_INCLUDE_DIRS})
set(hts_LIBRARIES ${HTSLIB_LIBRARIES})
endif()
# determine if we need a shared lib
if(PacBioBAM_build_shared)
set(BUILD_SHARED_LIBS ON)
set(htslib_build_shared ON CACHE BOOL "force htslibConfig to export proper library name")
set(PB_LIB_MODE SHARED)
set(PB_LIB_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX})
else()
set(BUILD_SHARED_LIBS OFF)
set(PB_LIB_MODE STATIC)
set(PB_LIB_SUFFIX ${CMAKE_STATIC_LIBRARY_SUFFIX})
endif()
if(WIN32)
# Limit the number of DLLs we will have to bundle
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -static-libgcc -static-libstdc++")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -static-libgcc -static-libstdc++")
endif()
......@@ -9,6 +9,7 @@ pbbam (0.18.0+dfsg-1) UNRELEASED; urgency=medium
* Point Vcs fields to salsa.debian.org
* Standards-Version: 4.2.1
* Use d-shlibs
* Remove unneeded trigger
[ Fabian Kloetzl ]
* fix dependency check for meson
......
......@@ -27,7 +27,7 @@ Package: pbbamtools
Architecture: any
Depends: ${shlibs:Depends},
${misc:Depends},
libpbbam (= ${binary:Version})
libpbbam0.18.0 (= ${binary:Version})
Recommends: samtools
Description: processing Pacific Biosciences binary alignment/map files
The BAM format is a binary, compressed, record-oriented container format
......
......@@ -3,6 +3,7 @@ Upstream-Name: pbbam
Upstream-Contact: Pacific Biosciences <devnet@pacificbiosciences.com>
Source: https://github.com/PacificBiosciences/pbbam
Files-Excluded: third-party
*/clang-format*
Files: *
Copyright: 2014-2016 Pacific Biosciences of California, Inc. <devnet@pacificbiosciences.com>
......