[qt5-base] Fix Qt5 linux build and be a bit less flaky in CI (#9260)

* Fix static qt5 builds and ignore system qmake
closes #9234 and #9239

* fix angle conflict and icu dependency

* add egl-registry as a dependency

* remove space

* adding spaces resolved the problem

* move files only if they exist

* Update the Wrapper to use the Postgres target

fixes some observed linkage issues

* update baseline

* add fontconfig on linux so CI is less flaky in a full rebuild

* fix linkage dependent qt5-imageformats libs

* Fix Wrapper for Linux and add other platform libs to Qt5::Core

* fix plugin properties in cmake files

* fix cmake files.

* fix missing plugin qminimal deployment into tools dir

* change wrapper slightly

* UNIX also means APPLE so it needs to be excluded

* fix the static windows build

* mark the parts of fixcmake which require further work to work with single configuration builds

* Update ci.baseline.txt

make qt5-tools pass for CI testing

* fix last regression

* break auto fontconfig in configure script to fix qt5-tools

* update baseline

* enable verbose to debug ci

* try to help it instead of breaking it

* completly link icu

* try to fix fontconfig configure

* fix configure call. cannot be called with a list!

* remove invalid line from patch

* force icu and reduce the required icu libs according to the configure script

* fix icu linkage

* add more icu dependencies and names for windows

* add more icu libs. Seems like all are needed

* fix typo

* print icu libs in debug

* check releasenames

* try again

* change link order

* add icu to wrapper

* fix typo

* patch icu configure for static windows builds

* add other icu libraries to the icu patch

* fix icu in x64-windows-static

* update baseline. VTK builds in local WSL so it should work in CI

* update VTK control to force rebuild

* remove qt5-tools=pass from baseline

* remove qcustomplot:x64-linux=fail from baseline

Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
This commit is contained in:
Alexander Neumann 2020-01-06 21:36:51 +01:00 committed by dan-shaw
parent a17d8cbf95
commit f8165f7270
15 changed files with 178 additions and 65 deletions

View File

@ -1,8 +1,8 @@
Source: qt5-base
Version: 5.12.5-7
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
Feature: latest
Description: Build latest qt version (5.13.1) instead of LTS
Source: qt5-base
Version: 5.12.5-8
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, angle (!windows), egl-registry, icu (!uwp), fontconfig (!windows)
Feature: latest
Description: Build latest qt version (5.13.1) instead of LTS

View File

@ -13,7 +13,13 @@ function(qt_fix_cmake PACKAGE_DIR_TO_FIX PORT_TO_FIX)
LOGNAME fix-cmake
)
endif()
if(EXISTS ${PACKAGE_DIR_TO_FIX}/share/cmake)
vcpkg_execute_required_process(
COMMAND ${PYTHON2} ${CURRENT_INSTALLED_DIR}/share/qt5/fixcmake.py ${PORT_TO_FIX}
WORKING_DIRECTORY ${PACKAGE_DIR_TO_FIX}/share/cmake
LOGNAME fix-cmake
)
endif()
#Install cmake files
if(EXISTS ${PACKAGE_DIR_TO_FIX}/lib/cmake)
file(MAKE_DIRECTORY ${PACKAGE_DIR_TO_FIX}/share)

View File

