Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • videolan/vlc
  • chouquette/vlc
  • bakiewicz.marek122/vlc
  • devnexen/vlc
  • rohanrajpal/vlc
  • blurrrb/vlc
  • gsoc/gsoc2019/darkapex/vlc
  • b1ue/vlc
  • fkuehne/vlc
  • magsoft/vlc
  • chub/vlc
  • cramiro9/vlc
  • robUx4/vlc
  • rom1v/vlc
  • akshayaky/vlc
  • tmk907/vlc
  • akymaster/vlc
  • govind.sharma/vlc
  • psilokos/vlc
  • xjbeta/vlc
  • jahan/vlc
  • 1480c1/vlc
  • amanchande/vlc
  • aaqib/vlc
  • rist/vlc
  • apol/vlc
  • mindfreeze/vlc
  • alexandre-janniaux/vlc
  • sandsmark/vlc
  • jagannatharjun/vlc
  • gsoc/gsoc2020/matiaslgonzalez/vlc
  • gsoc/gsoc2020/jagannatharjun/vlc
  • mstorsjo/vlc
  • gsoc/gsoc2020/vedenta/vlc
  • gsoc/gsoc2020/arnav-ishaan/vlc
  • gsoc/gsoc2020/andreduong/vlc
  • fuzun/vlc
  • gsoc/gsoc2020/vatsin/vlc
  • gsoc/gsoc2020/sagid/vlc
  • yaron/vlc
  • Phoenix/vlc
  • Garf/vlc
  • ePiratWorkarounds/vlc
  • tguillem/vlc
  • jnqnfe/vlc
  • mdc/vlc
  • Vedaa/vlc
  • rasa/vlc
  • quink/vlc
  • yealo/vlc
  • aleksey_ak/vlc
  • ePirat/vlc
  • ilya.yanok/vlc
  • asenat/vlc
  • m/vlc
  • bunjee/vlc
  • BLumia/vlc
  • sagudev/vlc
  • hamedmonji30/vlc
  • nullgemm/vlc
  • DivyamAhuja/vlc
  • thesamesam/vlc
  • dag7/vlc
  • snehil101/vlc
  • haasn/vlc
  • jbk/vlc
  • ValZapod/vlc
  • mfkl/vlc
  • WangChuan/vlc
  • core1024/vlc
  • GhostVaibhav/vlc
  • dfuhrmann/vlc
  • davide.prade/vlc
  • tmatth/vlc
  • Courmisch/vlc
  • zouya/vlc
  • hpi/vlc
  • EwoutH/vlc
  • aleung27/vlc
  • hengwu0/vlc
  • saladin/vlc
  • ashuio/vlc
  • richselwood/vlc
  • verma16Ayush/vlc
  • chemicalflash/vlc
  • PoignardAzur/vlc
  • huangjieNT/vlc
  • Blake-Haydon/vlc
  • AnuthaDev/vlc
  • gsoc/gsoc2021/mpd/vlc
  • nicolas_lequec/vlc
  • sambassaly/vlc
  • thresh/vlc
  • bonniegong/vlc
  • myaashish/vlc
  • stavros.vagionitis/vlc
  • ileoo/vlc
  • louis-santucci/vlc
  • cchristiansen/vlc
  • sabyasachi07/vlc
  • AbduAmeen/vlc
  • ashishb0410/vlc
  • urbanhusky/vlc
  • davidepietrasanta/vlc
  • riksleutelstad/vlc
  • jeremyVignelles/vlc
  • komh/vlc
  • iamjithinjohn/vlc
  • JohannesKauffmann/vlc2
  • kunglao/vlc
  • natzberg/vlc
  • jill/vlc
  • cwendling/vlc
  • adufou/vlc
  • ErwanAirone/vlc
  • HasinduDilshan10/vlc
  • vagrantc/vlc
  • rafiv/macos-bigsur-icon
  • Aymeriic/vlc
  • saranshg20/vlc
  • metzlove24/vlc
  • linkfanel/vlc
  • Ds886/vlc
  • metehan-arslan/vlc
  • Skantes/vlc
  • kgsandundananjaya96/vlc
  • mitchcapper/vlc
  • advaitgupta/vlc
  • StefanBruens/vlc
  • ratajs/vlc
  • T.M.F.B.3761/vlc
  • m222059/vlc
  • casemerrick/vlc
  • joshuaword2alt/vlc
  • sjwaddy/vlc
  • dima/vlc
  • Ybalrid/vlc
  • umxprime/vlc
  • eschmidt/vlc
  • vannieuwenhuysenmichelle/vlc
  • badcf00d/vlc
  • wesinator/vlc
  • louis/vlc
  • xqq/vlc
  • EmperorYP7/vlc
  • NicoLiam/vlc
  • loveleen/vlc
  • rofferom/vlc
  • rbultje/vlc
  • TheUnamed/vlc
  • pratiksharma341/vlc
  • Saurab17/vlc
  • purist.coder/vlc
  • Shuicheng/vlc
  • mdrrubel292/vlc
  • silverbleu00/vlc
  • metif12/vlc
  • asher-m/vlc
  • jeffk/vlc
  • Brandonbr1/vlc
  • beautyyuyanli/vlc
  • rego21/vlc
  • muyangren907/vlc
  • collectionbylawrencejason/vlc
  • evelez/vlc
  • GSMgeeth/vlc
  • Oneric/vlc
  • TJ5/vlc
  • XuanTung95/vlc
  • darrenjenny21/vlc
  • Trenly/vlc
  • RockyTDR/vlc
  • mjakubowski/vlc
  • caprica/vlc
  • ForteFrankie/vlc
  • seannamiller19/vlc
  • junlon2006/vlc
  • kiwiren6666/vlc
  • iuseiphonexs/vlc
  • fenngtun/vlc
  • Rajdutt999/vlc
  • typx/vlc
  • leon.vitanos/vlc
  • robertogarci0938/vlc
  • gsoc/gsoc2022/luc65r/vlc-mpd
  • skeller/vlc
  • MCJack123/vlc
  • luc65r/vlc-mpd
  • popov895/vlc
  • claucambra/vlc
  • brad/vlc
  • matthewmurua88/vlc
  • Tomas8874/vlc
  • philenotfound/vlc
  • makita-do3/vlc
  • LZXCorp/vlc
  • mar0x/vlc
  • senojetkennedy0102/vlc
  • shaneb243/vlc
  • ahmadbader/vlc
  • rajduttcse26/vlc-audio-filters
  • Juniorzito8415/vlc
  • achernyakov/vlc
  • lucasjetgroup/vlc
  • pupdoggy666/vlc
  • gmde9363/vlc
  • alexnwayne/vlc
  • bahareebrahimi781/vlc
  • hamad633666/vlc
  • umghof3112/vlc
  • joe0199771874/vlc
  • Octocats66666666/vlc
  • jjm_223/vlc
  • btech10110.19/vlc
  • sunnykfc028/vlc-audio-filters
  • loic/vlc
  • nguyenminhducmx1/vlc
  • JanekKrueger/vlc
  • bstubbington2/vlc
  • rcombs/vlc
  • Ordissimo/vlc
  • king7532/vlc
  • noobsauce101/vlc
  • schong0525/vlc
  • myQwil/vlc
  • apisbg91/vlc
  • geeboy0101017/vlc
  • kim.faughey/vlc
  • nurupo/vlc
  • yyusea/vlc
  • 0711235879.khco/vlc
  • ialo/vlc
  • iloveyeye2/vlc
  • gdtdftdqtd/vlc
  • leandroconsiglio/vlc
  • AndyHTML2012/vlc
  • ncz/vlc
  • lucenticus/vlc
  • knr1931/vlc
  • kjoonlee/vlc
  • chandrakant100/vlc-qt
  • johge42/vlc
  • polter/vlc
  • hexchain/vlc
  • Tushwrld/vlc
  • mztea928/vlc
  • jbelloncastro/vlc
  • alvinhochun/vlc
  • ghostpiratecrow/vlc
  • ujjwaltwitx/vlc
  • alexsonarin06/vlc
  • adrianbon76/vlc
  • altsod/vlc
  • damien.lucas44/vlc
  • dmytrivtaisa/vlc
  • utk202/vlc
  • aaxhrj/vlc
  • thomas.hermes/vlc
  • structurenewworldorder/vlc
  • slomo/vlc
  • wantlamy/vlc
  • musc.o3cminc/vlc
  • thebarshablog/vlc
  • kerrick/vlc
  • kratos142518/vlc
  • leogps/vlc
  • vacantron/vlc
  • luna_koly/vlc
  • Ratio2/vlc
  • anuoshemohammad/vlc
  • apsun/vlc
  • aaa1115910/vlc
  • alimotmoyo/vlc
  • Ambossmann/vlc
  • Sam-LearnsToCode/vlc
  • Chilledheart/vlc
  • Labnann/vlc
  • ktcoooot1/vlc
  • mohit-marathe/vlc
  • johnddx/vlc
  • manstabuk/vlc
  • Omar-ahmed314/vlc
  • vineethkm/vlc
  • 9Enemi86/vlc
  • radoslav.m.panteleev/vlc
  • ashishami2002/vlc
  • Corbax/vlc
  • firnasahmed/vlc
  • pelayarmalam4/vlc
  • c0ff330k/vlc
  • shikhindahikar/vlc
  • l342723951/vlc
  • christianschwandner/vlc
  • douniwan5788/vlc
  • 7damian7/vlc
  • ferdnyc/vlc
  • f.ales1/vlc
  • pandagby/vlc
  • BaaBaa/vlc
  • jewe37/vlc
  • w00drow/vlc
  • russelltg/vlc
  • ironicallygod/vlc
  • soumyaDghosh/vlc
  • linzihao1999/vlc
  • deyayush6/vlc
  • mibi88/vlc
  • newabdallah10/vlc
  • jhorbincolombia/vlc
  • rimvihaqueshupto/vlc
  • andrewkhon98/vlc
  • fab78/vlc
  • lapaz17/vlc
  • amanna13/vlc
  • mdakram28/vlc
  • 07jw1980/vlc
  • sohamgupta/vlc
  • Eson-Jia1/vlc
  • Sumou/vlc
  • vikram-kangotra/vlc
  • chalice191/vlc
  • olivercalder/vlc
  • aaasg4001/vlc
  • zipdox/vlc
  • kwizart/vlc
  • Dragon-S/vlc
  • jdemeule/vlc
  • gabriel_lt/vlc
  • locutusofborg/vlc
  • sammirata/vlc-librist
  • another/vlc
  • Benjamin_Loison/vlc
  • ahmedmoselhi/vlc
  • petergaal/vlc
  • huynhsontung/vlc
  • dariusmihut/vlc
  • tvermaashutosh/vlc
  • buti/vlc
  • Niram7777/vlc
  • rohan-here/vlc
  • balaji-sivasakthi/vlc
  • rlindner81/vlc
  • Kakadus/vlc
  • djain/vlc
  • ABBurmeister/vlc
  • craighuggins/vlc
  • orbea/vlc
  • maxos/vlc
  • aakarshmj/vlc
  • kblaschke/vlc
  • ankitm/vlc
  • advait-0/vlc
  • mohak2003/vlc
  • yselkowitz/vlc
  • AZM999/vlc-azm
  • andrey.turkin/vlc
  • Disha-Baghel/vlc
  • nowrep/vlc
  • Apeng/vlc
  • Choucroute_melba/vlc
  • autra/vlc
  • eclipseo/vlc
  • fhuber/vlc
  • olafhering/vlc
  • sdasda7777/vlc
  • 1div0/vlc
  • skosnits/vlc-extended-playlist-support
  • dnicolson/vlc
  • Timshel/vlc
  • octopols/vlc
  • MangalK/vlc
  • nima64/vlc
  • misawai/vlc
  • Alexander-Wilms/vlc
  • Maxime2/vlc-fork-for-visualizer
  • ww/vlc
  • jeske/vlc
  • sgross-emlix/vlc
  • morenonatural/vlc
  • freakingLovesVLC/vlc
  • borisgolovnev/vlc
  • mpromonet/vlc
  • diogo.simao-marques/vlc
  • masstock/vlc
  • pratikpatel8982/vlc
  • hugok79/vlc
  • longervision/vlc
  • abhiudaysurya/vlc
  • rishabhgarg/vlc
  • tumic/vlc
  • cart/vlc
  • shubham442/vlc
  • Aditya692005/vlc
  • sammirata/vlc4
  • syrykh/vlc
  • Vvorcun/macos-new-icon
  • AyaanshC/vlc
  • nasso/vlc
  • Quark/vlc
  • sebastinas/vlc
  • rhstone/vlc
  • talregev/vlc
  • Managor/vlc
  • abdsaber000/vlc
  • falbrechtskirchinger/vlc
  • b.sullender/vlc
  • hulxv/vlc
  • zyad-ayad/vlc
