From a263c335af34c6e705ad1429c3a291258218996c Mon Sep 17 00:00:00 2001 From: Cyril Roussillon <cyril.roussillon@laas.fr> Date: Sun, 19 Jun 2011 01:02:54 +0200 Subject: [PATCH] [wip/jafar-rtslam] Try to fix optional dependencies --- jafar-rtslam/Makefile | 62 +++++++++++++++++-- jafar-rtslam/PLIST | 2 +- jafar-rtslam/distinfo | 9 ++- jafar-rtslam/patches/patch-bb | 112 ++++++++++++++++++++++++++++++++++ jafar-rtslam/patches/patch-dd | 41 +++++++++++++ jafar-rtslam/patches/patch-ee | 67 ++++++++++++++++++++ 6 files changed, 284 insertions(+), 9 deletions(-) create mode 100644 jafar-rtslam/patches/patch-bb create mode 100644 jafar-rtslam/patches/patch-dd create mode 100644 jafar-rtslam/patches/patch-ee diff --git a/jafar-rtslam/Makefile b/jafar-rtslam/Makefile index d8df36c8..144cafed 100644 --- a/jafar-rtslam/Makefile +++ b/jafar-rtslam/Makefile @@ -13,19 +13,71 @@ USE_PKGLOCALEDIR= yes CMAKE_ARGS+= -DBOOST_INCLUDEDIR=${PREFIX.boost-headers}/include CMAKE_ARGS+= -DBOOST_LIBDIR=${PREFIX.boost-libs}/include +CMAKE_ARGS+= -DCMAKE_MODULE_PATH=. +# because the package generation is buggy, it declares JAFAR_NDEBUG instead +CPPFLAGS += -DJFR_NDEBUG +CXXFLAGS += -pthread - -PKG_SUPPORTED_OPTIONS+= POSTERLIB -PKG_OPTION_DESCR.POSTERLIB= Enable POSTERLIB support. -define PKG_OPTION_SET.POSTERLIB +PKG_SUPPORTED_OPTIONS+= posterlib +PKG_OPTION_DESCR.posterlib= Enable posterLib support. +define PKG_OPTION_SET.posterlib CMAKE_ARGS+= -DHAVE_POSTERLIB=ON + CPPFLAGS+= -DHAVE_POSTERLIB include ../../middleware/pocolibs/depend.mk endef -define PKG_OPTION_UNSET.POSTERLIB +define PKG_OPTION_UNSET.posterlib CMAKE_ARGS+= -DHAVE_POSTERLIB=OFF endef +PKG_SUPPORTED_OPTIONS+= viam +PKG_OPTION_DESCR.viam= Enable viam support. +define PKG_OPTION_SET.viam + CMAKE_ARGS+= -DHAVE_VIAM=ON + CPPFLAGS+= -DHAVE_VIAM + include ../../image/viam-libs/depend.mk + REQD_BUILD_OPTIONS.viam-libs+=opencv + include ../../image/opencv/depend.mk +endef +define PKG_OPTION_UNSET.viam + CMAKE_ARGS+= -DHAVE_VIAM=OFF +endef + +PKG_SUPPORTED_OPTIONS+= MTI +PKG_OPTION_DESCR.MTI= Enable MTI support. +define PKG_OPTION_SET.MTI + CMAKE_ARGS+= -DHAVE_MTI=ON + CPPFLAGS+= -DHAVE_MTI + include ../../hardware/MTI/depend.mk +endef +define PKG_OPTION_UNSET.MTI + CMAKE_ARGS+= -DHAVE_MTI=OFF +endef + +PKG_SUPPORTED_OPTIONS+= qdisplay +PKG_OPTION_DESCR.qdisplay = Enable jafar module qdisplay support for 2D display +define PKG_OPTION_SET.qdisplay + CPPFLAGS+=-DHAVE_MODULE_QDISPLAY + include ../../wip/jafar-qdisplay/depend.mk +endef + +PKG_SUPPORTED_OPTIONS+= gdhe +PKG_OPTION_DESCR.gdhe = Enable jafar module gdhe support for 3D display +define PKG_OPTION_SET.gdhe + CPPFLAGS+=-DHAVE_MODULE_GDHE + include ../../wip/jafar-gdhe/depend.mk + include ../../graphics/gdhe/depend.mk +endef + +PKG_SUPPORTED_OPTIONS+= dseg +PKG_OPTION_DESCR.dseg= Enable jafar module dseg support for segments +define PKG_OPTION_SET.dseg + CPPFLAGS+= -DHAVE_MODULE_DSEG + include ../../wip/jafar-dseg/depend.mk +endef + + + include ../../wip/jafar-kernel/depend.mk include ../../wip/jafar-image/depend.mk include ../../wip/jafar-jmath/depend.mk diff --git a/jafar-rtslam/PLIST b/jafar-rtslam/PLIST index a5223dd0..880ba67c 100644 --- a/jafar-rtslam/PLIST +++ b/jafar-rtslam/PLIST @@ -1,4 +1,4 @@ -@comment Wed Jun 15 22:56:38 CEST 2011 +@comment Sun Jun 19 01:14:33 CEST 2011 include/jafar/rtslam/activeSearch.hpp include/jafar/rtslam/activeSearch.hpp~ include/jafar/rtslam/activeSegmentSearch.hpp diff --git a/jafar-rtslam/distinfo b/jafar-rtslam/distinfo index 2b8ad565..a261b10c 100644 --- a/jafar-rtslam/distinfo +++ b/jafar-rtslam/distinfo @@ -1,3 +1,6 @@ -SHA1 (jafar-rtslam-0.1.tar.gz) = 7fe191796cfd6709a52b34da919813948ed811d9 -RMD160 (jafar-rtslam-0.1.tar.gz) = 5f34f41ca99b9ce06c10e3f8dc6a7618e83a2dd2 -Size (jafar-rtslam-0.1.tar.gz) = 2009925 bytes +SHA1 (jafar-rtslam-0.1.tar.gz) = d6f0cc5f1942d77d392502b00cb9793fc7813208 +RMD160 (jafar-rtslam-0.1.tar.gz) = 501399ae73f2fb94b5fd864f0fe6470e1607db00 +Size (jafar-rtslam-0.1.tar.gz) = 2994279 bytes +SHA1 (patch-bb) = c5199acd272c3bf7752f0fe3677268890572cfc9 +SHA1 (patch-dd) = 221f7f12ad48def2e3f55ef0f696cdcaf6a19f78 +SHA1 (patch-ee) = 2b79b15318ff326db3339afab63469d9334362fe diff --git a/jafar-rtslam/patches/patch-bb b/jafar-rtslam/patches/patch-bb new file mode 100644 index 00000000..2901e39c --- /dev/null +++ b/jafar-rtslam/patches/patch-bb @@ -0,0 +1,112 @@ +diff -Nu FindQt4.cmake FindQt4.cmake +--- FindQt4.cmake 2011-04-08 12:28:39.000000000 +0200 ++++ FindQt4.cmake 2011-06-18 23:37:33.000000000 +0200 +@@ -300,7 +300,7 @@ + INCLUDE(CheckSymbolExists) + INCLUDE(MacroAddFileDependencies) + +-SET(QT_USE_FILE ${Jafar_SOURCE_DIR}/tools/cmake/UseQt4.cmake) ++SET(QT_USE_FILE UseQt4.cmake) + + SET( QT_DEFINITIONS "") + +diff -Nu UseQt4.cmake UseQt4.cmake +--- UseQt4.cmake 1970-01-01 01:00:00.000000000 +0100 ++++ UseQt4.cmake 2011-06-18 23:36:49.000000000 +0200 +@@ -0,0 +1,96 @@ ++# - Use Module for QT4 ++# Sets up C and C++ to use Qt 4. It is assumed that FindQt.cmake ++# has already been loaded. See FindQt.cmake for information on ++# how to load Qt 4 into your CMake project. ++ ++#============================================================================= ++# Copyright 2005-2009 Kitware, Inc. ++# ++# Distributed under the OSI-approved BSD License (the "License"); ++# see accompanying file Copyright.txt for details. ++# ++# This software is distributed WITHOUT ANY WARRANTY; without even the ++# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++# See the License for more information. ++#============================================================================= ++# (To distribute this file outside of CMake, substitute the full ++# License text for the above reference.) ++ ++ADD_DEFINITIONS(${QT_DEFINITIONS}) ++SET_PROPERTY(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_DEBUG QT_DEBUG) ++SET_PROPERTY(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_RELEASE QT_NO_DEBUG) ++SET_PROPERTY(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_RELWITHDEBINFO QT_NO_DEBUG) ++SET_PROPERTY(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_MINSIZEREL QT_NO_DEBUG) ++ ++INCLUDE_DIRECTORIES(${QT_INCLUDE_DIR}) ++ ++SET(QT_LIBRARIES "") ++ ++IF (QT_USE_QTMAIN) ++ IF (Q_WS_WIN) ++ SET(QT_LIBRARIES ${QT_LIBRARIES} ${QT_QTMAIN_LIBRARY}) ++ ENDIF (Q_WS_WIN) ++ENDIF (QT_USE_QTMAIN) ++ ++IF(QT_DONT_USE_QTGUI) ++ SET(QT_USE_QTGUI 0) ++ELSE(QT_DONT_USE_QTGUI) ++ SET(QT_USE_QTGUI 1) ++ENDIF(QT_DONT_USE_QTGUI) ++ ++IF(QT_DONT_USE_QTCORE) ++ SET(QT_USE_QTCORE 0) ++ELSE(QT_DONT_USE_QTCORE) ++ SET(QT_USE_QTCORE 1) ++ENDIF(QT_DONT_USE_QTCORE) ++ ++IF (QT_USE_QT3SUPPORT) ++ ADD_DEFINITIONS(-DQT3_SUPPORT) ++ENDIF (QT_USE_QT3SUPPORT) ++ ++# list dependent modules, so dependent libraries are added ++SET(QT_QT3SUPPORT_MODULE_DEPENDS QTGUI QTSQL QTXML QTNETWORK QTCORE) ++SET(QT_QTSVG_MODULE_DEPENDS QTGUI QTXML QTCORE) ++SET(QT_QTUITOOLS_MODULE_DEPENDS QTGUI QTXML QTCORE) ++SET(QT_QTHELP_MODULE_DEPENDS QTGUI QTSQL QTXML QTNETWORK QTCORE) ++IF(QT_QTDBUS_FOUND) ++ SET(QT_PHONON_MODULE_DEPENDS QTGUI QTDBUS QTCORE) ++ELSE(QT_QTDBUS_FOUND) ++ SET(QT_PHONON_MODULE_DEPENDS QTGUI QTCORE) ++ENDIF(QT_QTDBUS_FOUND) ++SET(QT_QTDBUS_MODULE_DEPENDS QTXML QTCORE) ++SET(QT_QTXMLPATTERNS_MODULE_DEPENDS QTNETWORK QTCORE) ++SET(QT_QAXCONTAINER_MODULE_DEPENDS QTGUI QTCORE) ++SET(QT_QAXSERVER_MODULE_DEPENDS QTGUI QTCORE) ++SET(QT_QTSCRIPTTOOLS_MODULE_DEPENDS QTGUI QTCORE) ++SET(QT_QTWEBKIT_MODULE_DEPENDS QTXMLPATTERNS QTGUI QTCORE) ++SET(QT_QTDECLARATIVE_MODULE_DEPENDS QTWEBKIT QTSCRIPT QTSVG QTSQL QTXMLPATTERNS QTXML QTOPENGL QTGUI QTNETWORK QTCORE) ++SET(QT_QTMULTIMEDIA_MODULE_DEPENDS QTGUI QTCORE) ++ ++# Qt modules (in order of dependence) ++FOREACH(module QT3SUPPORT QTOPENGL QTASSISTANT QTDESIGNER QTMOTIF QTNSPLUGIN ++ QAXSERVER QAXCONTAINER QTDECLARATIVE QTSCRIPT QTSVG QTUITOOLS QTHELP ++ QTWEBKIT PHONON QTSCRIPTTOOLS QTMULTIMEDIA QTGUI QTTEST QTDBUS QTXML QTSQL ++ QTXMLPATTERNS QTNETWORK QTCORE) ++ ++ IF (QT_USE_${module} OR QT_USE_${module}_DEPENDS) ++ IF (Qt4_${module}_FOUND) ++ IF(QT_USE_${module}) ++ STRING(REPLACE "QT" "" qt_module_def "${module}") ++ ADD_DEFINITIONS(-DQT_${qt_module_def}_LIB) ++ INCLUDE_DIRECTORIES(${QT_${module}_INCLUDE_DIR}) ++ ENDIF(QT_USE_${module}) ++ SET(QT_LIBRARIES ${QT_LIBRARIES} ${Qt4_${module}_LIBRARY}) ++ IF(QT_IS_STATIC) ++ SET(QT_LIBRARIES ${QT_LIBRARIES} ${Qt4_${module}_LIB_DEPENDENCIES}) ++ ENDIF(QT_IS_STATIC) ++ FOREACH(depend_module ${QT_${module}_MODULE_DEPENDS}) ++ SET(QT_USE_${depend_module}_DEPENDS 1) ++ ENDFOREACH(depend_module ${QT_${module}_MODULE_DEPENDS}) ++ ELSE (Qt4_${module}_FOUND) ++ MESSAGE("Qt ${module} library not found.") ++ ENDIF (Qt4_${module}_FOUND) ++ ENDIF (QT_USE_${module} OR QT_USE_${module}_DEPENDS) ++ ++ENDFOREACH(module) ++ diff --git a/jafar-rtslam/patches/patch-dd b/jafar-rtslam/patches/patch-dd new file mode 100644 index 00000000..83e2e475 --- /dev/null +++ b/jafar-rtslam/patches/patch-dd @@ -0,0 +1,41 @@ +diff -u CMakeLists.txt CMakeLists.txt +--- CMakeLists.txt 2011-06-19 00:34:10.000000000 +0200 ++++ CMakeLists.txt 2011-06-19 00:56:10.000000000 +0200 +@@ -75,7 +75,7 @@ + #----------------------------------------------------------------------------- + # Go find them + #----------------------------------------------------------------------------- +-foreach(package GDHE VIAM POSTERLIB OpenCV) ++foreach(package GDHE VIAM POSTERLIB) + find_robots_package("${package}") + string(TOUPPER "HAVE_${package}" HAVE_PACKAGE) + string(TOUPPER "${package}_FOUND" PACKAGE_FOUND) +@@ -89,6 +89,28 @@ + endif(${PACKAGE_FOUND}) + endforeach(package) + ++### ++# PkgConfig ++### ++include(FindPkgConfig) ++ ++### ++# OpenCV ++### ++#include(FindOpenCV) ++#find_package(OpenCV) ++pkg_check_modules(OpenCV opencv) ++set(HAVE_OPENCV ${OpenCV_FOUND}) ++set(OPENCV_FOUND ${OpenCV_FOUND}) ++if(OpenCV_FOUND) ++ include_directories(${OpenCV_INCLUDE_DIRS}) ++ link_directories(${OpenCV_LIBRARY_DIRS}) ++ set(LIBS ${LIBS} ${OpenCV_LIBRARIES}) ++ message(STATUS "version ${OpenCV_VERSION}") ++ set(LIBS_MAP_OPENCV "OpenCV") ++endif(OpenCV_FOUND) ++set(ROBOTPKG_MAP_OPENCV "image/opencv") ++ + + #----------------------------------------------------------------------------- + # Check for Boost diff --git a/jafar-rtslam/patches/patch-ee b/jafar-rtslam/patches/patch-ee new file mode 100644 index 00000000..e1541e50 --- /dev/null +++ b/jafar-rtslam/patches/patch-ee @@ -0,0 +1,67 @@ +--- CMakeLists.txt 2011-06-19 02:21:44.000000000 +0200 ++++ CMakeLists.txt 2011-06-19 02:22:44.000000000 +0200 +@@ -35,6 +35,55 @@ + set(CMAKE_CXX_FLAGS_RELEASE "-o2 -g0 -DNDEBUG -DJAFAR_NDEBUG -DBOOST_UBLAS_NDEBUG") + set(CMAKE_CXX_FLAGS_DEBUG "-o0 -g3 -ggdb") + ++#------------------------------------------------------------------------------ ++#This macro generates qt special files ++#------------------------------------------------------------------------------ ++macro(GENERATE_QT_FILES JAFAR_MODULENAME CPPFLAGS) ++ #include qt specific macros ++ include(${QT_USE_FILE}) ++ ++MESSAGE(STATUS, "QT_MOC_SRCS: ${QT_MOC_SRCS}") ++ string(TOUPPER "${JAFAR_MODULENAME}_WRAPPED_HEADERS" QTUI_H_SRC) ++ string(TOUPPER "${JAFAR_MODULENAME}_WRAPPED_CPPS" QT_MOC_SRCS) ++ ++ #generate headers from ui files ++ file(GLOB UI_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.ui) ++# QT4_WRAP_UI(${QTUI_H_SRC} ${UI_FILES}) ++ foreach(ui_file ${UI_FILES}) ++ get_filename_component(generated_header ${ui_file} NAME_WE) ++ set(generated_header ${CMAKE_CURRENT_SOURCE_DIR}/src/${generated_header}.h) ++ execute_process( ++ COMMAND ${QT_UIC_EXECUTABLE} ${ui_file} -o ${generated_header} ++ OUTPUT_FILE ${generated_header} ++ INPUT_FILE ${ui_file} ++ ) ++ set(${QTUI_H_SRC} ${${QTUI_H_SRC}} ${generated_header}) ++ endforeach(ui_file) ++ ++ # generate moc files from headers contining \"Q_OBJECT\" ++ file(GLOB HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/include/${JAFAR_MODULENAME}/*.hpp" "${CMAKE_CURRENT_SOURCE_DIR}/src/*.hpp") ++ foreach(header ${HEADERS}) ++ file(STRINGS ${header} Q_OBJECT_STRING REGEX "Q_OBJECT") ++ if(NOT("${Q_OBJECT_STRING}" STREQUAL "")) ++ get_filename_component(generated_moc ${header} NAME_WE) ++ set(generated_moc ${CMAKE_CURRENT_SOURCE_DIR}/src/${generated_moc}.moc) ++ ++ set(MYCPPFLAGS "${CPPFLAGS}") ++ string(STRIP "${MYCPPFLAGS}" MYCPPFLAGS) ++ string(REPLACE " " ";" MYCPPFLAGS "${MYCPPFLAGS}") ++ execute_process( ++ COMMAND ${QT_MOC_EXECUTABLE} ${MYCPPFLAGS} ${header} -o ${generated_moc} ++ ) ++ set(${QT_MOC_SRCS} ${${QT_MOC_SRCS}} ${generated_moc}) ++# QT4_GENERATE_MOC(${header} ${CMAKE_CURRENT_SOURCE_DIR}/src/${HEADER_NAME}.moc) ++ endif(NOT("${Q_OBJECT_STRING}" STREQUAL "")) ++ endforeach(header) ++ ++# QT4_WRAP_CPP(${QT_MOC_SRCS} ${HEADERS_TO_MOC}) ++ ++endmacro(GENERATE_QT_FILES) ++ ++ + #----------------------------------------------------------------------------- + # Macro to help find other robotpkg modules + #----------------------------------------------------------------------------- +@@ -189,6 +238,8 @@ + endforeach(potential_include) + include_directories(${headers_folders}) + ++generate_qt_files(rtslam "-DHAVE_MODULE_QDISPLAY") ++ + # build the library + add_library(jafar-rtslam SHARED ${module_sources}) + -- GitLab