Skip to content

Commit

Permalink
Merge pull request #276 from floe/static_shared
Browse files Browse the repository at this point in the history
create static and shared library from same source build
  • Loading branch information
floe committed Jun 9, 2015
2 parents d919b85 + b5e2cb9 commit 42da6d8
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 7 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
examples/protonect/include/libfreenect2/config.h

# generated resource file
examples/protonect/src/resources.inc
examples/protonect/src/resources.inc.h
examples/protonect/build

# Dependency folders
Expand Down
19 changes: 14 additions & 5 deletions examples/protonect/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ INCLUDE_DIRECTORIES(

LINK_DIRECTORIES(${LibUSB_LIBRARY_DIRS})

SET(RESOURCES_INC_FILE "${MY_DIR}/src/resources.inc")
SET(RESOURCES_INC_FILE "${MY_DIR}/src/resources.inc.h")

SET(SOURCES
include/libfreenect2/protocol/command.h
Expand Down Expand Up @@ -171,21 +171,30 @@ CONFIGURE_FILE("${MY_DIR}/include/libfreenect2/config.h.in" "${MY_DIR}/include/l
GENERATE_RESOURCES(${RESOURCES_INC_FILE} ${MY_DIR} ${RESOURCES})

ADD_DEFINITIONS(-DRESOURCES_INC)
ADD_LIBRARY(freenect2 SHARED ${SOURCES})
ADD_LIBRARY(freenect2 OBJECT ${SOURCES})
set_target_properties(freenect2 PROPERTIES POSITION_INDEPENDENT_CODE 1)
ADD_LIBRARY(freenect2shared SHARED $<TARGET_OBJECTS:freenect2>)
ADD_LIBRARY(freenect2static STATIC $<TARGET_OBJECTS:freenect2>)
set_target_properties(freenect2shared PROPERTIES OUTPUT_NAME freenect2)
set_target_properties(freenect2static PROPERTIES OUTPUT_NAME freenect2)
IF(MSVC)
set_target_properties(freenect2static PROPERTIES OUTPUT_NAME freenect2static)
ENDIF()
MESSAGE("Linking with these libraries: ${LIBRARIES}")
TARGET_LINK_LIBRARIES(freenect2 ${LIBRARIES})
TARGET_LINK_LIBRARIES(freenect2shared ${LIBRARIES})

ADD_EXECUTABLE(Protonect
Protonect.cpp
)

TARGET_LINK_LIBRARIES(Protonect
freenect2
freenect2shared
)

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

INSTALL(TARGETS freenect2 DESTINATION lib)
INSTALL(TARGETS freenect2shared DESTINATION lib)
INSTALL(TARGETS freenect2static DESTINATION lib)
INSTALL(DIRECTORY "${MY_DIR}/include/" DESTINATION include PATTERN "*.in" EXCLUDE)
IF(LIBFREENECT2_THREADING_TINYTHREAD)
INSTALL(FILES "${MY_DIR}/src/tinythread/tinythread.h" DESTINATION include/${PROJECT_NAME}/tinythread/)
Expand Down
2 changes: 1 addition & 1 deletion examples/protonect/src/resource.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ struct ResourceDescriptor
};

#ifdef RESOURCES_INC
#include "resources.inc"
#include "resources.inc.h"
#else
ResourceDescriptor resource_descriptors[] = {};
#endif
Expand Down

0 comments on commit 42da6d8

Please sign in to comment.