File: shared_and_static.patch

package info (click to toggle)
spoa 4.1.5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 464 kB
  • sloc: cpp: 4,552; makefile: 32; sh: 10
file content (76 lines) | stat: -rw-r--r-- 2,154 bytes parent folder | download
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(