qt5-speech: replace *Config.cmake with proper reloctable one
the generated Config.cmake does reference the wrong path for plugins, since the simple one line prefix calculation that is usually done in Qt modules, is replaced by a for Qt wrong more complex one, when compiling the module outside of the initial batch. This just replaces the Config.cmake with a old one, that works on all targets
This commit is contained in:
parent
c833c25f1c
commit
d112bdca32
2 changed files with 248 additions and 1 deletions
243
srcpkgs/qt5-speech/files/Qt5TextToSpeechConfig.cmake
Normal file
243
srcpkgs/qt5-speech/files/Qt5TextToSpeechConfig.cmake
Normal file
|
@ -0,0 +1,243 @@
|
|||
if (CMAKE_VERSION VERSION_LESS 3.1.0)
|
||||
message(FATAL_ERROR "Qt 5 TextToSpeech module requires at least CMake version 3.1.0")
|
||||
endif()
|
||||
|
||||
get_filename_component(_qt5TextToSpeech_install_prefix "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE)
|
||||
|
||||
# For backwards compatibility only. Use Qt5TextToSpeech_VERSION instead.
|
||||
set(Qt5TextToSpeech_VERSION_STRING 5.15.2)
|
||||
|
||||
set(Qt5TextToSpeech_LIBRARIES Qt5::TextToSpeech)
|
||||
|
||||
macro(_qt5_TextToSpeech_check_file_exists file)
|
||||
if(NOT EXISTS "${file}" )
|
||||
message(FATAL_ERROR "The imported target \"Qt5::TextToSpeech\" references the file
|
||||
\"${file}\"
|
||||
but this file does not exist. Possible reasons include:
|
||||
* The file was deleted, renamed, or moved to another location.
|
||||
* An install or uninstall procedure did not complete successfully.
|
||||
* The installation package was faulty and contained
|
||||
\"${CMAKE_CURRENT_LIST_FILE}\"
|
||||
but not all the files it references.
|
||||
")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
|
||||
macro(_populate_TextToSpeech_target_properties Configuration LIB_LOCATION IMPLIB_LOCATION
|
||||
IsDebugAndRelease)
|
||||
set_property(TARGET Qt5::TextToSpeech APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
|
||||
|
||||
set(imported_location "${_qt5TextToSpeech_install_prefix}/lib/${LIB_LOCATION}")
|
||||
_qt5_TextToSpeech_check_file_exists(${imported_location})
|
||||
set(_deps
|
||||
${_Qt5TextToSpeech_LIB_DEPENDENCIES}
|
||||
)
|
||||
set(_static_deps
|
||||
)
|
||||
|
||||
set_target_properties(Qt5::TextToSpeech PROPERTIES
|
||||
"IMPORTED_LOCATION_${Configuration}" ${imported_location}
|
||||
"IMPORTED_SONAME_${Configuration}" "libQt5TextToSpeech.so.5"
|
||||
# For backward compatibility with CMake < 2.8.12
|
||||
"IMPORTED_LINK_INTERFACE_LIBRARIES_${Configuration}" "${_deps};${_static_deps}"
|
||||
)
|
||||
set_property(TARGET Qt5::TextToSpeech APPEND PROPERTY INTERFACE_LINK_LIBRARIES
|
||||
"${_deps}"
|
||||
)
|
||||
|
||||
|
||||
endmacro()
|
||||
|
||||
if (NOT TARGET Qt5::TextToSpeech)
|
||||
|
||||
set(_Qt5TextToSpeech_OWN_INCLUDE_DIRS "${_qt5TextToSpeech_install_prefix}/include/qt5/" "${_qt5TextToSpeech_install_prefix}/include/qt5/QtTextToSpeech")
|
||||
set(Qt5TextToSpeech_PRIVATE_INCLUDE_DIRS
|
||||
"${_qt5TextToSpeech_install_prefix}/include/qt5/QtTextToSpeech/5.15.2"
|
||||
"${_qt5TextToSpeech_install_prefix}/include/qt5/QtTextToSpeech/5.15.2/QtTextToSpeech"
|
||||
)
|
||||
|
||||
foreach(_dir ${_Qt5TextToSpeech_OWN_INCLUDE_DIRS})
|
||||
_qt5_TextToSpeech_check_file_exists(${_dir})
|
||||
endforeach()
|
||||
|
||||
# Only check existence of private includes if the Private component is
|
||||
# specified.
|
||||
list(FIND Qt5TextToSpeech_FIND_COMPONENTS Private _check_private)
|
||||
if (NOT _check_private STREQUAL -1)
|
||||
foreach(_dir ${Qt5TextToSpeech_PRIVATE_INCLUDE_DIRS})
|
||||
_qt5_TextToSpeech_check_file_exists(${_dir})
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
set(Qt5TextToSpeech_INCLUDE_DIRS ${_Qt5TextToSpeech_OWN_INCLUDE_DIRS})
|
||||
|
||||
set(Qt5TextToSpeech_DEFINITIONS -DQT_TEXTTOSPEECH_LIB)
|
||||
set(Qt5TextToSpeech_COMPILE_DEFINITIONS QT_TEXTTOSPEECH_LIB)
|
||||
set(_Qt5TextToSpeech_MODULE_DEPENDENCIES "Core")
|
||||
|
||||
|
||||
set(Qt5TextToSpeech_OWN_PRIVATE_INCLUDE_DIRS ${Qt5TextToSpeech_PRIVATE_INCLUDE_DIRS})
|
||||
|
||||
set(_Qt5TextToSpeech_FIND_DEPENDENCIES_REQUIRED)
|
||||
if (Qt5TextToSpeech_FIND_REQUIRED)
|
||||
set(_Qt5TextToSpeech_FIND_DEPENDENCIES_REQUIRED REQUIRED)
|
||||
endif()
|
||||
set(_Qt5TextToSpeech_FIND_DEPENDENCIES_QUIET)
|
||||
if (Qt5TextToSpeech_FIND_QUIETLY)
|
||||
set(_Qt5TextToSpeech_DEPENDENCIES_FIND_QUIET QUIET)
|
||||
endif()
|
||||
set(_Qt5TextToSpeech_FIND_VERSION_EXACT)
|
||||
if (Qt5TextToSpeech_FIND_VERSION_EXACT)
|
||||
set(_Qt5TextToSpeech_FIND_VERSION_EXACT EXACT)
|
||||
endif()
|
||||
|
||||
set(Qt5TextToSpeech_EXECUTABLE_COMPILE_FLAGS "")
|
||||
|
||||
foreach(_module_dep ${_Qt5TextToSpeech_MODULE_DEPENDENCIES})
|
||||
if (NOT Qt5${_module_dep}_FOUND)
|
||||
find_package(Qt5${_module_dep}
|
||||
5.15.2 ${_Qt5TextToSpeech_FIND_VERSION_EXACT}
|
||||
${_Qt5TextToSpeech_DEPENDENCIES_FIND_QUIET}
|
||||
${_Qt5TextToSpeech_FIND_DEPENDENCIES_REQUIRED}
|
||||
PATHS "${CMAKE_CURRENT_LIST_DIR}/.." NO_DEFAULT_PATH
|
||||
)
|
||||
endif()
|
||||
|
||||
if (NOT Qt5${_module_dep}_FOUND)
|
||||
set(Qt5TextToSpeech_FOUND False)
|
||||
return()
|
||||
endif()
|
||||
|
||||
list(APPEND Qt5TextToSpeech_INCLUDE_DIRS "${Qt5${_module_dep}_INCLUDE_DIRS}")
|
||||
list(APPEND Qt5TextToSpeech_PRIVATE_INCLUDE_DIRS "${Qt5${_module_dep}_PRIVATE_INCLUDE_DIRS}")
|
||||
list(APPEND Qt5TextToSpeech_DEFINITIONS ${Qt5${_module_dep}_DEFINITIONS})
|
||||
list(APPEND Qt5TextToSpeech_COMPILE_DEFINITIONS ${Qt5${_module_dep}_COMPILE_DEFINITIONS})
|
||||
list(APPEND Qt5TextToSpeech_EXECUTABLE_COMPILE_FLAGS ${Qt5${_module_dep}_EXECUTABLE_COMPILE_FLAGS})
|
||||
endforeach()
|
||||
list(REMOVE_DUPLICATES Qt5TextToSpeech_INCLUDE_DIRS)
|
||||
list(REMOVE_DUPLICATES Qt5TextToSpeech_PRIVATE_INCLUDE_DIRS)
|
||||
list(REMOVE_DUPLICATES Qt5TextToSpeech_DEFINITIONS)
|
||||
list(REMOVE_DUPLICATES Qt5TextToSpeech_COMPILE_DEFINITIONS)
|
||||
list(REMOVE_DUPLICATES Qt5TextToSpeech_EXECUTABLE_COMPILE_FLAGS)
|
||||
|
||||
# It can happen that the same FooConfig.cmake file is included when calling find_package()
|
||||
# on some Qt component. An example of that is when using a Qt static build with auto inclusion
|
||||
# of plugins:
|
||||
#
|
||||
# Qt5WidgetsConfig.cmake -> Qt5GuiConfig.cmake -> Qt5Gui_QSvgIconPlugin.cmake ->
|
||||
# Qt5SvgConfig.cmake -> Qt5WidgetsConfig.cmake ->
|
||||
# finish processing of second Qt5WidgetsConfig.cmake ->
|
||||
# return to first Qt5WidgetsConfig.cmake ->
|
||||
# add_library cannot create imported target Qt5::Widgets.
|
||||
#
|
||||
# Make sure to return early in the original Config inclusion, because the target has already
|
||||
# been defined as part of the second inclusion.
|
||||
if(TARGET Qt5::TextToSpeech)
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(_Qt5TextToSpeech_LIB_DEPENDENCIES "Qt5::Core")
|
||||
|
||||
|
||||
add_library(Qt5::TextToSpeech SHARED IMPORTED)
|
||||
|
||||
|
||||
set_property(TARGET Qt5::TextToSpeech PROPERTY
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${_Qt5TextToSpeech_OWN_INCLUDE_DIRS})
|
||||
set_property(TARGET Qt5::TextToSpeech PROPERTY
|
||||
INTERFACE_COMPILE_DEFINITIONS QT_TEXTTOSPEECH_LIB)
|
||||
|
||||
set_property(TARGET Qt5::TextToSpeech PROPERTY INTERFACE_QT_ENABLED_FEATURES )
|
||||
set_property(TARGET Qt5::TextToSpeech PROPERTY INTERFACE_QT_DISABLED_FEATURES speechd)
|
||||
|
||||
# Qt 6 forward compatible properties.
|
||||
set_property(TARGET Qt5::TextToSpeech
|
||||
PROPERTY QT_ENABLED_PUBLIC_FEATURES
|
||||
)
|
||||
set_property(TARGET Qt5::TextToSpeech
|
||||
PROPERTY QT_DISABLED_PUBLIC_FEATURES
|
||||
speechd)
|
||||
set_property(TARGET Qt5::TextToSpeech
|
||||
PROPERTY QT_ENABLED_PRIVATE_FEATURES
|
||||
)
|
||||
set_property(TARGET Qt5::TextToSpeech
|
||||
PROPERTY QT_DISABLED_PRIVATE_FEATURES
|
||||
flite;flite_alsa)
|
||||
|
||||
set_property(TARGET Qt5::TextToSpeech PROPERTY INTERFACE_QT_PLUGIN_TYPES "texttospeech")
|
||||
|
||||
set(_Qt5TextToSpeech_PRIVATE_DIRS_EXIST TRUE)
|
||||
foreach (_Qt5TextToSpeech_PRIVATE_DIR ${Qt5TextToSpeech_OWN_PRIVATE_INCLUDE_DIRS})
|
||||
if (NOT EXISTS ${_Qt5TextToSpeech_PRIVATE_DIR})
|
||||
set(_Qt5TextToSpeech_PRIVATE_DIRS_EXIST FALSE)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if (_Qt5TextToSpeech_PRIVATE_DIRS_EXIST)
|
||||
add_library(Qt5::TextToSpeechPrivate INTERFACE IMPORTED)
|
||||
set_property(TARGET Qt5::TextToSpeechPrivate PROPERTY
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${Qt5TextToSpeech_OWN_PRIVATE_INCLUDE_DIRS}
|
||||
)
|
||||
set(_Qt5TextToSpeech_PRIVATEDEPS)
|
||||
foreach(dep ${_Qt5TextToSpeech_LIB_DEPENDENCIES})
|
||||
if (TARGET ${dep}Private)
|
||||
list(APPEND _Qt5TextToSpeech_PRIVATEDEPS ${dep}Private)
|
||||
endif()
|
||||
endforeach()
|
||||
set_property(TARGET Qt5::TextToSpeechPrivate PROPERTY
|
||||
INTERFACE_LINK_LIBRARIES Qt5::TextToSpeech ${_Qt5TextToSpeech_PRIVATEDEPS}
|
||||
)
|
||||
|
||||
# Add a versionless target, for compatibility with Qt6.
|
||||
if(NOT "${QT_NO_CREATE_VERSIONLESS_TARGETS}" AND NOT TARGET Qt::TextToSpeechPrivate)
|
||||
add_library(Qt::TextToSpeechPrivate INTERFACE IMPORTED)
|
||||
set_target_properties(Qt::TextToSpeechPrivate PROPERTIES
|
||||
INTERFACE_LINK_LIBRARIES "Qt5::TextToSpeechPrivate"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
_populate_TextToSpeech_target_properties(RELEASE "libQt5TextToSpeech.so.5.15.2" "" FALSE)
|
||||
|
||||
|
||||
|
||||
|
||||
# In Qt 5.15 the glob pattern was relaxed to also catch plugins not literally named Plugin.
|
||||
# Define QT5_STRICT_PLUGIN_GLOB or ModuleName_STRICT_PLUGIN_GLOB to revert to old behavior.
|
||||
if (QT5_STRICT_PLUGIN_GLOB OR Qt5TextToSpeech_STRICT_PLUGIN_GLOB)
|
||||
file(GLOB pluginTargets "${CMAKE_CURRENT_LIST_DIR}/Qt5TextToSpeech_*Plugin.cmake")
|
||||
else()
|
||||
file(GLOB pluginTargets "${CMAKE_CURRENT_LIST_DIR}/Qt5TextToSpeech_*.cmake")
|
||||
endif()
|
||||
|
||||
macro(_populate_TextToSpeech_plugin_properties Plugin Configuration PLUGIN_LOCATION
|
||||
IsDebugAndRelease)
|
||||
set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
|
||||
|
||||
set(imported_location "${_qt5TextToSpeech_install_prefix}/lib/qt5/plugins/${PLUGIN_LOCATION}")
|
||||
_qt5_TextToSpeech_check_file_exists(${imported_location})
|
||||
set_target_properties(Qt5::${Plugin} PROPERTIES
|
||||
"IMPORTED_LOCATION_${Configuration}" ${imported_location}
|
||||
)
|
||||
|
||||
endmacro()
|
||||
|
||||
if (pluginTargets)
|
||||
foreach(pluginTarget ${pluginTargets})
|
||||
include(${pluginTarget})
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
_qt5_TextToSpeech_check_file_exists("${CMAKE_CURRENT_LIST_DIR}/Qt5TextToSpeechConfigVersion.cmake")
|
||||
endif()
|
||||
|
||||
# Add a versionless target, for compatibility with Qt6.
|
||||
if(NOT "${QT_NO_CREATE_VERSIONLESS_TARGETS}" AND TARGET Qt5::TextToSpeech AND NOT TARGET Qt::TextToSpeech)
|
||||
add_library(Qt::TextToSpeech INTERFACE IMPORTED)
|
||||
set_target_properties(Qt::TextToSpeech PROPERTIES
|
||||
INTERFACE_LINK_LIBRARIES "Qt5::TextToSpeech"
|
||||
)
|
||||
endif()
|
|
@ -2,7 +2,7 @@
|
|||
pkgname=qt5-speech
|
||||
reverts="5.15.3+20210429_1 5.15.3+20210429_2"
|
||||
version=5.15.2
|
||||
revision=7
|
||||
revision=8
|
||||
wrksrc="qtspeech-everywhere-src-${version}"
|
||||
build_style=qmake
|
||||
configure_args="-- -flite -flite-alsa -speechd"
|
||||
|
@ -39,6 +39,10 @@ _cleanup_wrksrc_leak() {
|
|||
-e "s;${wrksrc}/qtbase;/usr/lib/qt5;g" \;
|
||||
}
|
||||
|
||||
post_install() {
|
||||
vinstall ${FILESDIR}/Qt5TextToSpeechConfig.cmake 644 usr/lib/cmake/Qt5TextToSpeech
|
||||
}
|
||||
|
||||
qt5-speech-devel_package() {
|
||||
depends="qt5-devel>=${version} ${sourcepkg}>=${version}_${revision}
|
||||
${sourcepkg}-plugin-speechd>=${version}_${revision}
|
||||
|
|
Loading…
Reference in a new issue