Skip to content

Commit 42da6d8

Browse files
committed
Merge pull request #276 from floe/static_shared
create static and shared library from same source build
2 parents d919b85 + b5e2cb9 commit 42da6d8

File tree

3 files changed

+16
-7
lines changed

3 files changed

+16
-7
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
examples/protonect/include/libfreenect2/config.h
33

44
# generated resource file
5-
examples/protonect/src/resources.inc
5+
examples/protonect/src/resources.inc.h
66
examples/protonect/build
77

88
# Dependency folders

examples/protonect/CMakeLists.txt

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ INCLUDE_DIRECTORIES(
5454

5555
LINK_DIRECTORIES(${LibUSB_LIBRARY_DIRS})
5656

57-
SET(RESOURCES_INC_FILE "${MY_DIR}/src/resources.inc")
57+
SET(RESOURCES_INC_FILE "${MY_DIR}/src/resources.inc.h")
5858

5959
SET(SOURCES
6060
include/libfreenect2/protocol/command.h
@@ -171,21 +171,30 @@ 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)
180+
IF(MSVC)
181+
set_target_properties(freenect2static PROPERTIES OUTPUT_NAME freenect2static)
182+
ENDIF()
175183
MESSAGE("Linking with these libraries: ${LIBRARIES}")
176-
TARGET_LINK_LIBRARIES(freenect2 ${LIBRARIES})
184+
TARGET_LINK_LIBRARIES(freenect2shared ${LIBRARIES})
177185

178186
ADD_EXECUTABLE(Protonect
179187
Protonect.cpp
180188
)
181189

182190
TARGET_LINK_LIBRARIES(Protonect
183-
freenect2
191+
freenect2shared
184192
)
185193

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

188-
INSTALL(TARGETS freenect2 DESTINATION lib)
196+
INSTALL(TARGETS freenect2shared DESTINATION lib)
197+
INSTALL(TARGETS freenect2static DESTINATION lib)
189198
INSTALL(DIRECTORY "${MY_DIR}/include/" DESTINATION include PATTERN "*.in" EXCLUDE)
190199
IF(LIBFREENECT2_THREADING_TINYTHREAD)
191200
INSTALL(FILES "${MY_DIR}/src/tinythread/tinythread.h" DESTINATION include/${PROJECT_NAME}/tinythread/)

examples/protonect/src/resource.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ struct ResourceDescriptor
4040
};
4141

4242
#ifdef RESOURCES_INC
43-
#include "resources.inc"
43+
#include "resources.inc.h"
4444
#else
4545
ResourceDescriptor resource_descriptors[] = {};
4646
#endif

0 commit comments

Comments
 (0)