more simplification of the dependency handling

This commit is contained in:
Abhijit Kundu
2014-12-02 21:41:47 -05:00
parent c0b092d796
commit 5ca603a9a9
4 changed files with 12 additions and 90 deletions

View File

@@ -15,10 +15,7 @@ INCLUDE(InstallSettings)
##################### Look for required libraries ######################
# Add QT dependencies
INCLUDE(AddQt)
IF (NOT QT_FOUND)
MESSAGE(FATAL "We Need some QT")
ENDIF()
FIND_PACKAGE(Qt5Widgets REQUIRED)
######################### Add Primary Targets ##########################
ADD_SUBDIRECTORY(src)
@@ -45,10 +42,10 @@ MESSAGE(STATUS "Build type Flags: ${CMAKE_BUILD_TYPE_FLAGS}")
MESSAGE(STATUS "C++ compile flags: ${CMAKE_CXX_FLAGS}")
MESSAGE(STATUS "Install Path: ${CMAKE_INSTALL_PREFIX}")
MESSAGE(STATUS "Build Examples: ${BUILD_EXAMPLES}")
IF(QT_FOUND )
MESSAGE(STATUS "QT Version: ${QT_VERSION_STRING}")
MESSAGE(STATUS "QT_TARGETS: ${QT_TARGETS}")
MESSAGE(STATUS "QT_ALL_TARGETS: ${QT_ALL_TARGETS}")
MESSAGE(STATUS "QT_INCLUDE_DIRS: ${QT_INCLUDE_DIRS}")
MESSAGE(STATUS "QT_COMPILE_DEFS: ${QT_COMPILE_DEFS}")
IF(Qt5Widgets_FOUND)
MESSAGE(STATUS "QT Version: ${Qt5Widgets_VERSION_STRING}")
MESSAGE(STATUS "QT INCLUDE DIRS: ${Qt5Widgets_INCLUDE_DIRS}")
MESSAGE(STATUS "QT COMPILE DEFS: ${Qt5Widgets_COMPILE_DEFINITIONS}")
MESSAGE(STATUS "QT DEFS: ${Qt5Widgets_DEFINITIONS}")
MESSAGE(STATUS "QT EXE FLAGS: ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
ENDIF()

View File

@@ -1,55 +0,0 @@
if(NOT QT_FOUND)
# --- QT5 ---
find_package(Qt5Core QUIET)
if(Qt5Core_FOUND)
find_package(Qt5Gui QUIET)
find_package(Qt5Widgets QUIET)
if(Qt5Gui_FOUND AND Qt5Widgets_FOUND)
set(QT5_FOUND ON)
set(QT_FOUND ON)
endif()
endif()
endif()
if(NOT QT_FOUND)
# --- QT4 ---
find_package(Qt4 QUIET)
if(QT4_FOUND)
set(QT_FOUND TRUE)
endif()
endif()
if(QT_FOUND)
if(NOT QT5_FOUND)
message ( STATUS "Using Qt4")
set( QT_VERSION_STRING "${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}")
set( QT_TARGETS "Qt4::QtGui")
else()
message ( STATUS "Using Qt5")
set( QT_VERSION_STRING ${Qt5Core_VERSION_STRING})
set( QT_TARGETS "Qt5::Gui;Qt5::Widgets")
endif()
else()
message ( STATUS "Qt Not Found")
endif()
#include some custom CMake util functions
INCLUDE(CommonCMakeUtils)
extract_target_properties(QT_TARGETS_DEPENDENCIES QT_TARGETS INTERFACE_LINK_LIBRARIES)
set (QT_ALL_TARGETS ${QT_TARGETS} ${QT_TARGETS_DEPENDENCIES})
list(REMOVE_DUPLICATES QT_ALL_TARGETS)
extract_target_properties(QT_INCLUDE_DIRS QT_ALL_TARGETS INTERFACE_INCLUDE_DIRECTORIES)
extract_target_properties(QT_COMPILE_DEFS QT_ALL_TARGETS INTERFACE_COMPILE_DEFINITIONS)
IF(QT_FOUND )
MESSAGE(STATUS "QT Version: ${QT_VERSION_STRING}")
MESSAGE(STATUS "QT_TARGETS: ${QT_TARGETS}")
MESSAGE(STATUS "QT_ALL_TARGETS: ${QT_ALL_TARGETS}")
MESSAGE(STATUS "QT_INCLUDE_DIRS: ${QT_INCLUDE_DIRS}")
MESSAGE(STATUS "QT_COMPILE_DEFS: ${QT_COMPILE_DEFS}")
ENDIF()

View File

@@ -9,11 +9,7 @@ SET(KIT_resources
demo.qrc
)
IF(QT5_FOUND)
QT5_ADD_RESOURCES(KIT_QRC_SRCS ${KIT_resources})
ELSE()
QT4_ADD_RESOURCES(KIT_QRC_SRCS ${KIT_resources})
ENDIF()
QT5_ADD_RESOURCES(KIT_QRC_SRCS ${KIT_resources})
ADD_EXECUTABLE(${example_name} ${KIT_SRCS} ${KIT_QRC_SRCS})
TARGET_LINK_LIBRARIES(${example_name} ${PROJECT_NAME})

View File

@@ -26,35 +26,19 @@ set(_RESOURCES
qtpropertybrowser.qrc
)
if(QT5_FOUND)
QT5_WRAP_UI(_UI_SRCS ${_UI_FORMS})
QT5_ADD_RESOURCES(_QRC_SRCS ${_RESOURCES})
else()
QT4_WRAP_UI(_UI_SRCS ${_UI_FORMS})
QT4_ADD_RESOURCES(_QRC_SRCS ${_RESOURCES})
endif()
QT5_WRAP_UI(_UI_SRCS ${_UI_FORMS})
QT5_ADD_RESOURCES(_QRC_SRCS ${_RESOURCES})
set(TARGET_NAME ${PROJECT_NAME})
add_library(${TARGET_NAME} STATIC
add_library(${TARGET_NAME}
${_SRCS}
${_UI_SRCS}
${_QRC_SRCS}
${_IMPL_HDRS}
)
target_include_directories(${TARGET_NAME} PRIVATE ${QT_INCLUDE_DIRS})
target_compile_definitions(${TARGET_NAME} PRIVATE ${QT_COMPILE_DEFS})
set_target_properties(${TARGET_NAME} PROPERTIES POSITION_INDEPENDENT_CODE ON)
set(${TARGET_NAME}_LINK_LIBRARIES ${QT_TARGETS})
target_link_libraries(
${TARGET_NAME}
${${TARGET_NAME}_LINK_LIBRARIES}
)
add_dependencies(${TARGET_NAME} ${QT_TARGETS})
target_link_libraries(${TARGET_NAME} Qt5::Widgets)
######################### Installation Stuff ###########################
include(GenerateExportHeader)