@ -13,40 +13,45 @@ tooldir="/tools/"+port+"/bin/"
for f in files:
openedfile = open(f, "r")
builder = ""
dllpattern = re.compile("_install_prefix}/bin/Qt5.*d+(.dll|.so)")
libpattern = re.compile("_install_prefix}/lib/Qt5.*d+(.lib|.a)")
dllpatterndebug = re.compile("_install_prefix}/bin/Qt5.*d+(.dll|.so)")
libpatterndebug = re.compile("_install_prefix}/lib/Qt5.*d+(.lib|.a)")
exepattern = re.compile("_install_prefix}/bin/[a-z]+(.exe|)")
toolexepattern = re.compile("_install_prefix}/tools/qt5/bin/[a-z]+(.exe|)")
tooldllpattern = re.compile("_install_prefix}/tools/qt5/bin/Qt5.*d+(.dll|.so)")
populatepluginpattern = re.compile("_populate_[^_]+_plugin_properties\([^ ]+ RELEASE")
populatetargetpattern = re.compile("_populate_[^_]+_target_properties\(RELEASE ")
for line in openedfile:
if "_install_prefix}/tools/qt5/${LIB_LOCATION}" in line:
builder += " if (${Configuration} STREQUAL \"RELEASE\")"
builder += "\n " + line.replace("/tools/qt5/bin", "/bin/")
builder += " else()"
builder += "\n " + line.replace("/tools/qt5/debug/bin", "/debug/bin/")
builder += " else()" #This requires a release and debug build since Qt will check that the file exists!
#It would be better to use an elseif here with a EXISTS check but that requires a more complicated regex to build the complete filepath since each module uses its own _(qtmodule)_install_prefix
#so single configuration builds of Qt are currently not supported. Thus =>
#TODO: Make single configuration builds of Qt work correctly!
builder += "\n " + line.replace("/tools/qt5/debug/bin", "/debug/bin/")
builder += " endif()\n"
elif "_install_prefix}/bin/${LIB_LOCATION}" in line:
builder += " if (${Configuration} STREQUAL \"RELEASE\")"
builder += "\n " + line
builder += " else()"
builder += "\n " + line.replace("/bin/", "/debug/bin/")
builder += " else()" #This requires a release and debug build!
builder += "\n " + line.replace("/bin/", "/debug/bin/")
builder += " endif()\n"
elif "_install_prefix}/lib/${LIB_LOCATION}" in line:
builder += " if (${Configuration} STREQUAL \"RELEASE\")"
builder += "\n " + line
builder += " else()"
builder += " else()" #This requires a release and debug build!
builder += "\n " + line.replace("/lib/", "/debug/lib/")
builder += " endif()\n"
elif "_install_prefix}/lib/${IMPLIB_LOCATION}" in line:
builder += " if (${Configuration} STREQUAL \"RELEASE\")"
builder += "\n " + line
builder += " else()"
builder += " else()" #This requires a release and debug build!
builder += "\n " + line.replace("/lib/", "/debug/lib/")
builder += " endif()\n"
elif "_install_prefix}/plugins/${PLUGIN_LOCATION}" in line:
builder += " if (${Configuration} STREQUAL \"RELEASE\")"
builder += "\n " + line
builder += " else()"
builder += " else()" #This requires a release and debug build!
builder += "\n " + line.replace("/plugins/", "/debug/plugins/")
builder += " endif()\n"
elif "_install_prefix}/lib/qtmaind.lib" in line:
@ -60,9 +65,15 @@ for f in files:
builder += " set_target_properties(Qt5::WinMain PROPERTIES\n"
builder += " IMPORTED_LOCATION_DEBUG ${imported_location_debug}\n"
builder += " )\n"
elif dllpattern.search(line) != None:
elif populatepluginpattern.search(line) != None:
builder += line
builder += line.replace("RELEASE", "DEBUG").replace(".dll", "d.dll").replace(".lib", "d.lib")
elif populatetargetpattern.search(line) != None:
builder += line
builder += line.replace("RELEASE", "DEBUG").replace(".dll", "d.dll").replace(".lib", "d.lib")
elif dllpatterndebug.search(line) != None:
builder += line.replace("/bin/", "/debug/bin/")
elif libpattern.search(line) != None:
elif libpatterndebug.search(line) != None:
builder += line.replace("/lib/", "/debug/lib/")
elif tooldllpattern.search(line) != None:
builder += line.replace("/tools/qt5/bin", "/debug/bin/")

View File

