Auto find qt version (qt5 has priority)

This commit is contained in:
matlabbe 2016-05-06 16:54:18 -04:00
parent 5c21a76653
commit 52ce5076db
10 changed files with 48 additions and 42 deletions

View File

@ -37,12 +37,11 @@ ADD_DEFINITIONS(-DPROJECT_NAME="${PROJECT_NAME}")
####### DEPENDENCIES ####### ####### DEPENDENCIES #######
FIND_PACKAGE(OpenCV REQUIRED) # tested on 2.3.1 FIND_PACKAGE(OpenCV REQUIRED) # tested on 2.3.1
SET(FINDOBJECT_QT_VERSION 4 CACHE STRING "Which QT version to use") # look for Qt5 before Qt4
IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") FIND_PACKAGE(Qt5 COMPONENTS Widgets Core Gui Network QUIET)
IF(NOT Qt5_FOUND)
FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui QtNetwork REQUIRED) FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui QtNetwork REQUIRED)
ELSE() ENDIF(NOT Qt5_FOUND)
FIND_PACKAGE(Qt5 COMPONENTS Widgets Core Gui Network REQUIRED)
ENDIF()
ADD_DEFINITIONS(-DQT_NO_KEYWORDS) # To avoid conflicts with boost signals used in ROS ADD_DEFINITIONS(-DQT_NO_KEYWORDS) # To avoid conflicts with boost signals used in ROS
SET(NONFREE 0) SET(NONFREE 0)
@ -243,11 +242,11 @@ IF(NOT CATKIN_BUILD)
ENDIF() ENDIF()
IF(QT4_FOUND) IF(QT4_FOUND)
MESSAGE(STATUS " With Qt = YES (version 4, \"-DFINDOBJECT_QT_VERSION=4\")") MESSAGE(STATUS " With Qt4 = YES")
ELSEIF(Qt5_FOUND) ELSEIF(Qt5_FOUND)
MESSAGE(STATUS " With Qt = YES (version 5, \"-DFINDOBJECT_QT_VERSION=5\")") MESSAGE(STATUS " With Qt5 = YES")
ELSE() ELSE()
MESSAGE(STATUS " With Qt = NO (Qt not found, to use Qt5 you should set -DFINDOBJECT_QT_VERSION=5)") MESSAGE(STATUS " With Qt = NO (Qt not found)")
ENDIF() ENDIF()
IF(APPLE) IF(APPLE)

View File

