more simplification of the dependency handling
This commit is contained in:
@@ -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()
|
||||||
|
|||||||
@@ -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()
|
|
||||||
@@ -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})
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user