VirtualBox

Changeset 99871 in vbox


Ignore:
Timestamp:
May 19, 2023 8:29:31 PM (23 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
157512
Message:

/Makefile.kmk: Attempt to simplify and clean up the qt[56]-bin stuff. bugref:10450

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Makefile.kmk

    r99869 r99871  
    226226 #       the Info.plist file goes into Resources.
    227227 #
    228  if defined(VBOX_WITH_QTGUI) && !defined(VBOX_ONLY_SDK)
    229   ifeq ($(KBUILD_TARGET),darwin)
    230    ifdef VBOX_WITH_QT6
    231     include $(KBUILD_PATH)/units/qt6.kmk
    232     VBOX_QT_FWRK_VER = A
    233     VBOX_QT_PATH   = $(PATH_SDK_QT6)
    234     VBOX_QT_PATH_LIB = $(PATH_SDK_QT6_LIB)
     228 if defined(VBOX_WITH_QTGUI) && !defined(VBOX_ONLY_SDK) && "$(KBUILD_TARGET)" == "darwin"
     229  ifdef VBOX_WITH_QT6
     230   include $(KBUILD_PATH)/units/qt6.kmk
     231   VBOX_QT_FWRK_VER := A
     232   VBOX_QT_PATH     := $(PATH_SDK_QT6)
     233   VBOX_QT_PATH_LIB := $(PATH_SDK_QT6_LIB)
     234  else
     235   include $(KBUILD_PATH)/units/qt5.kmk
     236   VBOX_QT_FWRK_VER := 5
     237   VBOX_QT_PATH     := $(PATH_SDK_QT5)
     238   VBOX_QT_PATH_LIB := $(PATH_SDK_QT5_LIB)
     239  endif
     240
     241  INSTALLS += qt-bin
     242  qt-bin_INST = $(INST_VIRTUALBOX)Contents/
     243  qt-bin_EXEC_SOURCES = $(foreach qtmod,$(VBOX_QT_MOD_NAMES), \
     244                $(VBOX_QT_PATH_LIB)/$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/$(qtmod)=>Frameworks/$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/$(qtmod))
     245  qt-bin_SOURCES = $(foreach qtmod,$(VBOX_QT_MOD_NAMES), \
     246                $(VBOX_QT_PATH_LIB)/$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/Resources/Info.plist=>Frameworks/$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/Resources/Info.plist)
     247  ifdef VBOX_WITH_QT_DSYMS
     248   qt-bin_SOURCES += $(foreach qtmod,$(VBOX_QT_MOD_NAMES), \
     249                $(VBOX_QT_PATH_LIB)/$(qtmod).framework.dSYM/Contents/Info.plist=>Frameworks/$(qtmod).framework.dSYM/Contents/Info.plist \
     250                $(VBOX_QT_PATH_LIB)/$(qtmod).framework.dSYM/Contents/Resources/DWARF/$(qtmod)=>Frameworks/$(qtmod).framework.dSYM/Contents/Resources/DWARF/$(qtmod))
     251  endif
     252  qt-bin_EXEC_SOURCES += \
     253        $(VBOX_QT_PATH)/plugins/platforms/libqcocoa$(SUFF_DLL)=>plugins/platforms/libqcocoa$(SUFF_DLL) \
     254        $(VBOX_QT_PATH)/plugins/platforms/libqminimal$(SUFF_DLL)=>plugins/platforms/libqminimal$(SUFF_DLL) \
     255        $(VBOX_QT_PATH)/plugins/platforms/libqoffscreen$(SUFF_DLL)=>plugins/platforms/libqoffscreen$(SUFF_DLL) \
     256        $(VBOX_QT_PATH)/plugins/sqldrivers/libqsqlite$(SUFF_DLL)=>plugins/sqldrivers/libqsqlite$(SUFF_DLL) \
     257        $(VBOX_QT_PATH)/plugins/styles/libqmacstyle$(SUFF_DLL)=>plugins/styles/libqmacstyle$(SUFF_DLL)
     258  ifdef VBOX_WITH_QT_DSYMS
     259   qt-bin_SOURCES += $(foreach qtplat, libqcocoa libqminimal libqoffscreen, \
     260                $(VBOX_QT_PATH)/plugins/platforms/$(qtplat)$(SUFF_DLL).dSYM/Contents/Info.plist=>plugins/platforms/$(qtplat)$(SUFF_DLL).dSYM/Contents/Info.plist \
     261                $(VBOX_QT_PATH)/plugins/platforms/$(qtplat)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtplat)$(SUFF_DLL)=>plugins/platforms/$(qtplat)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtplat)$(SUFF_DLL))
     262   qt-bin_SOURCES += $(foreach qtsqldrv, libqsqlite, \
     263                $(VBOX_QT_PATH)/plugins/sqldrivers/$(qtsqldrv)$(SUFF_DLL).dSYM/Contents/Info.plist=>plugins/sqldrivers/$(qtsqldrv)$(SUFF_DLL).dSYM/Contents/Info.plist \
     264                $(VBOX_QT_PATH)/plugins/sqldrivers/$(qtsqldrv)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtsqldrv)$(SUFF_DLL)=>plugins/sqldrivers/$(qtsqldrv)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtsqldrv)$(SUFF_DLL))
     265   qt-bin_SOURCES += $(foreach qtstyl, libqmacstyle, \
     266                $(VBOX_QT_PATH)/plugins/styles/$(qtstyl)$(SUFF_DLL).dSYM/Contents/Info.plist=>plugins/styles/$(qtstyl)$(SUFF_DLL).dSYM/Contents/Info.plist \
     267                $(VBOX_QT_PATH)/plugins/styles/$(qtstyl)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtstyl)$(SUFF_DLL)=>plugins/styles/$(qtstyl)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtstyl)$(SUFF_DLL))
     268  endif
     269  qt-bin_SYMLINKS = $(foreach qtmod, $(VBOX_QT_MOD_NAMES), \
     270                Frameworks/$(qtmod).framework/Versions/Current=>$(VBOX_QT_FWRK_VER) \
     271                Frameworks/$(qtmod).framework/$(qtmod)=>Versions/$(VBOX_QT_FWRK_VER)/$(qtmod) \
     272                Frameworks/$(qtmod).framework/Resources=>Versions/$(VBOX_QT_FWRK_VER)/Resources)
     273  qt-bin_INSTALLER = $(INSTALL) $(if $(uid),-o $(uid)) $(if $(gid),-g $(gid)) $(if $(mode),-m $(mode)) $(4) -- "$(1)" "$(2)" \
     274        $(if-expr "$(source_type_prefix)" == "EXEC_" \
     275                ,$(NLTAB)install_name_tool \
     276                $(if-expr "$(suffix $2)" == "", -id "$(if $(VBOX_WITH_HARDENING),/Applications/VirtualBox.app/Contents/Framework,@rpath)/$(notdir $(2)).framework/Version/$(VBOX_QT_FWRK_VER)/$(notdir $(2))",) \
     277                $(foreach qtmod, $(VBOX_QT_MOD_NAMES), \
     278                        $(foreach prefix, @executable_path/../Frameworks/ $(VBOX_PATH_QT)/Frameworks/ $(VBOX_QT_PATH)/, \
     279                                -change "$(prefix)$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/$(qtmod)" \
     280                                "$(if $(VBOX_WITH_HARDENING),/Applications/VirtualBox.app/Contents/Frameworks,@rpath)/$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/$(qtmod)") ) \
     281                "$(2)",) # HACK ALERT! Using $(source_type_prefix) to detect EXEC_SOURCES.
     282 else if defined(VBOX_WITH_QTGUI) && !defined(VBOX_ONLY_SDK) && (defined(VBOX_WITH_ORACLE_QT) || defined(VBOX_WITH_QT_PAYLOAD))
     283  # win x11
     284  ifndef VBOX_WITH_QT6
     285   include $(KBUILD_PATH)/units/qt5.kmk
     286  else
     287   include $(KBUILD_PATH)/units/qt6.kmk
     288  endif
     289
     290  INSTALLS += qt-bin
     291  qt-bin_MODE := 755
     292  qt-bin_INST  = $(INST_BIN)
     293
     294  ifeq ($(KBUILD_TARGET),win)
     295   ifndef VBOX_WITH_QT6
     296    qt-bin_SOURCES = \
     297        $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(call VBOX_RE_SIGN_DLL_FN,qt-bin,$(PATH_SDK_QT5)/bin/$(qtmod)$(SUFF_DLL)))
     298    qt-bin_SOURCES += \
     299        $(call VBOX_RE_SIGN_DLL_FN,qt-bin,$(PATH_SDK_QT5)/plugins/platforms/qwindows$(VBOX_QT_DBG)$(SUFF_DLL))=>platforms/qwindows$(VBOX_QT_DBG)$(SUFF_DLL) \
     300        $(call VBOX_RE_SIGN_DLL_FN,qt-bin,$(PATH_SDK_QT5)/plugins/platforms/qminimal$(VBOX_QT_DBG)$(SUFF_DLL))=>platforms/qminimal$(VBOX_QT_DBG)$(SUFF_DLL) \
     301        $(call VBOX_RE_SIGN_DLL_FN,qt-bin,$(PATH_SDK_QT5)/plugins/platforms/qoffscreen$(VBOX_QT_DBG)$(SUFF_DLL))=>platforms/qoffscreen$(VBOX_QT_DBG)$(SUFF_DLL) \
     302        $(call VBOX_RE_SIGN_DLL_FN,qt-bin,$(PATH_SDK_QT5)/plugins/sqldrivers/qsqlite$(VBOX_QT_DBG)$(SUFF_DLL))=>sqldrivers/qsqlite$(VBOX_QT_DBG)$(SUFF_DLL) \
     303        $(call VBOX_RE_SIGN_DLL_FN,qt-bin,$(PATH_SDK_QT5)/plugins/styles/qwindowsvistastyle$(VBOX_QT_DBG)$(SUFF_DLL))=>styles/qwindowsvistastyle$(VBOX_QT_DBG)$(SUFF_DLL)
     304    ifdef VBOX_WITH_QT_PDBS
     305     qt-bin_SOURCES += $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(wildcard $(PATH_SDK_QT5)/qt*/$(VBOX_PATH_QT_LIB)/$(qtmod).pdb))
     306    endif
     307   else # qt6
     308    qt-bin_SOURCES = \
     309        $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(call VBOX_RE_SIGN_DLL_FN,qt-bin,$(PATH_SDK_QT6)/bin/$(qtmod)$(SUFF_DLL)))
     310    qt-bin_SOURCES += \
     311        $(call VBOX_RE_SIGN_DLL_FN,qt-bin,$(PATH_SDK_QT6)/plugins/platforms/qwindowsVBox$(VBOX_QT_DBG)$(SUFF_DLL))=>platforms/qwindowsVBox$(VBOX_QT_DBG)$(SUFF_DLL) \
     312        $(call VBOX_RE_SIGN_DLL_FN,qt-bin,$(PATH_SDK_QT6)/plugins/platforms/qminimalVBox$(VBOX_QT_DBG)$(SUFF_DLL))=>platforms/qminimalVBox$(VBOX_QT_DBG)$(SUFF_DLL) \
     313        $(call VBOX_RE_SIGN_DLL_FN,qt-bin,$(PATH_SDK_QT6)/plugins/platforms/qoffscreenVBox$(VBOX_QT_DBG)$(SUFF_DLL))=>platforms/qoffscreenVBox$(VBOX_QT_DBG)$(SUFF_DLL) \
     314        $(call VBOX_RE_SIGN_DLL_FN,qt-bin,$(PATH_SDK_QT6)/plugins/sqldrivers/qsqliteVBox$(VBOX_QT_DBG)$(SUFF_DLL))=>sqldrivers/qsqliteVBox$(VBOX_QT_DBG)$(SUFF_DLL) \
     315        $(call VBOX_RE_SIGN_DLL_FN,qt-bin,$(PATH_SDK_QT6)/plugins/styles/qwindowsvistastyleVBox$(VBOX_QT_DBG)$(SUFF_DLL))=>styles/qwindowsvistastyleVBox$(VBOX_QT_DBG)$(SUFF_DLL)
     316    ifdef VBOX_WITH_QT_PDBS
     317     qt-bin_SOURCES += $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(wildcard $(PATH_SDK_QT6)/qt*/$(VBOX_PATH_QT_LIB)/$(qtmod).pdb))
     318    endif
     319   endif # qt6
     320
     321  else # x11
     322   ifndef VBOX_WITH_QT6
     323    VBOX_QT_VERSION       := 5.15.2
     324    VBOX_QT_VERSION_MAJOR := 5
    235325   else
    236     include $(KBUILD_PATH)/units/qt5.kmk
    237     VBOX_QT_FWRK_VER = 5
    238     VBOX_QT_PATH   = $(PATH_SDK_QT5)
    239     VBOX_QT_PATH_LIB = $(PATH_SDK_QT5_LIB)
     326    VBOX_QT_VERSION       := 6.3.0
     327    VBOX_QT_VERSION_MAJOR := 6
    240328   endif
    241    INSTALLS += qt5-bin
    242    qt5-bin_INST = $(INST_VIRTUALBOX)Contents/
    243    qt5-bin_EXEC_SOURCES = $(foreach qtmod,$(VBOX_QT_MOD_NAMES), \
    244                 $(VBOX_QT_PATH_LIB)/$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/$(qtmod)=>Frameworks/$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/$(qtmod))
    245    qt5-bin_SOURCES = $(foreach qtmod,$(VBOX_QT_MOD_NAMES), \
    246                 $(VBOX_QT_PATH_LIB)/$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/Resources/Info.plist=>Frameworks/$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/Resources/Info.plist)
    247    ifdef VBOX_WITH_QT_DSYMS
    248     qt5-bin_SOURCES += $(foreach qtmod,$(VBOX_QT_MOD_NAMES), \
    249                 $(VBOX_QT_PATH_LIB)/$(qtmod).framework.dSYM/Contents/Info.plist=>Frameworks/$(qtmod).framework.dSYM/Contents/Info.plist \
    250                 $(VBOX_QT_PATH_LIB)/$(qtmod).framework.dSYM/Contents/Resources/DWARF/$(qtmod)=>Frameworks/$(qtmod).framework.dSYM/Contents/Resources/DWARF/$(qtmod))
    251    endif
    252    qt5-bin_EXEC_SOURCES += \
    253         $(VBOX_QT_PATH)/plugins/platforms/libqcocoa$(SUFF_DLL)=>plugins/platforms/libqcocoa$(SUFF_DLL) \
    254         $(VBOX_QT_PATH)/plugins/platforms/libqminimal$(SUFF_DLL)=>plugins/platforms/libqminimal$(SUFF_DLL) \
    255         $(VBOX_QT_PATH)/plugins/platforms/libqoffscreen$(SUFF_DLL)=>plugins/platforms/libqoffscreen$(SUFF_DLL) \
    256         $(VBOX_QT_PATH)/plugins/sqldrivers/libqsqlite$(SUFF_DLL)=>plugins/sqldrivers/libqsqlite$(SUFF_DLL) \
    257         $(VBOX_QT_PATH)/plugins/styles/libqmacstyle$(SUFF_DLL)=>plugins/styles/libqmacstyle$(SUFF_DLL)
    258    ifdef VBOX_WITH_QT_DSYMS
    259     qt5-bin_SOURCES += $(foreach qtplat, libqcocoa libqminimal libqoffscreen, \
    260                 $(VBOX_QT_PATH)/plugins/platforms/$(qtplat)$(SUFF_DLL).dSYM/Contents/Info.plist=>plugins/platforms/$(qtplat)$(SUFF_DLL).dSYM/Contents/Info.plist \
    261                 $(VBOX_QT_PATH)/plugins/platforms/$(qtplat)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtplat)$(SUFF_DLL)=>plugins/platforms/$(qtplat)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtplat)$(SUFF_DLL))
    262     qt5-bin_SOURCES += $(foreach qtsqldrv, libqsqlite, \
    263                 $(VBOX_QT_PATH)/plugins/sqldrivers/$(qtsqldrv)$(SUFF_DLL).dSYM/Contents/Info.plist=>plugins/sqldrivers/$(qtsqldrv)$(SUFF_DLL).dSYM/Contents/Info.plist \
    264                 $(VBOX_QT_PATH)/plugins/sqldrivers/$(qtsqldrv)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtsqldrv)$(SUFF_DLL)=>plugins/sqldrivers/$(qtsqldrv)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtsqldrv)$(SUFF_DLL))
    265     qt5-bin_SOURCES += $(foreach qtstyl, libqmacstyle, \
    266                 $(VBOX_QT_PATH)/plugins/styles/$(qtstyl)$(SUFF_DLL).dSYM/Contents/Info.plist=>plugins/styles/$(qtstyl)$(SUFF_DLL).dSYM/Contents/Info.plist \
    267                 $(VBOX_QT_PATH)/plugins/styles/$(qtstyl)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtstyl)$(SUFF_DLL)=>plugins/styles/$(qtstyl)$(SUFF_DLL).dSYM/Contents/Resources/DWARF/$(qtstyl)$(SUFF_DLL))
    268    endif
    269    qt5-bin_SYMLINKS = $(foreach qtmod, $(VBOX_QT_MOD_NAMES), \
    270                 Frameworks/$(qtmod).framework/Versions/Current=>$(VBOX_QT_FWRK_VER) \
    271                 Frameworks/$(qtmod).framework/$(qtmod)=>Versions/$(VBOX_QT_FWRK_VER)/$(qtmod) \
    272                 Frameworks/$(qtmod).framework/Resources=>Versions/$(VBOX_QT_FWRK_VER)/Resources)
    273    qt5-bin_INSTALLER = $(INSTALL) $(if $(uid),-o $(uid)) $(if $(gid),-g $(gid)) $(if $(mode),-m $(mode)) $(4) -- \
    274         "$(1)" "$(2)" $(if-expr "$(source_type_prefix)" == "EXEC_" \
    275                 ,$(NLTAB)install_name_tool \
    276                 $(if-expr "$(suffix $2)" == "", -id "$(if $(VBOX_WITH_HARDENING),/Applications/VirtualBox.app/Contents/Framework,@rpath)/$(notdir $(2)).framework/Version/$(VBOX_QT_FWRK_VER)/$(notdir $(2))",) \
    277                 $(foreach qtmod, $(VBOX_QT_MOD_NAMES), \
    278                         $(foreach prefix, @executable_path/../Frameworks/ $(VBOX_PATH_QT)/Frameworks/ $(VBOX_QT_PATH)/, \
    279                                 -change "$(prefix)$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/$(qtmod)" \
    280                                 "$(if $(VBOX_WITH_HARDENING),/Applications/VirtualBox.app/Contents/Frameworks,@rpath)/$(qtmod).framework/Versions/$(VBOX_QT_FWRK_VER)/$(qtmod)" ) ) \
    281                 "$(2)",) # HACK ALERT! Using $(source_type_prefix) to detect EXEC_SOURCES.
    282   else # win x11
    283    if1of ($(KBUILD_TARGET), linux solaris)
    284     if !defined(VBOX_ONLY_BUILD) && defined(VBOX_WITH_QTGUI)
    285      ifneq ($(VBOX_GCC_VERSION_CXX),)
    286       if $(VBOX_GCC_VERSION_CXX) < 40400
    287        $(error gcc >= 4.4 required when compiling against Qt5!)
    288       endif
    289      endif
    290     endif
    291    endif
    292    if defined(VBOX_WITH_ORACLE_QT) || defined(VBOX_WITH_QT_PAYLOAD)
    293     ifndef VBOX_WITH_QT6
    294      include $(KBUILD_PATH)/units/qt5.kmk
    295     else
    296      include $(KBUILD_PATH)/units/qt6.kmk
    297     endif
    298     ifeq ($(KBUILD_TARGET),win)
    299      ifndef VBOX_WITH_QT6
    300       INSTALLS += qt5-bin
    301       qt5-bin_MODE = 755
    302       qt5-bin_INST = $(INST_BIN)
    303       qt5-bin_SOURCES = \
    304         $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(call VBOX_RE_SIGN_DLL_FN,qt5-bin,$(PATH_SDK_QT5)/bin/$(qtmod)$(SUFF_DLL)))
    305       qt5-bin_SOURCES += \
    306         $(call VBOX_RE_SIGN_DLL_FN,qt5-bin,$(PATH_SDK_QT5)/plugins/platforms/qwindows$(VBOX_QT_DBG)$(SUFF_DLL))=>platforms/qwindows$(VBOX_QT_DBG)$(SUFF_DLL) \
    307         $(call VBOX_RE_SIGN_DLL_FN,qt5-bin,$(PATH_SDK_QT5)/plugins/platforms/qminimal$(VBOX_QT_DBG)$(SUFF_DLL))=>platforms/qminimal$(VBOX_QT_DBG)$(SUFF_DLL) \
    308         $(call VBOX_RE_SIGN_DLL_FN,qt5-bin,$(PATH_SDK_QT5)/plugins/platforms/qoffscreen$(VBOX_QT_DBG)$(SUFF_DLL))=>platforms/qoffscreen$(VBOX_QT_DBG)$(SUFF_DLL) \
    309         $(call VBOX_RE_SIGN_DLL_FN,qt5-bin,$(PATH_SDK_QT5)/plugins/sqldrivers/qsqlite$(VBOX_QT_DBG)$(SUFF_DLL))=>sqldrivers/qsqlite$(VBOX_QT_DBG)$(SUFF_DLL) \
    310         $(call VBOX_RE_SIGN_DLL_FN,qt5-bin,$(PATH_SDK_QT5)/plugins/styles/qwindowsvistastyle$(VBOX_QT_DBG)$(SUFF_DLL))=>styles/qwindowsvistastyle$(VBOX_QT_DBG)$(SUFF_DLL)
    311       ifdef VBOX_WITH_QT_PDBS
    312        qt5-bin_SOURCES += \
    313         $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(wildcard $(PATH_SDK_QT5)/qt*/$(VBOX_PATH_QT_LIB)/$(qtmod).pdb))
    314       endif # VBOX_WITH_QT_PDBS
    315      else # qt6
    316       INSTALLS += qt6-bin
    317       qt6-bin_MODE = 755
    318       qt6-bin_INST = $(INST_BIN)
    319       qt6-bin_SOURCES = \
    320         $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(call VBOX_RE_SIGN_DLL_FN,qt6-bin,$(PATH_SDK_QT6)/bin/$(qtmod)$(SUFF_DLL)))
    321       qt6-bin_SOURCES += \
    322         $(call VBOX_RE_SIGN_DLL_FN,qt6-bin,$(PATH_SDK_QT6)/plugins/platforms/qwindowsVBox$(VBOX_QT_DBG)$(SUFF_DLL))=>platforms/qwindowsVBox$(VBOX_QT_DBG)$(SUFF_DLL) \
    323         $(call VBOX_RE_SIGN_DLL_FN,qt6-bin,$(PATH_SDK_QT6)/plugins/platforms/qminimalVBox$(VBOX_QT_DBG)$(SUFF_DLL))=>platforms/qminimalVBox$(VBOX_QT_DBG)$(SUFF_DLL) \
    324         $(call VBOX_RE_SIGN_DLL_FN,qt6-bin,$(PATH_SDK_QT6)/plugins/platforms/qoffscreenVBox$(VBOX_QT_DBG)$(SUFF_DLL))=>platforms/qoffscreenVBox$(VBOX_QT_DBG)$(SUFF_DLL) \
    325         $(call VBOX_RE_SIGN_DLL_FN,qt6-bin,$(PATH_SDK_QT6)/plugins/sqldrivers/qsqliteVBox$(VBOX_QT_DBG)$(SUFF_DLL))=>sqldrivers/qsqliteVBox$(VBOX_QT_DBG)$(SUFF_DLL) \
    326         $(call VBOX_RE_SIGN_DLL_FN,qt6-bin,$(PATH_SDK_QT6)/plugins/styles/qwindowsvistastyleVBox$(VBOX_QT_DBG)$(SUFF_DLL))=>styles/qwindowsvistastyleVBox$(VBOX_QT_DBG)$(SUFF_DLL)
    327       ifdef VBOX_WITH_QT_PDBS
    328        qt6-bin_SOURCES += \
    329         $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(wildcard $(PATH_SDK_QT6)/qt*/$(VBOX_PATH_QT_LIB)/$(qtmod).pdb))
    330       endif # VBOX_WITH_QT_PDBS
    331      endif # qt6
    332     else # x11
    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
    346        QT5_VERSION = 5.15.2
    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
    424     endif # x11
    425    endif # VBOX_WITH_ORACLE_QT || VBOX_WITH_QT_PAYLOAD
    426   endif # win x11
     329   ifdef VBOX_WITH_HARDENING
     330    # The wildcards are necessary to install the libs instead of the symlinks
     331    qt-bin_SOURCES = \
     332        $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(wildcard $(VBOX_PATH_QT_LIB)/lib$(qtmod).so.*.*.*[0-9])=>lib$(qtmod).so.$(VBOX_QT_VERSION_MAJOR)) \
     333        $(foreach lib,$(VBOX_QT_PLUGINS),$(VBOX_PATH_QT)/$(lib)=>$(lib))
     334   else # !VBOX_WITH_HARDENING
     335    # For non-hardened builds we need to remove the RUNPATH. This stuff is
     336    # ugly but we need to prevent kBuild from hard-linking otherwise we
     337    # (indirectly) change the binaries in tools
     338    qt-bin_SOURCES = \
     339        $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$(qt-bin_0_OUTDIR)/lib$(qtmod).so.$(VBOX_QT_VERSION)=>lib$(qtmod).so.$(VBOX_QT_VERSION_MAJOR)) \
     340        $(foreach lib,$(VBOX_QT_PLUGINS),$(qt-bin_0_OUTDIR)/$(lib)=>$(lib))
     341
     342    $(foreach qtmod,$(VBOX_QT_MOD_NAMES),$$(qt-bin_0_OUTDIR)/lib$(qtmod).so.$(VBOX_QT_VERSION)): \
     343                $$(qt-bin_0_OUTDIR)/% : $(VBOX_PATH_QT_LIB)/% | $$(qt-bin_0_OUTDIR)/
     344        $(call MSG_INST_FILE,$^,$@)
     345        $(QUIET)$(CP) $^ $@
     346        $(QUIET)chrpath --replace "\$$ORIGIN" $@
     347
     348    ifn1of ($(KBUILD_TARGET), solaris linux)
     349     $(foreach lib,$(VBOX_QT_PLUGINS),$$(qt-bin_0_OUTDIR)/$(lib)): $$(qt-bin_0_OUTDIR)/% : \
     350                $(VBOX_PATH_QT)/% | $$(qt-bin_0_OUTDIR)/
     351        $(call MSG_INST_FILE,$^,$@)
     352        $(QUIET)$(MKDIR) -p $(@D)
     353        $(QUIET)$(CP) $^ $@
     354        $(QUIET)chrpath --delete $@
     355    endif # !solaris and !linux
     356
     357    # @todo For solaris and some linuxes dlopen fails to navigate executable rpath to dependent libraries,
     358    #       so add explicit rpath for libqxcb.so, find better solution later.
     359    if1of ($(KBUILD_TARGET), solaris linux)
     360     $(foreach lib,$(VBOX_QT_PLUGINS),$$(qt-bin_0_OUTDIR)/$(lib)): $$(qt-bin_0_OUTDIR)/% : \
     361                $(VBOX_PATH_QT)/% | $$(qt-bin_0_OUTDIR)/
     362        $(call MSG_INST_FILE,$^,$@)
     363        $(QUIET)$(MKDIR) -p $(@D)
     364        $(QUIET)$(CP) $^ $@
     365        $(QUIET)chrpath --replace "\$$ORIGIN/../../" $@
     366    endif # solaris linux
     367
     368   endif # !VBOX_WITH_HARDENING
     369  endif # x11
    427370 endif # defined(VBOX_WITH_QTGUI) && !defined(VBOX_ONLY_SDK)
    428371
Note: See TracChangeset for help on using the changeset viewer.

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