Skip to content

Commit cac934c

Browse files
committed
Removed glew
Added glfw FindGLFW.cmake since the GLFWConfig.cmake shipped with GLFW leads to wrong paths Removed PKG-config stuff from FindLibUsb.cmake as it is handled in main CMakeLists Removed a comment in opencl as it is tested Renamed TurboJPEG to be equal the variable name in cmakefiles Changed the auto_detect_lib function to be type of macro as this keeps same scope updated the cmakelist with use of the new macro
1 parent ace3c1a commit cac934c

File tree

6 files changed

+117
-213
lines changed

6 files changed

+117
-213
lines changed

examples/protonect/CMakeLists.txt

Lines changed: 64 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,25 @@
11
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
22

3-
4-
function(auto_detect_lib LIBNAME)
5-
if(NOT DEFINED ${${LIBNAME}_FOUND})
6-
find_package(PkgConfig)
3+
macro(auto_detect_lib LIBNAME)
4+
if(NOT DEFINED ${${LIBNAME}_FOUND})
75
if ( PKG_CONFIG_FOUND )
86
string(TOLOWER ${LIBNAME} LOWER_${LIBNAME})
97
pkg_check_modules(${LIBNAME} ${ARGN} ${LOWER_${LIBNAME}})
10-
MESSAGE("LIB ${LIBNAME} found and include is in ${${LIBNAME}_INCLUDE_DIRS}")
11-
else()
12-
MESSAGE("Fallback to non-pkg-config")
8+
MESSAGE(STATUS "LIB ${LIBNAME} found and include is in ${${LIBNAME}_INCLUDE_DIRS}")
9+
else(PKG_CONFIG_FOUND)
10+
#MESSAGE("Fallback to non-pkg-config")
1311
FIND_PACKAGE(${LIBNAME} ${ARGN})
14-
endif()
15-
else()
16-
MESSAGE("WARNING lib was already known ${LIBNAME} becasue of ${${LIBNAME}_FOUND}")
17-
endif()
18-
19-
if(NOT ${${LIBNAME}_FOUND})
20-
MESSAGE("WARNING lib #{LIBNAME} Not found")
12+
endif(PKG_CONFIG_FOUND)
2113
else()
14+
MESSAGE(STATUS "LIB was already known ${LIBNAME} becasue of ${${LIBNAME}_FOUND}")
2215
endif()
23-
24-
MESSAGE("LIB ${LIBNAME} found and include is in ${${LIBNAME}_INCLUDE_DIRS}")
25-
#Still include paths because we are assuming FOUND is givern externally
26-
INCLUDE_DIRECTORIES(${${LIBNAME}_INCLUDE_DIRS})
27-
LINK_DIRECTORIES(${${LIBNAME}_LIBRARY_DIRS})
28-
endfunction()
29-
16+
endmacro()
3017

3118
PROJECT(libfreenect2)
3219
SET(CMAKE_BUILD_TYPE RelWithDebInfo)
3320

21+
SET(MY_DIR ${libfreenect2_SOURCE_DIR})
22+
3423
OPTION(ENABLE_CXX11 "Enable C++11 support" OFF)
3524
OPTION(ENABLE_OPENCL "Enable OpenCL support" ON)
3625
OPTION(ENABLE_OPENGL "Enable OpenGL support" ON)
@@ -49,62 +38,35 @@ IF(ENABLE_CXX11)
4938
ENDIF(ENABLE_CXX11)
5039

5140
# additional cmake modules
52-
LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules)
41+
LIST(APPEND CMAKE_MODULE_PATH ${MY_DIR}/cmake_modules)
5342

5443
# setup threading
5544
INCLUDE(SetupLibfreenect2Threading)
56-
INCLUDE_DIRECTORIES(${LIBFREENECT2_THREADING_INCLUDE_DIR})
5745

5846
INCLUDE(GenerateResources)
5947

6048
#set the default path for built executables to the "bin" directory
61-
SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin)
49+
SET(EXECUTABLE_OUTPUT_PATH ${MY_DIR}/bin)
6250

6351
#set the default path for built libraries to the "lib" directory
64-
SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib)
65-
66-
FIND_PACKAGE(OpenCL)
67-
FIND_PACKAGE(OpenCV REQUIRED)
68-
FIND_PACKAGE(TurboJPEG REQUIRED)
69-
52+
SET(LIBRARY_OUTPUT_PATH ${MY_DIR}/lib)
7053

