mirror of
https://github.com/microsoft/vcpkg.git
synced 2025-01-18 08:43:03 +08:00
[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:
parent
a17d8cbf95
commit
f8165f7270
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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/")
|
||||
|
@ -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"
|
||||
},
|
||||
|
24
ports/qt5-base/patches/icu.patch
Normal file
24
ports/qt5-base/patches/icu.patch
Normal 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": [
|
@ -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()
|
||||
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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})
|
@ -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)
|
||||
|
@ -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()
|
@ -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
|
||||
|
@ -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()
|
@ -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
|
||||
|
@ -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.")
|
||||
|
Loading…
Reference in New Issue
Block a user