summaryrefslogtreecommitdiff
path: root/Modules/Qt4Macros.cmake
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2012-08-08 23:31:52 +0200
committerStephen Kelly <steveire@gmail.com>2012-08-19 23:45:09 +0200
commit1420691b3548ab34c85fb10b4798586e974e4c98 (patch)
treee64bf3244df40b53f58e193a9f770e4887ea80dd /Modules/Qt4Macros.cmake
parentaddefc2ae3b33a75a7152730146b46b319118a24 (diff)
downloadcmake-1420691b3548ab34c85fb10b4798586e974e4c98.tar.gz
Add new qt4_use_modules function.
Diffstat (limited to 'Modules/Qt4Macros.cmake')
-rw-r--r--Modules/Qt4Macros.cmake21
1 files changed, 21 insertions, 0 deletions
diff --git a/Modules/Qt4Macros.cmake b/Modules/Qt4Macros.cmake
index 4324347e55..76e46044ad 100644
--- a/Modules/Qt4Macros.cmake
+++ b/Modules/Qt4Macros.cmake
@@ -439,3 +439,24 @@ macro(QT4_ADD_TRANSLATION _qm_files)
set(${_qm_files} ${${_qm_files}} ${qm})
endforeach ()
endmacro()
+
+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)
+ 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()
+ target_link_libraries(${_target} ${link_type} ${QT_QT${_ucmodule}_LIBRARY})
+ set_property(TARGET ${_target} APPEND PROPERTY INCLUDE_DIRECTORIES ${QT_QT${_ucmodule}_INCLUDE_DIR} ${QT_HEADERS_DIR} ${QT_MKSPECS_DIR}/default)
+ set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS ${QT_QT${_ucmodule}_COMPILE_DEFINITIONS})
+ endforeach()
+endfunction()