vcpkg/ports/qt5-base/qtdeploy.ps1
Alexander Neumann bdae0904c4 [libpq, openssl, librtmp] libpq 12 and others with openssl 1.1.1d ()
* [ports] Update openssl-unix to 1.1.1c

* [ports] Update openssl-unix to 1.1.1d

* [ports] openssl-unix platform 'AMD64' is called 'x86_64' on Linux

* [ports] fix openssl platform

* [ports] openssl-windows update openssl to 1.1.1d

* [ports] Fix openssl post build

* [ports] openssl add EnableUWPSupport.patch

Reference:
https://github.com/openssl/openssl/pull/8917
https://github.com/openssl/openssl/pull/9440

* [ports] openssl-uwp update openssl to 1.1.1d

* Updated support for OpenSSL v1.1

With OpenSSL v1.1 we need an additional flag for ACE

* update to 12.0 and change to vcpkg_configure_make

* remove msys line

* remove custom cmakelists

* use --without-readline on linux

* Update CONTROL

Fix version

* fix portfile

* add all possible libpq features

* create vcpkg_get_build_depends

* create vcpkg_read_dependent_port_info

* add vcpkg_write_port_info

* fix a few bugs

* libpq first succesful x86 build with core features.
(files still must be moved)

* always write the variable

* Fix separate make and install execution error issue.

* trigger CI system.

* add openssl and win_bison win_flex patch

* add configuration dependent patches

* add bonjour as a dependency on macosx

* apply patches and configure features

* more patches to fix the windows build

* more install fixes

* remove unnecessary code

* bit of code cleanup

* remove unrelated files

* remove unrelated function call. function was removed with last commit

* removed hardcoded platform

* fix patch

* build only the interface libraries and nothing more

* forgot to remove tool ecpg from install

* seperate minimal install patch from normal install patch and introduce client feature

* fix x86 Platform variable being x86 and not Win32 as required by the generated project

* make linux build work

* make more linux work

* openssl return version number directly without calling openssl
(should probably be done differently)

* fix some more path and platform identification

* comments to reduce install. currently libpq installs static and shared libraries and some tools on linux

* patch arm

* fix platform detection logic

* make libpq osx buildable

