mirror of
https://github.com/bitcoin/bitcoin.git
synced 2024-11-19 18:09:47 +01:00
build, qt: Fix lib paths in *.pc files
See: - QTBUG-72903, commit 9864d2c6f3b628ca9f07a56b197e77bd43931cca - QTBUG-78873, commit e55a61a77f0c87c05661a0335dfdb12673c6a27f Could be dropped for Qt 5.14+.
This commit is contained in:
parent
fa5e97e8c2
commit
286d07ff17
@ -9,7 +9,7 @@ $(package)_qt_libs=corelib network widgets gui plugins testlib
|
||||
$(package)_patches=fix_qt_pkgconfig.patch mac-qmake.conf fix_no_printer.patch no-xlib.patch
|
||||
$(package)_patches+= fix_android_qmake_conf.patch fix_android_jni_static.patch dont_hardcode_pwd.patch
|
||||
$(package)_patches+= drop_lrelease_dependency.patch no_sdk_version_check.patch
|
||||
$(package)_patches+= fix_qpainter_non_determinism.patch
|
||||
$(package)_patches+= fix_qpainter_non_determinism.patch fix_lib_paths.patch
|
||||
|
||||
$(package)_qttranslations_file_name=qttranslations-$($(package)_suffix)
|
||||
$(package)_qttranslations_sha256_hash=e1de58ed108b7e0a138815ea60fd46a2c4e1fc31396a707e5630e92de79c53de
|
||||
@ -226,6 +226,7 @@ define $(package)_preprocess_cmds
|
||||
patch -p1 -i $($(package)_patch_dir)/no-xlib.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fix_qpainter_non_determinism.patch &&\
|
||||
patch -p1 -i $($(package)_patch_dir)/no_sdk_version_check.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fix_lib_paths.patch && \
|
||||
sed -i.old "s|updateqm.commands = \$$$$\$$$$LRELEASE|updateqm.commands = $($(package)_extract_dir)/qttools/bin/lrelease|" qttranslations/translations/translations.pro && \
|
||||
mkdir -p qtbase/mkspecs/macx-clang-linux &&\
|
||||
cp -f qtbase/mkspecs/macx-clang/qplatformdefs.h qtbase/mkspecs/macx-clang-linux/ &&\
|
||||
|
193
depends/patches/qt/fix_lib_paths.patch
Normal file
193
depends/patches/qt/fix_lib_paths.patch
Normal file
@ -0,0 +1,193 @@
|
||||
--- old/qtbase/mkspecs/common/mac.conf
|
||||
+++ new/qtbase/mkspecs/common/mac.conf
|
||||
@@ -14,7 +14,6 @@
|
||||
|
||||
QMAKE_RESOURCE = /Developer/Tools/Rez
|
||||
QMAKE_EXTENSION_SHLIB = dylib
|
||||
-QMAKE_EXTENSIONS_AUX_SHLIB = tbd
|
||||
QMAKE_LIBDIR =
|
||||
|
||||
# sdk.prf will prefix the proper SDK sysroot
|
||||
|
||||
--- old/qtbase/mkspecs/features/qmake_use.prf
|
||||
+++ new/qtbase/mkspecs/features/qmake_use.prf
|
||||
@@ -22,6 +22,8 @@
|
||||
!defined(QMAKE_LIBS_$$nu, var): \
|
||||
error("Library '$$lower($$replace(nu, _, -))' is not defined.")
|
||||
|
||||
+ QMAKE_LIBDIR += $$eval(QMAKE_LIBDIR_$$nu)
|
||||
+
|
||||
debug: \
|
||||
LIBS$${suffix} += $$eval(QMAKE_LIBS_$${nu}_DEBUG) $$eval(QMAKE_LIBS_$$nu)
|
||||
else: \
|
||||
|
||||
--- old/qtbase/mkspecs/features/qt_configure.prf
|
||||
+++ new/qtbase/mkspecs/features/qt_configure.prf
|
||||
@@ -526,98 +526,23 @@
|
||||
return($$sysrootified)
|
||||
}
|
||||
|
||||
-# libs-var, libs, in-paths, out-paths-var
|
||||
+# libs-var, libs, in-paths
|
||||
defineTest(qtConfResolveLibs) {
|
||||
- ret = true
|
||||
- paths = $$3
|
||||
- out =
|
||||
- copy = false
|
||||
- for (l, 2) {
|
||||
- $$copy {
|
||||
- copy = false
|
||||
- out += $$l
|
||||
- } else: equals(l, "-s") {
|
||||
- # em++ flag to link libraries from emscripten-ports; passed on literally.
|
||||
- copy = true
|
||||
- out += $$l
|
||||
- } else: contains(l, "^-L.*") {
|
||||
- lp = $$replace(l, "^-L", )
|
||||
- gcc: lp = $$qtGccSysrootifiedPath($$lp)
|
||||
- !exists($$lp/.) {
|
||||
- qtLog("Library path $$val_escape(lp) is invalid.")
|
||||
- ret = false
|
||||
- } else {
|
||||
- paths += $$lp
|
||||
- }
|
||||
- } else: contains(l, "^-l.*") {
|
||||
- lib = $$replace(l, "^-l", )
|
||||
- lcan =
|
||||
- integrity:contains(lib, "^.*\\.a") {
|
||||
- # INTEGRITY compiler searches for exact filename
|
||||
- # if -l argument has .a suffix
|
||||
- lcan += $${lib}
|
||||
- } else: contains(lib, "^:.*") {
|
||||
- # Use exact filename when -l:filename syntax is used.
|
||||
- lib ~= s/^://
|
||||
- lcan += $${lib}
|
||||
- } else: unix {
|
||||
- # Under UNIX, we look for actual shared libraries, in addition
|
||||
- # to static ones.
|
||||
- shexts = $$QMAKE_EXTENSION_SHLIB $$QMAKE_EXTENSIONS_AUX_SHLIB
|
||||
- for (ext, shexts) {
|
||||
- lcan += $${QMAKE_PREFIX_SHLIB}$${lib}.$${ext}
|
||||
- }
|
||||
- lcan += \
|
||||
- $${QMAKE_PREFIX_STATICLIB}$${lib}.$${QMAKE_EXTENSION_STATICLIB}
|
||||
- } else {
|
||||
- # Under Windows, we look only for static libraries, as even for DLLs
|
||||
- # one actually links against a static import library.
|
||||
- mingw {
|
||||
- lcan += \
|
||||
- # MinGW supports UNIX-style library naming in addition to
|
||||
- # the MSVC style.
|
||||
- lib$${lib}.dll.a lib$${lib}.a \
|
||||
- # Fun fact: prefix-less libraries are also supported.
|
||||
- $${lib}.dll.a $${lib}.a
|
||||
- }
|
||||
- lcan += $${lib}.lib
|
||||
- }
|
||||
- l = $$qtConfFindInPathList($$lcan, $$paths $$EXTRA_LIBDIR $$QMAKE_DEFAULT_LIBDIRS)
|
||||
- isEmpty(l) {
|
||||
- qtLog("None of [$$val_escape(lcan)] found in [$$val_escape(paths)] and global paths.")
|
||||
- ret = false
|
||||
- } else {
|
||||
- out += $$l
|
||||
- }
|
||||
- } else {
|
||||
- out += $$l
|
||||
- }
|
||||
- }
|
||||
- $$1 = $$out
|
||||
+ for (path, 3): \
|
||||
+ pre_lflags += -L$$path
|
||||
+ $$1 = $$pre_lflags $$2
|
||||
export($$1)
|
||||
- !isEmpty(4) {
|
||||
- $$4 = $$paths
|
||||
- export($$4)
|
||||
- }
|
||||
- return($$ret)
|
||||
-}
|
||||
-
|
||||
-# source-var
|
||||
-defineTest(qtConfResolveAllLibs) {
|
||||
- ret = true
|
||||
- !qtConfResolveLibs($${1}.libs, $$eval($${1}.libs), , $${1}.libdirs): \
|
||||
- ret = false
|
||||
- for (b, $${1}.builds._KEYS_): \
|
||||
- !qtConfResolveLibs($${1}.builds.$${b}, $$eval($${1}.builds.$${b}), $$eval($${1}.libdirs), ): \
|
||||
- ret = false
|
||||
- return($$ret)
|
||||
+ return(true)
|
||||
}
|
||||
|
||||
# libs-var, in-paths, libs
|
||||
defineTest(qtConfResolvePathLibs) {
|
||||
ret = true
|
||||
- gcc: 2 = $$qtGccSysrootifiedPaths($$2)
|
||||
- for (libdir, 2) {
|
||||
+ gcc: \
|
||||
+ local_paths = $$qtGccSysrootifiedPaths($$2)
|
||||
+ else: \
|
||||
+ local_paths = $$2
|
||||
+ for (libdir, local_paths) {
|
||||
!exists($$libdir/.) {
|
||||
qtLog("Library path $$val_escape(libdir) is invalid.")
|
||||
ret = false
|
||||
@@ -667,8 +592,11 @@
|
||||
# includes-var, in-paths, test-object-var
|
||||
defineTest(qtConfResolvePathIncs) {
|
||||
ret = true
|
||||
- gcc: 2 = $$qtGccSysrootifiedPaths($$2)
|
||||
- for (incdir, 2) {
|
||||
+ gcc: \
|
||||
+ local_paths = $$qtGccSysrootifiedPaths($$2)
|
||||
+ else: \
|
||||
+ local_paths = $$2
|
||||
+ for (incdir, local_paths) {
|
||||
!exists($$incdir/.) {
|
||||
qtLog("Include path $$val_escape(incdir) is invalid.")
|
||||
ret = false
|
||||
@@ -727,6 +655,7 @@
|
||||
vars += $$eval(config.commandline.rev_assignments.$${iv})
|
||||
defined(config.input.$${iv}, var) {
|
||||
eval($${1}.builds.$${b} = $$eval(config.input.$${iv}))
|
||||
+ export($${1}.builds.$${b})
|
||||
$${1}.builds._KEYS_ *= $${b}
|
||||
any = true
|
||||
} else {
|
||||
@@ -741,11 +670,14 @@
|
||||
export($${1}.builds._KEYS_)
|
||||
# we also reset the generic libs, to avoid surprises.
|
||||
$${1}.libs =
|
||||
+ export($${1}.libs)
|
||||
}
|
||||
|
||||
# direct libs. overwrites inline libs.
|
||||
- defined(config.input.$${input}.libs, var): \
|
||||
+ defined(config.input.$${input}.libs, var) {
|
||||
eval($${1}.libs = $$eval(config.input.$${input}.libs))
|
||||
+ export($${1}.libs)
|
||||
+ }
|
||||
|
||||
includes = $$eval(config.input.$${input}.incdir)
|
||||
|
||||
@@ -754,6 +686,7 @@
|
||||
!isEmpty(prefix) {
|
||||
includes += $$prefix/include
|
||||
$${1}.libs = -L$$prefix/lib $$eval($${1}.libs)
|
||||
+ export($${1}.libs)
|
||||
}
|
||||
|
||||
libdir = $$eval(config.input.$${input}.libdir)
|
||||
@@ -762,11 +695,9 @@
|
||||
for (ld, libdir): \
|
||||
libs += -L$$ld
|
||||
$${1}.libs = $$libs $$eval($${1}.libs)
|
||||
+ export($${1}.libs)
|
||||
}
|
||||
|
||||
- !qtConfResolveAllLibs($$1): \
|
||||
- return(false)
|
||||
-
|
||||
!qtConfResolvePathIncs($${1}.includedir, $$includes, $$2): \
|
||||
return(false)
|
||||
|
Loading…
Reference in New Issue
Block a user