Description: Build additional static lib
Author: Andreas Tille <tille@debian.org>
Last-Update: Wed, 27 May 2020 09:59:29 +0200

--- bamtools.orig/src/CMakeLists.txt
+++ bamtools/src/CMakeLists.txt
@@ -33,7 +33,7 @@
 
 # create main BamTools API library
 add_library(
-    BamTools
+    BamTools SHARED
 
     api/BamAlignment.cpp
     api/BamMultiReader.cpp
@@ -73,6 +73,48 @@
     api/internal/sam/SamHeaderValidator_p.cpp
     api/internal/utils/BamException_p.cpp
 )
+add_library(
+    BamTools_static STATIC
+
+    api/BamAlignment.cpp
+    api/BamMultiReader.cpp
+    api/BamReader.cpp
+    api/BamWriter.cpp
+    api/SamHeader.cpp
+    api/SamProgram.cpp
+    api/SamProgramChain.cpp
+    api/SamReadGroup.cpp
+    api/SamReadGroupDictionary.cpp
+    api/SamSequence.cpp
+    api/SamSequenceDictionary.cpp
+    api/internal/bam/BamHeader_p.cpp
+    api/internal/bam/BamMultiReader_p.cpp
+    api/internal/bam/BamRandomAccessController_p.cpp
+    api/internal/bam/BamReader_p.cpp
+    api/internal/bam/BamWriter_p.cpp
+    api/internal/index/BamIndexFactory_p.cpp
+    api/internal/index/BamStandardIndex_p.cpp
+    api/internal/index/BamToolsIndex_p.cpp
+    api/internal/io/BamDeviceFactory_p.cpp
+    api/internal/io/BamFile_p.cpp
+    api/internal/io/BamFtp_p.cpp
+    api/internal/io/BamHttp_p.cpp
+    api/internal/io/BamPipe_p.cpp
+    api/internal/io/BgzfStream_p.cpp
+    api/internal/io/ByteArray_p.cpp
+    api/internal/io/HostAddress_p.cpp
+    api/internal/io/HostInfo_p.cpp
+    api/internal/io/HttpHeader_p.cpp
+    api/internal/io/ILocalIODevice_p.cpp
+    api/internal/io/RollingBuffer_p.cpp
+    api/internal/io/TcpSocketEngine_p.cpp
+    api/internal/io/TcpSocket_p.cpp
+    api/internal/sam/SamFormatParser_p.cpp
+    api/internal/sam/SamFormatPrinter_p.cpp
+    api/internal/sam/SamHeaderValidator_p.cpp
+    api/internal/utils/BamException_p.cpp
+)
+
 
 # The SONAME is bumped on every version increment
 # as Bamtools does not yet guarantee a stable ABI
@@ -83,6 +125,12 @@
     CXX_STANDARD 11
     CXX_STANDARD_REQUIRED ON
     CXX_EXTENSIONS OFF)
+set_target_properties(
+    BamTools_static PROPERTIES
+    OUTPUT_NAME bamtools
+    CXX_STANDARD 11
+    CXX_STANDARD_REQUIRED ON
+    CXX_EXTENSIONS OFF)
 target_include_directories(
     BamTools PRIVATE
     ${ZLIB_INCLUDE_DIRS}
@@ -91,6 +139,15 @@
 target_link_libraries(
     BamTools PRIVATE
     ${ZLIB_LIBRARIES})
+target_include_directories(
+    BamTools_static PRIVATE
+    ${ZLIB_INCLUDE_DIRS}
+    ${CMAKE_CURRENT_SOURCE_DIR}
+    ${CMAKE_CURRENT_BINARY_DIR})
+target_link_libraries(
+    BamTools_static PRIVATE
+    ${ZLIB_LIBRARIES})
+
 
 if(WIN32)
     target_link_libraries(
@@ -103,6 +160,9 @@
     target_sources(
         BamTools PRIVATE
         api/internal/io/TcpSocketEngine_unix_p.cpp)
+    target_sources(
+        BamTools_static PRIVATE
+        api/internal/io/TcpSocketEngine_unix_p.cpp)
 endif()
 
 if(EnableNodeJS)
@@ -195,6 +255,13 @@
     RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 
 install(
+    TARGETS BamTools_static
+    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+
+
+install(
     TARGETS bamtools_cmd
     ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
     LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