7154
# dependencies
72-
auto_detect_lib(LibUsb REQUIRED)
73-
auto_detect_lib(GLEW REQUIRED)
74-
auto_detect_lib(GLEWmx REQUIRED)
75-
auto_detect_lib(GLFW3)
76-
77-
78-
ADD_DEFINITIONS(-DGLEW_MX)
79-
80-
#Our headers include libusb a bit haky, so we need to workaround the given path here
81-
INCLUDE_DIRECTORIES(${LibUsb_INCLUDEDIR}/libusb-1.0)
82-
55+
find_package(PkgConfig) # try find PKGConfig as it will be used if found
56+
auto_detect_lib(LibUSB REQUIRED)
57+
auto_detect_lib(OpenCV REQUIRED)
58+
auto_detect_lib(TJPEG REQUIRED)
8359

8460
# Add includes
85-
#INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS} ${LibUSB_INCLUDE_DIR} ${GLEW_INCLUDE_DIR} ${TJPEG_INCLUDE_DIR})
86-
IF(ENABLE_OPENGL)
87-
88-
#Assuming local build witout global deps, ugly to to this automatic but to keep backward compatibiliy
89-
if(not ${GLFW_FOUND})
90-
# GLFW
91-
SET(BUILD_SHARED_LIBS ON CACHE BOOL "Build shared libraries")
92-
SET(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "Build the GLFW example programs")
93-
SET(GLFW_BUILD_TESTS OFF CACHE BOOL "Build the GLFW test programs")
94-
SET(GLFW_BUILD_DOCS OFF CACHE BOOL "Build the GLFW documentation")
95-
96-
ADD_SUBDIRECTORY(${MY_DIR}/../../depends/glfw_src/ ${MY_DIR}/../../depends/glfw)
97-
INCLUDE_DIRECTORIES(${MY_DIR}/../../depends/glfw_src/include/)
98-
ENDIF(ENABLE_OPENGL)
99-
endif()
61+
INCLUDE_DIRECTORIES("${MY_DIR}/include" ${LIBFREENECT2_THREADING_INCLUDE_DIR} ${OpenCV_INCLUDE_DIRS} ${LibUSB_INCLUDE_DIR} ${TJPEG_INCLUDE_DIR})
10062

101-
if(APPLE)
63+
if(APPLE AND NOT ${TurboJPEG_FOUND})
10264
# libjpeg-turbo
103-
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/../../depends/libjpeg_turbo/include/")
104-
LINK_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/../../depends/libjpeg_turbo/lib/")
65+
INCLUDE_DIRECTORIES("${MY_DIR}/../../depends/libjpeg_turbo/include/")
66+
LINK_DIRECTORIES("${MY_DIR}/../../depends/libjpeg_turbo/lib/")
10567
endif()
10668

107-
SET(RESOURCES_INC_FILE "${CMAKE_CURRENT_SOURCE_DIR}/src/resources.inc")
69+
SET(RESOURCES_INC_FILE "${MY_DIR}/src/resources.inc")
10870

