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 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195
|
From 445c76622b29909432c149c134559d03159b0560 Mon Sep 17 00:00:00 2001
From: Nobuhiro Iwamatsu <iwamatsu@debian.org>
Date: Sun, 9 Mar 2025 21:53:02 +0900
Subject: [PATCH] Add support build static library
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@debian.org>
gview_audio/CMakeLists.txt | 19 ++++++++++++++++---
gview_encoder/CMakeLists.txt | 17 +++++++++++++++--
gview_render/CMakeLists.txt | 20 ++++++++++++++++----
gview_v4l2core/CMakeLists.txt | 17 +++++++++++++++--
4 files changed, 62 insertions(+), 11 deletions(-)
diff --git a/gview_audio/CMakeLists.txt b/gview_audio/CMakeLists.txt
index 3bea235..09a885b 100644
@@ -5,13 +5,19 @@ set(LIBVERSION "2.2.0")
option(USE_PULSE "Enable Pulseaudio API" ON)
-add_library(gviewaudio SHARED
+add_library(gviewaudio_objects OBJECT
audio.c
audio_fx.c
audio_portaudio.c
core_time.c
)
+add_library(gviewaudio SHARED $<TARGET_OBJECTS:gviewaudio_objects>)
+add_library(gviewaudio_static STATIC $<TARGET_OBJECTS:gviewaudio_objects>)
+
+set_target_properties(gviewaudio_objects PROPERTIES POSITION_INDEPENDENT_CODE ON)
+set_target_properties(gviewaudio_static PROPERTIES OUTPUT_NAME gviewaudio)
+
set_target_properties(
gviewaudio PROPERTIES
VERSION ${LIBVERSION}
@@ -27,7 +33,7 @@ if(USE_PULSE)
pkg_check_modules(PULSEAUDIO libpulse)
if(PULSEAUDIO_FOUND)
message(STATUS "pulseaudio is ON")
- target_sources(gviewaudio PRIVATE audio_pulseaudio.c)
+ target_sources(gviewaudio_objects PRIVATE audio_pulseaudio.c)
add_compile_definitions(HAS_PULSEAUDIO)
target_link_libraries(gviewaudio ${PULSEAUDIO_LIBRARIES})
add_definitions(${PULSEAUDIO_CFLAGS} ${PULSEAUDIO_CFLAGS_OTHER})
@@ -46,4 +52,11 @@ if(INSTALL_DEVKIT)
)
endif()
-install(TARGETS gviewaudio)
+install(
+ TARGETS gviewaudio
+ EXPORT gviewaudio
+ LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR})
+
+install(
+ TARGETS gviewaudio_static
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR})
diff --git a/gview_encoder/CMakeLists.txt b/gview_encoder/CMakeLists.txt
index 26ebccf..2ef3c12 100644
@@ -3,7 +3,7 @@ set(CMAKE_C_STANDARD 11)
set(LIBSOVERSION "2")
set(LIBVERSION "2.2.1")
-add_library(gviewencoder SHARED
+add_library(gviewencoder_objects OBJECT
audio_codecs.c
avi.c
encoder.c
@@ -16,6 +16,12 @@ add_library(gviewencoder SHARED
video_codecs.c
)
+add_library(gviewencoder SHARED $<TARGET_OBJECTS:gviewencoder_objects>)
+add_library(gviewencoder_static STATIC $<TARGET_OBJECTS:gviewencoder_objects>)
+
+set_target_properties(gviewencoder_objects PROPERTIES POSITION_INDEPENDENT_CODE ON)
+set_target_properties(gviewencoder_static PROPERTIES OUTPUT_NAME gviewencoder)
+
set_target_properties(
gviewencoder PROPERTIES
VERSION ${LIBVERSION}
@@ -40,4 +46,11 @@ if(INSTALL_DEVKIT)
)
endif()
-install(TARGETS gviewencoder)
+install(
+ TARGETS gviewencoder
+ EXPORT gviewencoder
+ LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR})
+
+install(
+ TARGETS gviewencoder_static
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR})
diff --git a/gview_render/CMakeLists.txt b/gview_render/CMakeLists.txt
index 8cc3e7d..c0af062 100644
@@ -4,20 +4,25 @@ set(CMAKE_C_STANDARD 11)
set(LIBSOVERSION "2")
set(LIBVERSION "2.2.1")
-add_library(gviewrender SHARED
+add_library(gviewrender_objects OBJECT
render.c
render_fx.c
render_osd_crosshair.c
render_osd_vu_meter.c
)
+add_library(gviewrender SHARED $<TARGET_OBJECTS:gviewrender_objects>)
+add_library(gviewrender_static STATIC $<TARGET_OBJECTS:gviewrender_objects>)
+
+set_target_properties(gviewrender_objects PROPERTIES POSITION_INDEPENDENT_CODE ON)
+set_target_properties(gviewrender_static PROPERTIES OUTPUT_NAME gviewrender)
+
set_target_properties(
gviewrender PROPERTIES
VERSION ${LIBVERSION}
SOVERSION ${LIBSOVERSION}
)
-
if(SDL2_FOUND)
target_sources(gviewrender PRIVATE render_sdl2.c)
target_link_libraries(gviewrender ${SDL2_LIBRARIES})
@@ -25,7 +30,7 @@ if(SDL2_FOUND)
endif()
if(SFML_FOUND)
- target_sources(gviewrender PRIVATE render_sfml.cpp)
+ target_sources(gviewrender_objects PRIVATE render_sfml.cpp)
target_link_libraries(gviewrender ${SFML_LIBRARIES})
add_definitions(${SFML_CFLAGS} ${SFML_CFLAGS_OTHER})
endif()
@@ -57,4 +62,11 @@ if(INSTALL_DEVKIT)
)
endif()
-install(TARGETS gviewrender)
+install(
+ TARGETS gviewrender
+ EXPORT gviewrender
+ LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR})
+
+install(
+ TARGETS gviewrender_static
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR})
diff --git a/gview_v4l2core/CMakeLists.txt b/gview_v4l2core/CMakeLists.txt
index 2a9b94a..f5146bd 100644
@@ -3,7 +3,7 @@ set(CMAKE_C_STANDARD 11)
set(LIBSOVERSION "2")
set(LIBVERSION "2.2.1")
-add_library(gviewv4l2core SHARED
+add_library(gviewv4l2core_objects OBJECT
colorspaces.c
control_profile.c
core_time.c
@@ -22,6 +22,12 @@ add_library(gviewv4l2core SHARED
v4l2_formats.c
v4l2_xu_ctrls.c)
+add_library(gviewv4l2core SHARED $<TARGET_OBJECTS:gviewv4l2core_objects>)
+add_library(gviewv4l2core_static STATIC $<TARGET_OBJECTS:gviewv4l2core_objects>)
+
+set_target_properties(gviewv4l2core_objects PROPERTIES POSITION_INDEPENDENT_CODE ON)
+set_target_properties(gviewv4l2core_static PROPERTIES OUTPUT_NAME gviewv4l2core)
+
set_target_properties(
gviewv4l2core PROPERTIES
VERSION ${LIBVERSION}
@@ -48,4 +54,11 @@ if(INSTALL_DEVKIT)
)
endif()
-install(TARGETS gviewv4l2core)
+install(
+ TARGETS gviewv4l2core
+ EXPORT gviewv4l2core
+ LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR})
+
+install(
+ TARGETS gviewv4l2core_static
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR})
--
2.47.2
|