#
# (C) 2014 by the Quassel Project <devel@quassel-irc.org>
#
-# The qt4_use_modules function was taken from CMake's Qt4Macros.cmake:
-# (C) 2005-2009 Kitware, Inc.
-#
# The qt5_use_modules function was taken from Qt 5.10.1 (and modified):
# (C) 2005-2011 Kitware, Inc.
#
# Macros for dealing with Qt
############################
-# CMake gained this function in 2.8.10. To be able to use older versions, we've copied
-# this here. If present, the function from CMake will take precedence and our copy will be ignored.
-function(qt4_use_modules _target _link_type)
- if ("${_link_type}" STREQUAL "LINK_PUBLIC" OR "${_link_type}" STREQUAL "LINK_PRIVATE")
- set(modules ${ARGN})
- set(link_type ${_link_type})
- else()
- set(modules ${_link_type} ${ARGN})
- endif()
- foreach(_module ${modules})
- string(TOUPPER ${_module} _ucmodule)
- set(_targetPrefix QT_QT${_ucmodule})
- if (_ucmodule STREQUAL QAXCONTAINER OR _ucmodule STREQUAL QAXSERVER)
- if (NOT QT_Q${_ucmodule}_FOUND)
- message(FATAL_ERROR "Can not use \"${_module}\" module which has not yet been found.")
- endif()
- set(_targetPrefix QT_Q${_ucmodule})
- else()
- if (NOT QT_QT${_ucmodule}_FOUND)
- message(FATAL_ERROR "Can not use \"${_module}\" module which has not yet been found.")
- endif()
- if ("${_ucmodule}" STREQUAL "MAIN")
- message(FATAL_ERROR "Can not use \"${_module}\" module with qt4_use_modules.")
- endif()
- endif()
- target_link_libraries(${_target} ${link_type} ${${_targetPrefix}_LIBRARIES})
- set_property(TARGET ${_target} APPEND PROPERTY INCLUDE_DIRECTORIES ${${_targetPrefix}_INCLUDE_DIR} ${QT_HEADERS_DIR} ${QT_MKSPECS_DIR}/default)
- set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS ${${_targetPrefix}_COMPILE_DEFINITIONS})
- endforeach()
-endfunction()
-
# Qt 5.11 removed the qt5_use_modules function, so we need to provide it until we can switch to a modern CMake version.
# If present, the Qt-provided version will be used automatically instead.
function(qt5_use_modules _target _link_type)
endforeach()
endfunction()
-# Some wrappers for simplifying dual-Qt support
-
-function(qt_use_modules)
- if (USE_QT5)
- qt5_use_modules(${ARGN})
- else()
- qt4_use_modules(${ARGN})
- endif()
-endfunction()
-
-function(qt_wrap_ui _var)
- if (USE_QT5)
- qt5_wrap_ui(var ${ARGN})
- else()
- qt4_wrap_ui(var ${ARGN})
- endif()
- set(${_var} ${${_var}} ${var} PARENT_SCOPE)
-endfunction()
-
-function(qt_add_resources _var)
- if (USE_QT5)
- qt5_add_resources(var ${ARGN})
- else()
- qt4_add_resources(var ${ARGN})
- endif()
- set(${_var} ${${_var}} ${var} PARENT_SCOPE)
-endfunction()
-
-function(qt_add_dbus_interface _var)
- if (USE_QT5)
- qt5_add_dbus_interface(var ${ARGN})
- else()
- qt4_add_dbus_interface(var ${ARGN})
- endif()
- set(${_var} ${${_var}} ${var} PARENT_SCOPE)
-endfunction()
-
-function(qt_add_dbus_adaptor _var)
- if (USE_QT5)
- qt5_add_dbus_adaptor(var ${ARGN})
- else()
- qt4_add_dbus_adaptor(var ${ARGN})
- endif()
- set(${_var} ${${_var}} ${var} PARENT_SCOPE)
-endfunction()
-
######################################
# Macros for dealing with translations
######################################