From 586f4e3d8651f1288dd52a3e84851a5ed1e8e24e Mon Sep 17 00:00:00 2001 From: matlabbe Date: Tue, 17 Jun 2014 01:45:52 +0000 Subject: [PATCH] MAC OS X binaries fixed bundle. Freenect underscore vs dashed includes git-svn-id: http://rtabmap.googlecode.com/svn/trunk/rtabmap@1394 f169173b-cf89-36c8-b27e-44dbe73f0c83 --- CMakeLists.txt | 2 +- app/src/CMakeLists.txt | 10 +++++++++- cmake_modules/FindFreenect.cmake | 11 +++++++++-- cmake_modules/FindOpenNI2.cmake | 7 ++++--- corelib/src/CMakeLists.txt | 3 +++ corelib/src/CameraRGBD.cpp | 4 ++++ guilib/src/CMakeLists.txt | 1 - 7 files changed, 30 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 93a5e811..67a6d8d9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,7 +16,7 @@ SET(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake_modules") ####################### SET(RTABMAP_MAJOR_VERSION 0) SET(RTABMAP_MINOR_VERSION 6) -SET(RTABMAP_PATCH_VERSION 3) +SET(RTABMAP_PATCH_VERSION 4) SET(RTABMAP_VERSION ${RTABMAP_MAJOR_VERSION}.${RTABMAP_MINOR_VERSION}.${RTABMAP_PATCH_VERSION}) diff --git a/app/src/CMakeLists.txt b/app/src/CMakeLists.txt index b1928bdf..e9bc4894 100644 --- a/app/src/CMakeLists.txt +++ b/app/src/CMakeLists.txt @@ -100,6 +100,7 @@ IF((APPLE AND BUILD_AS_BUNDLE) OR WIN32) IF(APPLE) SET(plugin_dest_dir MacOS) SET(qtconf_dest_dir Resources) + SET(openni2_dest_dir MacOS) SET(APPS "\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/MacOS/${CMAKE_BUNDLE_NAME}") ENDIF(APPLE) @@ -110,11 +111,18 @@ IF((APPLE AND BUILD_AS_BUNDLE) OR WIN32) IF(NOT OpenNI2_BIN_DIR) MESSAGE(FATAL_ERROR "OpenNI2.dll not found! Verify your PATH.") ENDIF(NOT OpenNI2_BIN_DIR) - ENDIF(WIN32) + ELSE() + # Mac OS X + get_filename_component(OpenNI2_BIN_DIR "${OpenNI2_LIBRARY}" PATH) + ENDIF() + INSTALL(DIRECTORY "${OpenNI2_BIN_DIR}/OpenNI2" DESTINATION ${openni2_dest_dir} COMPONENT runtime REGEX ".*pdb" EXCLUDE) + INSTALL(FILES "${OpenNI2_BIN_DIR}/OpenNI.ini" + DESTINATION ${openni2_dest_dir} + COMPONENT runtime) ENDIF(OpenNI2_FOUND) # Install needed Qt plugins by copying directories from the qt installation diff --git a/cmake_modules/FindFreenect.cmake b/cmake_modules/FindFreenect.cmake index be721d0f..8da5f4d8 100644 --- a/cmake_modules/FindFreenect.cmake +++ b/cmake_modules/FindFreenect.cmake @@ -5,12 +5,19 @@ # Freenect_FOUND - Set to false, or undefined, if Freenect isn't found. # Freenect_INCLUDE_DIRS - The Freenect include directory. # Freenect_LIBRARIES - The Freenect library to link against. +# Freenect_DASH_INCLUDES - If includes have "-" instead of "_" in their names. New libfreenect has "_". -FIND_PATH(Freenect_INCLUDE_DIRS libfreenect-registration.h PATH_SUFFIXES libfreenect) +FIND_PATH(Freenect_INCLUDE_DIRS libfreenect-registration.h libfreenect_registration.h PATH_SUFFIXES libfreenect) FIND_LIBRARY(Freenect_LIBRARY NAMES freenect) FIND_LIBRARY(Freenect_sync_LIBRARY NAMES freenect_sync) +FIND_FILE(tmp libfreenect-registration.h PATH_SUFFIXES libfreenect) +SET(Freenect_DASH_INCLUDES 0) +IF(tmp) + SET(Freenect_DASH_INCLUDES 1) +ENDIF(tmp) + IF (Freenect_INCLUDE_DIRS AND Freenect_LIBRARY AND Freenect_sync_LIBRARY) SET(Freenect_FOUND TRUE) ENDIF (Freenect_INCLUDE_DIRS AND Freenect_LIBRARY AND Freenect_sync_LIBRARY) @@ -19,7 +26,7 @@ IF (Freenect_FOUND) # show which Freenect was found only if not quiet SET(Freenect_LIBRARIES ${Freenect_LIBRARY} ${Freenect_sync_LIBRARY}) IF (NOT Freenect_FIND_QUIETLY) - MESSAGE(STATUS "Found Freenect") + MESSAGE(STATUS "Found Freenect: ${Freenect_LIBRARIES}") ENDIF (NOT Freenect_FIND_QUIETLY) ELSE (Freenect_FOUND) # fatal error if Freenect is required but not found diff --git a/cmake_modules/FindOpenNI2.cmake b/cmake_modules/FindOpenNI2.cmake index 7741a86c..0698a3ee 100644 --- a/cmake_modules/FindOpenNI2.cmake +++ b/cmake_modules/FindOpenNI2.cmake @@ -4,11 +4,12 @@ # It sets the following variables: # OpenNI2_FOUND - Set to false, or undefined, if OpenNI2 isn't found. # OpenNI2_INCLUDE_DIRS - The OpenNI2 include directory. -# OpenNI2_LIBRARIES - The OpenNI2 library to link against. +# OpenNI2_LIBRARIES - The OpenNI2 libraries to link against. +# OpenNI2_LIBRARY - The OpenNI2 library alone. FIND_PATH(OpenNI2_INCLUDE_DIRS OpenNI.h HINTS $ENV{OPENNI2_INCLUDE64} $ENV{OPENNI2_INCLUDE} PATH_SUFFIXES openni2) -FIND_LIBRARY(OpenNI2_LIBRARY NAMES OpenNI2 HINTS $ENV{OPENNI2_LIB64} $ENV{OPENNI2_LIB}) +FIND_LIBRARY(OpenNI2_LIBRARY NAMES OpenNI2 HINTS $ENV{OPENNI2_LIB64} $ENV{OPENNI2_LIB} $ENV{OPENNI2_REDIST}) IF (OpenNI2_INCLUDE_DIRS AND OpenNI2_LIBRARY) SET(OpenNI2_FOUND TRUE) @@ -18,7 +19,7 @@ IF (OpenNI2_FOUND) # show which OpenNI2 was found only if not quiet SET(OpenNI2_LIBRARIES ${OpenNI2_LIBRARY}) IF (NOT OpenNI2_FIND_QUIETLY) - MESSAGE(STATUS "Found OpenNI2") + MESSAGE(STATUS "Found OpenNI2: ${OpenNI2_LIBRARIES}") ENDIF (NOT OpenNI2_FIND_QUIETLY) ELSE (OpenNI2_FOUND) # fatal error if OpenNI2 is required but not found diff --git a/corelib/src/CMakeLists.txt b/corelib/src/CMakeLists.txt index dab2b25e..89a497b3 100644 --- a/corelib/src/CMakeLists.txt +++ b/corelib/src/CMakeLists.txt @@ -53,6 +53,9 @@ SET(LIBRARIES IF(Freenect_FOUND) ADD_DEFINITIONS("-DWITH_FREENECT") + IF(Freenect_DASH_INCLUDES) + ADD_DEFINITIONS("-DFREENECT_DASH_INCLUDES") + ENDIF(Freenect_DASH_INCLUDES) SET(INCLUDE_DIRS ${INCLUDE_DIRS} ${Freenect_INCLUDE_DIRS} diff --git a/corelib/src/CameraRGBD.cpp b/corelib/src/CameraRGBD.cpp index d835d7a4..09bdbeed 100644 --- a/corelib/src/CameraRGBD.cpp +++ b/corelib/src/CameraRGBD.cpp @@ -36,7 +36,11 @@ #ifdef WITH_FREENECT #include +#ifdef FREENECT_DASH_INCLUDES #include +#else +#include +#endif #endif #ifdef WITH_OPENNI2 diff --git a/guilib/src/CMakeLists.txt b/guilib/src/CMakeLists.txt index 8df95dfc..3dae7c1d 100644 --- a/guilib/src/CMakeLists.txt +++ b/guilib/src/CMakeLists.txt @@ -18,7 +18,6 @@ SET(headers_ui ../include/${PROJECT_PREFIX}/gui/DataRecorder.h ./ExportDialog.h ./MapVisibilityWidget.h - ./GraphViewer.h ) SET(uis