Package Details: citra-git r9037.c40871f12-1

Git Clone URL: https://aur.archlinux.org/citra-git.git (read-only, click to copy)
Package Base: citra-git
Description: An experimental open-source Nintendo 3DS emulator/debugger
Upstream URL: https://github.com/citra-emu/citra/
Licenses: GPL2
Submitter: ceri
Maintainer: timschumi
Last Packager: timschumi
Votes: 61
Popularity: 0.83
First Submitted: 2014-05-01 08:32
Last Updated: 2021-08-13 22:13

Latest Comments

1 2 3 4 5 6 ... Next › Last »

timschumi commented on 2021-08-13 09:48

This patch fixes clang builds and builds for those who have lto enabled in their makepkg.conf. The clang fix consists of increasing the bracket-depth in the CXXFLAGS, whilst the lto fix consists of just disabling lto.

I kind of marked the E-Mail notification as read and forgot about it five minutes later. Sorry for that.

I'll look into it and apply the patch if necessary.

Does !lto or lto in makepkg.conf mean it's enabled (doesn't say in the wiki), MUST it be included in the PKGBUILD when used

"lto" means that LTO is enabled, and "!lto" ("not lto") means that it's disabled.

Neko-san commented on 2021-08-13 08:22

@mikoxyz I've been trying to figure out how to compile this with Clang for a while Lol

Does !lto or lto in makepkg.conf mean it's enabled (doesn't say in the wiki), MUST it be included in the PKGBUILD when used, and would you happen to know why -stdlib=libc++ -lstdc++ don't work as flags?

I can't seem to get this to compile with Clang no matter what I do when I try to do this :/

#!/hint/bash
#
# /etc/makepkg.conf
#

#########################################################################
# SOURCE ACQUISITION
#########################################################################
#
#-- The download utilities that makepkg should use to acquire sources
#  Format: 'protocol::agent'
DLAGENTS=('file::/usr/bin/curl -gqC - -o %o %u'
          'ftp::/usr/bin/curl -gqfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
          'http::/usr/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
          'https::/usr/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
          'rsync::/usr/bin/rsync --no-motd -z %u %o'
          'scp::/usr/bin/scp -C %u %o')

# Other common tools:
# /usr/bin/snarf
# /usr/bin/lftpget -c
# /usr/bin/wget
# /usr/bin/axel

#-- The package required by makepkg to download VCS sources
#  Format: 'protocol::package'
VCSCLIENTS=('bzr::bzr'
            'fossil::fossil'
            'git::git'
            'hg::mercurial'
            'svn::subversion')

#########################################################################
# ARCHITECTURE, COMPILE FLAGS
#########################################################################
#
CARCH="x86_64"
CHOST="x86_64-pc-linux-gnu"

#-- Compiler and Linker Flags
export CC=clang
export CXX=clang++

#CPPFLAGS=""
CFLAGS="-march=native -mtune=native -O3 -pipe -fno-plt -minline-all-stringops -stdlib=libc++ -lstdc++ -fexceptions \
        -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
        -fstack-clash-protection -fcf-protection"
CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
LDFLAGS="-Wl,-O3,--sort-common,--as-needed,-z,relro,-z,now"
RUSTFLAGS="-C opt-level=3 -C target-cpu=native"
#-- Make Flags: change this for DistCC/SMP systems
MAKEFLAGS="-j$(nproc) -e"
#-- Debugging flags
## The "-fvar-tracking-assignments" flag is for GCC
#DEBUG_CFLAGS="-g -fvar-tracking-assignments"
DEBUG_CLAGS="-g"
#DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"
DEBUG_CXXFLAGS="-g"
#DEBUG_RUSTFLAGS="-C debuginfo=2"

#########################################################################
# BUILD ENVIRONMENT
#########################################################################
#
# Makepkg defaults: BUILDENV=(!distcc !color !ccache check !sign)
#  A negated environment option will do the opposite of the comments below.
#
#-- distcc:   Use the Distributed C/C++/ObjC compiler
#-- color:    Colorize output messages
#-- ccache:   Use ccache to cache compilation
#-- check:    Run the check() function if present in the PKGBUILD
#-- sign:     Generate PGP signature file
#
BUILDENV=(!distcc color !ccache check !sign)
#
#-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
#-- specify a space-delimited list of hosts running in the DistCC cluster.
#DISTCC_HOSTS=""
#
#-- Specify a directory for package building.
#BUILDDIR=/tmp/makepkg

#########################################################################
# GLOBAL PACKAGE OPTIONS
#   These are default values for the options=() settings
#########################################################################
#
# Makepkg defaults: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug !lto)
#  A negated option will do the opposite of the comments below.
#
#-- strip:      Strip symbols from binaries/libraries
#-- docs:       Save doc directories specified by DOC_DIRS
#-- libtool:    Leave libtool (.la) files in packages
#-- staticlibs: Leave static library (.a) files in packages
#-- emptydirs:  Leave empty directories in packages
#-- zipman:     Compress manual (man and info) pages in MAN_DIRS with gzip
#-- purge:      Remove files specified by PURGE_TARGETS
#-- debug:      Add debugging flags as specified in DEBUG_* variables
#-- lto:        Add compile flags for building with link time optimization
#
OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug lto)

