Commit cfb773dba21697bb3e4f329bae1f39a9f65a2ef7

Authored by Scott Klum
1 parent 60803b16

Dependency management improvements and additions

CMakeLists.txt
... ... @@ -78,9 +78,9 @@ set(QT_DEPENDENCIES ${QT_DEPENDENCIES} Concurrent Core)
78 78 if(NOT BR_EMBEDDED)
79 79 set(QT_DEPENDENCIES ${QT_DEPENDENCIES} Gui Network Sql Widgets Xml)
80 80 endif()
81   -foreach(QT_DEPENDENCY ${QT_DEPENDENCIES})
82   - find_package(Qt5${QT_DEPENDENCY})
83   -endforeach()
  81 +
  82 +find_package(Qt5 COMPONENTS ${QT_DEPENDENCIES} REQUIRED)
  83 +
84 84 set(BR_THIRDPARTY_LIBS ${BR_THIRDPARTY_LIBS} ${Qt5Core_QTMAIN_LIBRARIES})
85 85 if(IOS)
86 86 list(APPEND BR_THIRDPARTY_LIBS "${_qt5Core_install_prefix}/lib/libqtpcre.a")
... ...
share/openbr/cmake/InstallDependencies.cmake
... ... @@ -45,16 +45,11 @@ function(install_qt_library lib)
45 45 elseif(CMAKE_HOST_APPLE)
46 46 install(DIRECTORY ${_qt5Core_install_prefix}/lib/Qt${lib}.framework DESTINATION lib)
47 47 else()
48   - if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT ANDROID AND NOT IOS)
49   - set(QT_MULTIARCH "aarch64-linux-gnu/")
50   - else()
51   - set(QT_MULTIARCH "")
52   - endif()
53   -
54   - install(FILES ${_qt5Core_install_prefix}/lib/${QT_MULTIARCH}libQt5${lib}.so.5.${Qt5Core_VERSION_MINOR}.${Qt5Core_VERSION_PATCH} DESTINATION lib)
55   - install(FILES ${_qt5Core_install_prefix}/lib/${QT_MULTIARCH}libQt5${lib}.so.5.${Qt5Core_VERSION_MINOR} DESTINATION lib)
56   - install(FILES ${_qt5Core_install_prefix}/lib/${QT_MULTIARCH}libQt5${lib}.so.5 DESTINATION lib)
57   - install(FILES ${_qt5Core_install_prefix}/lib/${QT_MULTIARCH}libQt5${lib}.so DESTINATION lib)
  48 + set(Qt5_LIB_DIR "${Qt5_DIR}/../..")
  49 + install(FILES ${Qt5_LIB_DIR}/libQt5${lib}.so.5.${Qt5_VERSION_MINOR}.${Qt5_VERSION_PATCH} DESTINATION lib)
  50 + install(FILES ${Qt5_LIB_DIR}/libQt5${lib}.so.5.${Qt5_VERSION_MINOR} DESTINATION lib)
  51 + install(FILES ${Qt5_LIB_DIR}/libQt5${lib}.so.5 DESTINATION lib)
  52 + install(FILES ${Qt5_LIB_DIR}/libQt5${lib}.so DESTINATION lib)
58 53 endif()
59 54 endif()
60 55 endfunction()
... ... @@ -68,13 +63,11 @@ endfunction()
68 63 # Qt Plugins
69 64 function(install_qt_imageformats)
70 65 if(${BR_INSTALL_DEPENDENCIES})
71   - if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT ANDROID AND NOT IOS)
72   - set(QT_MULTIARCH "/lib/aarch64-linux-gnu/qt5")
73   - else()
74   - set(QT_MULTIARCH "")
  66 + set(Qt5_PLUGIN_DIR "${Qt5_DIR}/../../qt5/plugins")
  67 + if (NOT EXISTS ${Qt5_PLUGIN_DIR})
  68 + set(Qt5_PLUGIN_DIR "${Qt5_DIR}/../../../plugins")
75 69 endif()
76   -
77   - set(IMAGE_FORMATS_DIR "${_qt5Core_install_prefix}${QT_MULTIARCH}/plugins/imageformats")
  70 + set(IMAGE_FORMATS_DIR "${Qt5_PLUGIN_DIR}/imageformats")
78 71 if(ANDROID)
79 72 set(INSTALL_DEPENDENCIES_PREFIX "lib")
80 73 set(INSTALL_DEPENDENCIES_EXTENSION ".so")
... ... @@ -101,13 +94,10 @@ endfunction()
101 94  
102 95 function(install_qt_audio)
103 96 if(${BR_INSTALL_DEPENDENCIES})
104   - if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT ANDROID AND NOT IOS)
105   - set(QT_MULTIARCH "/lib/aarch64-linux-gnu/qt5")
106   - else()
107   - set(QT_MULTIARCH "")
  97 + set(Qt5_PLUGIN_DIR "${Qt5_DIR}/../../qt5/plugins")
  98 + if (NOT EXISTS ${Qt5_PLUGIN_DIR})
  99 + set(Qt5_PLUGIN_DIR "${Qt5_DIR}/../../../plugins")
