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
|
Author: Andreas Tille <tille@debian.org>
Last-Update: 2018-06-08
Description: Build shared and static lib
--- spoa.orig/CMakeLists.txt
+++ spoa/CMakeLists.txt
@@ -12,7 +12,7 @@
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
-set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build all libraries as shared")
+# set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build all libraries as shared")
include(FetchContent)
include(GNUInstallDirs)
@@ -138,7 +138,7 @@
set(SPOA_VERSION "${PROJECT_VERSION}")
configure_file(src/spoa_config.h.in spoa_config.h)
-add_library(spoa
+add_library(spoa SHARED
src/alignment_engine.cpp
src/graph.cpp
src/simd_alignment_engine_dispatcher.cpp
@@ -159,9 +159,22 @@
target_compile_definitions(spoa PUBLIC SPOA_USE_CEREAL)
endif ()
-if (BUILD_SHARED_LIBS)
+# if (BUILD_SHARED_LIBS)
set_property(TARGET spoa PROPERTY SOVERSION "7.0.0")
-endif ()
+# endif ()
+
+add_library(${PROJECT_NAME}_static STATIC
+ src/alignment_engine.cpp
+ src/graph.cpp
+ src/sisd_alignment_engine.cpp
+ )
+target_include_directories(${PROJECT_NAME}_static PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/vendor/simde>
+ /usr/include/cpu_features
+ $<INSTALL_INTERFACE:include>)
+target_link_libraries(${PROJECT_NAME}_static
+ cereal)
if (spoa_generate_dispatch)
list(APPEND ARCHITECTURES avx2 sse4.1 sse2)
@@ -186,9 +199,15 @@
spoa_avx2
spoa_sse4.1
spoa_sse2)
+ add_dependencies(spoa_static
+ spoa_avx2
+ spoa_sse4.1
+ spoa_sse2)
target_link_libraries(spoa
CpuFeatures::cpu_features)
+ target_link_libraries(spoa_static
+ CpuFeatures::cpu_features)
endif ()
if (spoa_install)
@@ -205,6 +224,10 @@
EXPORT ${PROJECT_NAME}Targets
DESTINATION ${CMAKE_INSTALL_LIBDIR})
install(
+ TARGETS spoa_static
+ EXPORT ${PROJECT_NAME}Targets
+ DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ install(
DIRECTORY include/spoa
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
install(
|