10971
SET(SOURCES
11072

@@ -136,8 +98,6 @@ SET(LIBRARIES
13698
${LibUSB_LIBRARIES}
13799
${TJPEG_LIBRARY}
138100
${LIBFREENECT2_THREADING_LIBRARIES}
139-
${GLEW_LIBRARIES}
140-
${GLEWmx_LIBRARIES}
141101
)
142102

143103
SET(RESOURCES
@@ -148,17 +108,32 @@ SET(RESOURCES
148108

149109

150110
IF(ENABLE_OPENGL)
111+
auto_detect_lib(GLFW)
112+
113+
#Assuming local build witout global deps, ugly to to this automatic but to keep backward compatibiliy
114+
if(${GLFW_FOUND} STREQUAL "FALSE")
115+
# GLFW
116+
SET(BUILD_SHARED_LIBS ON CACHE BOOL "Build shared libraries")
117+
SET(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "Build the GLFW example programs")
118+
SET(GLFW_BUILD_TESTS OFF CACHE BOOL "Build the GLFW test programs")
119+
SET(GLFW_BUILD_DOCS OFF CACHE BOOL "Build the GLFW documentation")
120+
121+
ADD_SUBDIRECTORY(${MY_DIR}/../../depends/glfw_src/ ${MY_DIR}/../../depends/glfw)
122+
INCLUDE_DIRECTORIES(${MY_DIR}/../../depends/glfw_src/include/)
123+
else()
124+
INCLUDE_DIRECTORIES(${GLFW_INCLUDE_DIR})
125+
126+
LIST(APPEND LIBRARIES
127+
${GLFW_LIBRARY}
128+
)
129+
endif()
130+
151131
SET(LIBFREENECT2_WITH_OPENGL_SUPPORT 1)
152132
LIST(APPEND SOURCES
153133
src/flextGL.c
154134
src/opengl_depth_packet_processor.cpp
155135
)
156-
157-
LIST(APPEND LIBRARIES
158-
glfw
159-
${GLFW_LIBRARIES}
160-
)
161-
136+
162137
LIST(APPEND RESOURCES
163138
src/shader/debug.fs
164139
src/shader/default.vs
@@ -169,28 +144,29 @@ IF(ENABLE_OPENGL)
169144
)
170145
ENDIF(ENABLE_OPENGL)
171146

172-
IF(ENABLE_OPENCL AND OPENCL_FOUND)
173-
SET(LIBFREENECT2_WITH_OPENCL_SUPPORT 1)
174-
INCLUDE_DIRECTORIES(${OPENCL_INCLUDE_DIRS})
175-
176-
LIST(APPEND SOURCES
177-
src/opencl_depth_packet_processor.cpp
178-
)
179-
180-
LIST(APPEND LIBRARIES
181-
${OPENCL_LIBRARIES}
182-
)
183-
184-
LIST(APPEND RESOURCES
185-
src/opencl_depth_packet_processor.cl
186-
)
187-
ENDIF(ENABLE_OPENCL AND OPENCL_FOUND)
147+
IF(ENABLE_OPENCL)
148+
FIND_PACKAGE(OpenCL)
149+
150+
IF(OPENCL_FOUND)
151+
SET(LIBFREENECT2_WITH_OPENCL_SUPPORT 1)
152+
INCLUDE_DIRECTORIES(${OPENCL_INCLUDE_DIRS})
153+
154+
LIST(APPEND SOURCES
155+
src/opencl_depth_packet_processor.cpp
156+
)
157+
158+
LIST(APPEND LIBRARIES
159+
${OPENCL_LIBRARIES}
160+
)
161+
162+
LIST(APPEND RESOURCES
163+
src/opencl_depth_packet_processor.cl
164+
)
165+
ENDIF(OPENCL_FOUND)
166+
ENDIF(ENABLE_OPENCL)
188167

189168
CONFIGURE_FILE("${MY_DIR}/include/libfreenect2/config.h.in" "${MY_DIR}/include/libfreenect2/config.h" @ONLY)
190-
GENERATE_RESOURCES(${RESOURCES_INC_FILE} ${CMAKE_CURRENT_SOURCE_DIR} ${RESOURCES})
191-
192-
193-
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/include")
169+
GENERATE_RESOURCES(${RESOURCES_INC_FILE} ${MY_DIR} ${RESOURCES})
194170

195171
ADD_DEFINITIONS(-DRESOURCES_INC)
196172
ADD_LIBRARY(freenect2 SHARED ${SOURCES})
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# - Try to find GLFW
2+
#
3+
# Will define the following:
4+
# GLFW_FOUND
5+
# GLFW_INCLUDE
6+
# GLFW_LIBRARY
7+
8+
IF(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
9+
find_path(GLFW_INCLUDE_DIR glfw/glfw3.h DOC "GLFW include directory " HINTS $ENV{GLFW_ROOT}/include)
10+
11+
find_library(GLFW_LIBRARY NAMES glfw3dll.lib HINTS $ENV{GLFW_ROOT}/lib/)
12+
13+
ENDIF()
14+
IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
15+
#TODO linux
16+
#find_path(GLFW_INCLUDE_DIR glfw3.h DOC "GLFW include directory " HINTS /usr/include)
17+
18+
#find_library(GLFW_LIBRARY NAMES glfw.so glfw.a )
19+
endif()
20+
21+
find_package_handle_standard_args(GLFW DEFAULT_MSG GLFW_INCLUDE_DIR GLFW_LIBRARY)

examples/protonect/cmake_modules/FindGlew.cmake

Lines changed: 0 additions & 71 deletions
This file was deleted.

0 commit comments

Comments
 (0)