Skip to content

Commit 00e55d1

Browse files
committed
create static and shared library from same source build
1 parent 2f9c552 commit 00e55d1

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

examples/protonect/CMakeLists.txt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -171,21 +171,27 @@ CONFIGURE_FILE("${MY_DIR}/include/libfreenect2/config.h.in" "${MY_DIR}/include/l
171171
GENERATE_RESOURCES(${RESOURCES_INC_FILE} ${MY_DIR} ${RESOURCES})
172172

173173
ADD_DEFINITIONS(-DRESOURCES_INC)
174-
ADD_LIBRARY(freenect2 SHARED ${SOURCES})
174+
ADD_LIBRARY(freenect2 OBJECT ${SOURCES})
175+
set_target_properties(freenect2 PROPERTIES POSITION_INDEPENDENT_CODE 1)
176+
ADD_LIBRARY(freenect2shared SHARED $<TARGET_OBJECTS:freenect2>)
177+
ADD_LIBRARY(freenect2static STATIC $<TARGET_OBJECTS:freenect2>)
178+
set_target_properties(freenect2shared PROPERTIES OUTPUT_NAME freenect2)
179+
set_target_properties(freenect2static PROPERTIES OUTPUT_NAME freenect2)
175180
MESSAGE("Linking with these libraries: ${LIBRARIES}")
176-
TARGET_LINK_LIBRARIES(freenect2 ${LIBRARIES})
181+
TARGET_LINK_LIBRARIES(freenect2shared ${LIBRARIES})
177182

178183
ADD_EXECUTABLE(Protonect
179184
Protonect.cpp
180185
)
181186

182187
TARGET_LINK_LIBRARIES(Protonect
183-
freenect2
188+
freenect2shared
184189
)
185190

186191
CONFIGURE_FILE(freenect2.cmake.in "${PROJECT_BINARY_DIR}/freenect2Config.cmake" @ONLY)
187192

188-
INSTALL(TARGETS freenect2 DESTINATION lib)
193+
INSTALL(TARGETS freenect2shared DESTINATION lib)
194+
INSTALL(TARGETS freenect2static DESTINATION lib)
189195
INSTALL(DIRECTORY "${MY_DIR}/include/" DESTINATION include PATTERN "*.in" EXCLUDE)
190196
IF(LIBFREENECT2_THREADING_TINYTHREAD)
191197
INSTALL(FILES "${MY_DIR}/src/tinythread/tinythread.h" DESTINATION include/${PROJECT_NAME}/tinythread/)

0 commit comments

Comments
 (0)