VirtualBox

Changeset 99854 in vbox for trunk/Makefile.kmk


Ignore:
Timestamp:
May 18, 2023 2:57:20 PM (19 months ago)
Author:
vboxsync
Message:

Makefile.kmk: bugref:10450: Adjust a list of Qt libraries being deployed for Qt 5/6 on X11 hosts.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Makefile.kmk

    r99852 r99854  
    331331     endif # qt6
    332332    else # x11
    333      INSTALLS += qt5-bin
    334      qt5-bin_MODE = 755
    335      qt5-bin_INST = $(INST_BIN)
    336      ifdef VBOX_WITH_HARDENING
    337       # The wildcards are necessary to install the libs instead of the symlinks
    338       qt5-bin_SOURCES = \
    339         $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(wildcard $(VBOX_PATH_QT_LIB)/lib$(qtmod).so.*.*.*[0-9])=>lib$(qtmod).so.5) \
    340         $(foreach lib,$(VBOX_QT_PLUGINS),$(VBOX_PATH_QT)/$(lib)=>$(lib))
    341      else # !VBOX_WITH_HARDENING
    342       # For non-hardened builds we need to remove the RUNPATH. This stuff is
    343       # ugly but we need to prevent kBuild from hard-linking otherwise we
    344       # (indirectly) change the binaries in tools
    345       ifneq ($(KBUILD_TARGET),solaris)
     333     ifndef VBOX_WITH_QT6
     334      INSTALLS += qt5-bin
     335      qt5-bin_MODE = 755
     336      qt5-bin_INST = $(INST_BIN)
     337      ifdef VBOX_WITH_HARDENING
     338       # The wildcards are necessary to install the libs instead of the symlinks
     339       qt5-bin_SOURCES = \
     340        $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(wildcard $(VBOX_PATH_QT_LIB)/lib$(qtmod).so.*.*.*[0-9])=>lib$(qtmod).so.5) \
     341        $(foreach lib,$(VBOX_QT_PLUGINS),$(VBOX_PATH_QT)/$(lib)=>$(lib))
     342      else # !VBOX_WITH_HARDENING
     343       # For non-hardened builds we need to remove the RUNPATH. This stuff is
     344       # ugly but we need to prevent kBuild from hard-linking otherwise we
     345       # (indirectly) change the binaries in tools
    346346       QT5_VERSION = 5.15.2
    347       else
    348        QT5_VERSION = 5.15.2
    349       endif
    350       qt5-bin_SOURCES = \
    351         $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(qt5-bin_0_OUTDIR)/lib$(qtmod).so.$(QT5_VERSION)=>lib$(qtmod).so.5) \
    352         $(foreach lib,$(VBOX_QT_PLUGINS),$(qt5-bin_0_OUTDIR)/$(lib)=>$(lib))
    353 
    354       $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$$(qt5-bin_0_OUTDIR)/lib$(qtmod).so.$(QT5_VERSION)): \
    355                 $$(qt5-bin_0_OUTDIR)/% : $(VBOX_PATH_QT_LIB)/% | $$(qt5-bin_0_OUTDIR)/
    356         $(call MSG_INST_FILE,$^,$@)
    357         $(QUIET)$(CP) $^ $@
    358         $(QUIET)chrpath --replace "\$$ORIGIN" $@
    359 
    360       ifn1of ($(KBUILD_TARGET), solaris linux)
    361        $(foreach lib,$(VBOX_QT_PLUGINS),$$(qt5-bin_0_OUTDIR)/$(lib)): \
    362                 $$(qt5-bin_0_OUTDIR)/% : $(VBOX_PATH_QT)/% | $$(qt5-bin_0_OUTDIR)/
    363         $(call MSG_INST_FILE,$^,$@)
    364         $(QUIET)$(MKDIR) -p $(@D)
    365         $(QUIET)$(CP) $^ $@
    366         $(QUIET)chrpath --delete $@
    367       endif # !solaris and !linux
    368 
    369       # @todo For solaris and some linuxes dlopen fails to navigate executable rpath to dependent libraries,
    370       #       so add explicit rpath for libqxcb.so, find better solution later.
    371       if1of ($(KBUILD_TARGET), solaris linux)
    372        $(foreach lib,$(VBOX_QT_PLUGINS),$$(qt5-bin_0_OUTDIR)/$(lib)): \
    373                 $$(qt5-bin_0_OUTDIR)/% : $(VBOX_PATH_QT)/% | $$(qt5-bin_0_OUTDIR)/
    374         $(call MSG_INST_FILE,$^,$@)
    375         $(QUIET)$(MKDIR) -p $(@D)
    376         $(QUIET)$(CP) $^ $@
    377         $(QUIET)chrpath --replace "\$$ORIGIN/../../" $@
    378       endif # solaris linux
    379 
    380      endif # !VBOX_WITH_HARDENING
     347       qt5-bin_SOURCES = \
     348        $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(qt5-bin_0_OUTDIR)/lib$(qtmod).so.$(QT5_VERSION)=>lib$(qtmod).so.5) \
     349        $(foreach lib,$(VBOX_QT_PLUGINS),$(qt5-bin_0_OUTDIR)/$(lib)=>$(lib))
     350
     351       $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$$(qt5-bin_0_OUTDIR)/lib$(qtmod).so.$(QT5_VERSION)): \
     352                $$(qt5-bin_0_OUTDIR)/% : $(VBOX_PATH_QT_LIB)/% | $$(qt5-bin_0_OUTDIR)/
     353                $(call MSG_INST_FILE,$^,$@)
     354                $(QUIET)$(CP) $^ $@
     355                $(QUIET)chrpath --replace "\$$ORIGIN" $@
     356
     357       ifn1of ($(KBUILD_TARGET), solaris linux)
     358        $(foreach lib,$(VBOX_QT_PLUGINS),$$(qt5-bin_0_OUTDIR)/$(lib)): \
     359                        $$(qt5-bin_0_OUTDIR)/% : $(VBOX_PATH_QT)/% | $$(qt5-bin_0_OUTDIR)/
     360                        $(call MSG_INST_FILE,$^,$@)
     361                        $(QUIET)$(MKDIR) -p $(@D)
     362                        $(QUIET)$(CP) $^ $@
     363                        $(QUIET)chrpath --delete $@
     364       endif # !solaris and !linux
     365
     366       # @todo For solaris and some linuxes dlopen fails to navigate executable rpath to dependent libraries,
     367       #       so add explicit rpath for libqxcb.so, find better solution later.
     368       if1of ($(KBUILD_TARGET), solaris linux)
     369        $(foreach lib,$(VBOX_QT_PLUGINS),$$(qt5-bin_0_OUTDIR)/$(lib)): \
     370                        $$(qt5-bin_0_OUTDIR)/% : $(VBOX_PATH_QT)/% | $$(qt5-bin_0_OUTDIR)/
     371                        $(call MSG_INST_FILE,$^,$@)
     372                        $(QUIET)$(MKDIR) -p $(@D)
     373                        $(QUIET)$(CP) $^ $@
     374                        $(QUIET)chrpath --replace "\$$ORIGIN/../../" $@
     375       endif # solaris linux
     376
     377      endif # !VBOX_WITH_HARDENING
     378     else # qt6
     379      INSTALLS += qt6-bin
     380      qt6-bin_MODE = 755
     381      qt6-bin_INST = $(INST_BIN)
     382      ifdef VBOX_WITH_HARDENING
     383       # The wildcards are necessary to install the libs instead of the symlinks
     384       qt6-bin_SOURCES = \
     385        $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(wildcard $(VBOX_PATH_QT_LIB)/lib$(qtmod).so.*.*.*[0-9])=>lib$(qtmod).so.6) \
     386        $(foreach lib,$(VBOX_QT_PLUGINS),$(VBOX_PATH_QT)/$(lib)=>$(lib))
     387      else # !VBOX_WITH_HARDENING
     388       # For non-hardened builds we need to remove the RUNPATH. This stuff is
     389       # ugly but we need to prevent kBuild from hard-linking otherwise we
     390       # (indirectly) change the binaries in tools
     391       QT5_VERSION = 6.3.0
     392       qt6-bin_SOURCES = \
     393        $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(qt6-bin_0_OUTDIR)/lib$(qtmod).so.$(QT5_VERSION)=>lib$(qtmod).so.6) \
     394        $(foreach lib,$(VBOX_QT_PLUGINS),$(qt6-bin_0_OUTDIR)/$(lib)=>$(lib))
     395
     396       $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$$(qt6-bin_0_OUTDIR)/lib$(qtmod).so.$(QT5_VERSION)): \
     397                $$(qt6-bin_0_OUTDIR)/% : $(VBOX_PATH_QT_LIB)/% | $$(qt6-bin_0_OUTDIR)/
     398                $(call MSG_INST_FILE,$^,$@)
     399                $(QUIET)$(CP) $^ $@
     400                $(QUIET)chrpath --replace "\$$ORIGIN" $@
     401
     402       ifn1of ($(KBUILD_TARGET), solaris linux)
     403        $(foreach lib,$(VBOX_QT_PLUGINS),$$(qt6-bin_0_OUTDIR)/$(lib)): \
     404                        $$(qt6-bin_0_OUTDIR)/% : $(VBOX_PATH_QT)/% | $$(qt6-bin_0_OUTDIR)/
     405                        $(call MSG_INST_FILE,$^,$@)
     406                        $(QUIET)$(MKDIR) -p $(@D)
     407                        $(QUIET)$(CP) $^ $@
     408                        $(QUIET)chrpath --delete $@
     409       endif # !solaris and !linux
     410
     411       # @todo For solaris and some linuxes dlopen fails to navigate executable rpath to dependent libraries,
     412       #       so add explicit rpath for libqxcb.so, find better solution later.
     413       if1of ($(KBUILD_TARGET), solaris linux)
     414        $(foreach lib,$(VBOX_QT_PLUGINS),$$(qt6-bin_0_OUTDIR)/$(lib)): \
     415                        $$(qt6-bin_0_OUTDIR)/% : $(VBOX_PATH_QT)/% | $$(qt6-bin_0_OUTDIR)/
     416                        $(call MSG_INST_FILE,$^,$@)
     417                        $(QUIET)$(MKDIR) -p $(@D)
     418                        $(QUIET)$(CP) $^ $@
     419                        $(QUIET)chrpath --replace "\$$ORIGIN/../../" $@
     420       endif # solaris linux
     421
     422      endif # !VBOX_WITH_HARDENING
     423     endif # qt6
    381424    endif # x11
    382425   endif # VBOX_WITH_ORACLE_QT || VBOX_WITH_QT_PAYLOAD
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette