Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 28 additions & 5 deletions examples/protonect/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,18 @@ SET(EXECUTABLE_OUTPUT_PATH ${MY_DIR}/bin)
#set the default path for built libraries to the "lib" directory
SET(LIBRARY_OUTPUT_PATH ${MY_DIR}/lib)

IF(WIN32)
SET(USE_STATIC_LIBS TRUE CACHE BOOL "Prefer static libraries")
IF(BUILD_SHARED_LIBS)
SET(USE_STATIC_LIBS FALSE)
ENDIF()
ENDIF()

# dependencies
FIND_PACKAGE(PkgConfig) # try find PKGConfig as it will be used if found
FIND_PACKAGE(PkgConfig QUIET) # try find PKGConfig as it will be used if found
FIND_PACKAGE(LibUSB REQUIRED)
FIND_PACKAGE(OpenCV REQUIRED)
SET(OpenCV_STATIC ${USE_STATIC_LIBS})
FIND_PACKAGE(OpenCV REQUIRED core highgui)
FIND_PACKAGE(TurboJPEG REQUIRED) #does not provide a package-config file

# Add includes
Expand Down Expand Up @@ -103,7 +111,6 @@ SET(SOURCES
)

SET(LIBRARIES
${OpenCV_LIBS}
${OpenCV_LIBRARIES}
${LibUSB_LIBRARIES}
${TurboJPEG_LIBRARIES}
Expand Down Expand Up @@ -171,29 +178,45 @@ 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)
IF(USE_STATIC_LIBS)
ADD_LIBRARY(freenect2static STATIC ${SOURCES})
set_target_properties(freenect2static PROPERTIES COMPILE_FLAGS "/MT")
ELSE(USE_STATIC_LIBS)
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>)
TARGET_LINK_LIBRARIES(freenect2shared ${LIBRARIES})
set_target_properties(freenect2shared PROPERTIES OUTPUT_NAME freenect2)
ENDIF(USE_STATIC_LIBS)
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(freenect2shared ${LIBRARIES})

ADD_EXECUTABLE(Protonect
Protonect.cpp
)


IF(USE_STATIC_LIBS)
set_target_properties(Protonect PROPERTIES COMPILE_FLAGS "/MT")
TARGET_LINK_LIBRARIES(Protonect
freenect2static
${LIBRARIES}
)
ELSE(USE_STATIC_LIBS)
TARGET_LINK_LIBRARIES(Protonect
freenect2shared
)
ENDIF(USE_STATIC_LIBS)

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

INSTALL(TARGETS Protonect DESTINATION bin)
IF(NOT USE_STATIC_LIBS)
INSTALL(TARGETS freenect2shared DESTINATION lib)
ENDIF()
INSTALL(TARGETS freenect2static DESTINATION lib)
INSTALL(DIRECTORY "${MY_DIR}/include/" DESTINATION include PATTERN "*.in" EXCLUDE)
IF(LIBFREENECT2_THREADING_TINYTHREAD)
Expand Down
7 changes: 6 additions & 1 deletion examples/protonect/cmake_modules/FindGLFW3.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,13 @@ ELSEIF(MSVC)
SET(_SUFFIX lib-vc2013)
ENDIF()

SET(LIB_NAME glfw3dll)
IF(USE_STATIC_LIBS)
SET(LIB_NAME glfw3)
ENDIF()

FIND_LIBRARY(GLFW3_LIBRARIES
NAMES glfw3dll glfw3
NAMES ${LIB_NAME}
PATHS
"${DEPENDS_DIR}/glfw"
"$ENV{ProgramW6432}/glfw"
Expand Down
22 changes: 17 additions & 5 deletions examples/protonect/cmake_modules/FindLibUSB.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -24,18 +24,30 @@ FIND_PATH(LibUSB_INCLUDE_DIRS
libusb
)

SET(SUFFIXES
x64/Release/dll
x64/Debug/dll
Win32/Release/dll
Win32/Debug/dll
MS64
)
IF(USE_STATIC_LIBS)
SET(SUFFIXES
x64/Release/lib
x64/Debug/lib
Win32/Release/lib
Win32/Debug/lib
)
ENDIF()

FIND_LIBRARY(LibUSB_LIBRARIES
NAMES libusb-1.0
PATHS
"${DEPENDS_DIR}/libusb"
"${DEPENDS_DIR}/libusbx"
ENV LibUSB_ROOT
PATH_SUFFIXES
x64/Release/dll
x64/Debug/dll
Win32/Release/dll
Win32/Debug/dll
MS64
${SUFFIXES}
)

INCLUDE(FindPackageHandleStandardArgs)
Expand Down
8 changes: 4 additions & 4 deletions examples/protonect/cmake_modules/FindOpenCL.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,14 @@ ELSE (APPLE)
# The AMD SDK currently installs both x86 and x86_64 libraries
# This is only a hack to find out architecture
IF( ${CMAKE_SIZEOF_VOID_P} EQUAL 8 )
FIND_LIBRARY(OPENCL_LIBRARIES OpenCL.lib PATHS "$ENV{ATISTREAMSDKROOT}" "$ENV{AMDAPPSDKROOT}" "$ENV{INTELOCLSDKROOT}" PATH_SUFFIXES "/lib/x86_64" "/lib/x64")
FIND_LIBRARY(OPENCL_LIBRARIES OpenCL.lib PATHS "$ENV{ATISTREAMSDKROOT}" "$ENV{AMDAPPSDKROOT}" "$ENV{INTELOCLSDKROOT}" "$ENV{CUDA_PATH}" PATH_SUFFIXES "/lib/x86_64" "/lib/x64")
ELSE (${CMAKE_SIZEOF_VOID_P} EQUAL 8)
FIND_LIBRARY(OPENCL_LIBRARIES OpenCL.lib PATHS "$ENV{ATISTREAMSDKROOT}" "$ENV{AMDAPPSDKROOT}" "$ENV{INTELOCLSDKROOT}" PATH_SUFFIXES "/lib/x86")
FIND_LIBRARY(OPENCL_LIBRARIES OpenCL.lib PATHS "$ENV{ATISTREAMSDKROOT}" "$ENV{AMDAPPSDKROOT}" "$ENV{INTELOCLSDKROOT}" "$ENV{CUDA_PATH}" PATH_SUFFIXES "/lib/x86")
ENDIF( ${CMAKE_SIZEOF_VOID_P} EQUAL 8 )

# On Win32 search relative to the library
FIND_PATH(OPENCL_INCLUDE_DIRS CL/cl.h PATHS "$ENV{ATISTREAMSDKROOT}" "$ENV{AMDAPPSDKROOT}" "$ENV{INTELOCLSDKROOT}" PATH_SUFFIXES "/include")
FIND_PATH(_OPENCL_CPP_INCLUDE_DIRS CL/cl.hpp PATHS "$ENV{ATISTREAMSDKROOT}" "$ENV{AMDAPPSDKROOT}" "$ENV{INTELOCLSDKROOT}" PATH_SUFFIXES "/include")
FIND_PATH(OPENCL_INCLUDE_DIRS CL/cl.h PATHS "$ENV{ATISTREAMSDKROOT}" "$ENV{AMDAPPSDKROOT}" "$ENV{INTELOCLSDKROOT}" "$ENV{CUDA_PATH}" PATH_SUFFIXES "/include")
FIND_PATH(_OPENCL_CPP_INCLUDE_DIRS CL/cl.hpp PATHS "$ENV{ATISTREAMSDKROOT}" "$ENV{AMDAPPSDKROOT}" "$ENV{INTELOCLSDKROOT}" "$ENV{CUDA_PATH}" PATH_SUFFIXES "/include")

ELSE (WIN32)

Expand Down
7 changes: 6 additions & 1 deletion examples/protonect/cmake_modules/FindTurboJPEG.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,13 @@ FIND_PATH(TurboJPEG_INCLUDE_DIRS
include
)

SET(LIB_NAME turbojpeg)
IF(USE_STATIC_LIBS)
SET(LIB_NAME turbojpeg-static)
ENDIF()

FIND_LIBRARY(TurboJPEG_LIBRARIES
NAMES libturbojpeg.so.0 turbojpeg
NAMES libturbojpeg.so.0 ${LIB_NAME}
DOC "Found TurboJPEG library path"
PATHS
"${DEPENDS_DIR}/libjpeg_turbo"
Expand Down
4 changes: 4 additions & 0 deletions examples/protonect/src/opencl_depth_packet_processor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -247,9 +247,11 @@ class OpenCLDepthPacketProcessorImpl
case CL_DEVICE_TYPE_ACCELERATOR:
devType = "ACCELERATOR";
break;
#ifdef CL_DEVICE_TYPE_CUSTOM
case CL_DEVICE_TYPE_CUSTOM:
devType = "CUSTOM";
break;
#endif
default:
devType = "UNKNOWN";
}
Expand Down Expand Up @@ -329,9 +331,11 @@ class OpenCLDepthPacketProcessorImpl
case CL_DEVICE_TYPE_ACCELERATOR:
devType = "ACCELERATOR";
break;
#ifdef CL_DEVICE_TYPE_CUSTOM
case CL_DEVICE_TYPE_CUSTOM:
devType = "CUSTOM";
break;
#endif
default:
devType = "UNKNOWN";
}
Expand Down