Skip to main content
Topic: recursive option in PKGBUILD and "class QAction" (Read 1799 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

recursive option in PKGBUILD and "class QAction"

Hey everyone, how do I make it so a PKGBUILD will do a recursive git clone?

Code: [Select]

source=('citra::git+https://github.com/citra-emu/citra.git#recursive')
sha256sums=('SKIP')


#recursive doesn't work, I thought it might since #branch=medusa works for medusa-emu.

And then I've got this going on too, this strange class QAction error thing. Any ideas what might be causing this?

Code: [Select]

/home/user/Compiles/medusa-emu-fresh/src/medusa/src/platform/qt/LoadSaveState.cpp: In constructor ‘QGBA::LoadSaveState::LoadSaveState(std::shared_ptr<QGBA::CoreController>, QWidget*)’:
/home/user/Compiles/medusa-emu-fresh/src/medusa/src/platform/qt/LoadSaveState.cpp:59:36: error: invalid use of incomplete type ‘class QAction’
  QAction* escape = new QAction(this);
                                    ^
In file included from /usr/include/qt/QtWidgets/QWidget:1,
                 from /home/user/Compiles/medusa-emu-fresh/src/medusa/src/platform/qt/LoadSaveState.h:8,
                 from /home/user/Compiles/medusa-emu-fresh/src/medusa/src/platform/qt/LoadSaveState.cpp:6:
/usr/include/qt/QtWidgets/qwidget.h:68:7: note: forward declaration of ‘class QAction’
 class QAction;
       ^~~~~~~
/home/user/Compiles/medusa-emu-fresh/src/medusa/src/platform/qt/LoadSaveState.cpp:60:28: error: incomplete type ‘QAction’ used in nested name specifier
  connect(escape, &QAction::triggered, this, &QWidget::close);
                            ^~~~~~~~~
/home/user/Compiles/medusa-emu-fresh/src/medusa/src/platform/qt/LoadSaveState.cpp:61:8: error: invalid use of incomplete type ‘class QAction’
  escape->setShortcut(QKeySequence("Esc"));
        ^~
In file included from /usr/include/qt/QtWidgets/QWidget:1,
                 from /home/user/Compiles/medusa-emu-fresh/src/medusa/src/platform/qt/LoadSaveState.h:8,
                 from /home/user/Compiles/medusa-emu-fresh/src/medusa/src/platform/qt/LoadSaveState.cpp:6:
/usr/include/qt/QtWidgets/qwidget.h:68:7: note: forward declaration of ‘class QAction’
 class QAction;
       ^~~~~~~
/home/user/Compiles/medusa-emu-fresh/src/medusa/src/platform/qt/LoadSaveState.cpp:62:8: error: invalid use of incomplete type ‘class QAction’
  escape->setShortcutContext(Qt::WidgetWithChildrenShortcut);
        ^~
In file included from /usr/include/qt/QtWidgets/QWidget:1,
                 from /home/user/Compiles/medusa-emu-fresh/src/medusa/src/platform/qt/LoadSaveState.h:8,
                 from /home/user/Compiles/medusa-emu-fresh/src/medusa/src/platform/qt/LoadSaveState.cpp:6:
/usr/include/qt/QtWidgets/qwidget.h:68:7: note: forward declaration of ‘class QAction’
 class QAction;


Re: recursive option in PKGBUILD and "class QAction"

Reply #1
Do you mean submodules ?
If so here is example:
https://wiki.archlinux.org/index.php/VCS_package_guidelines#Git_Submodules

QAction... it could be caused by different Qt version, probably you should include header containing QAction class,
or ask their support / devs to fix it

Re: recursive option in PKGBUILD and "class QAction"

Reply #2
Thanks SGOrava, I have found a fix for the --recursive option by adding this:
git submodule update --init --recursive

How does one include a header containing QAction class? I'm really not sure where to even begin with errors like these, I've tried googling, but a lot of answers I can't understand, I'm still learning how to PKGBUILD, so this is really good practice.


Code: [Select]

pkgname=citra-emu-fresh
pkgver=0
pkgrel=1
pkgdesc='An experimental open-source Nintendo 3DS emulator/debugger'
arch=('i686' 'x86_64')
url='http://www.github.com/citra-emu/citra/'
license=('GPL2')
makedepends=('git' 'cmake' 'sdl2' 'qt5-base' 'shared-mime-info' 'desktop-file-utils' 'boost')
source=('citra::git+https://github.com/citra-emu/citra.git')
sha256sums=('SKIP')

build() {

mkdir -p citra/build
cd citra

git submodule update --init --recursive
cd build

cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release ..
make -j48
}

package() {
cd citra/build

make DESTDIR="${pkgdir}" install
}



Re: recursive option in PKGBUILD and "class QAction"

Reply #3
Quote
How does one include a header containing QAction class? I'm really not sure where to even begin with errors like these, I've tried googling, but a lot of answers I can't understand, I'm still learning how to PKGBUILD, so this is really good practice.

It is error in program code, file bugreport (or create issue on GitHub) to the developers.
The way how to fix it on your own is to check files reported by compiler and fix the bug, after that create patch. For this you need some knowledge which you dont have (probably).

But why are you trying to package this SW when (according to git url you used) is already in AUR ?
https://aur.archlinux.org/packages/citra-git/