3030# CMake directives
3131######################################################################################
3232
33- #Require 2.6 or higher.
34-
3533cmake_minimum_required (VERSION 2.6 )
34+ set (PYTHON_EXECUTABLE "python2" )
3635
3736######################################################################################
3837# Project declaration and options
3938######################################################################################
4039
4140PROJECT (libfreenect)
4241
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+
4349set (PROJECT_VER_MAJOR 0)
44- set (PROJECT_VER_MINOR 2 )
50+ set (PROJECT_VER_MINOR 5 )
4551set (PROJECT_VER_PATCH 0)
46- set (PROJECT_VER
52+ set (PROJECT_VER
4753 "${PROJECT_VER_MAJOR} .${PROJECT_VER_MINOR} .${PROJECT_VER_PATCH} " )
48- set (PROJECT_APIVER
54+ set (PROJECT_APIVER
4955 "${PROJECT_VER_MAJOR} .${PROJECT_VER_MINOR} " )
5056
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 )
5358OPTION (BUILD_EXAMPLES "Build example programs" ON )
5459OPTION (BUILD_FAKENECT "Build fakenect mock library" ON )
5560OPTION (BUILD_C_SYNC "Build c synchronous library" ON )
5661OPTION (BUILD_CPP "Build C++ Library (currently header only)" ON )
5762OPTION (BUILD_CV "Build OpenCV wrapper" OFF )
5863OPTION (BUILD_AS3_SERVER "Build the Actionscript 3 Server Example" OFF )
5964OPTION (BUILD_PYTHON "Build Python extension" OFF )
65+ OPTION (BUILD_OPENNI2_DRIVER "Build libfreenect driver for OpenNI2" OFF )
6066IF (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 )
6270ENDIF (PROJECT_OS_LINUX )
6371
6472######################################################################################
65- # CMake Modules
73+ # Dependencies and Definitions
6674######################################################################################
6775
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-
7576# Find packages needed to build library
7677find_package (libusb-1.0 REQUIRED )
7778
@@ -82,33 +83,41 @@ if(BIG_ENDIAN)
8283 add_definitions (-DFN_BIGENDIAN )
8384endif ()
8485
85- if (BUILD_AUDIO)
86- add_definitions (-DBUILD_AUDIO )
87- endif ()
88-
8986if (WIN32 )
90- set (MATH_LIB "" )
87+ set (MATH_LIB "" )
9188else (WIN32 )
9289 set (MATH_LIB "m" )
9390endif ()
9491
9592######################################################################################
96- # CMake
93+ # CMake
9794######################################################################################
9895
9996SET (EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR } /bin)
10097SET (LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR } /lib)
10198SET (DOC_OUTPUT_PATH ${CMAKE_BINARY_DIR } /doc)
10299
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 )
110105
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" )
112121
113122# Pretty much everyone is going to need the main includes
114123include_directories (${CMAKE_CURRENT_SOURCE_DIR } /include )
@@ -118,13 +127,11 @@ include_directories(${LIBUSB_1_INCLUDE_DIRS})
118127
119128if (WIN32 )
120129 include_directories ("${CMAKE_CURRENT_SOURCE_DIR } /platform/windows" )
121- include_directories ("${CMAKE_CURRENT_SOURCE_DIR } /platform/windows/libusb10emu/libusb-1.0" )
122130endif ()
123131
124132# Add library project
125133add_subdirectory (src )
126134
127- # Add examples
128135IF (BUILD_EXAMPLES)
129136 add_subdirectory (examples )
130137ENDIF ()
@@ -153,6 +160,10 @@ IF(BUILD_PYTHON)
153160 add_subdirectory (wrappers/python )
154161ENDIF ()
155162
163+ IF (BUILD_OPENNI2_DRIVER)
164+ add_subdirectory (OpenNI2-FreenectDriver )
165+ ENDIF ()
166+
156167######################################################################################
157168# Extras
158169######################################################################################
@@ -163,13 +174,17 @@ configure_file(
163174 "${CMAKE_CURRENT_BINARY_DIR } /UninstallTarget.cmake"
164175 IMMEDIATE @ONLY )
165176
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+
166181add_custom_target (uninstall
167182 COMMAND ${CMAKE_COMMAND } -P ${CMAKE_CURRENT_BINARY_DIR } /UninstallTarget.cmake )
168183
169184# Create Debian/RPM Packages
170185# after make, use "fakeroot cpack" in the build Dir to complete
171186
172- IF ( BUILD_CPACK )
187+ IF ( BUILD_CPACK_TGZ OR BUILD_CPACK_DEB OR BUILD_CPACK_RPM )
173188 set (CPACK_PACKAGE_DESCRIPTION "libfreenect for kinect" )
174189 set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "libfreenect library for using kinect" )
175190 set (CPACK_PACKAGE_NAME "libfreenect-dev" )
@@ -182,20 +197,27 @@ IF ( BUILD_CPACK )
182197 set (CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VER_PATCH} )
183198 set (VERSION "${CPACK_PACKAGE_VERSION_MAJOR} .${CPACK_PACKAGE_VERSION_MINOR} .${CPACK_PACKAGE_VERSION_PATCH} " )
184199
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 ()
186210 set (CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME} -${CPACK_PACKAGE_VERSION_MAJOR} .${CPACK_PACKAGE_VERSION_MINOR} -${CMAKE_SYSTEM_PROCESSOR } " )
187211
188212 include (CPack )
189213
190214 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 ()
194215 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} )
196218 INSTALL (FILES "APACHE20" DESTINATION "share/doc/${CPACK_PACKAGE_NAME} " )
197219 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} " )
199221
200- ENDIF ( BUILD_CPACK )
222+ ENDIF ( )
201223
0 commit comments