108 100 endif()
109   -
110   - set(AUDIO_DIR "${_qt5Core_install_prefix}${QT_MULTIARCH}/plugins/audio")
111 101 if(CMAKE_HOST_WIN32)
112 102 install(FILES ${AUDIO_DIR}/qtaudio_windows.dll DESTINATION bin/audio)
113 103 elseif(CMAKE_HOST_APPLE)
... ... @@ -119,6 +109,23 @@ function(install_qt_audio)
119 109 endif()
120 110 endfunction()
121 111  
  112 +function(install_qt_sql)
  113 + if(${BR_INSTALL_DEPENDENCIES})
  114 + set(Qt5_PLUGIN_DIR "${Qt5_DIR}/../../qt5/plugins")
  115 + if (NOT EXISTS ${Qt5_PLUGIN_DIR})
  116 + set(Qt5_PLUGIN_DIR "${Qt5_DIR}/../../../plugins")
  117 + endif()
  118 + set(SQL_DIR "${Qt5_PLUGIN_DIR}/sqldrivers")
  119 + if(CMAKE_HOST_WIN32)
  120 + install(FILES ${SQL_DIR}/qsqlite.dll DESTINATION bin/sqldrivers)
  121 + elseif(CMAKE_HOST_APPLE)
  122 + install(FILES ${SQL_DIR}/libqsqlite.dylib DESTINATION bin/sqldrivers)
  123 + else()
  124 + install(FILES ${SQL_DIR}/libqsqlite.so DESTINATION bin/sqldrivers)
  125 + endif()
  126 + endif()
  127 +endfunction()
  128 +
122 129 function(install_qt_platforms)
123 130 if(${BR_INSTALL_DEPENDENCIES})
124 131 if(ANDROID)
... ... @@ -131,18 +138,16 @@ function(install_qt_platforms)
131 138 install(FILES ${_qt5Core_install_prefix}/plugins/platforms/libqcocoa.dylib
132 139 DESTINATION bin/platforms)
133 140 else()
134   - if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT ANDROID AND NOT IOS)
135   - set(QT_MULTIARCH "/lib/aarch64-linux-gnu/qt5")
136   - else()
137   - set(QT_MULTIARCH "")
  141 + set(Qt5_PLUGIN_DIR "${Qt5_DIR}/../../qt5/plugins")
  142 + if (NOT EXISTS ${Qt5_PLUGIN_DIR})
  143 + set(Qt5_PLUGIN_DIR "${Qt5_DIR}/../../../plugins")
138 144 endif()
139   -
140   - install(FILES ${_qt5Core_install_prefix}${QT_MULTIARCH}/plugins/platforms/libqlinuxfb.so
  145 + install(FILES ${Qt5_PLUGIN_DIR}/platforms/libqlinuxfb.so
141 146 DESTINATION bin/platforms)
142 147  
143   - if(EXISTS ${_qt5Core_install_prefix}${QT_MULTIARCH}/plugins/platforms/libqxcb.so)
  148 + if(EXISTS ${Qt5_PLUGIN_DIR}/platforms/libqxcb.so)
144 149 install_qt_library(XcbQpa)
145   - install(FILES ${_qt5Core_install_prefix}${QT_MULTIARCH}/plugins/platforms/libqxcb.so
  150 + install(FILES ${Qt5_PLUGIN_DIR}/platforms/libqxcb.so
146 151 DESTINATION bin/platforms)
147 152 endif()
148 153 endif()
... ... @@ -167,22 +172,14 @@ function(install_qt_misc)
167 172 install(FILES ${_qt5Core_install_prefix}/jar/QtAndroid-bundled.jar
168 173 DESTINATION java)
169 174 elseif(UNIX AND NOT APPLE)
170   - if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT ANDROID AND NOT IOS)
171   - set(QT_MULTIARCH "aarch64-linux-gnu/")
172   - else()
173   - set(QT_MULTIARCH "")
174   - endif()
175   -
176   - file(GLOB icudlls ${_qt5Core_install_prefix}/lib/${QT_MULTIARCH}libicu*.so*)
  175 + set(Qt5_LIB_DIR "${Qt5_DIR}/../..")
  176 + file(GLOB icudlls "${Qt5_LIB_DIR}/libicu*.so*")
177 177 if(NOT icudlls)
178 178 file(GLOB icudlls /usr/lib/x86_64-linux-gnu/libicu*.so*)
179 179 endif()
180 180 install(FILES ${icudlls} DESTINATION lib)
181   -
182   - file(GLOB libpng12 /lib/x86_64-linux-gnu/libpng12.so*)
183   - if(libpng12)
184   - install(FILES ${libpng12} DESTINATION lib)
185   - endif()
  181 + file(GLOB libpng12 "/lib/x86_64-linux-gnu/libpng12.so*")
  182 + install(FILES ${libpng12} DESTINATION lib)
186 183 endif()
187 184 endfunction()
188 185  
... ...