From 23eb98d83b404907bd34ae68bad2d4594143e1cb Mon Sep 17 00:00:00 2001 From: Andreas Tille Date: Fri, 15 Dec 2023 19:09:45 +0100 Subject: Build additional static lib Last-Update: Wed, 27 May 2020 09:59:29 +0200 Gbp-Pq: Name shared_and_static.patch --- src/CMakeLists.txt | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 68 insertions(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f8bb1ac..8559b51 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -33,7 +33,7 @@ find_package(ZLIB REQUIRED) # create main BamTools API library add_library( - BamTools + BamTools SHARED api/BamAlignment.cpp api/BamMultiReader.cpp @@ -73,6 +73,48 @@ add_library( 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 @@ set_target_properties( 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_include_directories( 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 @@ else() 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) @@ -194,6 +254,13 @@ install( LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} 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} -- cgit v1.2.3