30
30
# CMake directives
31
31
######################################################################################
32
32
33
- #Require 2.6 or higher.
34
-
35
33
cmake_minimum_required (VERSION 2.6 )
34
+ set (PYTHON_EXECUTABLE "python2" )
36
35
37
36
######################################################################################
38
37
# Project declaration and options
39
38
######################################################################################
40
39
41
40
PROJECT (libfreenect )
42
41
42
+ set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR} /cmake_modules/" )
43
+
44
+ # Find the host operating system and architecture
45
+ include (FindOS )
46
+ # Set up installation directories
47
+ include (SetupDirectories )
48
+
43
49
set (PROJECT_VER_MAJOR 0 )
44
- set (PROJECT_VER_MINOR 2 )
50
+ set (PROJECT_VER_MINOR 5 )
45
51
set (PROJECT_VER_PATCH 0 )
46
- set (PROJECT_VER
52
+ set (PROJECT_VER
47
53
"${PROJECT_VER_MAJOR} .${PROJECT_VER_MINOR} .${PROJECT_VER_PATCH} " )
48
- set (PROJECT_APIVER
54
+ set (PROJECT_APIVER
49
55
"${PROJECT_VER_MAJOR} .${PROJECT_VER_MINOR} " )
50
56
51
- OPTION (BUILD_AUDIO "Build audio support" OFF )
52
- OPTION (BUILD_REDIST_PACKAGE "Build libfreenect in a legally-redistributable manner (only affects audio)" OFF )
57
+ OPTION (BUILD_REDIST_PACKAGE "Build libfreenect in a legally-redistributable manner (only affects audio)" ON )
53
58
OPTION (BUILD_EXAMPLES "Build example programs" ON )
54
59
OPTION (BUILD_FAKENECT "Build fakenect mock library" ON )
55
60
OPTION (BUILD_C_SYNC "Build c synchronous library" ON )
56
61
OPTION (BUILD_CPP "Build C++ Library (currently header only)" ON )
57
62
OPTION (BUILD_CV "Build OpenCV wrapper" OFF )
58
63
OPTION (BUILD_AS3_SERVER "Build the Actionscript 3 Server Example" OFF )
59
64
OPTION (BUILD_PYTHON "Build Python extension" OFF )
65
+ OPTION (BUILD_OPENNI2_DRIVER "Build libfreenect driver for OpenNI2" OFF )
60
66
IF (PROJECT_OS_LINUX )
61
- OPTION (BUILD_CPACK "Build an RPM or DEB using CPack" OFF )
67
+ OPTION (BUILD_CPACK_DEB "Build an DEB using CPack" OFF )
68
+ OPTION (BUILD_CPACK_RPM "Build an RPM using CPack" OFF )
69
+ OPTION (BUILD_CPACK_TGZ "Build an TGZ using CPack" OFF )
62
70
ENDIF (PROJECT_OS_LINUX )
63
71
64
72
######################################################################################
65
- # CMake Modules
73
+ # Dependencies and Definitions
66
74
######################################################################################
67
75
68
- set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR} /cmake_modules/" )
69
-
70
- # Find the host operating system and architecture
71
- include (FindOS )
72
- # Set up installation directories
73
- include (SetupDirectories )
74
-
75
76
# Find packages needed to build library
76
77
find_package (libusb-1.0 REQUIRED )
77
78
@@ -82,33 +83,41 @@ if(BIG_ENDIAN)
82
83
add_definitions (-DFN_BIGENDIAN )
83
84
endif ()
84
85
85
- if (BUILD_AUDIO )
86
- add_definitions (-DBUILD_AUDIO )
87
- endif ()
88
-
89
86
if (WIN32 )
90
- set (MATH_LIB "" )
87
+ set (MATH_LIB "" )
91
88
else (WIN32 )
92
89
set (MATH_LIB "m" )
93
90
endif ()
94
91
95
92
######################################################################################
96
- # CMake
93
+ # CMake
97
94
######################################################################################
98
95
99
96
SET (EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR} /bin )
100
97
SET (LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR} /lib )
101
98
SET (DOC_OUTPUT_PATH ${CMAKE_BINARY_DIR} /doc )
102
99
103
- # let CFLAGS env override this
104
- if (CMAKE_C_FLAGS STREQUAL "" )
105
- set (CMAKE_C_FLAGS "-O2" )
106
- endif ()
107
- SET (CMAKE_C_FLAGS_DEBUG "-g -DDEBUG=1" )
108
- SET (CMAKE_C_FLAGS_RELEASE "-O2" )
109
- SET (CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g" )
100
+ if (MSVC )
101
+ set (C_FLAGS_WARNING "-W4" )
102
+ else ()
103
+ set (C_FLAGS_WARNING "-Wall" )
104
+ endif (MSVC )
110
105
111
- add_definitions (-Wall )
106
+ set (C_CXX_FLAGS_DEFAULT "${C_FLAGS_WARNING} -O2" )
107
+
108
+ # These defaults can be overriden by -DCMAKE_C_FLAGS=""
109
+ set (CMAKE_C_FLAGS "${C_CXX_FLAGS_DEFAULT} ${CMAKE_C_FLAGS} " )
110
+ # C Configurations
111
+ SET (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS} -g -DDEBUG=1" )
112
+ SET (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS} " )
113
+ SET (CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELEASE} -g" )
114
+
115
+ # These defaults can be overriden by -DCMAKE_CXX_FLAGS=""
116
+ set (CMAKE_CXX_FLAGS "${C_CXX_FLAGS_DEFAULT} ${CMAKE_CXX_FLAGS} " )
117
+ # C++ Configurations
118
+ SET (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -g -DDEBUG=1" )
119
+ SET (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} " )
120
+ SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELEASE} -g" )
112
121
113
122
# Pretty much everyone is going to need the main includes
114
123
include_directories (${CMAKE_CURRENT_SOURCE_DIR} /include )
@@ -118,13 +127,11 @@ include_directories(${LIBUSB_1_INCLUDE_DIRS})
118
127
119
128
if (WIN32 )
120
129
include_directories ("${CMAKE_CURRENT_SOURCE_DIR} /platform/windows" )
121
- include_directories ("${CMAKE_CURRENT_SOURCE_DIR} /platform/windows/libusb10emu/libusb-1.0" )
122
130
endif ()
123
131
124
132
# Add library project
125
133
add_subdirectory (src )
126
134
127
- # Add examples
128
135
IF (BUILD_EXAMPLES )
129
136
add_subdirectory (examples )
130
137
ENDIF ()
@@ -153,6 +160,10 @@ IF(BUILD_PYTHON)
153
160
add_subdirectory (wrappers/python )
154
161
ENDIF ()
155
162
163
+ IF (BUILD_OPENNI2_DRIVER )
164
+ add_subdirectory (OpenNI2-FreenectDriver )
165
+ ENDIF ()
166
+
156
167
######################################################################################
157
168
# Extras
158
169
######################################################################################
@@ -163,13 +174,17 @@ configure_file(
163
174
"${CMAKE_CURRENT_BINARY_DIR} /UninstallTarget.cmake"
164
175
IMMEDIATE @ONLY )
165
176
177
+ # --- cmake config file ---
178
+ CONFIGURE_FILE (libfreenectConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR} /libfreenectConfig.cmake @ONLY )
179
+ INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR} /libfreenectConfig.cmake DESTINATION share/${PROJECT_NAME} )
180
+
166
181
add_custom_target (uninstall
167
182
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR} /UninstallTarget.cmake )
168
183
169
184
# Create Debian/RPM Packages
170
185
# after make, use "fakeroot cpack" in the build Dir to complete
171
186
172
- IF ( BUILD_CPACK )
187
+ IF ( BUILD_CPACK_TGZ OR BUILD_CPACK_DEB OR BUILD_CPACK_RPM )
173
188
set (CPACK_PACKAGE_DESCRIPTION "libfreenect for kinect" )
174
189
set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "libfreenect library for using kinect" )
175
190
set (CPACK_PACKAGE_NAME "libfreenect-dev" )
@@ -182,20 +197,27 @@ IF ( BUILD_CPACK )
182
197
set (CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VER_PATCH} )
183
198
set (VERSION "${CPACK_PACKAGE_VERSION_MAJOR} .${CPACK_PACKAGE_VERSION_MINOR} .${CPACK_PACKAGE_VERSION_PATCH} " )
184
199
185
- set (CPACK_GENERATOR "DEB;RPM;" )
200
+ set (CPACK_GENERATOR "" )
201
+ if (BUILD_CPACK_TGZ )
202
+ list (APPEND CPACK_GENERATOR "TGZ" )
203
+ endif ()
204
+ if (BUILD_CPACK_RPM )
205
+ list (APPEND CPACK_GENERATOR "RPM" )
206
+ endif ()
207
+ if (BUILD_CPACK_DEB )
208
+ list (APPEND CPACK_GENERATOR "DEB" )
209
+ endif ()
186
210
set (CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME} -${CPACK_PACKAGE_VERSION_MAJOR} .${CPACK_PACKAGE_VERSION_MINOR} -${CMAKE_SYSTEM_PROCESSOR} " )
187
211
188
212
include (CPack )
189
213
190
214
INSTALL (FILES "${CMAKE_BINARY_DIR} /lib/libfreenect.a" DESTINATION ${PROJECT_LIBRARY_INSTALL_DIR} )
191
- if (BUILD_AUDIO )
192
- INSTALL (FILES "include/libfreenect-audio.h" DESTINATION ${PROJECT_INCLUDE_INSTALL_DIR} )
193
- endif ()
194
215
INSTALL (FILES "include/libfreenect.h" DESTINATION ${PROJECT_INCLUDE_INSTALL_DIR} )
195
- INSTALL (FILES "include/libfreenect-registration.h" DESTINATION ${PROJECT_INCLUDE_INSTALL_DIR} )
216
+ INSTALL (FILES "include/libfreenect_registration.h" DESTINATION ${PROJECT_INCLUDE_INSTALL_DIR} )
217
+ INSTALL (FILES "include/libfreenect_audio.h" DESTINATION ${PROJECT_INCLUDE_INSTALL_DIR} )
196
218
INSTALL (FILES "APACHE20" DESTINATION "share/doc/${CPACK_PACKAGE_NAME} " )
197
219
INSTALL (FILES "GPL2" DESTINATION "share/doc/${CPACK_PACKAGE_NAME} " )
198
- INSTALL (FILES "README.asciidoc " DESTINATION "share/doc/${CPACK_PACKAGE_NAME} " )
220
+ INSTALL (FILES "README.md " DESTINATION "share/doc/${CPACK_PACKAGE_NAME} " )
199
221
200
- ENDIF ( BUILD_CPACK )
222
+ ENDIF ( )
201
223
0 commit comments