Skip to content

Commit e551c9a

Browse files
committed
examples: Do not require all dependencies; skip building examples with missing dependencies
win32: Compiles as pure C Signed-off-by: Benn Snyder <[email protected]>
1 parent 01c119a commit e551c9a

File tree

4 files changed

+49
-76
lines changed

4 files changed

+49
-76
lines changed

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,14 +108,14 @@ set(C_CXX_FLAGS_DEFAULT "${C_FLAGS_WARNING} -O2")
108108
# These defaults can be overriden by -DCMAKE_C_FLAGS=""
109109
set(CMAKE_C_FLAGS "${C_CXX_FLAGS_DEFAULT} ${CMAKE_C_FLAGS}")
110110
# C Configurations
111-
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS} -g -DDEBUG=1")
111+
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS} -O0 -g -DDEBUG=1")
112112
SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS}")
113113
SET(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELEASE} -g")
114114

115115
# These defaults can be overriden by -DCMAKE_CXX_FLAGS=""
116116
set(CMAKE_CXX_FLAGS "${C_CXX_FLAGS_DEFAULT} ${CMAKE_CXX_FLAGS}")
117117
# C++ Configurations
118-
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -g -DDEBUG=1")
118+
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -O0 -g -DDEBUG=1")
119119
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS}")
120120
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELEASE} -g")
121121

examples/CMakeLists.txt

Lines changed: 43 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -2,80 +2,60 @@
22
# Packages needed for examples
33
######################################################################################
44

5-
# todo: use these throughout
6-
file(GLOB SRC_STANDARD chunkview.c glview.c hiview.c regview.c camtest.c)
7-
file(GLOB SRC_AUDIO micview.c wavrecord.c)
8-
file(GLOB SRC_SYNC glpclview.c regtest.c tiltdemo.c)
9-
set (SRC_ALL ${SRC_STANDARD} ${SRC_AUDIO} ${SRC_SYNC})
10-
11-
if (WIN32)
12-
set(THREADS_USE_PTHREADS_WIN32 true)
13-
find_package(Threads REQUIRED)
14-
include_directories(${THREADS_PTHREADS_INCLUDE_DIR})
15-
set_source_files_properties(${SRC_ALL} PROPERTIES LANGUAGE CXX)
16-
endif()
17-
18-
add_executable(freenect-glview glview.c)
19-
add_executable(freenect-regview regview.c)
20-
add_executable(freenect-hiview hiview.c)
21-
add_executable(freenect-chunkview chunkview.c)
22-
add_executable(freenect-wavrecord wavrecord.c)
23-
add_executable(freenect-micview micview.c)
5+
# These examples have no external dependencies and should always build.
246
add_executable(freenect-camtest camtest.c)
7+
add_executable(freenect-wavrecord wavrecord.c)
8+
target_link_libraries(freenect-camtest freenect)
9+
target_link_libraries(freenect-wavrecord freenect)
10+
install(TARGETS freenect-camtest freenect-wavrecord
11+
DESTINATION bin)
2512

26-
if (BUILD_C_SYNC)
27-
add_executable(freenect-glpclview glpclview.c)
28-
add_executable(freenect-tiltdemo tiltdemo.c)
29-
add_executable(freenect-regtest regtest.c)
30-
31-
add_dependencies(freenect-glpclview freenect-tiltdemo freenect-regtest
32-
freenect_sync)
33-
endif()
34-
35-
# We need to include libfreenect_sync.h for glpclview
36-
include_directories (../wrappers/c_sync/)
13+
# All viewers need pthreads and GLUT.
14+
set(THREADS_USE_PTHREADS_WIN32 true)
15+
find_package(Threads)
16+
include_directories(${THREADS_PTHREADS_INCLUDE_DIR})
3717

38-
# Mac just has everything already
39-
if(APPLE)
40-
set(CMAKE_EXE_LINKER_FLAGS "-framework OpenGL -framework GLUT")
41-
target_link_libraries(freenect-glview freenect)
42-
target_link_libraries(freenect-regview freenect)
43-
target_link_libraries(freenect-hiview freenect)
44-
target_link_libraries(freenect-chunkview freenect)
45-
target_link_libraries(freenect-wavrecord freenect)
46-
target_link_libraries(freenect-micview freenect)
47-
target_link_libraries(freenect-camtest freenect)
48-
if (BUILD_C_SYNC)
49-
target_link_libraries(freenect-glpclview freenect_sync)
50-
target_link_libraries(freenect-tiltdemo freenect_sync)
51-
target_link_libraries(freenect-regtest freenect_sync)
52-
endif()
53-
else()
18+
find_package(OpenGL)
19+
find_package(GLUT)
5420

55-
find_package(Threads REQUIRED)
56-
find_package(OpenGL REQUIRED)
57-
find_package(GLUT REQUIRED)
21+
if (Threads_FOUND AND OPENGL_FOUND AND GLUT_FOUND)
22+
include_directories(${OPENGL_INCLUDE_DIR} ${GLUT_INCLUDE_DIR})
5823

59-
include_directories(${OPENGL_INCLUDE_DIR} ${GLUT_INCLUDE_DIR} ${USB_INCLUDE_DIRS})
24+
add_executable(freenect-glview glview.c)
25+
add_executable(freenect-regview regview.c)
26+
add_executable(freenect-hiview hiview.c)
27+
add_executable(freenect-chunkview chunkview.c)
28+
add_executable(freenect-micview micview.c)
6029

