From cfb773dba21697bb3e4f329bae1f39a9f65a2ef7 Mon Sep 17 00:00:00 2001 From: Scott Klum Date: Wed, 20 Feb 2019 11:05:22 -0700 Subject: [PATCH] Dependency management improvements and additions --- CMakeLists.txt | 6 +++--- share/openbr/cmake/InstallDependencies.cmake | 81 +++++++++++++++++++++++++++++++++++++++------------------------------------------ 2 files changed, 42 insertions(+), 45 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4793d23..6425988 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,9 +78,9 @@ set(QT_DEPENDENCIES ${QT_DEPENDENCIES} Concurrent Core) if(NOT BR_EMBEDDED) set(QT_DEPENDENCIES ${QT_DEPENDENCIES} Gui Network Sql Widgets Xml) endif() -foreach(QT_DEPENDENCY ${QT_DEPENDENCIES}) - find_package(Qt5${QT_DEPENDENCY}) -endforeach() + +find_package(Qt5 COMPONENTS ${QT_DEPENDENCIES} REQUIRED) + set(BR_THIRDPARTY_LIBS ${BR_THIRDPARTY_LIBS} ${Qt5Core_QTMAIN_LIBRARIES}) if(IOS) list(APPEND BR_THIRDPARTY_LIBS "${_qt5Core_install_prefix}/lib/libqtpcre.a") diff --git a/share/openbr/cmake/InstallDependencies.cmake b/share/openbr/cmake/InstallDependencies.cmake index 3df1e9e..7e9683b 100644 --- a/share/openbr/cmake/InstallDependencies.cmake +++ b/share/openbr/cmake/InstallDependencies.cmake @@ -45,16 +45,11 @@ function(install_qt_library lib) elseif(CMAKE_HOST_APPLE) install(DIRECTORY ${_qt5Core_install_prefix}/lib/Qt${lib}.framework DESTINATION lib) else() - if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT ANDROID AND NOT IOS) - set(QT_MULTIARCH "aarch64-linux-gnu/") - else() - set(QT_MULTIARCH "") - endif() - - install(FILES ${_qt5Core_install_prefix}/lib/${QT_MULTIARCH}libQt5${lib}.so.5.${Qt5Core_VERSION_MINOR}.${Qt5Core_VERSION_PATCH} DESTINATION lib) - install(FILES ${_qt5Core_install_prefix}/lib/${QT_MULTIARCH}libQt5${lib}.so.5.${Qt5Core_VERSION_MINOR} DESTINATION lib) - install(FILES ${_qt5Core_install_prefix}/lib/${QT_MULTIARCH}libQt5${lib}.so.5 DESTINATION lib) - install(FILES ${_qt5Core_install_prefix}/lib/${QT_MULTIARCH}libQt5${lib}.so DESTINATION lib) + set(Qt5_LIB_DIR "${Qt5_DIR}/../..") + install(FILES ${Qt5_LIB_DIR}/libQt5${lib}.so.5.${Qt5_VERSION_MINOR}.${Qt5_VERSION_PATCH} DESTINATION lib) + install(FILES ${Qt5_LIB_DIR}/libQt5${lib}.so.5.${Qt5_VERSION_MINOR} DESTINATION lib) + install(FILES ${Qt5_LIB_DIR}/libQt5${lib}.so.5 DESTINATION lib) + install(FILES ${Qt5_LIB_DIR}/libQt5${lib}.so DESTINATION lib) endif() endif() endfunction() @@ -68,13 +63,11 @@ endfunction() # Qt Plugins function(install_qt_imageformats) if(${BR_INSTALL_DEPENDENCIES}) - if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT ANDROID AND NOT IOS) - set(QT_MULTIARCH "/lib/aarch64-linux-gnu/qt5") - else() - set(QT_MULTIARCH "") + set(Qt5_PLUGIN_DIR "${Qt5_DIR}/../../qt5/plugins") + if (NOT EXISTS ${Qt5_PLUGIN_DIR}) + set(Qt5_PLUGIN_DIR "${Qt5_DIR}/../../../plugins") endif() - - set(IMAGE_FORMATS_DIR "${_qt5Core_install_prefix}${QT_MULTIARCH}/plugins/imageformats") + set(IMAGE_FORMATS_DIR "${Qt5_PLUGIN_DIR}/imageformats") if(ANDROID) set(INSTALL_DEPENDENCIES_PREFIX "lib") set(INSTALL_DEPENDENCIES_EXTENSION ".so") @@ -101,13 +94,10 @@ endfunction() function(install_qt_audio) if(${BR_INSTALL_DEPENDENCIES}) - if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT ANDROID AND NOT IOS) - set(QT_MULTIARCH "/lib/aarch64-linux-gnu/qt5") - else() - set(QT_MULTIARCH "") + set(Qt5_PLUGIN_DIR "${Qt5_DIR}/../../qt5/plugins") + if (NOT EXISTS ${Qt5_PLUGIN_DIR}) + set(Qt5_PLUGIN_DIR "${Qt5_DIR}/../../../plugins") endif() - - set(AUDIO_DIR "${_qt5Core_install_prefix}${QT_MULTIARCH}/plugins/audio") if(CMAKE_HOST_WIN32) install(FILES ${AUDIO_DIR}/qtaudio_windows.dll DESTINATION bin/audio) elseif(CMAKE_HOST_APPLE) @@ -119,6 +109,23 @@ function(install_qt_audio) endif() endfunction() +function(install_qt_sql) + if(${BR_INSTALL_DEPENDENCIES}) + set(Qt5_PLUGIN_DIR "${Qt5_DIR}/../../qt5/plugins") + if (NOT EXISTS ${Qt5_PLUGIN_DIR}) + set(Qt5_PLUGIN_DIR "${Qt5_DIR}/../../../plugins") + endif() + set(SQL_DIR "${Qt5_PLUGIN_DIR}/sqldrivers") + if(CMAKE_HOST_WIN32) + install(FILES ${SQL_DIR}/qsqlite.dll DESTINATION bin/sqldrivers) + elseif(CMAKE_HOST_APPLE) + install(FILES ${SQL_DIR}/libqsqlite.dylib DESTINATION bin/sqldrivers) + else() + install(FILES ${SQL_DIR}/libqsqlite.so DESTINATION bin/sqldrivers) + endif() + endif() +endfunction() + function(install_qt_platforms) if(${BR_INSTALL_DEPENDENCIES}) if(ANDROID) @@ -131,18 +138,16 @@ function(install_qt_platforms) install(FILES ${_qt5Core_install_prefix}/plugins/platforms/libqcocoa.dylib DESTINATION bin/platforms) else() - if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT ANDROID AND NOT IOS) - set(QT_MULTIARCH "/lib/aarch64-linux-gnu/qt5") - else() - set(QT_MULTIARCH "") + set(Qt5_PLUGIN_DIR "${Qt5_DIR}/../../qt5/plugins") + if (NOT EXISTS ${Qt5_PLUGIN_DIR}) + set(Qt5_PLUGIN_DIR "${Qt5_DIR}/../../../plugins") endif() - - install(FILES ${_qt5Core_install_prefix}${QT_MULTIARCH}/plugins/platforms/libqlinuxfb.so + install(FILES ${Qt5_PLUGIN_DIR}/platforms/libqlinuxfb.so DESTINATION bin/platforms) - if(EXISTS ${_qt5Core_install_prefix}${QT_MULTIARCH}/plugins/platforms/libqxcb.so) + if(EXISTS ${Qt5_PLUGIN_DIR}/platforms/libqxcb.so) install_qt_library(XcbQpa) - install(FILES ${_qt5Core_install_prefix}${QT_MULTIARCH}/plugins/platforms/libqxcb.so + install(FILES ${Qt5_PLUGIN_DIR}/platforms/libqxcb.so DESTINATION bin/platforms) endif() endif() @@ -167,22 +172,14 @@ function(install_qt_misc) install(FILES ${_qt5Core_install_prefix}/jar/QtAndroid-bundled.jar DESTINATION java) elseif(UNIX AND NOT APPLE) - if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT ANDROID AND NOT IOS) - set(QT_MULTIARCH "aarch64-linux-gnu/") - else() - set(QT_MULTIARCH "") - endif() - - file(GLOB icudlls ${_qt5Core_install_prefix}/lib/${QT_MULTIARCH}libicu*.so*) + set(Qt5_LIB_DIR "${Qt5_DIR}/../..") + file(GLOB icudlls "${Qt5_LIB_DIR}/libicu*.so*") if(NOT icudlls) file(GLOB icudlls /usr/lib/x86_64-linux-gnu/libicu*.so*) endif() install(FILES ${icudlls} DESTINATION lib) - - file(GLOB libpng12 /lib/x86_64-linux-gnu/libpng12.so*) - if(libpng12) - install(FILES ${libpng12} DESTINATION lib) - endif() + file(GLOB libpng12 "/lib/x86_64-linux-gnu/libpng12.so*") + install(FILES ${libpng12} DESTINATION lib) endif() endfunction() -- libgit2 0.21.4