@@ -6,12 +6,17 @@ if(WIN32 AND NOT MINGW)
66 endif ()
77endif ()
88
9+ IF (NOT DEFINED CMAKE_BUILD_TYPE )
10+ # No effect for multi-configuration generators (e.g. for Visual Studio)
11+ SET (CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose: RelWithDebInfo Release Debug MinSizeRel None" )
12+ ENDIF ()
13+
914PROJECT (libfreenect2)
10- SET (CMAKE_BUILD_TYPE RelWithDebInfo)
1115
1216SET (MY_DIR ${libfreenect2_SOURCE_DIR} )
1317SET (DEPENDS_DIR "${MY_DIR} /../../depends" CACHE STRING "dependency directory must be set to 'false' if external deps are used" )
1418
19+ OPTION (BUILD_SHARED_LIBS "Build shared (ON) or static (OFF) libraries" ON )
1520OPTION (ENABLE_CXX11 "Enable C++11 support" OFF )
1621OPTION (ENABLE_OPENCL "Enable OpenCL support" ON )
1722OPTION (ENABLE_OPENGL "Enable OpenGL support" ON )
@@ -185,17 +190,13 @@ CONFIGURE_FILE("${MY_DIR}/include/libfreenect2/config.h.in" "${MY_DIR}/include/l
185190GENERATE_RESOURCES(${RESOURCES_INC_FILE} ${MY_DIR} ${RESOURCES} )
186191
187192ADD_DEFINITIONS (-DRESOURCES_INC)
188- ADD_LIBRARY (freenect2 OBJECT ${SOURCES} )
189- set_target_properties (freenect2 PROPERTIES POSITION_INDEPENDENT_CODE 1)
190- ADD_LIBRARY (freenect2shared SHARED $<TARGET_OBJECTS:freenect2>)
191- ADD_LIBRARY (freenect2static STATIC $<TARGET_OBJECTS:freenect2>)
192- set_target_properties (freenect2shared PROPERTIES OUTPUT_NAME freenect2)
193- set_target_properties (freenect2static PROPERTIES OUTPUT_NAME freenect2)
194- IF (MSVC )
195- set_target_properties (freenect2static PROPERTIES OUTPUT_NAME freenect2static)
193+ ADD_LIBRARY (freenect2 ${SOURCES} )
194+ IF (MSVC AND NOT BUILD_SHARED_LIBS )
195+ # MSVC creates freenect2.lib for both dynamic and static by default
196+ set_target_properties (freenect2 PROPERTIES SUFFIX "static.lib" )
196197ENDIF ()
197- MESSAGE ("Linking with these libraries: ${LIBRARIES} " )
198- TARGET_LINK_LIBRARIES (freenect2shared ${LIBRARIES} )
198+ MESSAGE (STATUS "Linking with these libraries: ${LIBRARIES} " )
199+ TARGET_LINK_LIBRARIES (freenect2 ${LIBRARIES} )
199200
200201SET (Protonect_src
201202 Protonect.cpp
@@ -215,18 +216,16 @@ ADD_EXECUTABLE(Protonect
215216)
216217
217218TARGET_LINK_LIBRARIES (Protonect
218- freenect2shared
219+ freenect2
219220)
220221
221222CONFIGURE_FILE (freenect2.cmake.in "${PROJECT_BINARY_DIR} /freenect2Config.cmake" @ONLY)
222223CONFIGURE_FILE (freenect2.pc.in "${PROJECT_BINARY_DIR} /freenect2.pc" @ONLY)
223224
224- INSTALL (TARGETS freenect2shared DESTINATION lib)
225- INSTALL (TARGETS freenect2static DESTINATION lib)
225+ INSTALL (TARGETS freenect2 DESTINATION lib)
226226INSTALL (DIRECTORY "${MY_DIR} /include/" DESTINATION include PATTERN "*.in" EXCLUDE )
227227IF (LIBFREENECT2_THREADING_TINYTHREAD)
228228 INSTALL (FILES "${MY_DIR} /src/tinythread/tinythread.h" DESTINATION include /${PROJECT_NAME} /tinythread/)
229229ENDIF (LIBFREENECT2_THREADING_TINYTHREAD)
230230INSTALL (FILES "${PROJECT_BINARY_DIR} /freenect2Config.cmake" DESTINATION lib/cmake/freenect2/)
231231INSTALL (FILES "${PROJECT_BINARY_DIR} /freenect2.pc" DESTINATION lib/pkgconfig/)
232-
0 commit comments