@ -14,3 +14,16 @@ index c51e3ceee..7f7e206b6 100644
],
"use": [
{ "lib": "zlib", "condition": "features.system-zlib" }
@@ -262,7 +262,10 @@
"headers": "fontconfig/fontconfig.h",
"sources": [
- { "type": "pkgConfig", "args": "fontconfig" },
+ { "type": "pkgConfig", "args": "breakfontconfig" },
- { "type": "freetype", "libs": "-lfontconfig" }
+ { "type": "freetype", "libs": "-lbreakautofind" },
+ { "libs": "-lfontconfig -lexpat" },
+ { "libs": "-llibfontconfig -llibexpat" },
+ "-lfontconfig"
],
"use": "freetype"
},

View File

@ -0,0 +1,24 @@
diff --git a/src/corelib/configure.json b/src/corelib/configure.json
index de8d26a12..068b80c51 100644
--- a/src/corelib/configure.json
+++ b/src/corelib/configure.json
@@ -106,13 +106,17 @@
"headers": [ "unicode/utypes.h", "unicode/ucol.h", "unicode/ustring.h" ],
"sources": [
{
+ "libs": "",
"builds": {
- "debug": "-lsicuind -lsicuucd -lsicudtd",
- "release": "-lsicuin -lsicuuc -lsicudt"
+ "debug": "-licuind -licuucd -licudtd",
+ "release": "-licuin -licuuc -licudt"
},
"condition": "config.win32 && !features.shared"
},
+ { "libs": "-licuind -licuucd -licudtd", "condition": "config.win32 && !features.shared"},
+ { "libs": "-licuin -licuuc -licudt", "condition": "config.win32 && !features.shared"},
{ "libs": "-licuin -licuuc -licudt", "condition": "config.win32 && features.shared" },
+ { "libs": "-licuind -licuucd -licudtd", "condition": "config.win32 && features.shared" },
{ "libs": "-licui18n -licuuc -licudata", "condition": "!config.win32" }
],
"use": [

View File

@ -37,7 +37,8 @@ qt_download_submodule( OUT_SOURCE_PATH SOURCE_PATH
patches/winmain_pro.patch #Moves qtmain to manual-link
patches/windows_prf.patch #fixes the qtmain dependency due to the above move
patches/qt_app.patch #Moves the target location of qt5 host apps to always install into the host dir.
patches/gui_configure.patch #Patches the gui configure.json to break freetype autodetection because it does not include its dependencies.
patches/gui_configure.patch #Patches the gui configure.json to break freetype/fontconfig autodetection because it does not include its dependencies.
patches/icu.patch #Help configure find static icu builds in vcpkg on windows
#patches/static_opengl.patch #Use this patch if you really want to statically link angle on windows (e.g. using -opengl es2 and -static).
#Be carefull since it requires definining _GDI32_ for all dependent projects due to redefinition errors in the
#the windows supplied gl.h header and the angle gl.h otherwise.
@ -67,7 +68,7 @@ set(CORE_OPTIONS
# ENV ANGLE_DIR to external angle source dir. (Will always be compiled with Qt)
#-optimized-tools
#-force-debug-info
#-verbose
-verbose
)
## 3rd Party Libs
@ -79,7 +80,9 @@ list(APPEND CORE_OPTIONS
-system-pcre
-system-doubleconversion
-system-sqlite
-system-harfbuzz)
-system-harfbuzz
-icu
-no-angle) # Qt does not need to build angle. VCPKG will build angle!
if(QT_OPENSSL_LINK)
list(APPEND CORE_OPTIONS -openssl-linked)
@ -103,6 +106,35 @@ find_library(HARFBUZZ_RELEASE NAMES harfbuzz PATHS "${CURRENT_INSTALLED_DIR}/lib
find_library(HARFBUZZ_DEBUG NAMES harfbuzz PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
find_library(SQLITE_RELEASE NAMES sqlite3 PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) # Depends on openssl and zlib(linux)
find_library(SQLITE_DEBUG NAMES sqlite3 sqlite3d PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
find_library(ICUUC_RELEASE NAMES icuuc libicuuc PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
find_library(ICUUC_DEBUG NAMES icuucd libicuucd icuuc libicuuc PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
find_library(ICUTU_RELEASE NAMES icutu libicutu PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
find_library(ICUTU_DEBUG NAMES icutud libicutud icutu libicutu PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
# Was installed in WSL but not on CI machine
# find_library(ICULX_RELEASE NAMES iculx libiculx PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
# find_library(ICULX_DEBUG NAMES iculxd libiculxd iculx libiculx PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
find_library(ICUIO_RELEASE NAMES icuio libicuio PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
find_library(ICUIO_DEBUG NAMES icuiod libicuiod icuio libicuio PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
find_library(ICUIN_RELEASE NAMES icui18n libicui18n icuin PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
find_library(ICUIN_DEBUG NAMES icui18nd libicui18nd icui18n libicui18n icuin icuind PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
find_library(ICUDATA_RELEASE NAMES icudata libicudata icudt PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
find_library(ICUDATA_DEBUG NAMES icudatad libicudatad icudata libicudata icudtd PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
set(ICU_RELEASE "${ICUIN_RELEASE} ${ICUTU_RELEASE} ${ICULX_RELEASE} ${ICUUC_RELEASE} ${ICUIO_RELEASE} ${ICUDATA_RELEASE}")
set(ICU_DEBUG "${ICUIN_DEBUG} ${ICUTU_DEBUG} ${ICULX_DEBUG} ${ICUUC_DEBUG} ${ICUIO_DEBUG} ${ICUDATA_DEBUG}")
if(VCPKG_TARGET_IS_WINDOWS)
set(ICU_RELEASE "${ICU_RELEASE} Advapi32.lib")
set(ICU_DEBUG "${ICU_DEBUG} Advapi32.lib" )
endif()
find_library(FONTCONFIG_RELEASE NAMES fontconfig PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
find_library(FONTCONFIG_DEBUG NAMES fontconfig PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
find_library(EXPAT_RELEASE NAMES expat PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
find_library(EXPAT_DEBUG NAMES expat PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
#Dependent libraries
find_library(BZ2_RELEASE bz2 PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
find_library(BZ2_DEBUG bz2 bz2d PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
@ -117,8 +149,9 @@ set(RELEASE_OPTIONS
"LIBPNG_LIBS=${LIBPNG_RELEASE} ${ZLIB_RELEASE}"
"PCRE2_LIBS=${PCRE2_RELEASE}"
"FREETYPE_LIBS=${FREETYPE_RELEASE} ${BZ2_RELEASE} ${LIBPNG_RELEASE} ${ZLIB_RELEASE}"
"ICU_LIBS=${ICU_RELEASE}"
"QMAKE_LIBS_PRIVATE+=${BZ2_RELEASE}"
"QMAKE_LIBS_PRIVATE+=${LIBPNG_RELEASE}"
"QMAKE_LIBS_PRIVATE+=${LIBPNG_RELEASE}"
)
set(DEBUG_OPTIONS
"LIBJPEG_LIBS=${JPEG_DEBUG}"
@ -126,6 +159,7 @@ set(DEBUG_OPTIONS
"LIBPNG_LIBS=${LIBPNG_DEBUG} ${ZLIB_DEBUG}"
"PCRE2_LIBS=${PCRE2_DEBUG}"
"FREETYPE_LIBS=${FREETYPE_DEBUG} ${BZ2_DEBUG} ${LIBPNG_DEBUG} ${ZLIB_DEBUG}"
"ICU_LIBS=${ICU_DEBUG}"
"QMAKE_LIBS_PRIVATE+=${BZ2_DEBUG}"
"QMAKE_LIBS_PRIVATE+=${LIBPNG_DEBUG}"
)
@ -144,14 +178,17 @@ if(VCPKG_TARGET_IS_WINDOWS)
"PSQL_LIBS=${PSQL_RELEASE} ${SSL_RELEASE} ${EAY_RELEASE} ws2_32.lib secur32.lib advapi32.lib shell32.lib crypt32.lib user32.lib gdi32.lib"
"SQLITE_LIBS=${SQLITE_RELEASE}"
"HARFBUZZ_LIBS=${HARFBUZZ_RELEASE}"
"OPENSSL_LIBS=${SSL_RELEASE} ${EAY_RELEASE} ws2_32.lib secur32.lib advapi32.lib shell32.lib crypt32.lib user32.lib gdi32.lib"
)
list(APPEND DEBUG_OPTIONS
"PSQL_LIBS=${PSQL_DEBUG} ${SSL_DEBUG} ${EAY_DEBUG} ws2_32.lib secur32.lib advapi32.lib shell32.lib crypt32.lib user32.lib gdi32.lib"
"SQLITE_LIBS=${SQLITE_DEBUG}"
"HARFBUZZ_LIBS=${HARFBUZZ_DEBUG}"
"OPENSSL_LIBS=${SSL_DEBUG} ${EAY_DEBUG} ws2_32.lib secur32.lib advapi32.lib shell32.lib crypt32.lib user32.lib gdi32.lib"
)
elseif(VCPKG_TARGET_IS_LINUX)
list(APPEND CORE_OPTIONS -fontconfig)
if (NOT EXISTS "/usr/include/GL/glu.h")
message(FATAL_ERROR "qt5 requires libgl1-mesa-dev and libglu1-mesa-dev, please use your distribution's package manager to install them.\nExample: \"apt-get install libgl1-mesa-dev libglu1-mesa-dev\"")
endif()
@ -159,13 +196,18 @@ elseif(VCPKG_TARGET_IS_LINUX)
"PSQL_LIBS=${PSQL_RELEASE} ${SSL_RELEASE} ${EAY_RELEASE} -ldl -lpthread"
"SQLITE_LIBS=${SQLITE_RELEASE} -ldl -lpthread"
"HARFBUZZ_LIBS=${HARFBUZZ_RELEASE}"
"OPENSSL_LIBS=${SSL_RELEASE} ${EAY_RELEASE} -ldl -lpthread"
"FONTCONFIG_LIBS=${FONTCONFIG_RELEASE} ${FREETYPE_RELEASE} ${EXPAT_RELEASE}"
)
list(APPEND DEBUG_OPTIONS
"PSQL_LIBS=${PSQL_DEBUG} ${SSL_DEBUG} ${EAY_DEBUG} -ldl -lpthread"
"SQLITE_LIBS=${SQLITE_DEBUG} -ldl -lpthread"
"HARFBUZZ_LIBS=${HARFBUZZ_DEBUG}"
"OPENSSL_LIBS=${SSL_DEBUG} ${EAY_DEBUG} -ldl -lpthread"
"FONTCONFIG_LIBS=${FONTCONFIG_DEBUG} ${FREETYPE_DEBUG} ${EXPAT_DEBUG}"
)
elseif(VCPKG_TARGET_IS_OSX)
list(APPEND CORE_OPTIONS -fontconfig)
if(DEFINED VCPKG_OSX_DEPLOYMENT_TARGET)
set(ENV{QMAKE_MACOSX_DEPLOYMENT_TARGET} ${VCPKG_OSX_DEPLOYMENT_TARGET})
else()
@ -192,11 +234,15 @@ elseif(VCPKG_TARGET_IS_OSX)
"PSQL_LIBS=${PSQL_RELEASE} ${SSL_RELEASE} ${EAY_RELEASE} -ldl -lpthread"
"SQLITE_LIBS=${SQLITE_RELEASE} -ldl -lpthread"
"HARFBUZZ_LIBS=${HARFBUZZ_RELEASE} -framework ApplicationServices"
"OPENSSL_LIBS=${SSL_RELEASE} ${EAY_RELEASE} -ldl -lpthread"
"FONTCONFIG_LIBS=${FONTCONFIG_RELEASE} ${FREETYPE_RELEASE} ${EXPAT_RELEASE}"
)
list(APPEND DEBUG_OPTIONS
"PSQL_LIBS=${PSQL_DEBUG} ${SSL_DEBUG} ${EAY_DEBUG} -ldl -lpthread"
"SQLITE_LIBS=${SQLITE_DEBUG} -ldl -lpthread"
"HARFBUZZ_LIBS=${HARFBUZZ_DEBUG} -framework ApplicationServices"
"OPENSSL_LIBS=${SSL_DEBUG} ${EAY_DEBUG} -ldl -lpthread"
"FONTCONFIG_LIBS=${FONTCONFIG_DEBUG} ${FREETYPE_DEBUG} ${EXPAT_DEBUG}"
)
endif()
@ -243,11 +289,13 @@ else()
#This needs a new VCPKG policy.
if(VCPKG_TARGET_IS_WINDOWS AND ${VCPKG_LIBRARY_LINKAGE} MATCHES "static") # Move angle dll libraries
message(STATUS "Moving ANGLE dlls from /bin to /tools/qt5-angle/bin. In static builds dlls are not allowed in /bin")
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/qt5-angle)
file(RENAME ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/tools/qt5-angle/bin)
if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/bin)
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/qt5-angle/debug)
file(RENAME ${CURRENT_PACKAGES_DIR}/debug/bin ${CURRENT_PACKAGES_DIR}/tools/qt5-angle/debug/bin)
if(EXISTS "${CURRENT_PACKAGES_DIR}/bin")
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/qt5-angle)
file(RENAME ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/tools/qt5-angle/bin)
if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/bin)
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/qt5-angle/debug)
file(RENAME ${CURRENT_PACKAGES_DIR}/debug/bin ${CURRENT_PACKAGES_DIR}/tools/qt5-angle/debug/bin)
endif()
endif()
endif()

View File

@ -2,10 +2,16 @@ _find_package(${ARGS})
function(add_qt_library _target)
foreach(_lib IN LISTS ARGN)
find_library(${_lib}_LIBRARY_DEBUG NAMES ${_lib}d PATH_SUFFIXES debug/plugins/platforms)
find_library(${_lib}_LIBRARY_RELEASE NAMES ${_lib} PATH_SUFFIXES plugins/platforms)
set_property(TARGET ${_target} APPEND PROPERTY INTERFACE_LINK_LIBRARIES
\$<\$<NOT:\$<CONFIG:DEBUG>>:${${_lib}_LIBRARY_RELEASE}>\$<\$<CONFIG:DEBUG>:${${_lib}_LIBRARY_DEBUG}>)
#The fact that we are within this file means we are using the VCPKG toolchain. Has such we only need to search in VCPKG paths!
find_library(${_lib}_LIBRARY_DEBUG NAMES ${_lib}d ${_lib} NAMES_PER_DIR PATH_SUFFIXES lib plugins/platforms PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" NO_DEFAULT_PATH)
find_library(${_lib}_LIBRARY_RELEASE NAMES ${_lib} NAMES_PER_DIR PATH_SUFFIXES lib plugins/platforms PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" NO_DEFAULT_PATH)
if(${_lib}_LIBRARY_RELEASE)
list(APPEND interface_lib \$<\$<NOT:\$<CONFIG:DEBUG>>:${${_lib}_LIBRARY_RELEASE}>)
endif()
if(${_lib}_LIBRARY_DEBUG)
list(APPEND interface_lib \$<\$<CONFIG:DEBUG>:${${_lib}_LIBRARY_DEBUG}>)
endif()
set_property(TARGET ${_target} APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${interface_lib})
endforeach()
endfunction()
@ -23,12 +29,14 @@ if("${_target_type}" STREQUAL "STATIC_LIBRARY")
set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_LINK_LIBRARIES
ZLIB::ZLIB JPEG::JPEG PNG::PNG Freetype::Freetype sqlite3 harfbuzz::harfbuzz
double-conversion::double-conversion OpenSSL::SSL OpenSSL::Crypto
double-conversion::double-conversion OpenSSL::SSL OpenSSL::Crypto PostgreSQL::PostgreSQL
)
add_qt_library(Qt5::Core
pcre2-16
libpq
icuin icui18n
icutu icuuc icuio
icudt icudata
Qt5ThemeSupport
Qt5EventDispatcherSupport
Qt5PlatformCompositorSupport
@ -39,7 +47,11 @@ if("${_target_type}" STREQUAL "STATIC_LIBRARY")
Netapi32.lib Ws2_32.lib Mincore.lib Winmm.lib Iphlpapi.lib Wtsapi32.lib Dwmapi.lib Imm32.lib)
add_qt_library(Qt5::Core Qt5WindowsUIAutomationSupport qwindows qdirect2d)
elseif(UNIX AND NOT APPLE)
add_qt_library(Qt5::Core
Qt5GraphicsSupport
Qt5ClipboardSupport
Qt5AccessibilitySupport)
elseif(APPLE)
set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_LINK_LIBRARIES
"-weak_framework DiskArbitration" "-weak_framework IOKit" "-weak_framework Foundation" "-weak_framework CoreServices"

View File

@ -1,4 +1,4 @@
Source: qt5-imageformats
Version: 5.12.5-1
Version: 5.12.5-2
Description: Qt5 Image Formats Module - Plugins for additional image formats: TIFF, MNG, TGA, WBMP
Build-Depends: qt5-base, tiff, libwebp
Build-Depends: qt5-base, tiff, libwebp, jasper

View File

@ -5,11 +5,18 @@ include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake)
list(APPEND CORE_OPTIONS
-system-tiff
-system-webp
-jasper
-no-mng # must be explicitly disabled to not automatically pick up mng
-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(JASPER_RELEASE NAMES jasper PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
find_library(JASPER_DEBUG NAMES jasperd jasper libjasperd libjasper PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
find_library(FREEGLUT_RELEASE NAMES freeglut glut PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
find_library(FREEGLUT_DEBUG NAMES freeglutd freeglut glutd glut 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)
@ -22,7 +29,9 @@ find_library(LZMA_RELEASE lzma PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_P
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}")
"WEBP_LIBS=${WEBP_RELEASE} ${WEBPDEMUX_RELEASE}"
"JASPER_LIBS=${JASPER_RELEASE} ${FREEGLUT_RELEASE}") # This will still fail if LIBWEBP is installed with all available features due to the missing additional dependencies
set(OPT_DBG "TIFF_LIBS=${TIFF_DEBUG} ${LZMA_DEBUG}"
"WEBP_LIBS=${WEBP_DEBUG} ${WEBPDEMUX_DEBUG}")
"WEBP_LIBS=${WEBP_DEBUG} ${WEBPDEMUX_DEBUG}"
"JASPER_LIBS=${JASPER_DEBUG} ${FREEGLUT_DEBUG}")
qt_submodule_installation(BUILD_OPTIONS ${CORE_OPTIONS} BUILD_OPTIONS_RELEASE ${OPT_REL} BUILD_OPTIONS_DEBUG ${OPT_DBG})

View File

@ -1,4 +1,4 @@
Source: qt5-tools
Version: 5.12.5-2
Version: 5.12.5-3
Description: Qt5 Tools Module; Includes deployment tools and helpers, Qt Designer, Assistant, and other applications
Build-Depends: qt5-base, qt5-declarative, qt5-activeqt (windows)

View File

@ -1,2 +1,5 @@
include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake)
qt_submodule_installation()
qt_submodule_installation()
if(EXISTS "${CURRENT_INSTALLED_DIR}/plugins/platforms/qminimal${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}")
file(INSTALL "${CURRENT_INSTALLED_DIR}/plugins/platforms/qminimal${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/plugins/platforms")
endif()

View File

@ -1,4 +1,4 @@
Source: qt5-xmlpatterns
Version: 5.12.5
Version: 5.12.5-1
Description: Qt5 XML Patterns Module - Support for XPath, XQuery, XSLT and XML schema validation
Build-Depends: qt5-base, qt5-declarative

View File

@ -1,2 +1,5 @@
include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake)
qt_submodule_installation()
qt_submodule_installation()
if(EXISTS "${CURRENT_INSTALLED_DIR}/plugins/platforms/qminimal${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}")
file(INSTALL "${CURRENT_INSTALLED_DIR}/plugins/platforms/qminimal${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/plugins/platforms")
endif()

View File

@ -304,7 +304,6 @@ cudnn:arm-uwp=fail
cudnn:x64-uwp=fail
cudnn:x64-windows-static=fail
cudnn:x86-windows=fail
cutelyst2:x64-linux=fail
cutelyst2:x64-osx=fail
darknet:arm-uwp=fail
darknet:x64-uwp=fail
@ -1365,7 +1364,6 @@ python3:x64-uwp=fail
qca:x64-linux=fail
qca:x64-osx=fail
qca:x64-windows-static=fail
qcustomplot:x64-linux=fail
qcustomplot:x64-osx=fail
qhull:arm-uwp=ignore
qhull:x64-windows-static=ignore
@ -1375,32 +1373,14 @@ qpid-proton:x64-uwp=fail
qpid-proton:x64-windows-static=fail
qscintilla:x64-linux=fail
qscintilla:x64-osx=fail
qt-advanced-docking-system:x64-linux=ignore
qt5-activeqt:x64-linux=fail
qt5-activeqt:x64-osx=fail
qt5-base:x64-linux=fail
qt5-charts:x64-linux=ignore
qt5-connectivity:x64-linux=ignore
qt5-datavis3d:x64-linux=ignore
qt5-macextras:x64-linux=fail
qt5-macextras:x64-windows=fail
qt5-macextras:x64-windows-static=fail
qt5-macextras:x86-windows=fail
qt5-mqtt:x64-linux=ignore
qt5-networkauth:x64-linux=ignore
qt5-quickcontrols2:x64-linux=ignore
qt5-remoteobjects:x64-linux=ignore
qt5-scxml:x64-linux=ignore
qt5-serialport:x64-linux=ignore
qt5-speech:x64-linux=ignore
qt5-tools:x64-linux=ignore
qt5-tools:x64-windows-static=ignore
qt5-webchannel:x64-linux=ignore
qt5-websockets:x64-linux=ignore
qt5-webview:x64-linux=ignore
qt5-winextras:x64-linux=fail
qt5-winextras:x64-osx=fail
qt5-xmlpatterns:x64-linux=ignore
quickfast:x64-linux=ignore
quickfix:x64-linux=ignore
quickfix:x64-windows=ignore

View File

@ -20,7 +20,11 @@ function(vcpkg_configure_qmake)
# Find qmake executable
set(_triplet_hostbindir ${CURRENT_INSTALLED_DIR}/tools/qt5/bin)
find_program(QMAKE_COMMAND NAMES qmake PATHS ${VCPKG_QT_HOST_TOOLS_ROOT_DIR}/bin ${_triplet_hostbindir})
if(DEFINED VCPKG_QT_HOST_TOOLS_ROOT_DIR)
find_program(QMAKE_COMMAND NAMES qmake PATHS ${VCPKG_QT_HOST_TOOLS_ROOT_DIR}/bin ${_triplet_hostbindir} NO_DEFAULT_PATH)
else()
find_program(QMAKE_COMMAND NAMES qmake PATHS ${_triplet_hostbindir} NO_DEFAULT_PATH)
endif()
if(NOT QMAKE_COMMAND)
message(FATAL_ERROR "vcpkg_configure_qmake: unable to find qmake.")