408 results
Show changes
Commits on Source (21)
Showing
with 328 additions and 123 deletions
......@@ -3872,6 +3872,13 @@ AS_IF([test "${enable_qt}" != "no"], [
],[
AC_MSG_WARN([Not building Qt Interface with X11 helpers.])
])
dnl TODO
PKG_CHECK_MODULES([QT5_WAYLAND], [Qt5WaylandClient], [
have_qt5_wayland="yes"
],[
AC_MSG_WARN([Not building Qt Interface with wayland support.])
])
QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)"
QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)"
QT_VERSION="$(eval $PKG_CONFIG --modversion Qt5Gui)"
......@@ -3882,6 +3889,40 @@ AS_IF([test "${enable_qt}" != "no"], [
AS_IF([test "${QMLCACHE}" = "no"], [
AC_MSG_WARN([qmlcachegen not found])
])
VLC_SAVE_FLAGS
CPPFLAGS="${CPPFLAGS} ${QT_CFLAGS}"
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([[#include <qconfig.h>]],[[QT_STATIC]])],
[have_qt_static=yes],[have_qt_static=no])
VLC_RESTORE_FLAGS
AS_IF([test "${have_qt_static}" = "yes"],[
PKG_CHECK_MODULES([QT5_PLUGINS], [
qtgraphicaleffectsplugin qtquick2plugin qtquickcontrols2plugin
qtquicktemplates2plugin qquicklayoutsplugin windowplugin
qmlshapesplugin qmlplugin modelsplugin qsvg qsvgicon
qtgraphicaleffectsprivate qjpeg ])
PKG_CHECK_MODULES([QT5_XCB_PLUGINS], [
qxcb-glx-integration qxcb
], [VLC_ADD_LIBS([qt],[${QT5_XCB_PLUGINS_LIBS}])], [:])
PKG_CHECK_MODULES([QT5_WAYLAND_PLUGINS], [
qwayland-generic qwayland-egl xdg-shell
], [VLC_ADD_LIBS([qt],[${QT5_WAYLAND_PLUGINS_LIBS}])], [:])
dnl Platform plugins are mandatory on those platforms, as opposed to
dnl the previous integration for linux which are optional
AS_IF([test "${SYS}" = "mingw32"], [
PKG_CHECK_MODULES([QT5_PLATFORM_PLUGINS], [qwindows qwindowsvistastyle])
])
AS_IF([test "${SYS}" = "darwin" -a "${HAVE_OSX}" = 1], [
PKG_CHECK_MODULES([QT5_PLATFORM_PLUGINS], [qcocoa])
])
])
], [
AS_IF([test -n "${enable_qt}"],[
AC_MSG_ERROR([${QT_PKG_ERRORS}. If you want to build VLC without GUI, pass --disable-qt.])
......@@ -3907,6 +3948,7 @@ AS_IF([test "${enable_qt}" != "no"], [
AC_SUBST([QT_VERSION])
AM_CONDITIONAL([ENABLE_QT], [test "$enable_qt" != "no"])
AM_CONDITIONAL([HAVE_QT5_X11], [test "${have_qt5_x11}" = "yes"])
AM_CONDITIONAL([HAVE_QT5_WAYLAND], [test "${have_qt5_wayland}" = "yes"])
dnl
dnl detect kde4-config patch (used for kde solids).
......
#! /bin/sh
# Add a Qt plugin in the static pkg-config configuration of a Qt module
# By default plugins are found in $PREFIX/plugins but are not seen by pkg-config.
# This is also done for qml plugins which are found in $PREFIX/qml.
#
# This could also be done in configure.ac to detect what plugins are available and where to add them
REAL_PREFIX="$1"
OS_NAME="`uname -o`"
if [ "$OS_NAME" = "Cygwin" -o "$OS_NAME" = "Msys" ]; then
if [ ! `cygpath.exe -pm / || echo FAIL` = "FAIL" ]; then
REAL_PREFIX=`cygpath.exe -pm ${REAL_PREFIX}`
fi
fi
PREFIX=$(python3 -c "import os; print(os.path.realpath('${REAL_PREFIX}'))")
PLUGIN_PATH="$3"
PLUGIN_NAME="$4"
PC_DEST="${PREFIX}/lib/pkgconfig/${2}.pc"
PRL_SOURCE=${PREFIX}/${PLUGIN_PATH}/lib${PLUGIN_NAME}.prl
if [ ! -f $PC_DEST ]; then
echo "destination ${PC_DEST} doesn't exists" >&2
exit 1
fi
if [ ! -f $PRL_SOURCE ]; then
PRL_SOURCE=${PREFIX}/${PLUGIN_PATH}/${PLUGIN_NAME}.prl
if [ ! -f $PRL_SOURCE ]; then
echo "source ${PRL_SOURCE} doesn't exists" >&2
exit 1
fi
fi
# Get the links flags necessary to use the plugin from the installed PRL file of the plugin
# replace hardcoded pathes by {libdir}
LIBS=$(sed -e "/QMAKE_PRL_LIBS =/ { \
s/QMAKE_PRL_LIBS =//; \
s@$PREFIX/lib@\${libdir}@g; \
s@\$\$\[QT_INSTALL_LIBS\]@\${libdir}@g;" -e "p" \
-e "};" -e "d" $PRL_SOURCE )
# prepend the plugin that uses the module
sed -i.bak -e "s# -l${2}# -l${PLUGIN_NAME} -l${2}#" $PC_DEST
# add the plugin static dependencies to the ones of the module
sed -i.bak -e "s#Libs.private: #Libs.private: $LIBS -L\${prefix}/${PLUGIN_PATH} #" $PC_DEST
#!/usr/bin/env sh
# Copyright (C) 2022 Videolabs
# This file is distributed under the same license as the vlc package.
set -e
SCRIPT_DIR="$(cd "$(dirname "$0" )" && pwd -P)"
SOURCE="$1"
DEST="$2"
install -m 644 -p $SOURCE $DEST
# Filter pkg-config files only
if [ "${SOURCE##*.}" != 'pc' ]; then
exit 0
fi
"${SCRIPT_DIR}/../pkg-static.sh" "${DEST}"
# Filter pkg-config files that are not installed in the main pkg-config folder
if [ "$(dirname $2)" -ef "${VLC_PREFIX}/lib/pkgconfig" ]; then
exit 0
fi
pkgconfigdir="$(cd "$(dirname "${DEST}")" && pwd -P)"
# Filter packages installed in a pkgconfig/ folder
if [ "$(basename "${pkgconfigdir}")" -eq "pkgconfig" ]; then
exit 0
fi
sed -i.orig "s,libdir=.*,libdir=${pkgconfigdir}," "${DEST}"
mkdir -p "${VLC_PREFIX}/lib/pkgconfig"
ln -sf "${DEST}" "${VLC_PREFIX}/lib/pkgconfig/"
......@@ -53,10 +53,10 @@ else
cd $(UNPACK_DIR); for i in QtFontDatabaseSupport QtWindowsUIAutomationSupport QtEventDispatcherSupport QtCore; do \
sed -i.orig -e 's,"../../../../../src,"../src,g' include/$$i/$(QT_VERSION)/$$i/private/*.h; done
endif
$(APPLY) $(SRC)/qt/qt-fix-gcc11-build.patch
endif
$(APPLY) $(SRC)/qt/qt-fix-gcc11-build.patch
$(APPLY) $(SRC)/qt/qt-add-missing-header-darwin.patch
$(APPLY) $(SRC)/qt/set-mkspecs-properties.patch
$(MOVE)
......@@ -108,6 +108,7 @@ QT_CONFIG += -no-direct2d
endif
QT_ENV_VARS := $(HOSTVARS) DXSDK_DIR=$(PREFIX)/bin
QT_QINSTALL="$(shell cd $(SRC)/qt/; pwd -P)/install_wrapper.sh"
.qt: qt
# Prevent all Qt contribs from generating and installing libtool .la files
......@@ -115,24 +116,32 @@ QT_ENV_VARS := $(HOSTVARS) DXSDK_DIR=$(PREFIX)/bin
+cd $< && $(QT_ENV_VARS) ./configure $(QT_PLATFORM) $(QT_CONFIG) -prefix $(PREFIX) -hostprefix $(PREFIX)/lib/qt5
# Make && Install libraries
cd $< && $(QT_ENV_VARS) $(MAKE)
cd $< && $(MAKE) -C src sub-corelib-install_subtargets sub-gui-install_subtargets sub-widgets-install_subtargets sub-platformsupport-install_subtargets sub-zlib-install_subtargets sub-bootstrap-install_subtargets sub-network-install_subtargets
cd $< && $(MAKE) -C src \
INSTALL_FILE=$(QT_QINSTALL) VLC_PREFIX="$(PREFIX)" \
sub-corelib-install_subtargets \
sub-gui-install_subtargets \
sub-widgets-install_subtargets \
sub-platformsupport-install_subtargets \
sub-zlib-install_subtargets \
sub-bootstrap-install_subtargets \
sub-network-install_subtargets
# Install tools
cd $< && $(MAKE) -C src sub-moc-install_subtargets sub-rcc-install_subtargets sub-uic-install_subtargets sub-qlalr-install_subtargets
cd $< && $(MAKE) -C src \
INSTALL_FILE=$(QT_QINSTALL) VLC_PREFIX="$(PREFIX)" \
sub-moc-install_subtargets \
sub-rcc-install_subtargets \
sub-uic-install_subtargets \
sub-qlalr-install_subtargets
# Install plugins
cd $< && $(MAKE) -C src -C plugins sub-imageformats-install_subtargets sub-platforms-install_subtargets sub-styles-install_subtargets
$(SRC)/qt/AddStaticLink.sh "$(PREFIX)" Qt5Gui plugins/imageformats qjpeg
cd $< && $(MAKE) -C src -C plugins \
INSTALL_FILE=$(QT_QINSTALL) VLC_PREFIX="$(PREFIX)" \
sub-imageformats-install_subtargets \
sub-platforms-install_subtargets \
sub-styles-install_subtargets
ifdef HAVE_WIN32
# Add the private include to our project (similar to using "gui-private" in a qmake project) as well as ANGLE headers
sed -i.orig -e 's#-I$${includedir}/QtGui#-I$${includedir}/QtGui -I$${includedir}/QtGui/$(QT_VERSION)/QtGui -I$${includedir}/QtANGLE#' $(PREFIX)/lib/pkgconfig/Qt5Gui.pc
$(SRC)/qt/AddStaticLink.sh "$(PREFIX)" Qt5Gui plugins/platforms qwindows
# Vista styling
$(SRC)/qt/AddStaticLink.sh "$(PREFIX)" Qt5Widgets plugins/styles qwindowsvistastyle
endif
ifdef HAVE_MACOSX
$(SRC)/qt/AddStaticLink.sh "$(PREFIX)" Qt5Gui plugins/platforms qcocoa
# Qt Cocoa plugins depend on printer support...
cd $< && cp ./lib/libQt5PrintSupport.a "$(PREFIX)/lib/"
endif
#fix host tools headers to avoid collusion with target headers
......
--- a/mkspecs/features/qml_plugin.prf 2020-09-02 12:15:07.000000000 +0200
+++ b/mkspecs/features/qml_plugin.prf 2022-08-31 10:58:10.110600024 +0200
@@ -12,7 +12,7 @@
load(qt_build_config)
TEMPLATE = lib
-CONFIG += plugin
+CONFIG += plugin create_pc
if(win32|mac):!macx-xcode {
qtConfig(debug_and_release): CONFIG += debug_and_release
--- a/mkspecs/features/qt_plugin.prf 2020-09-02 12:15:07.000000000 +0200
+++ b/mkspecs/features/qt_plugin.prf 2022-08-31 10:59:48.380662936 +0200
@@ -14,8 +14,8 @@
isEmpty(PLUGIN_TYPE): error("PLUGIN_TYPE (plugins/ subdirectory) needs to be defined.")
TEMPLATE = lib
-CONFIG += plugin
+CONFIG += plugin create_pc
DESTDIR = $$MODULE_BASE_OUTDIR/plugins/$$PLUGIN_TYPE
win32:CONFIG(shared, static|shared) {
# Embed a VERSIONINFO resource into the plugin's DLL.
--- a/mkspecs/features/qml_plugin.prf 2022-09-02 14:15:09.023765377 +0200
+++ b/mkspecs/features/qml_plugin.prf 2022-09-02 14:59:06.296938907 +0200
@@ -30,9 +30,9 @@
}
isEmpty(TARGETPATH): TARGETPATH = $$eval(QT.$${CXX_MODULE}.name)
+isEmpty(VERSION): VERSION = $$MODULE_VERSION
win32:CONFIG(shared, static|shared) {
# Embed a VERSIONINFO resource into the plugin's DLL.
- isEmpty(VERSION): VERSION = $$MODULE_VERSION
CONFIG += skip_target_version_ext
}
--- a/mkspecs/features/qt_plugin.prf 2022-09-02 14:15:04.593670115 +0200
+++ b/mkspecs/features/qt_plugin.prf 2022-09-02 14:59:06.296938907 +0200
@@ -17,9 +17,9 @@
CONFIG += plugin create_pc
DESTDIR = $$MODULE_BASE_OUTDIR/plugins/$$PLUGIN_TYPE
+isEmpty(VERSION): VERSION = $$QT_VERSION
win32:CONFIG(shared, static|shared) {
# Embed a VERSIONINFO resource into the plugin's DLL.
- isEmpty(VERSION): VERSION = $$QT_VERSION
CONFIG += skip_target_version_ext
}
......@@ -35,14 +35,20 @@ QT_DECLARATIVE_CONFIG := \
cd $</src && $(PREFIX)/lib/qt5/bin/qmake -o Makefile src.pro
# Build & install only what we require
# Invoke the build rules one at a time as some rule dependencies seem to be broken
cd $< && $(MAKE) -C src sub-quick-make_first-ordered \
cd $< && $(MAKE) -C src \
INSTALL_FILE="$(QT_QINSTALL)" VLC_PREFIX="$(PREFIX)" \
sub-quick-make_first-ordered \
sub-qmlmodels-make_first-ordered \
sub-qmldevtools-make_first-ordered \
sub-qmlworkerscript-make_first-ordered
# We don't use particles, but the import target (which generates the qtquick2plugin.a) require
# the particle module to be built
cd $< && $(MAKE) -C src sub-particles-make_first-ordered
cd $< && $(MAKE) -C src sub-quick-install_subtargets \
cd $< && $(MAKE) -C src \
INSTALL_FILE="$(QT_QINSTALL)" VLC_PREFIX="$(PREFIX)" \
sub-particles-make_first-ordered
cd $< && $(MAKE) -C src \
INSTALL_FILE="$(QT_QINSTALL)" VLC_PREFIX="$(PREFIX)" \
sub-quick-install_subtargets \
sub-qml-install_subtargets \
sub-quickwidgets-install_subtargets \
sub-imports-install_subtargets \
......@@ -50,12 +56,7 @@ QT_DECLARATIVE_CONFIG := \
sub-qmlworkerscript-install_subtargets \
sub-quickshapes-install_subtargets
cd $</tools && $(PREFIX)/lib/qt5/bin/qmake -o Makefile tools.pro
cd $< && $(MAKE) -C tools sub-qmlcachegen-install_subtargets
$(SRC)/qt/AddStaticLink.sh "$(PREFIX)" Qt5Quick qml/QtQuick.2 qtquick2plugin
$(SRC)/qt/AddStaticLink.sh "$(PREFIX)" Qt5Quick qml/QtQuick/Layouts qquicklayoutsplugin
$(SRC)/qt/AddStaticLink.sh "$(PREFIX)" Qt5Quick qml/QtQuick/Window.2 windowplugin
$(SRC)/qt/AddStaticLink.sh "$(PREFIX)" Qt5Quick qml/QtQuick/Shapes qmlshapesplugin
$(SRC)/qt/AddStaticLink.sh "$(PREFIX)" Qt5Qml qml/QtQml qmlplugin
$(SRC)/qt/AddStaticLink.sh "$(PREFIX)" Qt5Qml qml/QtQml/Models.2 modelsplugin
cd $< && $(MAKE) -C tools \
INSTALL_FILE="$(QT_QINSTALL)" VLC_PREFIX="$(PREFIX)" \
sub-qmlcachegen-install_subtargets
touch $@
......@@ -25,9 +25,5 @@ qtgraphicaleffects: qtgraphicaleffects-everywhere-src-$(QTGE_VERSION).tar.xz .su
.qtgraphicaleffects: qtgraphicaleffects
cd $< && $(PREFIX)/lib/qt5/bin/qmake
# Make && Install libraries
cd $< && $(MAKE)
cd $< && $(MAKE) -C src sub-effects-install_subtargets
$(SRC)/qt/AddStaticLink.sh "$(PREFIX)" Qt5QuickWidgets qml/QtGraphicalEffects qtgraphicaleffectsplugin
$(SRC)/qt/AddStaticLink.sh "$(PREFIX)" Qt5QuickWidgets qml/QtGraphicalEffects/private qtgraphicaleffectsprivate
cd $< && $(MAKE) install INSTALL_FILE="$(QT_QINSTALL)" VLC_PREFIX="$(PREFIX)"
touch $@
......@@ -38,7 +38,6 @@ ifndef HAVE_CROSS_COMPILE
cd $<; for i in QtQuickControls2 QtQuickTemplates2; do \
sed -i -e 's,"../../../../../src,"../src,g' include/$$i/$(QTQC2_VERSION)/$$i/private/*.h; done
endif
cd $< && $(MAKE) install_subtargets
$(SRC)/qt/AddStaticLink.sh "$(PREFIX)" Qt5QuickControls2 qml/QtQuick/Controls.2 qtquickcontrols2plugin
$(SRC)/qt/AddStaticLink.sh "$(PREFIX)" Qt5QuickControls2 qml/QtQuick/Templates.2 qtquicktemplates2plugin
cd $< && $(MAKE) install_subtargets \
INSTALL_FILE="$(QT_QINSTALL)" VLC_PREFIX="$(PREFIX)"
touch $@
......@@ -28,7 +28,7 @@ qtsvg: qtsvg-everywhere-src-$(QTSVG_VERSION).tar.xz .sum-qtsvg
cd $< && $(PREFIX)/lib/qt5/bin/qmake
# Make && Install libraries
cd $< && $(MAKE)
cd $< && $(MAKE) -C src sub-plugins-install_subtargets sub-svg-install_subtargets
$(SRC)/qt/AddStaticLink.sh "$(PREFIX)" Qt5Svg plugins/iconengines qsvgicon
$(SRC)/qt/AddStaticLink.sh "$(PREFIX)" Qt5Svg plugins/imageformats qsvg
cd $< && $(MAKE) -C src sub-plugins-install_subtargets \
INSTALL_FILE="$(QT_QINSTALL)" VLC_PREFIX="$(PREFIX)" \
sub-svg-install_subtargets
touch $@
d6619f35b3ab163372a0d49a2221c487d5936b6d9ebeb92a7fd41521c424d550eea7c5c584e07f15bde1ec5ece1bd5774845eb9956ce793e546197ffdb28d594 qtwayland-5.15.1.tar.xz
# qtwayland
QTWAYLAND_VERSION_MAJOR := 5.15
QTWAYLAND_VERSION := $(QTWAYLAND_VERSION_MAJOR).1
QTWAYLAND_URL := http://download.qt.io/development_releases/qt/5.12/5.12.0-beta1/submodules/qtwayland-everywhere-src-5.12.0-beta1.tar.xz
QTWAYLAND_URL := http://download.qt.io/official_releases/qt/$(QTWAYLAND_VERSION_MAJOR)/$(QTWAYLAND_VERSION)/submodules/qtwayland-everywhere-src-$(QTWAYLAND_VERSION).tar.xz
DEPS_qtwayland = qtdeclarative $(DEPS_qtdeclarative)
$(TARBALLS)/qtwayland-$(QTWAYLAND_VERSION).tar.xz:
$(call download,$(QTWAYLAND_URL))
.sum-qtwayland: qtwayland-$(QTWAYLAND_VERSION).tar.xz
qtwayland: qtwayland-$(QTWAYLAND_VERSION).tar.xz .sum-qtwayland
$(UNPACK)
mv qtwayland-everywhere-src-$(QTWAYLAND_VERSION) qtwayland-$(QTWAYLAND_VERSION)
sed -i.orig '/SUBDIRS/d' "$(UNPACK_DIR)/tests/tests.pro"
sed -i.orig 's/"egl drm"/"egl"/g' \
$(UNPACK_DIR)/src/compositor/configure.json \
$(UNPACK_DIR)/src/client/configure.json
$(MOVE)
.qtwayland: qtwayland
cd $< && $(PREFIX)/lib/qt5/bin/qmake
# Make && Install libraries
cd $< && $(MAKE)
cd $< && $(MAKE) -C src \
INSTALL_FILE="$(QT_QINSTALL)" VLC_PREFIX="$(PREFIX)" \
sub-plugins-install_subtargets
touch $@
59155fc97da3f7571da37dd63bed79f61580fa4df7d4886df51520ea6fe8e01e7c09f0aa9caaeaa986c0e5eac11d4479c99c892da4d075c6369b535fd505b084 qtx11extras-5.15.1.tar.xz
# qtx11extras
QTX11_VERSION_MAJOR := 5.15
QTX11_VERSION:= $(QTX11_VERSION_MAJOR).1
QTX11_URL := http://download.qt.io/official_releases/qt/$(QTX11_VERSION_MAJOR)/$(QTX11_VERSION)/submodules/qtx11extras-everywhere-src-$(QTX11_VERSION).tar.xz
DEPS_qtx11extras += qt $(DEPS_qt)
$(TARBALLS)/qtx11extras-$(QTX11_VERSION).tar.xz:
$(call download,$(QTX11_URL))
.sum-qtx11extras: qtx11extras-$(QTX11_VERSION).tar.xz
qtx11extras: qtx11extras-$(QTX11_VERSION).tar.xz .sum-qtx11extras
$(UNPACK)
mv qtx11extras-everywhere-src-$(QTX11_VERSION) qtx11extras-$(QTX11_VERSION)
$(MOVE)
.qtx11extras: qtx11extras
cd $< && $(PREFIX)/lib/qt5/bin/qmake
# Make && Install libraries
cd $< && $(MAKE) install INSTALL_FILE="$(QT_QINSTALL)" VLC_PREFIX="$(PREFIX)"
touch $@
......@@ -13,6 +13,11 @@
SUFFIXES += .ui .h .hpp .moc.cpp .qml
vlc_qt_check_SOURCES = gui/qt/vlc-qt-check.cpp gui/qt/plugins.hpp
vlc_qt_check_CXXFLAGS = $(AM_CXXFLAGS) $(QT_CFLAGS) -fPIC $(CXXFLAGS_qt)
vlc_qt_check_CPPFLAGS = $(AM_CPPFLAGS)
vlc_qt_check_LDADD = $(QT_LIBS) $(LIBS_qt) $(QT5_PLUGINS_LIBS) $(QT5_PLATFORM_PLUGINS_LIBS)
libqt_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) \
-I$(srcdir)/gui/qt -I$(builddir)/gui/qt/ \
-I$(builddir)/gui/qt/dialogs/extended \
......@@ -27,14 +32,16 @@ libqt_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) \
-I$(builddir)/gui/qt/dialogs/vlm
libqt_plugin_la_CXXFLAGS = $(AM_CXXFLAGS) $(QT_CFLAGS) $(CXXFLAGS_qt)
libqt_plugin_la_LIBADD = $(QT_LIBS) $(LIBS_qt) $(LIBM)
libqt_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(guidir)'
libqt_plugin_la_LIBADD = $(QT_LIBS) $(LIBS_qt) $(LIBM) \
$(QT5_PLUGINS_LIBS) $(QT5_PLATFORM_PLUGINS_LIBS)
libqt_plugin_la_LDFLAGS = $(AM_LDFLAGS)
if HAVE_DARWIN
libqt_plugin_la_LDFLAGS += -Wl,-framework,Cocoa
endif
if HAVE_QT5_X11
libqt_plugin_la_CXXFLAGS += $(QT5_X11_CFLAGS) -DQT5_HAS_X11
libqt_plugin_la_LIBADD += $(QT5_X11_LIBS) $(X_LIBS) $(X_PRE_LIB) -lX11
vlc_qt_check_CPPFLAGS += $(QT5_WAYLAND_CFLAGS) -DQT5_HAS_X11
endif
if HAVE_XCB
......@@ -55,6 +62,12 @@ libqt_plugin_la_CPPFLAGS += -DQT5_HAS_WAYLAND \
libqt_plugin_la_CXXFLAGS += $(WAYLAND_CLIENT_CFLAGS)
libqt_plugin_la_LIBADD += $(WAYLAND_CLIENT_LIBS)
endif
if HAVE_QT5_WAYLAND
libqt_plugin_la_CPPFLAGS += $(QT5_WAYLAND_CFLAGS)
libqt_plugin_la_LIBADD += $(QT5_WAYLAND_LIBS)
vlc_qt_check_CPPFLAGS += $(QT5_WAYLAND_CFLAGS) -DQT5_HAS_WAYLAND
vlc_qt_check_LDADD += $(QT5_WAYLAND_LIBS)
endif
if HAVE_WIN32
libqt_plugin_la_CXXFLAGS += $(LIBCOMCXXFLAGS)
libqt_plugin_la_LIBADD += $(LIBCOM) -lcomctl32 -luuid -ld3d11
......@@ -67,7 +80,7 @@ libqt_plugin_la_CPPFLAGS += -DQT_QML_DEBUG
endif
libqt_plugin_la_SOURCES = \
gui/qt/qt.cpp gui/qt/qt.hpp \
gui/qt/qt.cpp gui/qt/qt.hpp gui/qt/plugins.hpp \
gui/qt/dialogs/bookmarks/bookmarks.cpp gui/qt/dialogs/bookmarks/bookmarks.hpp \
gui/qt/dialogs/dialogs/dialogmodel.cpp \
gui/qt/dialogs/dialogs/dialogmodel.hpp \
......@@ -1058,10 +1071,6 @@ gui/qt/resources.cpp: $(lib_qt_plugin_la_QRC) $(libqt_plugin_la_RES) $(libqt_plu
endif
vlc_qt_check_SOURCES = gui/qt/vlc-qt-check.cpp
vlc_qt_check_CXXFLAGS = $(AM_CXXFLAGS) $(QT_CFLAGS) -fPIC $(CXXFLAGS_qt)
vlc_qt_check_LDADD = $(QT_LIBS)
if ENABLE_QT
gui_LTLIBRARIES += libqt_plugin.la
BUILT_SOURCES += $(nodist_libqt_plugin_la_SOURCES)
......
/*****************************************************************************
* plugins.hpp : Qt static plugin integration
****************************************************************************
* Copyright © 2006-2009 the VideoLAN team
* Copyright © 2022 Videolabs
*
* Authors: Clément Stenac <zorglub@videolan.org>
* Jean-Baptiste Kempf <jb@videolan.org>
* Alexandre Janniaux <ajanni@videolabs.io>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#if !defined(QT_STATIC) && !defined(QT_SHARED)
# error "Make sure qconfig.h was included before"
#endif
#if !defined(Q_IMPORT_PLUGIN)
# error "Make sure QtPlugin was included before"
#endif
#ifdef QT_STATIC /* For static builds */
Q_IMPORT_PLUGIN(QSvgIconPlugin)
Q_IMPORT_PLUGIN(QSvgPlugin)
Q_IMPORT_PLUGIN(QJpegPlugin)
Q_IMPORT_PLUGIN(QtQuick2Plugin)
Q_IMPORT_PLUGIN(QtQuickControls2Plugin)
Q_IMPORT_PLUGIN(QtQuickLayoutsPlugin)
Q_IMPORT_PLUGIN(QtQuick2WindowPlugin)
Q_IMPORT_PLUGIN(QtQuickTemplates2Plugin)
Q_IMPORT_PLUGIN(QtQmlModelsPlugin)
Q_IMPORT_PLUGIN(QtGraphicalEffectsPlugin)
Q_IMPORT_PLUGIN(QtGraphicalEffectsPrivatePlugin)
Q_IMPORT_PLUGIN(QmlShapesPlugin)
#if QT_VERSION >= QT_VERSION_CHECK(5,15,0)
Q_IMPORT_PLUGIN(QtQmlPlugin)
#endif
#ifdef _WIN32
Q_IMPORT_PLUGIN(QWindowsVistaStylePlugin)
Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin)
#elif defined(Q_OS_MACOS)
Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin)
#endif
#if defined(QT5_HAS_X11)
Q_IMPORT_PLUGIN(QXcbIntegrationPlugin)
Q_IMPORT_PLUGIN(QXcbGlxIntegrationPlugin)
#endif
#if defined(QT5_HAS_WAYLAND)
Q_IMPORT_PLUGIN(QWaylandEglPlatformIntegrationPlugin)
Q_IMPORT_PLUGIN(QWaylandIntegrationPlugin)
Q_IMPORT_PLUGIN(QWaylandXdgShellIntegrationPlugin)
#endif
#endif
......@@ -25,6 +25,13 @@
# include "config.h"
#endif
#include <qconfig.h>
#include <QtPlugin>
QT_BEGIN_NAMESPACE
#include "plugins.hpp"
QT_END_NAMESPACE
#define VLC_MODULE_LICENSE VLC_LICENSE_GPL_2_PLUS
#include <stdlib.h>
......@@ -68,36 +75,7 @@ extern "C" char **environ;
#include <vlc_window.h>
#include <vlc_cxx_helpers.hpp>
#ifdef QT_STATIC /* For static builds */
#include <QtPlugin>
#include <QQuickWindow>
#ifdef QT_STATICPLUGIN
Q_IMPORT_PLUGIN(QSvgIconPlugin)
Q_IMPORT_PLUGIN(QSvgPlugin)
Q_IMPORT_PLUGIN(QJpegPlugin)
Q_IMPORT_PLUGIN(QtQuick2Plugin)
Q_IMPORT_PLUGIN(QtQuickControls2Plugin)
Q_IMPORT_PLUGIN(QtQuickLayoutsPlugin)
Q_IMPORT_PLUGIN(QtQuick2WindowPlugin)
Q_IMPORT_PLUGIN(QtQuickTemplates2Plugin)
Q_IMPORT_PLUGIN(QtQmlModelsPlugin)
Q_IMPORT_PLUGIN(QtGraphicalEffectsPlugin)
Q_IMPORT_PLUGIN(QtGraphicalEffectsPrivatePlugin)
Q_IMPORT_PLUGIN(QmlShapesPlugin)
#if QT_VERSION >= QT_VERSION_CHECK(5,15,0)
Q_IMPORT_PLUGIN(QtQmlPlugin)
#endif
#ifdef _WIN32
Q_IMPORT_PLUGIN(QWindowsVistaStylePlugin)
Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin)
#elif defined(Q_OS_MACOS)
Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin)
#endif
#endif
#endif
#include <QQuickWindow>
#ifndef X_DISPLAY_MISSING
# include <vlc_xlib.h>
......
......@@ -24,14 +24,26 @@
#include <stdlib.h>
#include <QApplication>
#include <QTextStream>
#include <QtGlobal>
#include <iostream>
static void messageOutput(QtMsgType type, const QMessageLogContext &,
const QString &)
const QString &msg)
{
if (type == QtFatalMsg)
{
std::cerr << msg.toUtf8().constData() << std::endl;
exit(1);
}
}
#include <qconfig.h>
#include <QtPlugin>
QT_BEGIN_NAMESPACE
#include "plugins.hpp"
QT_END_NAMESPACE
int main(int argc, char *argv[])
{
qInstallMessageHandler(messageOutput);
......