First commit
This commit is contained in:
55
cmake/AddQt.cmake
Normal file
55
cmake/AddQt.cmake
Normal file
@@ -0,0 +1,55 @@
|
||||
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()
|
||||
27
cmake/CommonCMakeUtils.cmake
Normal file
27
cmake/CommonCMakeUtils.cmake
Normal file
@@ -0,0 +1,27 @@
|
||||
# extract filename components of all items in src_list in dst_list
|
||||
# example usage: extract_filename_components(ALL_LIBS_BASENAME ALL_LIBS NAME_WE)
|
||||
macro(extract_filename_components dst_list src_list component)
|
||||
set(list_var "${${src_list}}")
|
||||
#message(STATUS "list_var: ${list_var}")
|
||||
#message(STATUS "component: ${component}")
|
||||
foreach(item ${list_var})
|
||||
get_filename_component(BASENAME ${item} ${component})
|
||||
list( APPEND ${dst_list} ${BASENAME})
|
||||
endforeach()
|
||||
#message(STATUS "dst_list: ${${dst_list}}")
|
||||
endmacro()
|
||||
|
||||
|
||||
# extract target properties of all items in src_list in dst_list
|
||||
# example usage: extract_target_properties(QT_INCLUDES Qt5::Core INTERFACE_INCLUDE_DIR)
|
||||
macro(extract_target_properties target_props target_list property)
|
||||
set(list_var "${${target_list}}")
|
||||
# message(STATUS "list_var: ${list_var}")
|
||||
#message(STATUS "property: ${property}")
|
||||
foreach(item ${list_var})
|
||||
get_target_property(value ${item} ${property})
|
||||
list( APPEND ${target_props} ${value})
|
||||
endforeach()
|
||||
#message(STATUS "target_props: ${${target_props}}")
|
||||
list(REMOVE_DUPLICATES ${target_props})
|
||||
endmacro()
|
||||
Reference in New Issue
Block a user