#-- File integrity checks to use. Valid: md5, sha1, sha224, sha256, sha384, sha512, b2
INTEGRITY_CHECK=(sha256)
#-- Options to be used when stripping binaries. See `man strip' for details.
STRIP_BINARIES="--strip-all"
#-- Options to be used when stripping shared libraries. See `man strip' for details.
STRIP_SHARED="--strip-unneeded"
#-- Options to be used when stripping static libraries. See `man strip' for details.
STRIP_STATIC="--strip-debug"
#-- Manual (man and info) directories to compress (if zipman is specified)
MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info})
#-- Doc directories to remove (if !docs is specified)
DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc})
#-- Files to be removed from all packages (if purge is specified)
PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
#-- Directory to store source code in for debug packages
DBGSRCDIR="/usr/src/debug"

#########################################################################
# PACKAGE OUTPUT
#########################################################################
#
# Default: put built package and cached source in build directory
#
#-- Destination: specify a fixed directory where all packages will be placed
#PKGDEST=/home/packages
#-- Source cache: specify a fixed directory where source files will be cached
#SRCDEST=/home/sources
#-- Source packages: specify a fixed directory where all src packages will be placed
#SRCPKGDEST=/home/srcpackages
#-- Log files: specify a fixed directory where all log files will be placed
#LOGDEST=/home/makepkglogs
#-- Packager: name/email of the person or organization building packages
#PACKAGER="John Doe <john@doe.com>"
#-- Specify a key to use for package signing
#GPGKEY=""

#########################################################################
# COMPRESSION DEFAULTS
#########################################################################
#
COMPRESSGZ=(gzip -c -f -n)
COMPRESSBZ2=(bzip2 -c -f)
COMPRESSXZ=(xz -c -z --threads=0 -)
COMPRESSZST=(zstd -c -z -q --threads=0 -)
COMPRESSLRZ=(lrzip -q)
COMPRESSLZO=(lzop -q)
COMPRESSZ=(compress -c -f)
COMPRESSLZ4=(lz4 -q)
COMPRESSLZ=(lzip -c -f)

#########################################################################
# EXTENSION DEFAULTS
#########################################################################
#
PKGEXT='.pkg.tar.zst'
SRCEXT='.src.tar.gz'

#########################################################################
# OTHER
#########################################################################
#
#-- Command used to run pacman as root, instead of trying sudo and su
#PACMAN_AUTH=()

mikoxyz commented on 2021-07-29 11:35

This patch fixes clang builds and builds for those who have lto enabled in their makepkg.conf. The clang fix consists of increasing the bracket-depth in the CXXFLAGS, whilst the lto fix consists of just disabling lto.

diff --git a/PKGBUILD b/PKGBUILD
index dff4422..b5e8d16 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -13,6 +13,7 @@ url="https://github.com/citra-emu/citra/"
 license=('GPL2')
 depends=('ffmpeg')
 makedepends=('git' 'cmake' 'sdl2' 'qt5-base' 'shared-mime-info' 'desktop-file-utils' 'qt5-multimedia')
+options=('!lto')
 source=("$_pkgbase::git+https://github.com/citra-emu/citra")
 md5sums=('SKIP')

@@ -35,6 +36,11 @@ build() {
        # Fix for an issue some users are facing when compiling with GCC
        CXXFLAGS+=" -DFMT_USE_USER_DEFINED_LITERALS=0"

+       # The build fails with clang if this isn't set
+       if [ $CXX == clang++ ]; then
+               CXXFLAGS+=" -fbracket-depth=649"
+       fi
+
        cmake .. \
          -DCMAKE_INSTALL_PREFIX=/usr \
          -DCMAKE_BUILD_TYPE=Release \

JTF commented on 2020-07-16 17:46

I was able to build this a few weeks ago but now I get this error:

==> Entering fakeroot environment...
==> Starting package_citra-git()...
install: cannot stat '/var/tmp/pamac-build-name/citra-git/src/citra/build/bin/citra': No such file or directory
==> ERROR: A failure occurred in package_citra-git().
    Aborting...

EDIT: Building works after the 2020-07-16 20:04 Update. Thanks.

Laserentchen commented on 2020-04-14 17:46

@timschumi

Thanks! Building with yay works again.

Laserentchen commented on 2020-04-13 16:15

@timschumi

Thank you for the rapid feedback and the fix!

Is it possible to add qt5-multimedia as a package dependency for citra-qt-git and (again) as make dependency for the base package instead?

timschumi commented on 2020-04-13 12:04

@Laserentchen

Should be fine now. It was only listed as a build-time dependency before.

Laserentchen commented on 2020-04-13 04:55

qt5-multimedia seems to be a dependency for citra-qt:

citra-qt: error while loading shared libraries: libQt5Multimedia.so.5: cannot open shared object file: No such file or directory

cnte commented on 2020-02-26 13:13

@timschumi Oh, thank you! I should've thought of that. Now it's working!

timschumi commented on 2020-02-24 13:44

@cnte No issues here, even on a totally clean environment. However, the error output you posted indicates that a few repositories failed to download/checkout. You might want to try clearing out your src directory.