* Rename debug import library after build.
(So that we don't affect external CMake users.)

* revert debug naming and install a wrapper instead.

* fix gdal regression due to name change

* fix cutelyst regression due to qt5-base wrapper
(why was it not using the target in the first place?)

* correct wrapper install path

* correct the arm patch.

* trying to fix static gdal build

* gdal still needs more work

* update version of openssl in libpq openssl patch

* nmap fix openssl

* qt5 fix openssl

* gdal fix openssl

* librtmp migrate to openssl 1.1.1

* fail in patch since what is intended is not going to work in openssl 1.1.1

* fix static yara build

* freedtds deactivate openssl feature until freetds decides to upgrade to 1.1

* fix libwebsockets cmakelists

* fix the patch so that the generated targets also include crypt32

* xmlsec add threads dependency

* bump control since I am unable to reproduce the regression

* add pthread to openssl detection logic

* fix freetds linkage missing crypt32 and fix the cmake checks.

* fix the openssl wrapper to add the threads library

* fix libmysql regression

* add threads to openssl libraries.

* upgrade libssh to 0.9

* fix nmap regression

* fix mosquitto regression

* fix openssl wrapper to make libarchive work

* fix quickfix

* changed patch a bit

* improve freetds patch

* fix case in librtmp

* update control

* bump control

* fix case

* make jasper a dependency of qt5-imageformats to fix flaky CI build.

* add jasper libraries explicitly

* jasper depends on freeglut so add it as a dependency. turbo_jpeg is also a dependency but that should already be handled in qt5-base

* more glut names

* bump control for macosx ci retry

* fix slikenet regression

* fix linebreak in qt5-base

* update baseline

* Update ci.baseline.txt

those ports are not supported on UWP

* [libevent] add dependency on libevent[threads] to openssl feature

* [pdal,freerdp] Update CI baseline to fail

* fix static pdal build

* fix freerdp on linux

* trying to revert some changes

* revert changes in build make

* revert x264 version bump

Co-authored-by: Force Charlie <6904176+fcharlie@users.noreply.github.com>
Co-authored-by: Johnny Willemsen <jwillemsen@remedy.nl>
Co-authored-by: Lennart Trunk <lennart.trunk@outlook.de>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Victor Romero <romerosanchezv@gmail.com>
2020-01-13 15:43:36 -08:00

100 lines
4.5 KiB
PowerShell

# This script is based on the implementation of windeployqt for qt5.7.1
#
# Qt's plugin deployment strategy is that each main Qt Module has a hardcoded
# set of plugin subdirectories. Each of these subdirectories is deployed in
# full if that Module is referenced.
#
# This hardcoded list is found inside qttools\src\windeployqt\main.cpp. For
# updating, inspect the symbols qtModuleEntries and qtModuleForPlugin.
# Note: this function signature and behavior is depended upon by applocal.ps1
function deployPluginsIfQt([string]$targetBinaryDir, [string]$QtPluginsDir, [string]$targetBinaryName) {
$baseDir = Split-Path $QtPluginsDir -parent
$binDir = "$baseDir\bin"
function deployPlugins([string]$pluginSubdirName) {
if (Test-Path "$QtPluginsDir\$pluginSubdirName") {
Write-Verbose " Deploying plugins directory '$pluginSubdirName'"
New-Item "$targetBinaryDir\plugins\$pluginSubdirName" -ItemType Directory -ErrorAction SilentlyContinue | Out-Null
Get-ChildItem "$QtPluginsDir\$pluginSubdirName\*.dll" | % {
deployBinary "$targetBinaryDir\plugins\$pluginSubdirName" "$QtPluginsDir\$pluginSubdirName" $_.Name
resolve "$targetBinaryDir\plugins\$pluginSubdirName\$($_.Name)"
}
} else {
Write-Verbose " Skipping plugins directory '$pluginSubdirName': doesn't exist"
}
}
# We detect Qt modules in use via the DLLs themselves. See qtModuleEntries in Qt to find the mapping.
if ($targetBinaryName -match "Qt5Cored?.dll") {
if (!(Test-Path "$targetBinaryDir\qt.conf")) {
"[Paths]" | Out-File -encoding ascii "$targetBinaryDir\qt.conf"
}
} elseif ($targetBinaryName -match "Qt5Guid?.dll") {
Write-Verbose " Deploying platforms"
New-Item "$targetBinaryDir\plugins\platforms" -ItemType Directory -ErrorAction SilentlyContinue | Out-Null
Get-ChildItem "$QtPluginsDir\platforms\qwindows*.dll" | % {
deployBinary "$targetBinaryDir\plugins\platforms" "$QtPluginsDir\platforms" $_.Name
}
deployPlugins "accessible"
deployPlugins "imageformats"
deployPlugins "iconengines"
deployPlugins "platforminputcontexts"
deployPlugins "styles"
} elseif ($targetBinaryName -match "Qt5Networkd?.dll") {
deployPlugins "bearer"
if (Test-Path "$binDir\libcrypto-1_1.dll")
{
deployBinary "$targetBinaryDir" "$binDir" "libcrypto-1_1.dll"
deployBinary "$targetBinaryDir" "$binDir" "libssl-1_1.dll"
}
} elseif ($targetBinaryName -match "Qt5Sqld?.dll") {
deployPlugins "sqldrivers"
} elseif ($targetBinaryName -match "Qt5Multimediad?.dll") {
deployPlugins "audio"
deployPlugins "mediaservice"
deployPlugins "playlistformats"
} elseif ($targetBinaryName -match "Qt5PrintSupportd?.dll") {
deployPlugins "printsupport"
} elseif ($targetBinaryName -match "Qt5Qmld?.dll") {
if(!(Test-Path "$targetBinaryDir\qml"))
{
if (Test-Path "$binDir\..\qml") {
cp -r "$binDir\..\qml" $targetBinaryDir
} elseif (Test-Path "$binDir\..\..\qml") {
cp -r "$binDir\..\..\qml" $targetBinaryDir
} else {
throw "FAILED"
}
}
} elseif ($targetBinaryName -match "Qt5Quickd?.dll") {
foreach ($a in @("Qt5QuickControls2", "Qt5QuickControls2d", "Qt5QuickShapes", "Qt5QuickShapesd", "Qt5QuickTemplates2", "Qt5QuickTemplates2d"))
{
if (Test-Path "$binDir\$a.dll")
{
deployBinary "$targetBinaryDir" "$binDir" "$a.dll"
}
}
deployPlugins "scenegraph"
deployPlugins "qmltooling"
} elseif ($targetBinaryName -like "Qt5Declarative*.dll") {
deployPlugins "qml1tooling"
} elseif ($targetBinaryName -like "Qt5Positioning*.dll") {
deployPlugins "position"
} elseif ($targetBinaryName -like "Qt5Location*.dll") {
deployPlugins "geoservices"
} elseif ($targetBinaryName -like "Qt5Sensors*.dll") {
deployPlugins "sensors"
deployPlugins "sensorgestures"
} elseif ($targetBinaryName -like "Qt5WebEngineCore*.dll") {
deployPlugins "qtwebengine"
} elseif ($targetBinaryName -like "Qt53DRenderer*.dll") {
deployPlugins "sceneparsers"
} elseif ($targetBinaryName -like "Qt5TextToSpeech*.dll") {
deployPlugins "texttospeech"
} elseif ($targetBinaryName -like "Qt5SerialBus*.dll") {
deployPlugins "canbus"
}
}