summaryrefslogtreecommitdiffstats
path: root/src/corelib/Qt5CoreMacros.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/Qt5CoreMacros.cmake')
-rw-r--r--src/corelib/Qt5CoreMacros.cmake32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/corelib/Qt5CoreMacros.cmake b/src/corelib/Qt5CoreMacros.cmake
index 4a10fad9eb..41748b52ec 100644
--- a/src/corelib/Qt5CoreMacros.cmake
+++ b/src/corelib/Qt5CoreMacros.cmake
@@ -202,3 +202,35 @@ function(QT5_ADD_RESOURCES outfiles )
endforeach()
set(${outfiles} ${${outfiles}} PARENT_SCOPE)
endfunction()
+
+
+if (NOT CMAKE_VERSION VERSION_LESS 2.8.8)
+ function(qt5_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})
+ if (NOT Qt5${_module}_FOUND)
+ message(FATAL_ERROR "Can not use \"${_module}\" module which has not yet been found.")
+ endif()
+ target_link_libraries(${_target} ${link_type} ${Qt5${_module}_LIBRARIES})
+ set_property(TARGET ${_target} APPEND PROPERTY INCLUDE_DIRECTORIES ${Qt5${_module}_INCLUDE_DIRS})
+ set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS ${Qt5${_module}_COMPILE_DEFINITIONS})
+
+ # We can't just append to the COMPILE_FLAGS property. That creats a ';' separated list
+ # which breaks the compile commmand line.
+ # Ensure non-duplication here manually instead.
+ get_property(_target_type TARGET ${_target} PROPERTY TYPE)
+ if ("${_target_type}" STREQUAL "EXECUTABLE" AND Qt5${_module}_EXECUTABLE_COMPILE_FLAGS)
+ get_target_property(_flags ${_target} COMPILE_FLAGS)
+ string(FIND "${_flags}" "${Qt5${_module}_EXECUTABLE_COMPILE_FLAGS}" _find_result)
+ if (NOT _find_result)
+ set_target_properties(${_target} PROPERTIES COMPILE_FLAGS "${_flags} ${Qt5${_module}_EXECUTABLE_COMPILE_FLAGS}")
+ endif()
+ endif()
+ endforeach()
+ endfunction()
+endif()