@ -3,7 +3,7 @@ SET(headers_ui
TcpServerPool.h TcpServerPool.h
) )
IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") IF(QT4_FOUND)
QT4_WRAP_CPP(moc_srcs ${headers_ui}) QT4_WRAP_CPP(moc_srcs ${headers_ui})
ELSE() ELSE()
QT5_WRAP_CPP(moc_srcs ${headers_ui}) QT5_WRAP_CPP(moc_srcs ${headers_ui})
@ -15,9 +15,9 @@ SET(INCLUDE_DIRS
${OpenCV_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS}
) )
IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") IF(QT4_FOUND)
INCLUDE(${QT_USE_FILE}) INCLUDE(${QT_USE_FILE})
ENDIF() ENDIF(QT4_FOUND)
SET(LIBRARIES SET(LIBRARIES
${QT_LIBRARIES} ${QT_LIBRARIES}
@ -62,9 +62,9 @@ ELSE()
ENDIF() ENDIF()
# Linking with Qt libraries # Linking with Qt libraries
TARGET_LINK_LIBRARIES(find_object_app find_object ${LIBRARIES}) TARGET_LINK_LIBRARIES(find_object_app find_object ${LIBRARIES})
IF("${FINDOBJECT_QT_VERSION}" STREQUAL "5") IF(Qt5_FOUND)
QT5_USE_MODULES(find_object_app Widgets Core Gui Network PrintSupport) QT5_USE_MODULES(find_object_app Widgets Core Gui Network PrintSupport)
ENDIF() ENDIF(Qt5_FOUND)
IF(APPLE AND BUILD_AS_BUNDLE) IF(APPLE AND BUILD_AS_BUNDLE)
SET_TARGET_PROPERTIES(find_object_app PROPERTIES SET_TARGET_PROPERTIES(find_object_app PROPERTIES

View File

@ -9,9 +9,9 @@ SET(INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/../include ${CMAKE_CURRENT_SOURCE_DIR}/../include
) )
IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") IF(QT4_FOUND)
INCLUDE(${QT_USE_FILE}) INCLUDE(${QT_USE_FILE})
ENDIF() ENDIF(QT4_FOUND)
SET(LIBRARIES SET(LIBRARIES
${OpenCV_LIBS} ${OpenCV_LIBS}
@ -25,9 +25,9 @@ INCLUDE_DIRECTORIES(${INCLUDE_DIRS})
# The extension is automatically found. # The extension is automatically found.
ADD_EXECUTABLE(example ${SRC_FILES}) ADD_EXECUTABLE(example ${SRC_FILES})
TARGET_LINK_LIBRARIES(example find_object ${LIBRARIES}) TARGET_LINK_LIBRARIES(example find_object ${LIBRARIES})
IF("${FINDOBJECT_QT_VERSION}" STREQUAL "5") IF(Qt5_FOUND)
QT5_USE_MODULES(example Widgets Core Gui Network PrintSupport) QT5_USE_MODULES(example Widgets Core Gui Network PrintSupport)
ENDIF() ENDIF(Qt5_FOUND)
SET_TARGET_PROPERTIES( example SET_TARGET_PROPERTIES( example
PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-example) PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-example)

View File

@ -5,7 +5,7 @@
<description>The find_object_2d package</description> <description>The find_object_2d package</description>
<maintainer email="matlabbe@gmail.com">Mathieu Labbe</maintainer> <maintainer email="matlabbe@gmail.com">Mathieu Labbe</maintainer>
<license>LGPLv3</license> <license>BSD</license>
<url type="website">http://find-object.googlecode.com</url> <url type="website">http://find-object.googlecode.com</url>
<author email="matlabbe@gmail.com">Mathieu Labbe</author> <author email="matlabbe@gmail.com">Mathieu Labbe</author>

View File

@ -34,7 +34,7 @@ SET(qrc
./resources.qrc ./resources.qrc
) )
IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") IF(QT4_FOUND)
# generate rules for building source files from the resources # generate rules for building source files from the resources
QT4_ADD_RESOURCES(srcs_qrc ${qrc}) QT4_ADD_RESOURCES(srcs_qrc ${qrc})
@ -101,9 +101,9 @@ IF(CATKIN_BUILD)
) )
ENDIF(CATKIN_BUILD) ENDIF(CATKIN_BUILD)
IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") IF(QT4_FOUND)
INCLUDE(${QT_USE_FILE}) INCLUDE(${QT_USE_FILE})
ENDIF() ENDIF(QT4_FOUND)
SET(LIBRARIES SET(LIBRARIES
${QT_LIBRARIES} ${QT_LIBRARIES}
@ -123,9 +123,9 @@ INCLUDE_DIRECTORIES(${INCLUDE_DIRS})
ADD_LIBRARY(find_object ${SRC_FILES}) ADD_LIBRARY(find_object ${SRC_FILES})
# Linking with Qt libraries # Linking with Qt libraries
TARGET_LINK_LIBRARIES(find_object ${LIBRARIES}) TARGET_LINK_LIBRARIES(find_object ${LIBRARIES})
IF("${FINDOBJECT_QT_VERSION}" STREQUAL "5") IF(Qt5_FOUND)
QT5_USE_MODULES(find_object Widgets Core Gui Network PrintSupport) QT5_USE_MODULES(find_object Widgets Core Gui Network PrintSupport)
ENDIF() ENDIF(Qt5_FOUND)
IF(CATKIN_BUILD) IF(CATKIN_BUILD)
set_target_properties(find_object PROPERTIES OUTPUT_NAME find_object_2d) set_target_properties(find_object PROPERTIES OUTPUT_NAME find_object_2d)
ENDIF(CATKIN_BUILD) ENDIF(CATKIN_BUILD)
@ -149,6 +149,12 @@ ELSE()
add_executable(tf_example ros/tf_example_node.cpp) add_executable(tf_example ros/tf_example_node.cpp)
target_link_libraries(tf_example ${LIBRARIES}) target_link_libraries(tf_example ${LIBRARIES})
add_dependencies(tf_example ${${PROJECT_NAME}_EXPORTED_TARGETS}) add_dependencies(tf_example ${${PROJECT_NAME}_EXPORTED_TARGETS})
IF(Qt5_FOUND)
QT5_USE_MODULES(find_object_2d Widgets Core Gui Network PrintSupport)
QT5_USE_MODULES(print_objects_detected Widgets Core Gui Network PrintSupport)
QT5_USE_MODULES(tf_example Widgets Core Gui Network PrintSupport)
ENDIF(Qt5_FOUND)
## Mark executables and/or libraries for installation ## Mark executables and/or libraries for installation
install(TARGETS install(TARGETS

View File

@ -30,6 +30,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "find_object/utilite/ULogger.h" #include "find_object/utilite/ULogger.h"
#include "Vocabulary.h" #include "Vocabulary.h"
#include <QtCore/QVector> #include <QtCore/QVector>
#include <QDataStream>
#include <stdio.h> #include <stdio.h>
#if CV_MAJOR_VERSION < 3 #if CV_MAJOR_VERSION < 3
#include <opencv2/gpu/gpu.hpp> #include <opencv2/gpu/gpu.hpp>

View File

@ -3,7 +3,7 @@ SET(headers_ui
TcpClient.h TcpClient.h
) )
IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") IF(QT4_FOUND)
QT4_WRAP_CPP(moc_srcs ${headers_ui}) QT4_WRAP_CPP(moc_srcs ${headers_ui})
ELSE() ELSE()
QT5_WRAP_CPP(moc_srcs ${headers_ui}) QT5_WRAP_CPP(moc_srcs ${headers_ui})
@ -21,9 +21,9 @@ SET(INCLUDE_DIRS
${OpenCV_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS}
) )
IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") IF(QT4_FOUND)
INCLUDE(${QT_USE_FILE}) INCLUDE(${QT_USE_FILE})
ENDIF() ENDIF(QT4_FOUND)
SET(LIBRARIES SET(LIBRARIES
${OpenCV_LIBS} ${OpenCV_LIBS}
@ -37,9 +37,9 @@ INCLUDE_DIRECTORIES(${INCLUDE_DIRS})
# The extension is automatically found. # The extension is automatically found.
ADD_EXECUTABLE(tcpClient ${SRC_FILES}) ADD_EXECUTABLE(tcpClient ${SRC_FILES})
TARGET_LINK_LIBRARIES(tcpClient ${LIBRARIES}) TARGET_LINK_LIBRARIES(tcpClient ${LIBRARIES})
IF("${FINDOBJECT_QT_VERSION}" STREQUAL "5") IF(Qt5_FOUND)
QT5_USE_MODULES(tcpClient Widgets Core Gui Network PrintSupport) QT5_USE_MODULES(tcpClient Widgets Core Gui Network PrintSupport)
ENDIF() ENDIF(Qt5_FOUND)
SET_TARGET_PROPERTIES( tcpClient SET_TARGET_PROPERTIES( tcpClient
PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-tcpClient) PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-tcpClient)

View File

@ -3,7 +3,7 @@ SET(headers_ui
ImagesTcpServer.h ImagesTcpServer.h
) )
IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") IF(QT4_FOUND)
QT4_WRAP_CPP(moc_srcs ${headers_ui}) QT4_WRAP_CPP(moc_srcs ${headers_ui})
ELSE() ELSE()
QT5_WRAP_CPP(moc_srcs ${headers_ui}) QT5_WRAP_CPP(moc_srcs ${headers_ui})
@ -21,9 +21,9 @@ SET(INCLUDE_DIRS
${OpenCV_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS}
) )
IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") IF(QT4_FOUND)
INCLUDE(${QT_USE_FILE}) INCLUDE(${QT_USE_FILE})
ENDIF() ENDIF(QT4_FOUND)
SET(LIBRARIES SET(LIBRARIES
${OpenCV_LIBS} ${OpenCV_LIBS}
@ -37,9 +37,9 @@ INCLUDE_DIRECTORIES(${INCLUDE_DIRS})
# The extension is automatically found. # The extension is automatically found.
ADD_EXECUTABLE(tcpImagesServer ${SRC_FILES}) ADD_EXECUTABLE(tcpImagesServer ${SRC_FILES})
TARGET_LINK_LIBRARIES(tcpImagesServer find_object ${LIBRARIES}) TARGET_LINK_LIBRARIES(tcpImagesServer find_object ${LIBRARIES})
IF("${FINDOBJECT_QT_VERSION}" STREQUAL "5") IF(Qt5_FOUND)
QT5_USE_MODULES(tcpImagesServer Widgets Core Gui Network PrintSupport) QT5_USE_MODULES(tcpImagesServer Widgets Core Gui Network PrintSupport)
ENDIF() ENDIF(Qt5_FOUND)
SET_TARGET_PROPERTIES( tcpImagesServer SET_TARGET_PROPERTIES( tcpImagesServer
PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-tcpImagesServer) PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-tcpImagesServer)

View File

@ -3,7 +3,7 @@ SET(headers_ui
TcpResponse.h TcpResponse.h
) )
IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") IF(QT4_FOUND)
QT4_WRAP_CPP(moc_srcs ${headers_ui}) QT4_WRAP_CPP(moc_srcs ${headers_ui})
ELSE() ELSE()
QT5_WRAP_CPP(moc_srcs ${headers_ui}) QT5_WRAP_CPP(moc_srcs ${headers_ui})
@ -21,9 +21,9 @@ SET(INCLUDE_DIRS
${OpenCV_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS}
) )
IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") IF(QT4_FOUND)
INCLUDE(${QT_USE_FILE}) INCLUDE(${QT_USE_FILE})
ENDIF() ENDIF(QT4_FOUND)
SET(LIBRARIES SET(LIBRARIES
@ -38,9 +38,9 @@ INCLUDE_DIRECTORIES(${INCLUDE_DIRS})
# The extension is automatically found. # The extension is automatically found.
ADD_EXECUTABLE(tcpRequest ${SRC_FILES}) ADD_EXECUTABLE(tcpRequest ${SRC_FILES})
TARGET_LINK_LIBRARIES(tcpRequest find_object ${LIBRARIES}) TARGET_LINK_LIBRARIES(tcpRequest find_object ${LIBRARIES})
IF("${FINDOBJECT_QT_VERSION}" STREQUAL "5") IF(Qt5_FOUND)
QT5_USE_MODULES(tcpRequest Widgets Core Gui Network PrintSupport) QT5_USE_MODULES(tcpRequest Widgets Core Gui Network PrintSupport)
ENDIF() ENDIF(Qt5_FOUND)
SET_TARGET_PROPERTIES( tcpRequest SET_TARGET_PROPERTIES( tcpRequest
PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-tcpRequest) PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-tcpRequest)

View File

@ -9,9 +9,9 @@ SET(INCLUDE_DIRS
${OpenCV_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS}
) )
IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") IF(QT4_FOUND)
INCLUDE(${QT_USE_FILE}) INCLUDE(${QT_USE_FILE})
ENDIF() ENDIF(QT4_FOUND)
SET(LIBRARIES SET(LIBRARIES
${OpenCV_LIBS} ${OpenCV_LIBS}
@ -25,9 +25,9 @@ INCLUDE_DIRECTORIES(${INCLUDE_DIRS})
# The extension is automatically found. # The extension is automatically found.
ADD_EXECUTABLE(tcpService ${SRC_FILES}) ADD_EXECUTABLE(tcpService ${SRC_FILES})
TARGET_LINK_LIBRARIES(tcpService find_object ${LIBRARIES}) TARGET_LINK_LIBRARIES(tcpService find_object ${LIBRARIES})
IF("${FINDOBJECT_QT_VERSION}" STREQUAL "5") IF(Qt5_FOUND)
QT5_USE_MODULES(tcpService Widgets Core Gui Network PrintSupport) QT5_USE_MODULES(tcpService Widgets Core Gui Network PrintSupport)
ENDIF() ENDIF(Qt5_FOUND)
SET_TARGET_PROPERTIES( tcpService SET_TARGET_PROPERTIES( tcpService
PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-tcpService) PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-tcpService)