6130
target_link_libraries(freenect-glview freenect ${OPENGL_LIBRARIES} ${GLUT_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${MATH_LIB})
6231
target_link_libraries(freenect-regview freenect ${OPENGL_LIBRARIES} ${GLUT_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${MATH_LIB})
6332
target_link_libraries(freenect-hiview freenect ${OPENGL_LIBRARIES} ${GLUT_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${MATH_LIB})
6433
target_link_libraries(freenect-chunkview freenect ${OPENGL_LIBRARIES} ${GLUT_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${MATH_LIB})
65-
target_link_libraries(freenect-wavrecord freenect ${OPENGL_LIBRARIES} ${GLUT_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${MATH_LIB})
6634
target_link_libraries(freenect-micview freenect ${OPENGL_LIBRARIES} ${GLUT_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${MATH_LIB})
67-
target_link_libraries(freenect-camtest freenect)
68-
if (BUILD_C_SYNC)
69-
target_link_libraries(freenect-glpclview freenect_sync ${OPENGL_LIBRARIES} ${GLUT_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${MATH_LIB})
70-
target_link_libraries(freenect-tiltdemo freenect_sync ${CMAKE_THREAD_LIBS_INIT} ${MATH_LIB})
71-
target_link_libraries(freenect-regtest freenect_sync ${CMAKE_THREAD_LIBS_INIT})
72-
endif()
73-
endif()
7435

75-
install (TARGETS freenect-glview freenect-regview freenect-hiview freenect-chunkview freenect-wavrecord freenect-micview
76-
DESTINATION bin)
36+
install(TARGETS freenect-glview freenect-regview freenect-hiview freenect-chunkview freenect-micview
37+
DESTINATION bin)
38+
endif ()
7739

40+
# A few examples use c_sync.
7841
if (BUILD_C_SYNC)
79-
install (TARGETS freenect-glpclview freenect-tiltdemo
80-
DESTINATION bin)
81-
endif()
42+
find_package(Threads REQUIRED)
43+
include_directories(../wrappers/c_sync/)
44+
include_directories(${OPENGL_INCLUDE_DIR} ${GLUT_INCLUDE_DIR})
45+
46+
add_executable(freenect-regtest regtest.c)
47+
add_executable(freenect-tiltdemo tiltdemo.c)
48+
49+
target_link_libraries(freenect-regtest freenect_sync ${CMAKE_THREAD_LIBS_INIT} ${MATH_LIB})
50+
target_link_libraries(freenect-tiltdemo freenect_sync ${CMAKE_THREAD_LIBS_INIT} ${MATH_LIB})
51+
52+
install(TARGETS freenect-regtest freenect-tiltdemo
53+
DESTINATION bin)
54+
55+
if (OPENGL_FOUND AND GLUT_FOUND)
56+
add_executable(freenect-glpclview glpclview.c)
57+
target_link_libraries(freenect-glpclview freenect_sync ${OPENGL_LIBRARIES} ${GLUT_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${MATH_LIB})
58+
install(TARGETS freenect-glpclview
59+
DESTINATION bin)
60+
endif ()
61+
endif ()

src/CMakeLists.txt

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,8 @@
22
# Build for main library
33
######################################################################################
44

5-
include_directories (${CMAKE_CURRENT_SOURCE_DIR})
6-
5+
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
76
include_directories(${LIBUSB_1_INCLUDE_DIRS})
8-
LIST(APPEND SRC core.c tilt.c cameras.c flags.c usb_libusb10.c registration.c audio.c loader.c)
9-
IF(WIN32)
10-
set_source_files_properties(${SRC} PROPERTIES LANGUAGE CXX)
11-
ENDIF(WIN32)
127

138
# Audio Firmware
149
include(FindPythonInterp)
@@ -24,6 +19,8 @@ ELSE(BUILD_REDIST_PACKAGE)
2419
install (FILES "${CMAKE_CURRENT_BINARY_DIR}/../audios.bin" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/libfreenect")
2520
ENDIF()
2621

22+
LIST(APPEND SRC core.c tilt.c cameras.c flags.c usb_libusb10.c registration.c audio.c loader.c)
23+
2724
add_library (freenect SHARED ${SRC})
2825
set_target_properties ( freenect PROPERTIES
2926
VERSION ${PROJECT_VER}

wrappers/c_sync/CMakeLists.txt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
######################################################################################
22
# C Synchronous Interface
33
######################################################################################
4-
if (WIN32)
5-
set_source_files_properties(libfreenect_sync.c PROPERTIES LANGUAGE CXX)
6-
set(THREADS_USE_PTHREADS_WIN32 true)
7-
endif()
84

5+
set(THREADS_USE_PTHREADS_WIN32 true)
96
find_package(Threads REQUIRED)
107
include_directories(${THREADS_PTHREADS_INCLUDE_DIR})
118

@@ -26,4 +23,3 @@ install (TARGETS freenect_sync_static
2623
DESTINATION "${PROJECT_LIBRARY_INSTALL_DIR}")
2724
install (FILES "libfreenect_sync.h"
2825
DESTINATION ${PROJECT_INCLUDE_INSTALL_DIR})
29-

0 commit comments

Comments
 (0)