Warning, /education/gcompris/cmake/qt_helper.cmake is written in an unsupported language. File is not indexed.
0001 #============================================================================= 0002 # SPDX-FileCopyrightText: 2014 Thibaut ROMAIN <thibrom@gmail.com> 0003 # 0004 # SPDX-License-Identifier: BSD-3-Clause 0005 #============================================================================= 0006 function(getQtPluginPaths _plugin_target _absolute_path _subdir _file) 0007 getQtPluginsPath(_qt_plugins_path) 0008 get_target_property(_plugin_path ${_plugin_target} LOCATION) 0009 if(NOT _plugin_path) 0010 message(FATAL_ERROR "Could not find ${_plugin_target} plugin path") 0011 endif() 0012 get_filename_component(_plugin_file ${_plugin_path} NAME) 0013 get_filename_component(_plugin_dir ${_plugin_path} PATH) 0014 file(RELATIVE_PATH _plugin_subdir ${_qt_plugins_path} ${_plugin_dir}) 0015 set(${_absolute_path} ${_plugin_path} PARENT_SCOPE) 0016 set(${_subdir} ${_plugin_subdir} PARENT_SCOPE) 0017 set(${_file} ${_plugin_file} PARENT_SCOPE) 0018 endfunction() 0019 0020 # Determine Qt5's plugin-path deriving from lib-dir and trying different 0021 # locations corresponding to different directory layouts, e.g.: 0022 # 0023 # Debian: 0024 # /usr/lib/i386-linux-gnu/libQt5Qml.so.5.4.1 0025 # /usr/lib/i386-linux-gnu/qt5/plugins/ 0026 # Opensuse: 0027 # /usr/lib64/libQt5Multimedia.so.5 0028 # /usr/lib64/qt5/plugins/ 0029 # Qt installer: 0030 # /opt/Qt5.5.1/5.5/gcc/lib/libQt5Qml.so.5.5.1 0031 # /opt/Qt5.5.1/5.5/gcc/plugins/ 0032 # 0033 # The qml/-dir is always a sibling of the plugins/ dir. 0034 function(getQtPluginsPath _path) 0035 get_target_property(_lib_file Qt5::Qml LOCATION) 0036 get_filename_component(_lib_dir ${_lib_file} PATH) 0037 # try $_lib_dir/qt5/plugins (Debian/Opensuse) 0038 set(_plugin_root ${_lib_dir}/qt5/plugins) 0039 if(NOT IS_DIRECTORY ${_plugin_root}) 0040 # try $_lib_dir/../plugins (Qt installer) 0041 get_filename_component(_lib_dir_base ${_lib_dir} PATH) 0042 if(APPLE) 0043 set(_plugin_root ${_lib_dir_base}/../plugins) 0044 else() 0045 set(_plugin_root ${_lib_dir_base}/plugins) 0046 endif() 0047 endif() 0048 set(${_path} ${_plugin_root} PARENT_SCOPE) 0049 endfunction() 0050 0051 function(getQtQmlPath _path) 0052 getQtPluginsPath(_qt_plugins_path) 0053 get_filename_component(_root ${_qt_plugins_path} PATH) 0054 set(${_path} ${_root}/qml PARENT_SCOPE) 0055 endfunction() 0056 0057 function(installQtPlugin _plugin _dest_dir _lib) 0058 getQtPluginPaths(${_plugin} _absolute_path _plugin_subdir _plugin_file) 0059 #needed to build with msys2 0060 if(MINGW) 0061 string(REGEX REPLACE "share/qt5/" "" _plugin_subdir ${_plugin_subdir}) 0062 endif() 0063 install(FILES ${_absolute_path} DESTINATION ${_dest_dir}/${_plugin_subdir}) 0064 set(_lib "\${CMAKE_INSTALL_PREFIX}/${_dest_dir}/${_plugin_subdir}/${_plugin_file}" PARENT_SCOPE) 0065 endfunction() 0066 0067 function(installQtPlugin2 _plugin _dest_dir _lib) 0068 get_filename_component(_plugin_file ${_plugin} NAME) 0069 set(_ext ${CMAKE_SHARED_LIBRARY_SUFFIX}) 0070 get_filename_component(_plugin_subdir ${_plugin} PATH) 0071 get_filename_component(_plugin_subdir_root ${_plugin_subdir} PATH) 0072 getQtPluginsPath(_qt_plugin_path) 0073 install(DIRECTORY ${_qt_plugin_path}/${_plugin_subdir} DESTINATION ${_dest_dir}/${_plugin_subdir_root}) 0074 if(CMAKE_HOST_WIN32) 0075 set(_dbg_suffix "d") 0076 else() 0077 set(_dbg_suffix "_debug") 0078 endif() 0079 set(_install_path \${CMAKE_INSTALL_PREFIX}/${_dest_dir}/${_plugin_subdir}) 0080 if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") 0081 install(CODE "file(REMOVE \"${_install_path}/${_plugin_file}${_ext}\")") 0082 set(_plugin_file ${_plugin_file}${_dbg_suffix}${_ext}) 0083 else() 0084 install(CODE "file(REMOVE \"${_install_path}/${_plugin_file}${_dbg_suffix}${_ext}\")") 0085 set(_plugin_file ${_plugin_file}${_ext}) 0086 endif() 0087 set(_lib "${_install_path}/${_plugin_file}" PARENT_SCOPE) 0088 endfunction() 0089 0090 function(installQmlPlugin _plugin _dest_dir _lib) 0091 get_filename_component(_plugin_file ${_plugin} NAME) 0092 set(_ext ${CMAKE_SHARED_LIBRARY_SUFFIX}) 0093 get_filename_component(_qml_subdir ${_plugin} PATH) 0094 get_filename_component(_qml_subdir_root ${_qml_subdir} PATH) 0095 getQtQmlPath(_qt_qml_path) 0096 install(DIRECTORY ${_qt_qml_path}/${_qml_subdir} DESTINATION ${_dest_dir}/${_qml_subdir_root}) 0097 if(CMAKE_HOST_WIN32) 0098 set(_dbg_suffix "d") 0099 else() 0100 set(_dbg_suffix "_debug") 0101 endif() 0102 set(_install_path \${CMAKE_INSTALL_PREFIX}/${_dest_dir}/${_qml_subdir}) 0103 if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") 0104 install(CODE "file(REMOVE \"${_install_path}/${_plugin_file}${_ext}\")") 0105 set(_plugin_file ${_plugin_file}${_dbg_suffix}${_ext}) 0106 else() 0107 install(CODE "file(REMOVE \"${_install_path}/${_plugin_file}${_dbg_suffix}${_ext}\")") 0108 set(_plugin_file ${_plugin_file}${_ext}) 0109 endif() 0110 set(_lib "${_install_path}/${_plugin_file}" PARENT_SCOPE) 0111 endfunction()