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 ###################### ##################### Look for required libraries ######################
# Add QT dependencies # Add QT dependencies
INCLUDE(AddQt) FIND_PACKAGE(Qt5Widgets REQUIRED)
IF (NOT QT_FOUND)
MESSAGE(FATAL "We Need some QT")
ENDIF()
######################### Add Primary Targets ########################## ######################### Add Primary Targets ##########################
ADD_SUBDIRECTORY(src) 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 "C++ compile flags: ${CMAKE_CXX_FLAGS}")
MESSAGE(STATUS "Install Path: ${CMAKE_INSTALL_PREFIX}") MESSAGE(STATUS "Install Path: ${CMAKE_INSTALL_PREFIX}")
MESSAGE(STATUS "Build Examples: ${BUILD_EXAMPLES}") MESSAGE(STATUS "Build Examples: ${BUILD_EXAMPLES}")
IF(QT_FOUND ) IF(Qt5Widgets_FOUND)
MESSAGE(STATUS "QT Version: ${QT_VERSION_STRING}") MESSAGE(STATUS "QT Version: ${Qt5Widgets_VERSION_STRING}")
MESSAGE(STATUS "QT_TARGETS: ${QT_TARGETS}") MESSAGE(STATUS "QT INCLUDE DIRS: ${Qt5Widgets_INCLUDE_DIRS}")
MESSAGE(STATUS "QT_ALL_TARGETS: ${QT_ALL_TARGETS}") MESSAGE(STATUS "QT COMPILE DEFS: ${Qt5Widgets_COMPILE_DEFINITIONS}")
MESSAGE(STATUS "QT_INCLUDE_DIRS: ${QT_INCLUDE_DIRS}") MESSAGE(STATUS "QT DEFS: ${Qt5Widgets_DEFINITIONS}")
MESSAGE(STATUS "QT_COMPILE_DEFS: ${QT_COMPILE_DEFS}") MESSAGE(STATUS "QT EXE FLAGS: ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
ENDIF() 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 demo.qrc
) )
IF(QT5_FOUND)
QT5_ADD_RESOURCES(KIT_QRC_SRCS ${KIT_resources}) QT5_ADD_RESOURCES(KIT_QRC_SRCS ${KIT_resources})
ELSE()
QT4_ADD_RESOURCES(KIT_QRC_SRCS ${KIT_resources})
ENDIF()
ADD_EXECUTABLE(${example_name} ${KIT_SRCS} ${KIT_QRC_SRCS}) ADD_EXECUTABLE(${example_name} ${KIT_SRCS} ${KIT_QRC_SRCS})
TARGET_LINK_LIBRARIES(${example_name} ${PROJECT_NAME}) TARGET_LINK_LIBRARIES(${example_name} ${PROJECT_NAME})

View File

@@ -26,35 +26,19 @@ set(_RESOURCES
qtpropertybrowser.qrc qtpropertybrowser.qrc
) )
if(QT5_FOUND)
QT5_WRAP_UI(_UI_SRCS ${_UI_FORMS}) QT5_WRAP_UI(_UI_SRCS ${_UI_FORMS})
QT5_ADD_RESOURCES(_QRC_SRCS ${_RESOURCES}) QT5_ADD_RESOURCES(_QRC_SRCS ${_RESOURCES})
else()
QT4_WRAP_UI(_UI_SRCS ${_UI_FORMS})
QT4_ADD_RESOURCES(_QRC_SRCS ${_RESOURCES})
endif()
set(TARGET_NAME ${PROJECT_NAME}) set(TARGET_NAME ${PROJECT_NAME})
add_library(${TARGET_NAME} STATIC add_library(${TARGET_NAME}
${_SRCS} ${_SRCS}
${_UI_SRCS} ${_UI_SRCS}
${_QRC_SRCS} ${_QRC_SRCS}
${_IMPL_HDRS} ${_IMPL_HDRS}
) )
target_include_directories(${TARGET_NAME} PRIVATE ${QT_INCLUDE_DIRS}) target_link_libraries(${TARGET_NAME} Qt5::Widgets)
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})
######################### Installation Stuff ########################### ######################### Installation Stuff ###########################
include(GenerateExportHeader) include(GenerateExportHeader)