From 52ce5076dbc280f2d358d47cd9e4d8bfd31e28a1 Mon Sep 17 00:00:00 2001 From: matlabbe Date: Fri, 6 May 2016 16:54:18 -0400 Subject: [PATCH] Auto find qt version (qt5 has priority) --- CMakeLists.txt | 15 +++++++-------- app/CMakeLists.txt | 10 +++++----- example/CMakeLists.txt | 8 ++++---- package.xml | 2 +- src/CMakeLists.txt | 16 +++++++++++----- src/Vocabulary.cpp | 1 + tools/tcpClient/CMakeLists.txt | 10 +++++----- tools/tcpImagesServer/CMakeLists.txt | 10 +++++----- tools/tcpRequest/CMakeLists.txt | 10 +++++----- tools/tcpService/CMakeLists.txt | 8 ++++---- 10 files changed, 48 insertions(+), 42 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2e5e5d02..e473d033 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,12 +37,11 @@ ADD_DEFINITIONS(-DPROJECT_NAME="${PROJECT_NAME}") ####### DEPENDENCIES ####### FIND_PACKAGE(OpenCV REQUIRED) # tested on 2.3.1 -SET(FINDOBJECT_QT_VERSION 4 CACHE STRING "Which QT version to use") -IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") +# look for Qt5 before Qt4 +FIND_PACKAGE(Qt5 COMPONENTS Widgets Core Gui Network QUIET) +IF(NOT Qt5_FOUND) FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui QtNetwork REQUIRED) -ELSE() - FIND_PACKAGE(Qt5 COMPONENTS Widgets Core Gui Network REQUIRED) -ENDIF() +ENDIF(NOT Qt5_FOUND) ADD_DEFINITIONS(-DQT_NO_KEYWORDS) # To avoid conflicts with boost signals used in ROS SET(NONFREE 0) @@ -243,11 +242,11 @@ IF(NOT CATKIN_BUILD) ENDIF() IF(QT4_FOUND) - MESSAGE(STATUS " With Qt = YES (version 4, \"-DFINDOBJECT_QT_VERSION=4\")") + MESSAGE(STATUS " With Qt4 = YES") ELSEIF(Qt5_FOUND) - MESSAGE(STATUS " With Qt = YES (version 5, \"-DFINDOBJECT_QT_VERSION=5\")") + MESSAGE(STATUS " With Qt5 = YES") 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() IF(APPLE) diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index 454079ad..2744bd9e 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -3,7 +3,7 @@ SET(headers_ui TcpServerPool.h ) -IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") +IF(QT4_FOUND) QT4_WRAP_CPP(moc_srcs ${headers_ui}) ELSE() QT5_WRAP_CPP(moc_srcs ${headers_ui}) @@ -15,9 +15,9 @@ SET(INCLUDE_DIRS ${OpenCV_INCLUDE_DIRS} ) -IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") +IF(QT4_FOUND) INCLUDE(${QT_USE_FILE}) -ENDIF() +ENDIF(QT4_FOUND) SET(LIBRARIES ${QT_LIBRARIES} @@ -62,9 +62,9 @@ ELSE() ENDIF() # Linking with Qt 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) -ENDIF() +ENDIF(Qt5_FOUND) IF(APPLE AND BUILD_AS_BUNDLE) SET_TARGET_PROPERTIES(find_object_app PROPERTIES diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index 942ea940..61dd9fa6 100644 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -9,9 +9,9 @@ SET(INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/../include ) -IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") +IF(QT4_FOUND) INCLUDE(${QT_USE_FILE}) -ENDIF() +ENDIF(QT4_FOUND) SET(LIBRARIES ${OpenCV_LIBS} @@ -25,9 +25,9 @@ INCLUDE_DIRECTORIES(${INCLUDE_DIRS}) # The extension is automatically found. ADD_EXECUTABLE(example ${SRC_FILES}) 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) -ENDIF() +ENDIF(Qt5_FOUND) SET_TARGET_PROPERTIES( example PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-example) diff --git a/package.xml b/package.xml index db189496..bd4bb952 100644 --- a/package.xml +++ b/package.xml @@ -5,7 +5,7 @@ The find_object_2d package Mathieu Labbe - LGPLv3 + BSD http://find-object.googlecode.com Mathieu Labbe diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 324c9192..651aab63 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -34,7 +34,7 @@ SET(qrc ./resources.qrc ) -IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") +IF(QT4_FOUND) # generate rules for building source files from the resources QT4_ADD_RESOURCES(srcs_qrc ${qrc}) @@ -101,9 +101,9 @@ IF(CATKIN_BUILD) ) ENDIF(CATKIN_BUILD) -IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") +IF(QT4_FOUND) INCLUDE(${QT_USE_FILE}) -ENDIF() +ENDIF(QT4_FOUND) SET(LIBRARIES ${QT_LIBRARIES} @@ -123,9 +123,9 @@ INCLUDE_DIRECTORIES(${INCLUDE_DIRS}) ADD_LIBRARY(find_object ${SRC_FILES}) # Linking with Qt 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) -ENDIF() +ENDIF(Qt5_FOUND) IF(CATKIN_BUILD) set_target_properties(find_object PROPERTIES OUTPUT_NAME find_object_2d) ENDIF(CATKIN_BUILD) @@ -149,6 +149,12 @@ ELSE() add_executable(tf_example ros/tf_example_node.cpp) target_link_libraries(tf_example ${LIBRARIES}) 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 install(TARGETS diff --git a/src/Vocabulary.cpp b/src/Vocabulary.cpp index e1e39271..c3b41906 100644 --- a/src/Vocabulary.cpp +++ b/src/Vocabulary.cpp @@ -30,6 +30,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "find_object/utilite/ULogger.h" #include "Vocabulary.h" #include +#include #include #if CV_MAJOR_VERSION < 3 #include diff --git a/tools/tcpClient/CMakeLists.txt b/tools/tcpClient/CMakeLists.txt index 425e895b..f65e59e1 100644 --- a/tools/tcpClient/CMakeLists.txt +++ b/tools/tcpClient/CMakeLists.txt @@ -3,7 +3,7 @@ SET(headers_ui TcpClient.h ) -IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") +IF(QT4_FOUND) QT4_WRAP_CPP(moc_srcs ${headers_ui}) ELSE() QT5_WRAP_CPP(moc_srcs ${headers_ui}) @@ -21,9 +21,9 @@ SET(INCLUDE_DIRS ${OpenCV_INCLUDE_DIRS} ) -IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") +IF(QT4_FOUND) INCLUDE(${QT_USE_FILE}) -ENDIF() +ENDIF(QT4_FOUND) SET(LIBRARIES ${OpenCV_LIBS} @@ -37,9 +37,9 @@ INCLUDE_DIRECTORIES(${INCLUDE_DIRS}) # The extension is automatically found. ADD_EXECUTABLE(tcpClient ${SRC_FILES}) TARGET_LINK_LIBRARIES(tcpClient ${LIBRARIES}) -IF("${FINDOBJECT_QT_VERSION}" STREQUAL "5") +IF(Qt5_FOUND) QT5_USE_MODULES(tcpClient Widgets Core Gui Network PrintSupport) -ENDIF() +ENDIF(Qt5_FOUND) SET_TARGET_PROPERTIES( tcpClient PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-tcpClient) diff --git a/tools/tcpImagesServer/CMakeLists.txt b/tools/tcpImagesServer/CMakeLists.txt index 84f82c88..043c7a0d 100644 --- a/tools/tcpImagesServer/CMakeLists.txt +++ b/tools/tcpImagesServer/CMakeLists.txt @@ -3,7 +3,7 @@ SET(headers_ui ImagesTcpServer.h ) -IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") +IF(QT4_FOUND) QT4_WRAP_CPP(moc_srcs ${headers_ui}) ELSE() QT5_WRAP_CPP(moc_srcs ${headers_ui}) @@ -21,9 +21,9 @@ SET(INCLUDE_DIRS ${OpenCV_INCLUDE_DIRS} ) -IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") +IF(QT4_FOUND) INCLUDE(${QT_USE_FILE}) -ENDIF() +ENDIF(QT4_FOUND) SET(LIBRARIES ${OpenCV_LIBS} @@ -37,9 +37,9 @@ INCLUDE_DIRECTORIES(${INCLUDE_DIRS}) # The extension is automatically found. ADD_EXECUTABLE(tcpImagesServer ${SRC_FILES}) 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) -ENDIF() +ENDIF(Qt5_FOUND) SET_TARGET_PROPERTIES( tcpImagesServer PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-tcpImagesServer) diff --git a/tools/tcpRequest/CMakeLists.txt b/tools/tcpRequest/CMakeLists.txt index 3bc7d7e5..42d76c08 100644 --- a/tools/tcpRequest/CMakeLists.txt +++ b/tools/tcpRequest/CMakeLists.txt @@ -3,7 +3,7 @@ SET(headers_ui TcpResponse.h ) -IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") +IF(QT4_FOUND) QT4_WRAP_CPP(moc_srcs ${headers_ui}) ELSE() QT5_WRAP_CPP(moc_srcs ${headers_ui}) @@ -21,9 +21,9 @@ SET(INCLUDE_DIRS ${OpenCV_INCLUDE_DIRS} ) -IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") +IF(QT4_FOUND) INCLUDE(${QT_USE_FILE}) -ENDIF() +ENDIF(QT4_FOUND) SET(LIBRARIES @@ -38,9 +38,9 @@ INCLUDE_DIRECTORIES(${INCLUDE_DIRS}) # The extension is automatically found. ADD_EXECUTABLE(tcpRequest ${SRC_FILES}) 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) -ENDIF() +ENDIF(Qt5_FOUND) SET_TARGET_PROPERTIES( tcpRequest PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-tcpRequest) diff --git a/tools/tcpService/CMakeLists.txt b/tools/tcpService/CMakeLists.txt index 8c4b19be..09271ad7 100644 --- a/tools/tcpService/CMakeLists.txt +++ b/tools/tcpService/CMakeLists.txt @@ -9,9 +9,9 @@ SET(INCLUDE_DIRS ${OpenCV_INCLUDE_DIRS} ) -IF("${FINDOBJECT_QT_VERSION}" STREQUAL "4") +IF(QT4_FOUND) INCLUDE(${QT_USE_FILE}) -ENDIF() +ENDIF(QT4_FOUND) SET(LIBRARIES ${OpenCV_LIBS} @@ -25,9 +25,9 @@ INCLUDE_DIRECTORIES(${INCLUDE_DIRS}) # The extension is automatically found. ADD_EXECUTABLE(tcpService ${SRC_FILES}) 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) -ENDIF() +ENDIF(Qt5_FOUND) SET_TARGET_PROPERTIES( tcpService PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-tcpService)