diff options
| author | Alexander Neumann <30894796+Neumann-A@users.noreply.github.com> | 2019-09-20 23:06:43 +0200 |
|---|---|---|
| committer | Phil Christensen <philc@microsoft.com> | 2019-09-20 14:06:43 -0700 |
| commit | 86a5b6fd7b58be61ebc375c5f61b3e99fd47b2ae (patch) | |
| tree | 29914d1ca396a7e136bc2e381bff46a459ff163e | |
| parent | d060ff5b8bcc3c42cafec2dbf51d6be2e1cd4cac (diff) | |
| download | vcpkg-86a5b6fd7b58be61ebc375c5f61b3e99fd47b2ae.tar.gz vcpkg-86a5b6fd7b58be61ebc375c5f61b3e99fd47b2ae.zip | |
[Qt] Fix static builds of qt5-imageformats (#8222)
* forward extra arguments to vcpkg_configure_qmake from submodules
* make image format dependent on tiff and libwebp
* make tools dependent on imageformat
* build options must be passed a bit different then normal qmake options
* add the required dependencies
* a new dependency discovered in qt5-declarative
* need webpdemux also
* qt5-declarative is dependent on imageformats so we can drop it here
* remove empty qt.conf if it exists. closes #8180
* add all recommended dependencies as dependencies in control.
29 files changed, 92 insertions, 51 deletions
diff --git a/ports/qt5-3d/CONTROL b/ports/qt5-3d/CONTROL index 0c5a508bc..1b8f0cd61 100644 --- a/ports/qt5-3d/CONTROL +++ b/ports/qt5-3d/CONTROL @@ -1,4 +1,4 @@ Source: qt5-3d
-Version: 5.12.5
+Version: 5.12.5-1
Description: Qt5 3d Module - Functionality for near-realtime simulation systems with support for 2D and 3D rendering
-Build-Depends: qt5-base, qt5-declarative
+Build-Depends: qt5-base, qt5-declarative, qt5-imageformats, qt5-gamepad
diff --git a/ports/qt5-base/CONTROL b/ports/qt5-base/CONTROL index b9357f9d5..bf29bfe5f 100644 --- a/ports/qt5-base/CONTROL +++ b/ports/qt5-base/CONTROL @@ -1,5 +1,5 @@ Source: qt5-base
-Version: 5.12.5
+Version: 5.12.5-1
Homepage: https://www.qt.io/
Description: Qt5 Application Framework Base Module. Includes Core, GUI, Widgets, Networking, SQL, Concurrent and other essential qt components.
Build-Depends: zlib, libjpeg-turbo, libpng, freetype, pcre2, harfbuzz, sqlite3, libpq, double-conversion, openssl
diff --git a/ports/qt5-base/cmake/qt_build_submodule.cmake b/ports/qt5-base/cmake/qt_build_submodule.cmake index f850ad551..78249f58a 100644 --- a/ports/qt5-base/cmake/qt_build_submodule.cmake +++ b/ports/qt5-base/cmake/qt_build_submodule.cmake @@ -7,7 +7,7 @@ function(qt_build_submodule SOURCE_PATH) get_filename_component(PYTHON2_EXE_PATH ${PYTHON2} DIRECTORY)
vcpkg_add_to_path("${PYTHON2_EXE_PATH}")
- vcpkg_configure_qmake(SOURCE_PATH ${SOURCE_PATH})
+ vcpkg_configure_qmake(SOURCE_PATH ${SOURCE_PATH} ${ARGV})
vcpkg_build_qmake(SKIP_MAKEFILES)
diff --git a/ports/qt5-base/cmake/qt_submodule_installation.cmake b/ports/qt5-base/cmake/qt_submodule_installation.cmake index a76e1bcbd..197c0ace4 100644 --- a/ports/qt5-base/cmake/qt_submodule_installation.cmake +++ b/ports/qt5-base/cmake/qt_submodule_installation.cmake @@ -5,7 +5,7 @@ function(qt_submodule_installation) if(QT_UPDATE_VERSION)
SET(VCPKG_POLICY_EMPTY_PACKAGE enabled PARENT_SCOPE)
else()
- qt_build_submodule(${TARGET_SOURCE_PATH})
+ qt_build_submodule(${TARGET_SOURCE_PATH} ${ARGV})
qt_install_copyright(${TARGET_SOURCE_PATH})
endif()
endfunction()
\ No newline at end of file diff --git a/ports/qt5-base/portfile.cmake b/ports/qt5-base/portfile.cmake index b734f3e12..9aa937ae4 100644 --- a/ports/qt5-base/portfile.cmake +++ b/ports/qt5-base/portfile.cmake @@ -251,6 +251,10 @@ else() vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin) vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/qt5/bin) endif() + + if(EXISTS ${CURRENT_PACKAGES_DIR}/tools/qt5/bin/qt.conf) + file(REMOVE "${CURRENT_PACKAGES_DIR}/tools/qt5/bin/qt.conf") + endif() qt_install_copyright(${SOURCE_PATH}) endif() diff --git a/ports/qt5-charts/CONTROL b/ports/qt5-charts/CONTROL index ea9a185c9..192c57b41 100644 --- a/ports/qt5-charts/CONTROL +++ b/ports/qt5-charts/CONTROL @@ -1,4 +1,4 @@ Source: qt5-charts
-Version: 5.12.5
+Version: 5.12.5-1
Description: Qt5 Charts Module - UI components for displaying charts, driven by static or dynamic data models
-Build-Depends: qt5-base
+Build-Depends: qt5-base, qt5-declarative, qt5-multimedia
diff --git a/ports/qt5-connectivity/CONTROL b/ports/qt5-connectivity/CONTROL index c04a6d64f..0bec2a8b4 100644 --- a/ports/qt5-connectivity/CONTROL +++ b/ports/qt5-connectivity/CONTROL @@ -1,4 +1,4 @@ Source: qt5-connectivity
-Version: 5.12.5
+Version: 5.12.5-1
Description: Qt5 Connectivity module - Provides access to Bluetooth and NFC hardware
-Build-Depends: qt5-base
+Build-Depends: qt5-base, qt5-androidextras (android)
diff --git a/ports/qt5-datavis3d/CONTROL b/ports/qt5-datavis3d/CONTROL index 6612392a4..56b99852d 100644 --- a/ports/qt5-datavis3d/CONTROL +++ b/ports/qt5-datavis3d/CONTROL @@ -1,4 +1,4 @@ Source: qt5-datavis3d
-Version: 5.12.5
+Version: 5.12.5-1
Description: Qt5 Data Visualization 3d Module - UI Components for creating 3D data visualizations
-Build-Depends: qt5-base
+Build-Depends: qt5-base, qt5-declarative, qt5-multimedia
diff --git a/ports/qt5-declarative/CONTROL b/ports/qt5-declarative/CONTROL index 373d704aa..636c09042 100644 --- a/ports/qt5-declarative/CONTROL +++ b/ports/qt5-declarative/CONTROL @@ -1,4 +1,4 @@ Source: qt5-declarative
-Version: 5.12.5
+Version: 5.12.5-1
Description: Qt5 Declarative (Quick 2) Module. Includes QtQuick, QtQuickParticles, QtQuickWidgets, QtQml, and QtPacketProtocol.
-Build-Depends: qt5-base
+Build-Depends: qt5-base, qt5-imageformats, qt5-svg
diff --git a/ports/qt5-gamepad/CONTROL b/ports/qt5-gamepad/CONTROL index f8ad036f6..e7b99662b 100644 --- a/ports/qt5-gamepad/CONTROL +++ b/ports/qt5-gamepad/CONTROL @@ -1,4 +1,4 @@ Source: qt5-gamepad
-Version: 5.12.5
+Version: 5.12.5-1
Description: Qt5 Gamepad Module - Enables Qt applications to support the use of gamepad hardware
-Build-Depends: qt5-base
+Build-Depends: qt5-base, qt5-declarative
diff --git a/ports/qt5-imageformats/CONTROL b/ports/qt5-imageformats/CONTROL index 687eb563f..1fe00cbdc 100644 --- a/ports/qt5-imageformats/CONTROL +++ b/ports/qt5-imageformats/CONTROL @@ -1,4 +1,4 @@ Source: qt5-imageformats
-Version: 5.12.5
+Version: 5.12.5-1
Description: Qt5 Image Formats Module - Plugins for additional image formats: TIFF, MNG, TGA, WBMP
-Build-Depends: qt5-base
+Build-Depends: qt5-base, tiff, libwebp
diff --git a/ports/qt5-imageformats/portfile.cmake b/ports/qt5-imageformats/portfile.cmake index d473c5625..ad7f37070 100644 --- a/ports/qt5-imageformats/portfile.cmake +++ b/ports/qt5-imageformats/portfile.cmake @@ -1,3 +1,28 @@ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) -qt_submodule_installation()
\ No newline at end of file + + +list(APPEND CORE_OPTIONS + -system-tiff + -system-webp + -verbose) + +find_library(TIFF_RELEASE NAMES tiff PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) # Depends on lzma +find_library(TIFF_DEBUG NAMES tiffd PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) + +find_library(WEBP_RELEASE NAMES webp PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) +find_library(WEBP_DEBUG NAMES webpd webp PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) +find_library(WEBPDEMUX_RELEASE NAMES webpdemux PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) +find_library(WEBPDEMUX_DEBUG NAMES webpdemuxd webpdemux PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) +# Depends on opengl in default build but might depend on giflib, libjpeg-turbo, zlib, libpng, tiff, freeglut (!osx), sdl1 (windows) +# which would require extra libraries to be linked e.g. giflib freeglut sdl1 other ones are already linked + +#Dependent libraries +find_library(LZMA_RELEASE lzma PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) +find_library(LZMA_DEBUG lzmad lzma PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) + +set(OPT_REL "TIFF_LIBS=${TIFF_RELEASE} ${LZMA_RELEASE}" + "WEBP_LIBS=${WEBP_RELEASE} ${WEBPDEMUX_RELEASE}") +set(OPT_DBG "TIFF_LIBS=${TIFF_DEBUG} ${LZMA_DEBUG}" + "WEBP_LIBS=${WEBP_DEBUG} ${WEBPDEMUX_DEBUG}") +qt_submodule_installation(BUILD_OPTIONS ${CORE_OPTIONS} BUILD_OPTIONS_RELEASE ${OPT_REL} BUILD_OPTIONS_DEBUG ${OPT_DBG})
\ No newline at end of file diff --git a/ports/qt5-location/CONTROL b/ports/qt5-location/CONTROL index f6ab4c22d..7914e5cd7 100644 --- a/ports/qt5-location/CONTROL +++ b/ports/qt5-location/CONTROL @@ -1,4 +1,4 @@ Source: qt5-location
-Version: 5.12.5
+Version: 5.12.5-1
Description: Qt5 Location Module - Displays map, navigation, and place content in a QML application.
-Build-Depends: qt5-base, qt5-declarative
+Build-Depends: qt5-base, qt5-declarative, qt5-quickcontrols, qt5-quickcontrols2, qt5-serialport
diff --git a/ports/qt5-multimedia/CONTROL b/ports/qt5-multimedia/CONTROL index e6ef57693..c82238ab3 100644 --- a/ports/qt5-multimedia/CONTROL +++ b/ports/qt5-multimedia/CONTROL @@ -1,4 +1,4 @@ Source: qt5-multimedia
-Version: 5.12.5
+Version: 5.12.5-1
Description: Qt5 Multimedia Module - Classes and widgets for audio, video, radio and camera functionality
-Build-Depends: qt5-base, qt5-declarative
+Build-Depends: qt5-base, qt5-declarative
diff --git a/ports/qt5-purchasing/CONTROL b/ports/qt5-purchasing/CONTROL index 394afefa9..f970ba418 100644 --- a/ports/qt5-purchasing/CONTROL +++ b/ports/qt5-purchasing/CONTROL @@ -1,4 +1,4 @@ Source: qt5-purchasing
-Version: 5.12.5
+Version: 5.12.5-1
Description: Qt5 Purchasing Module - Enables in-app purchase of products in Qt applications.
-Build-Depends: qt5-base, qt5-declarative
+Build-Depends: qt5-base, qt5-declarative, qt5-androidextras (android)
diff --git a/ports/qt5-quickcontrols/CONTROL b/ports/qt5-quickcontrols/CONTROL index c31f1da48..11287f68f 100644 --- a/ports/qt5-quickcontrols/CONTROL +++ b/ports/qt5-quickcontrols/CONTROL @@ -1,4 +1,4 @@ Source: qt5-quickcontrols
-Version: 5.12.5
+Version: 5.12.5-1
Description: Qt5 QuickControls Module.
-Build-Depends: qt5-base, qt5-declarative
+Build-Depends: qt5-base, qt5-declarative, qt5-graphicaleffects
diff --git a/ports/qt5-quickcontrols2/CONTROL b/ports/qt5-quickcontrols2/CONTROL index 2b3d0d322..5a9601fa4 100644 --- a/ports/qt5-quickcontrols2/CONTROL +++ b/ports/qt5-quickcontrols2/CONTROL @@ -1,4 +1,4 @@ Source: qt5-quickcontrols2
-Version: 5.12.5
+Version: 5.12.5-1
Description: Qt5 QuickControls2 Module.
-Build-Depends: qt5-base, qt5-declarative
+Build-Depends: qt5-base, qt5-declarative, qt5-imageformats
diff --git a/ports/qt5-remoteobjects/CONTROL b/ports/qt5-remoteobjects/CONTROL index 687b4e682..def806c79 100644 --- a/ports/qt5-remoteobjects/CONTROL +++ b/ports/qt5-remoteobjects/CONTROL @@ -1,4 +1,4 @@ Source: qt5-remoteobjects
-Version: 5.12.5
+Version: 5.12.5-1
Description: Qt5 Remoteobjects module - Provides an easy to use mechanism for sharing a QObject's API (Properties/Signals/Slots) between processes or devices.
-Build-Depends: qt5-base
+Build-Depends: qt5-base, qt5-declarative
diff --git a/ports/qt5-script/CONTROL b/ports/qt5-script/CONTROL index 1115d8766..040064f60 100755 --- a/ports/qt5-script/CONTROL +++ b/ports/qt5-script/CONTROL @@ -1,4 +1,4 @@ Source: qt5-script
-Version: 5.12.5
-Build-Depends: qt5-base
+Version: 5.12.5-1
+Build-Depends: qt5-base, qt5-tools
Description:Qt5 Script Module.
diff --git a/ports/qt5-sensors/CONTROL b/ports/qt5-sensors/CONTROL index c0252b87d..1c7218bec 100644 --- a/ports/qt5-sensors/CONTROL +++ b/ports/qt5-sensors/CONTROL @@ -1,4 +1,4 @@ Source: qt5-sensors
-Version: 5.12.5
+Version: 5.12.5-1
Description: Qt5 Sensors module - Provides access to sensor hardware and motion gesture recognition.
-Build-Depends: qt5-base
+Build-Depends: qt5-base, qt5-declarative
diff --git a/ports/qt5-speech/CONTROL b/ports/qt5-speech/CONTROL index 4b0d87939..682422a95 100644 --- a/ports/qt5-speech/CONTROL +++ b/ports/qt5-speech/CONTROL @@ -1,4 +1,4 @@ Source: qt5-speech
-Version: 5.12.5
+Version: 5.12.5-1
Description: Qt5 Speech Module
-Build-Depends: qt5-base, atlmfc (windows)
+Build-Depends: qt5-base, atlmfc (windows), qt5-declarative, qt5-multimedia
diff --git a/ports/qt5-tools/CONTROL b/ports/qt5-tools/CONTROL index 100c5e5b6..8ab87de7c 100644 --- a/ports/qt5-tools/CONTROL +++ b/ports/qt5-tools/CONTROL @@ -1,4 +1,4 @@ Source: qt5-tools
-Version: 5.12.5
+Version: 5.12.5-1
Description: Qt5 Tools Module; Includes deployment tools and helpers, Qt Designer, Assistant, and other applications
-Build-Depends: qt5-base, qt5-declarative
+Build-Depends: qt5-base, qt5-declarative, qt5-activeqt
diff --git a/ports/qt5-virtualkeyboard/CONTROL b/ports/qt5-virtualkeyboard/CONTROL index ccda8edec..dce415c5a 100644 --- a/ports/qt5-virtualkeyboard/CONTROL +++ b/ports/qt5-virtualkeyboard/CONTROL @@ -1,4 +1,4 @@ Source: qt5-virtualkeyboard
-Version: 5.12.5
+Version: 5.12.5-1
Description: Qt5 Virtual Keyboard Module - A framework for implementing different input methods. Supports localized keyboard layouts and custom visual themes
-Build-Depends: qt5-svg, qt5-quickcontrols
+Build-Depends: qt5-svg, qt5-quickcontrols, qt5-multimedia, qt5-quickcontrols
diff --git a/ports/qt5-webchannel/CONTROL b/ports/qt5-webchannel/CONTROL index 6d94af9fa..e8adae197 100644 --- a/ports/qt5-webchannel/CONTROL +++ b/ports/qt5-webchannel/CONTROL @@ -1,4 +1,4 @@ Source: qt5-webchannel
-Version: 5.12.5
+Version: 5.12.5-1
Description: Qt5 Web Channel module - Provides access to QObject or QML objects from HTML clients for seamless integration of Qt applications with HTML/JavaScript clients.
-Build-Depends: qt5-base
+Build-Depends: qt5-base, qt5-declarative
diff --git a/ports/qt5-websockets/CONTROL b/ports/qt5-websockets/CONTROL index ae7b3c7a6..fbfeba6c4 100644 --- a/ports/qt5-websockets/CONTROL +++ b/ports/qt5-websockets/CONTROL @@ -1,4 +1,4 @@ Source: qt5-websockets
Version: 5.12.5
Description: Qt5 Web Sockets Module - provides WebSocket communication compliant with RFC 6455
-Build-Depends: qt5-base
+Build-Depends: qt5-base, qt5-declarative
diff --git a/ports/qt5-webview/CONTROL b/ports/qt5-webview/CONTROL index f23a6b259..16aa0bbf6 100644 --- a/ports/qt5-webview/CONTROL +++ b/ports/qt5-webview/CONTROL @@ -1,4 +1,4 @@ Source: qt5-webview
-Version: 5.12.5
+Version: 5.12.5-1
Description: Qt5 WebView module - Provides a way to display web content in a QML application without necessarily including a full web browser stack by using native APIs where it makes sense.
-Build-Depends: qt5-base, qt5-declarative
+Build-Depends: qt5-declarative
diff --git a/ports/qt5-winextras/CONTROL b/ports/qt5-winextras/CONTROL index 1b497e389..5d948ee5c 100644 --- a/ports/qt5-winextras/CONTROL +++ b/ports/qt5-winextras/CONTROL @@ -1,4 +1,4 @@ Source: qt5-winextras
-Version: 5.12.5
+Version: 5.12.5-1
Description: Qt5 Windows Extras Module. Provides platform-specific APIs for Windows.
-Build-Depends: qt5-base, atlmfc (windows)
+Build-Depends: qt5-base, atlmfc (windows), qt5-declarative, qt5-multimedia
diff --git a/ports/qt5-xmlpatterns/CONTROL b/ports/qt5-xmlpatterns/CONTROL index 323f8acc3..6e7b3d711 100644 --- a/ports/qt5-xmlpatterns/CONTROL +++ b/ports/qt5-xmlpatterns/CONTROL @@ -1,4 +1,4 @@ Source: qt5-xmlpatterns
Version: 5.12.5
Description: Qt5 XML Patterns Module - Support for XPath, XQuery, XSLT and XML schema validation
-Build-Depends: qt5-base
+Build-Depends: qt5-base, qt5-declarative
diff --git a/scripts/cmake/vcpkg_configure_qmake.cmake b/scripts/cmake/vcpkg_configure_qmake.cmake index 73f554a33..a04a4c8f6 100644 --- a/scripts/cmake/vcpkg_configure_qmake.cmake +++ b/scripts/cmake/vcpkg_configure_qmake.cmake @@ -16,7 +16,7 @@ # The options passed to qmake. function(vcpkg_configure_qmake) - cmake_parse_arguments(_csc "" "SOURCE_PATH" "OPTIONS;OPTIONS_RELEASE;OPTIONS_DEBUG" ${ARGN}) + cmake_parse_arguments(_csc "" "SOURCE_PATH" "OPTIONS;OPTIONS_RELEASE;OPTIONS_DEBUG;BUILD_OPTIONS;BUILD_OPTIONS_RELEASE;BUILD_OPTIONS_DEBUG" ${ARGN}) # Find qmake executable set(_triplet_hostbindir ${CURRENT_INSTALLED_DIR}/tools/qt5/bin) @@ -51,8 +51,14 @@ function(vcpkg_configure_qmake) message(STATUS "Configuring ${TARGET_TRIPLET}-rel") file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) + if(DEFINED _csc_BUILD_OPTIONS OR DEFINED _csc_BUILD_OPTIONS_RELEASE) + set(BUILD_OPT -- ${_csc_BUILD_OPTIONS} ${_csc_BUILD_OPTIONS_RELEASE}) + endif() vcpkg_execute_required_process( - COMMAND ${QMAKE_COMMAND} CONFIG-=debug CONFIG+=release ${_csc_OPTIONS} ${_csc_OPTIONS_RELEASE} ${_csc_SOURCE_PATH} -qtconf "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/qt.conf" + COMMAND ${QMAKE_COMMAND} CONFIG-=debug CONFIG+=release + ${_csc_OPTIONS} ${_csc_OPTIONS_RELEASE} ${_csc_SOURCE_PATH} + -qtconf "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/qt.conf" + ${BUILD_OPT} WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel LOGNAME config-${TARGET_TRIPLET}-rel ) @@ -64,8 +70,14 @@ function(vcpkg_configure_qmake) message(STATUS "Configuring ${TARGET_TRIPLET}-dbg") file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) + if(DEFINED _csc_BUILD_OPTIONS OR DEFINED _csc_BUILD_OPTIONS_DEBUG) + set(BUILD_OPT -- ${_csc_BUILD_OPTIONS} ${_csc_BUILD_OPTIONS_DEBUG}) + endif() vcpkg_execute_required_process( - COMMAND ${QMAKE_COMMAND} CONFIG-=release CONFIG+=debug ${_csc_OPTIONS} ${_csc_OPTIONS_DEBUG} ${_csc_SOURCE_PATH} -qtconf "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/qt.conf" + COMMAND ${QMAKE_COMMAND} CONFIG-=release CONFIG+=debug + ${_csc_OPTIONS} ${_csc_OPTIONS_DEBUG} ${_csc_SOURCE_PATH} + -qtconf "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/qt.conf" + ${BUILD_OPT} WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg LOGNAME config-${TARGET_TRIPLET}-dbg ) |
