File: 0002-Add-support-build-static-library.patch

package info (click to toggle)
guvcview 2.2.1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 3,680 kB
  • sloc: ansic: 25,600; cpp: 3,542; makefile: 28
file content (195 lines) | stat: -rw-r--r-- 5,931 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
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
--- a/gview_audio/CMakeLists.txt
+++ b/gview_audio/CMakeLists.txt
@@ -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
--- a/gview_encoder/CMakeLists.txt
+++ b/gview_encoder/CMakeLists.txt
@@ -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
--- a/gview_render/CMakeLists.txt
+++ b/gview_render/CMakeLists.txt
@@ -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
--- a/gview_v4l2core/CMakeLists.txt
+++ b/gview_v4l2core/CMakeLists.txt
@@ -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