Open ofry opened 5 years ago
I think this is related: https://github.com/libretro/RetroArch/pull/7569
I have no way to test a shared lua and that PR was ignored...
@orbea There are lua packages in MinGW/MSYS2 toolchain.
$ pacman -Ss lua
mingw32/mingw-w64-i686-lua 5.3.5-1 [установлен]
A powerful light-weight programming language designed for extending applications. (mingw-w64)
mingw32/mingw-w64-i686-lua-lpeg 1.0.1-1
Pattern-matching library for Lua (mingw-w64)
mingw32/mingw-w64-i686-lua-mpack 1.0.7-1
Msgpack serialization library for Lua (mingw-w64)
mingw32/mingw-w64-i686-lua51 5.1.5-4 [установлен]
A powerful light-weight programming language designed for extending applications. Version 5.1.x (mingw-w64)
mingw32/mingw-w64-i686-lua51-bitop 1.0.2-1
C extension adding bitwise operations on numbers for Lua (mingw-w64)
mingw32/mingw-w64-i686-lua51-lgi 0.9.2-1
LGI is gobject-introspection based dynamic Lua binding to GObject based libraries (mingw-w64)
mingw32/mingw-w64-i686-lua51-lpeg 1.0.1-1
Pattern-matching library for Lua 5.1 (mingw-w64)
mingw32/mingw-w64-i686-lua51-lsqlite3 0.9.3-1
LuaSQLite is a Lua 5 binding to allow users/developers to manipulate SQLite 2 and SQLite 3 databases (through different implementations) from lua
mingw32/mingw-w64-i686-lua51-luarocks 2.4.4-1
the package manager for Lua modules (mingw-w64)
mingw32/mingw-w64-i686-lua51-mpack 1.0.7-1
Msgpack serialization library for Lua 5.1 (mingw-w64)
mingw32/mingw-w64-i686-lua51-winapi 1.4.2-1
Minimal but useful Lua bindings to the Windows API
mingw32/mingw-w64-i686-luabind-git 0.9.1.144.ge414c57-1 [установлен]
A library that helps you create bindings between C++ and Lua (mingw-w64)
mingw32/mingw-w64-i686-luajit-git 2.0.4.49.ga68c411-1
Just-in-time compiler and drop-in replacement for Lua 5.1 (mingw-w64)
mingw32/mingw-w64-i686-premake 4.3-2
A build configuration tool. Describe your build using Lua and generate the project files for your specific toolset (mingw-w64)
mingw32/mingw-w64-i686-python2-numexpr 2.6.9-1
Fast numerical array expression evaluator for Python, NumPy, PyTables, pandas (mingw-w64)
mingw32/mingw-w64-i686-python2-theano 1.0.4-1
Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently. (mingw-w64)
mingw32/mingw-w64-i686-python3-numexpr 2.6.9-1
Fast numerical array expression evaluator for Python, NumPy, PyTables, pandas (mingw-w64)
mingw32/mingw-w64-i686-python3-theano 1.0.4-1
Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently. (mingw-w64)
mingw32/mingw-w64-i686-tolua 5.2.4-3 [установлен]
A tool that greatly simplifies the integration of C/C++ code with Lua (mingw-w64)
mingw64/mingw-w64-x86_64-lua 5.3.5-1 [установлен]
A powerful light-weight programming language designed for extending applications. (mingw-w64)
mingw64/mingw-w64-x86_64-lua-lpeg 1.0.1-1
Pattern-matching library for Lua (mingw-w64)
mingw64/mingw-w64-x86_64-lua-mpack 1.0.7-1
Msgpack serialization library for Lua (mingw-w64)
mingw64/mingw-w64-x86_64-lua51 5.1.5-4 [установлен]
A powerful light-weight programming language designed for extending applications. Version 5.1.x (mingw-w64)
mingw64/mingw-w64-x86_64-lua51-bitop 1.0.2-1
C extension adding bitwise operations on numbers for Lua (mingw-w64)
mingw64/mingw-w64-x86_64-lua51-lgi 0.9.2-1
LGI is gobject-introspection based dynamic Lua binding to GObject based libraries (mingw-w64)
mingw64/mingw-w64-x86_64-lua51-lpeg 1.0.1-1
Pattern-matching library for Lua 5.1 (mingw-w64)
mingw64/mingw-w64-x86_64-lua51-lsqlite3 0.9.3-1
LuaSQLite is a Lua 5 binding to allow users/developers to manipulate SQLite 2 and SQLite 3 databases (through different implementations) from lua
mingw64/mingw-w64-x86_64-lua51-luarocks 2.4.4-1
the package manager for Lua modules (mingw-w64)
mingw64/mingw-w64-x86_64-lua51-mpack 1.0.7-1
Msgpack serialization library for Lua 5.1 (mingw-w64)
mingw64/mingw-w64-x86_64-lua51-winapi 1.4.2-1
Minimal but useful Lua bindings to the Windows API
mingw64/mingw-w64-x86_64-luabind-git 0.9.1.144.ge414c57-1 [установлен]
A library that helps you create bindings between C++ and Lua (mingw-w64)
mingw64/mingw-w64-x86_64-luajit-git 2.0.4.49.ga68c411-1
Just-in-time compiler and drop-in replacement for Lua 5.1 (mingw-w64)
mingw64/mingw-w64-x86_64-premake 4.3-2
A build configuration tool. Describe your build using Lua and generate the project files for your specific toolset (mingw-w64)
mingw64/mingw-w64-x86_64-python2-numexpr 2.6.9-1
Fast numerical array expression evaluator for Python, NumPy, PyTables, pandas (mingw-w64)
mingw64/mingw-w64-x86_64-python2-theano 1.0.4-1
Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently. (mingw-w64)
mingw64/mingw-w64-x86_64-python3-numexpr 2.6.9-1
Fast numerical array expression evaluator for Python, NumPy, PyTables, pandas (mingw-w64)
mingw64/mingw-w64-x86_64-python3-theano 1.0.4-1
Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently. (mingw-w64)
mingw64/mingw-w64-x86_64-tolua 5.2.4-3 [установлен]
A tool that greatly simplifies the integration of C/C++ code with Lua (mingw-w64)
Is it enough for test?
Testing it during the build is no problem for me, testing it during runtime is. I think its only used for the new cheevos implementation and I haven't used that before (Or the old cheevos).
I rebased my branch and found it doesn't build with lua51, but it does with lua52. I'll look to see if lua53 builds as well tomorrow.
https://github.com/orbea/RetroArch/commit/3ad7c92f786f0160e511cd0487ce022122ab31c7
If you want to test it you need ./configure --enable-new_cheevos --enable-lua --disable-builtinlua
.
ofry@games MINGW64 ~/orbea-Retroarch
$ make clean && ./configure --enable-new_cheevos --enable-lua --disable-builtinlua
rm -rf obj-unix
rm -f retroarch
rm -f *.d
Checking operating system ... Win32
Unknown option --disable-builtinlua
Its not merged in the master, only on my branch.
$ make clean && ./configure --enable-new_cheevos --enable-lua --disable-builtinlua && make
rm -rf obj-unix
rm -f retroarch
rm -f *.d
Checking operating system ... Win32
Checking for suitable working C compiler ... /mingw64/bin/gcc works
Checking for suitable working C++ compiler ... /mingw64/bin/g++ works
Checking for windres ... /mingw64/bin/windres
Checking for pkg-config ... /mingw64/bin/pkg-config
Checking for availability of switch -std=gnu99 in /mingw64/bin/gcc ... yes
Checking for availability of switch -Wno-unused-result in /mingw64/bin/gcc ... yes
Checking for availability of switch -Wno-unused-variable in /mingw64/bin/gcc ... yes
Checking function sd_get_machine_names in -lsystemd ... no
Checking presence of package bcm_host ... no
Checking function bcm_host_init in -lbcm_host ... no
Checking function ass_library_init in -lass ... yes
Checking function pthread_create in -lpthread ... yes
Checking function pthread_key_create in -lpthread ... yes
Checking function socket in -lws2_32 ... yes
Checking existence of -lminiupnpc ... yes
Checking function fcntl in -lc ... no
Checking function getopt_long in -lc ... no
Checking presence of package alsa ... no
Checking presence of predefined macro AUDIO_SETINFO in sys/audioio.h ... no
Checking presence of header file sys/soundcard.h ... no
Checking presence of header file soundcard.h ... no
Checking existence of -lossaudio ... no
Checking function alcOpenDevice in -lopenal ... yes
Checking presence of package rsound >= 1.1 ... no
Checking presence of package libroar ... no
Checking presence of package jack >= 0.120.1 ... no
Checking presence of package libpulse ... no
Checking presence of package sdl >= 1.2.10 ... 1.2.15
Checking presence of package sdl2 >= 2.0.0 ... 2.0.9
Notice: SDL drivers will be replaced by SDL2 ones.
Checking presence of package Qt5Core >= 5.2 ... 5.12.0
Checking presence of package Qt5Gui >= 5.2 ... 5.12.0
Checking presence of package Qt5Widgets >= 5.2 ... 5.12.0
Checking presence of package Qt5Concurrent >= 5.2 ... 5.12.0
Checking presence of package Qt5Network >= 5.2 ... 5.12.0
Checking presence of package openssl >= 1.0.0 ... 1.1.1a
Checking presence of package flac ... 1.3.2
Checking presence of header file mbedtls/entropy.h ... yes
Checking existence of -lmbedtls ... yes
Checking existence of -lmbedx509 ... yes
Checking existence of -lmbedcrypto ... yes
Checking presence of package lua5.2 ... no
Forced to build with package lua5.2, but cannot locate. Exiting ...
But:
$ pacman -Ss lua
mingw32/mingw-w64-i686-lua 5.3.5-1 [установлен]
A powerful light-weight programming language designed for extending applications. (mingw-w64)
mingw32/mingw-w64-i686-lua-lpeg 1.0.1-1 [установлен]
Pattern-matching library for Lua (mingw-w64)
mingw32/mingw-w64-i686-lua-mpack 1.0.7-1 [установлен]
Msgpack serialization library for Lua (mingw-w64)
mingw32/mingw-w64-i686-lua51 5.1.5-4 [установлен]
A powerful light-weight programming language designed for extending applications. Version 5.1.x (mingw-w64)
mingw32/mingw-w64-i686-lua51-bitop 1.0.2-1 [установлен]
C extension adding bitwise operations on numbers for Lua (mingw-w64)
mingw32/mingw-w64-i686-lua51-lgi 0.9.2-1 [установлен]
LGI is gobject-introspection based dynamic Lua binding to GObject based libraries (mingw-w64)
mingw32/mingw-w64-i686-lua51-lpeg 1.0.1-1 [установлен]
Pattern-matching library for Lua 5.1 (mingw-w64)
mingw32/mingw-w64-i686-lua51-lsqlite3 0.9.3-1 [установлен]
LuaSQLite is a Lua 5 binding to allow users/developers to manipulate SQLite 2 and SQLite 3 databases (through different implementations) from lua
mingw32/mingw-w64-i686-lua51-luarocks 2.4.4-1 [установлен]
the package manager for Lua modules (mingw-w64)
mingw32/mingw-w64-i686-lua51-mpack 1.0.7-1 [установлен]
Msgpack serialization library for Lua 5.1 (mingw-w64)
mingw32/mingw-w64-i686-lua51-winapi 1.4.2-1 [установлен]
Minimal but useful Lua bindings to the Windows API
mingw32/mingw-w64-i686-luabind-git 0.9.1.144.ge414c57-1 [установлен]
A library that helps you create bindings between C++ and Lua (mingw-w64)
mingw32/mingw-w64-i686-luajit-git 2.0.4.49.ga68c411-1
Just-in-time compiler and drop-in replacement for Lua 5.1 (mingw-w64)
mingw32/mingw-w64-i686-premake 4.3-2
A build configuration tool. Describe your build using Lua and generate the project files for your specific toolset (mingw-w64)
mingw32/mingw-w64-i686-python2-numexpr 2.6.9-1
Fast numerical array expression evaluator for Python, NumPy, PyTables, pandas (mingw-w64)
mingw32/mingw-w64-i686-python2-theano 1.0.4-1
Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently. (mingw-w64)
mingw32/mingw-w64-i686-python3-numexpr 2.6.9-1
Fast numerical array expression evaluator for Python, NumPy, PyTables, pandas (mingw-w64)
mingw32/mingw-w64-i686-python3-theano 1.0.4-1
Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently. (mingw-w64)
mingw32/mingw-w64-i686-tolua 5.2.4-3 [установлен]
A tool that greatly simplifies the integration of C/C++ code with Lua (mingw-w64)
mingw64/mingw-w64-x86_64-lua 5.3.5-1 [установлен]
A powerful light-weight programming language designed for extending applications. (mingw-w64)
mingw64/mingw-w64-x86_64-lua-lpeg 1.0.1-1 [установлен]
Pattern-matching library for Lua (mingw-w64)
mingw64/mingw-w64-x86_64-lua-mpack 1.0.7-1 [установлен]
Msgpack serialization library for Lua (mingw-w64)
mingw64/mingw-w64-x86_64-lua51 5.1.5-4 [установлен]
A powerful light-weight programming language designed for extending applications. Version 5.1.x (mingw-w64)
mingw64/mingw-w64-x86_64-lua51-bitop 1.0.2-1 [установлен]
C extension adding bitwise operations on numbers for Lua (mingw-w64)
mingw64/mingw-w64-x86_64-lua51-lgi 0.9.2-1 [установлен]
LGI is gobject-introspection based dynamic Lua binding to GObject based libraries (mingw-w64)
mingw64/mingw-w64-x86_64-lua51-lpeg 1.0.1-1 [установлен]
Pattern-matching library for Lua 5.1 (mingw-w64)
mingw64/mingw-w64-x86_64-lua51-lsqlite3 0.9.3-1 [установлен]
LuaSQLite is a Lua 5 binding to allow users/developers to manipulate SQLite 2 and SQLite 3 databases (through different implementations) from lua
mingw64/mingw-w64-x86_64-lua51-luarocks 2.4.4-1 [установлен]
the package manager for Lua modules (mingw-w64)
mingw64/mingw-w64-x86_64-lua51-mpack 1.0.7-1 [установлен]
Msgpack serialization library for Lua 5.1 (mingw-w64)
mingw64/mingw-w64-x86_64-lua51-winapi 1.4.2-1 [установлен]
Minimal but useful Lua bindings to the Windows API
mingw64/mingw-w64-x86_64-luabind-git 0.9.1.144.ge414c57-1 [установлен]
A library that helps you create bindings between C++ and Lua (mingw-w64)
mingw64/mingw-w64-x86_64-luajit-git 2.0.4.49.ga68c411-1
Just-in-time compiler and drop-in replacement for Lua 5.1 (mingw-w64)
mingw64/mingw-w64-x86_64-premake 4.3-2
A build configuration tool. Describe your build using Lua and generate the project files for your specific toolset (mingw-w64)
mingw64/mingw-w64-x86_64-python2-numexpr 2.6.9-1
Fast numerical array expression evaluator for Python, NumPy, PyTables, pandas (mingw-w64)
mingw64/mingw-w64-x86_64-python2-theano 1.0.4-1
Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently. (mingw-w64)
mingw64/mingw-w64-x86_64-python3-numexpr 2.6.9-1
Fast numerical array expression evaluator for Python, NumPy, PyTables, pandas (mingw-w64)
mingw64/mingw-w64-x86_64-python3-theano 1.0.4-1
Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently. (mingw-w64)
mingw64/mingw-w64-x86_64-tolua 5.2.4-3 [установлен]
A tool that greatly simplifies the integration of C/C++ code with Lua (mingw-w64)
I'm not sure which package of those you want, I haven't gotten around to hooking up lua53 yet either. Lua upstream doesn't provide a .pc
file and forces all distros to do it for them downstream so it could be the maintainer for arch neglected to do that and that will have to be worked around?
This package is the one that currently builds here in Slackware linux and my branch.
I think script should check lua 5.1 and 5.3 too...
Lua 5.1 is apparently not supported and won't build. I just haven't gotten to trying lua 5.3 yet.
Lua 5.1 is apparently not supported and won't build. I just haven't gotten to trying lua 5.3 yet.
@orbea I'm not see any info about supported Lua versions in https://github.com/RetroAchievements/rcheevos repo.
Its using features that are not included with lua51, I spent sometime trying to improve qb.libs.sh
to be able to check more than one pkgconfig file or library versions, but I ran into complications with check_lib
... Its going to be a little tricky.
@ofry or anyone else, can you provide me the contents of your available lua52 and lua53 packages?
Good news, I think I have a good start, but it is still missing some details and needs testing.
https://github.com/libretro/RetroArch/commit/92eab164179979f3621be981d3ca8ede41a5cc69
The bad news is I ran into a new roadblock, the new cheevos doesn't build anymore...
cheevos-new/cheevos.c: In function ‘cheevos_award_task_softcore’:
cheevos-new/cheevos.c:445:48: warning: passing argument 4 of ‘task_push_http_transfer’ from incompatible pointer type [-Wincompatible-pointer-types]
task_push_http_transfer(buffer, true, NULL, cheevos_award_task_softcore, user_data);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from cheevos-new/cheevos.c:62:
cheevos-new/../tasks/tasks_internal.h:40:7: note: expected ‘retro_task_callback_t’ {aka ‘void (*)(struct retro_task *, void *, void *, const char *)’} but argument is of type ‘void (*)(void *, void *, const char *)’
void *task_push_http_transfer(const char *url, bool mute, const char *type,
^~~~~~~~~~~~~~~~~~~~~~~
cheevos-new/cheevos.c: In function ‘cheevos_award_task_hardcore’:
cheevos-new/cheevos.c:476:48: warning: passing argument 4 of ‘task_push_http_transfer’ from incompatible pointer type [-Wincompatible-pointer-types]
task_push_http_transfer(buffer, true, NULL, cheevos_award_task_hardcore, user_data);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from cheevos-new/cheevos.c:62:
cheevos-new/../tasks/tasks_internal.h:40:7: note: expected ‘retro_task_callback_t’ {aka ‘void (*)(struct retro_task *, void *, void *, const char *)’} but argument is of type ‘void (*)(void *, void *, const char *)’
void *task_push_http_transfer(const char *url, bool mute, const char *type,
^~~~~~~~~~~~~~~~~~~~~~~
cheevos-new/cheevos.c: In function ‘cheevos_lboard_submit_task’:
cheevos-new/cheevos.c:621:48: warning: passing argument 4 of ‘task_push_http_transfer’ from incompatible pointer type [-Wincompatible-pointer-types]
task_push_http_transfer(buffer, true, NULL, cheevos_lboard_submit_task, user_data);
^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from cheevos-new/cheevos.c:62:
cheevos-new/../tasks/tasks_internal.h:40:7: note: expected ‘retro_task_callback_t’ {aka ‘void (*)(struct retro_task *, void *, void *, const char *)’} but argument is of type ‘void (*)(void *, void *, const char *)’
void *task_push_http_transfer(const char *url, bool mute, const char *type,
^~~~~~~~~~~~~~~~~~~~~~~
cheevos-new/cheevos.c: In function ‘cheevos_test_leaderboards’:
cheevos-new/cheevos.c:676:13: error: too few arguments to function ‘runloop_msg_queue_push’
runloop_msg_queue_push("Leaderboard attempt cancelled!",
^~~~~~~~~~~~~~~~~~~~~~
In file included from cheevos-new/cheevos.c:58:
cheevos-new/../retroarch.h:385:6: note: declared here
void runloop_msg_queue_push(const char *msg,
^~~~~~~~~~~~~~~~~~~~~~
cheevos-new/cheevos.c: In function ‘cheevos_iterate’:
cheevos-new/cheevos.c:1356:10: error: too few arguments to function ‘runloop_msg_queue_push’
runloop_msg_queue_push(
^~~~~~~~~~~~~~~~~~~~~~
In file included from cheevos-new/cheevos.c:58:
cheevos-new/../retroarch.h:385:6: note: declared here
void runloop_msg_queue_push(const char *msg,
^~~~~~~~~~~~~~~~~~~~~~
cheevos-new/cheevos.c:1767:10: error: too few arguments to function ‘runloop_msg_queue_push’
runloop_msg_queue_push(
^~~~~~~~~~~~~~~~~~~~~~
In file included from cheevos-new/cheevos.c:58:
cheevos-new/../retroarch.h:385:6: note: declared here
void runloop_msg_queue_push(const char *msg,
^~~~~~~~~~~~~~~~~~~~~~
cheevos-new/cheevos.c:1770:10: error: too few arguments to function ‘runloop_msg_queue_push’
runloop_msg_queue_push(
^~~~~~~~~~~~~~~~~~~~~~
In file included from cheevos-new/cheevos.c:58:
cheevos-new/../retroarch.h:385:6: note: declared here
void runloop_msg_queue_push(const char *msg,
^~~~~~~~~~~~~~~~~~~~~~
CC deps/rcheevos/src/rcheevos/lboard.c
CC deps/rcheevos/src/rcheevos/alloc.c
make: *** [Makefile:201: obj-unix/release/cheevos-new/cheevos.o] Error 1
make: *** Waiting for unfinished jobs....
@orbea I not see in MSYS2/MinGW lua52 package.
About lua53:
mingw64/mingw-w64-x86_64-lua 5.3.5-1 [установлен]
A powerful light-weight programming language designed for extending applications. (mingw-w64)
ofry@games MSYS ~
$ pacman -Ql mingw-w64-x86_64-lua
mingw-w64-x86_64-lua /mingw64/
mingw-w64-x86_64-lua /mingw64/bin/
mingw-w64-x86_64-lua /mingw64/bin/lua
mingw-w64-x86_64-lua /mingw64/bin/lua.exe
mingw-w64-x86_64-lua /mingw64/bin/lua5.3
mingw-w64-x86_64-lua /mingw64/bin/lua53.dll
mingw-w64-x86_64-lua /mingw64/bin/luac
mingw-w64-x86_64-lua /mingw64/bin/luac.exe
mingw-w64-x86_64-lua /mingw64/bin/luac5.3
mingw-w64-x86_64-lua /mingw64/include/
mingw-w64-x86_64-lua /mingw64/include/lauxlib.h
mingw-w64-x86_64-lua /mingw64/include/lua.h
mingw-w64-x86_64-lua /mingw64/include/lua.hpp
mingw-w64-x86_64-lua /mingw64/include/luaconf.h
mingw-w64-x86_64-lua /mingw64/include/lualib.h
mingw-w64-x86_64-lua /mingw64/lib/
mingw-w64-x86_64-lua /mingw64/lib/liblua.a
mingw-w64-x86_64-lua /mingw64/lib/liblua.dll.a
mingw-w64-x86_64-lua /mingw64/lib/lua/
mingw-w64-x86_64-lua /mingw64/lib/lua/5.3/
mingw-w64-x86_64-lua /mingw64/lib/pkgconfig/
mingw-w64-x86_64-lua /mingw64/lib/pkgconfig/lua.pc
mingw-w64-x86_64-lua /mingw64/lib/pkgconfig/lua5.3.pc
mingw-w64-x86_64-lua /mingw64/share/
mingw-w64-x86_64-lua /mingw64/share/doc/
mingw-w64-x86_64-lua /mingw64/share/doc/lua/
mingw-w64-x86_64-lua /mingw64/share/doc/lua/contents.html
mingw-w64-x86_64-lua /mingw64/share/doc/lua/index.css
mingw-w64-x86_64-lua /mingw64/share/doc/lua/logo.gif
mingw-w64-x86_64-lua /mingw64/share/doc/lua/lua.css
mingw-w64-x86_64-lua /mingw64/share/doc/lua/manual.css
mingw-w64-x86_64-lua /mingw64/share/doc/lua/manual.html
mingw-w64-x86_64-lua /mingw64/share/doc/lua/osi-certified-72x60.png
mingw-w64-x86_64-lua /mingw64/share/doc/lua/readme.html
mingw-w64-x86_64-lua /mingw64/share/licenses/
mingw-w64-x86_64-lua /mingw64/share/licenses/lua/
mingw-w64-x86_64-lua /mingw64/share/licenses/lua/LICENSE
mingw-w64-x86_64-lua /mingw64/share/lua/
mingw-w64-x86_64-lua /mingw64/share/lua/5.3/
mingw-w64-x86_64-lua /mingw64/share/man/
mingw-w64-x86_64-lua /mingw64/share/man/man1/
mingw-w64-x86_64-lua /mingw64/share/man/man1/lua.1.gz
mingw-w64-x86_64-lua /mingw64/share/man/man1/luac.1.gz
Thanks, I might have to give some consideration to the include directories which could be in multiple places for check_val
, but I am going to wait for the new cheevos to build again for now.
The new cheevos builds again thanks to @natinusala so here is an updated commit which successfully builds with a system lua53 or lua52 using the pkgconfig path.
./configure --enable-new_cheevos --enable-lua --disable-builtinlua
make
https://github.com/orbea/RetroArch/commit/f436a04100726e7b083e7d69d2c6d3b98366644e
Remaining problems:
check_header
needs similar work to be able to find lua.h
in three possible places which is required by the rcheevos
dependency.PKG_CONF_PATH=none
doesn't work and check_val
needs to be fixed as well.qb
prints configure output which needs to be made for other parts of the script too for the sake of consistency.@ofry I think this should be close.
https://github.com/orbea/RetroArch/commit/3df935bb5a59fcdcc9b375e278887df985956300
There are some finishing touches, but it would be good to test it during build and runtime now if you can help with that? It successfully builds with lua5.3
or lua5.2
here with or without PKG_CONF_PATH=none
.
ofry@games MINGW64 ~/orbea-Retroarch
$ make clean && ./configure --enable-new_cheevos --enable-lua --disable-builtinlua && mak
rm -rf obj-unix
rm -f retroarch
rm -f *.d
Checking operating system ... Win32
Checking for suitable working C compiler ... /mingw64/bin/gcc works
Checking for suitable working C++ compiler ... /mingw64/bin/g++ works
Checking for windres ... /mingw64/bin/windres
Checking for pkg-config ... /mingw64/bin/pkg-config
Checking for availability of switch -std=gnu99 in /mingw64/bin/gcc ... yes
Checking for availability of switch -Wno-unused-result in /mingw64/bin/gcc ... yes
Checking for availability of switch -Wno-unused-variable in /mingw64/bin/gcc ... yes
Checking function sd_get_machine_names in -lsystemd ... no
Checking presence of package bcm_host ... no
Checking function bcm_host_init in -lbcm_host ... no
Checking function ass_library_init in -lass ... yes
Checking function pthread_create in -lpthread ... yes
Checking function pthread_key_create in -lpthread ... yes
Checking function socket in -lws2_32 ... yes
Checking existence of -lminiupnpc ... yes
Checking function fcntl in -lc ... no
Checking function getopt_long in -lc ... no
Checking presence of package alsa ... no
Checking presence of predefined macro AUDIO_SETINFO in sys/audioio.h ... no
Checking presence of header file sys/soundcard.h ... no
Checking presence of header file soundcard.h ... no
Checking existence of -lossaudio ... no
Checking function alcOpenDevice in -lopenal ... yes
Checking presence of package rsound >= 1.1 ... no
Checking presence of package libroar ... no
Checking presence of package jack >= 0.120.1 ... no
Checking presence of package libpulse ... no
Checking presence of package sdl >= 1.2.10 ... 1.2.15
Checking presence of package sdl2 >= 2.0.0 ... 2.0.9
Notice: SDL drivers will be replaced by SDL2 ones.
Checking presence of package Qt5Core >= 5.2 ... 5.12.1
Checking presence of package Qt5Gui >= 5.2 ... 5.12.1
Checking presence of package Qt5Widgets >= 5.2 ... 5.12.1
Checking presence of package Qt5Concurrent >= 5.2 ... 5.12.1
Checking presence of package Qt5Network >= 5.2 ... 5.12.1
Checking presence of package openssl >= 1.0.0 ... 1.1.1a
Checking presence of package flac ... 1.3.2
Checking presence of header file mbedtls/entropy.h ... yes
Checking existence of -lmbedtls ... yes
Checking existence of -lmbedx509 ... yes
Checking existence of -lmbedcrypto ... yes
Checking presence of package lua5.3 ... 5.3.5
Checking presence of header file include/lua.h ... no
Build assumed that include/lua.h exists, but cannot locate. Exiting ...
What does the command /mingw64/bin/pkg-config --cflags-only-I lua5.3
return for you?
$ /mingw64/bin/pkg-config --cflags-only-I lua5.3
-IC:/msys64/mingw64/include
I see why it doesn't work now, but I am also not sure I see a better way....
How far do you get with?
PKG_CONF_PATH=none ./configure --enable-new_cheevos --enable-lua --disable-builtinlua
make
Here it returns:
$ pkg-config --cflags-only-I lua5.3
-I/usr/include/lua5.3
The idea was to return the base directory which would be lua5.3
, lua5.2
or a blank variable (''
) so it could pass this variable to check_header
and test the correct lua.h
header. In your case it would be lua.h
and in mine it would be lua5.3/lua.h
or lua5.2/lua.h
depending on which lua version check_pkgconf
or check_lib
found.
I suppose the easiest would be to drop check_header
here and hope that lua.h
is actually there, but that doesn't sound ideal...
ofry@games MINGW64 ~/orbea-RetroArch
$ make clean && PKG_CONF_PATH=none ./configure --enable-new_cheevos --enable-lua --disable-builtinlua && make
rm -rf obj-unix
rm -f retroarch
rm -f *.d
Checking operating system ... Win32
Checking for suitable working C compiler ... /mingw64/bin/gcc works
Checking for suitable working C++ compiler ... /mingw64/bin/g++ works
Checking for windres ... /mingw64/bin/windres
Checking for pkg-config ... none
Warning: pkg-config not found, package checks will fail.
Checking for availability of switch -std=gnu99 in /mingw64/bin/gcc ... yes
Checking for availability of switch -Wno-unused-result in /mingw64/bin/gcc ... yes
Checking for availability of switch -Wno-unused-variable in /mingw64/bin/gcc ... yes
Checking function sd_get_machine_names in -lsystemd ... no
Checking presence of package bcm_host ... no
Checking function bcm_host_init in -lbcm_host ... no
Checking function ass_library_init in -lass ... yes
Checking function pthread_create in -lpthread ... yes
Checking function pthread_key_create in -lpthread ... yes
Checking function socket in -lws2_32 ... yes
Checking existence of -lminiupnpc ... yes
Checking function fcntl in -lc ... no
Checking function getopt_long in -lc ... no
Checking presence of package alsa ... no
Checking existence of -lasound ... no
Checking presence of predefined macro AUDIO_SETINFO in sys/audioio.h ... no
Checking presence of header file sys/soundcard.h ... no
Checking presence of header file soundcard.h ... no
Checking existence of -lossaudio ... no
Checking function alcOpenDevice in -lopenal ... yes
Checking presence of package rsound >= 1.1 ... no
Checking presence of package libroar ... no
Checking presence of package jack >= 0.120.1 ... no
Checking existence of -ljack ... no
Checking presence of package libpulse ... no
Checking existence of -lpulse ... no
Checking presence of package sdl >= 1.2.10 ... no
Checking existence of -lSDL ... yes
Checking existence of /usr/include/SDL ... no
Checking existence of /usr/local/include/SDL ... no
Checking presence of package sdl2 >= 2.0.0 ... no
Checking existence of -lSDL2 ... yes
Checking existence of /usr/include/SDL2 ... no
Checking existence of /usr/local/include/SDL2 ... no
Checking presence of package Qt5Core >= 5.2 ... no
Checking presence of package Qt5Gui >= 5.2 ... no
Checking presence of package Qt5Widgets >= 5.2 ... no
Checking presence of package Qt5Concurrent >= 5.2 ... no
Checking presence of package Qt5Network >= 5.2 ... no
Notice: Not building Qt support, required libraries were not found.
Checking presence of package openssl >= 1.0.0 ... no
Checking presence of package flac ... no
Checking existence of -lFLAC ... yes
Checking presence of header file mbedtls/entropy.h ... yes
Checking existence of -lmbedtls ... yes
Checking existence of -lmbedx509 ... yes
Checking existence of -lmbedcrypto ... yes
Checking presence of package lua ... no
Checking existence of -llua5.3 ... no
Checking existence of -llua5.2 ... no
Forced to build with library lua, but cannot locate. Exiting ...
Huh, didn't expect that....
What the does command /mingw64/bin/pkg-config --libs lua5.3
return for you?
lua is a mess unfortunately. :\
$ pkg-config --libs lua5.3
-llua5.3 -lm
ofry@games MINGW64 ~/orbea-RetroArch
$ /mingw64/bin/pkg-config --libs lua5.3
-LC:/msys64/mingw64/lib -llua -lm
Of course....this is a real mess....I suppose there is another platform which only ships lua.pc
?
To be honest I think this needs to be fixed in lua first or it will just break for every other platform...
Every distro providing their own pkgconfig files and shared libraries is just maddening and not supportable, I think upstream suggests using a static lua like we already do even if I agree with you its not ideal...
Another idea would be to also add support for lua51 in rcheevos which would make this a little easier, but I don't think I am up for that task...
I made this feature request just for debugging purposes, because of https://github.com/libretro/RetroArch/pull/7832 built-in lua and mpv core conflicts. So even some hardcoded paths or trying to locate lua.h from pkg-config will be useful.
I suspect this would build on your system.
diff --git a/Makefile.common b/Makefile.common
index f8d9f9cb41..00c12266f8 100644
--- a/Makefile.common
+++ b/Makefile.common
@@ -1676,7 +1675,8 @@ ifeq ($(HAVE_NETWORKING), 1)
deps/rcheevos/src/rcheevos/format.o \
deps/rcheevos/src/rurl/url.o
- ifeq ($(HAVE_LUA), 1)
+ ifeq ($(HAVE_BUILTINLUA), 1)
+ HAVE_LUA = 1
DEFINES += -DHAVE_LUA \
-DLUA_32BITS \
-Ideps/lua/src
@@ -1713,6 +1713,10 @@ ifeq ($(HAVE_NETWORKING), 1)
deps/lua/src/lutf8lib.o \
deps/lua/src/loadlib.o \
deps/lua/src/linit.o
+ else ifeq ($(HAVE_LUA), 1)
+ DEFINES += -DHAVE_LUA
+ DEF_FLAGS += $(LUA_CFLAGS)
+ LIBS += $(LUA_LIBS)
else
DEFINES += -DRC_DISABLE_LUA
endif
diff --git a/qb/config.libs.sh b/qb/config.libs.sh
index 5d50bce765..cda46cf5f4 100644
--- a/qb/config.libs.sh
+++ b/qb/config.libs.sh
@@ -297,6 +297,12 @@ if [ "$HAVE_SSL" != 'no' ]; then
fi
fi
+if [ "$HAVE_LUA" = 'no' ]; then
+ HAVE_BUILTINLUA=no
+fi
+
+check_pkgconf LUA lua
+
check_enabled THREADS LIBUSB libusb 'Threads are' false
check_val '' LIBUSB -lusb-1.0 libusb-1.0 libusb-1.0 1.0.13 '' false
diff --git a/qb/config.params.sh b/qb/config.params.sh
index 33bca52459..35e452c240 100644
--- a/qb/config.params.sh
+++ b/qb/config.params.sh
@@ -123,6 +123,7 @@ HAVE_CHEEVOS=yes # Retro Achievements
HAVE_NEW_CHEEVOS=no # Use rcheevos to process RetroAchievements
C89_NEW_CHEEVOS=no
HAVE_LUA=no # Lua support (for Retro Achievements)
+HAVE_BUILTINLUA=yes # Bake in lua support
HAVE_DISCORD=yes # Discord Integration
C89_DISCORD=no
HAVE_SHADERPIPELINE=yes # Additional shader-based pipelines
@orbea Please tell me where I should apply this patch? On top of your lua branch? Or?
The current master.
I made a PR to fix the lua include which is a general preexisting issue.
On current master:
ofry@games MINGW64 ~/RetroArch
$ make clean && ./configure --enable-new_cheevos --enable-lua --disable-builtinlua && make DEBUG=1
rm -rf obj-unix
rm -f retroarch
rm -f *.d
Checking operating system ... Win32
Unknown option --disable-builtinlua
You need to apply the patch against master.
Fwiw the lua+mpv issue I think is a conflict in the lua versions RetroArch and libmpv are built against, the crash is clearly in the lua code and I suspect it would need to be fixed there...
Or otherwise we need to find a way to avoid the situation.
@orbea
After applying your patch to current master, it compiles and runs fine.
ofry@games MINGW64 ~/RetroArch
$ make clean && ./configure --enable-new_cheevos --enable-lua --disable-builtinlua && make DEBUG=1
rm -rf obj-unix
rm -f retroarch
rm -f *.d
Checking operating system ... Win32
Checking for suitable working C compiler ... /mingw64/bin/gcc works
Checking for suitable working C++ compiler ... /mingw64/bin/g++ works
Checking for windres ... /mingw64/bin/windres
Checking for pkg-config ... /mingw64/bin/pkg-config
Checking for availability of switch -std=gnu99 in /mingw64/bin/gcc ... yes
Checking for availability of switch -Wno-unused-result in /mingw64/bin/gcc ... yes
Checking for availability of switch -Wno-unused-variable in /mingw64/bin/gcc ... yes
Checking function sd_get_machine_names in -lsystemd ... no
Checking presence of package bcm_host ... no
Checking function bcm_host_init in -lbcm_host ... no
Checking function ass_library_init in -lass ... yes
Checking function pthread_create in -lpthread ... yes
Checking function pthread_key_create in -lpthread ... yes
Checking function socket in -lws2_32 ... yes
Checking existence of -lminiupnpc ... yes
Checking function fcntl in -lc ... no
Checking function getopt_long in -lc ... no
Checking presence of package alsa ... no
Checking presence of predefined macro AUDIO_SETINFO in sys/audioio.h ... no
Checking presence of header file sys/soundcard.h ... no
Checking presence of header file soundcard.h ... no
Checking existence of -lossaudio ... no
Checking function alcOpenDevice in -lopenal ... yes
Checking presence of package rsound >= 1.1 ... no
Checking presence of package libroar ... no
Checking presence of package jack >= 0.120.1 ... no
Checking presence of package libpulse ... no
Checking presence of package sdl >= 1.2.10 ... 1.2.15
Checking presence of package sdl2 >= 2.0.0 ... 2.0.9
Notice: SDL drivers will be replaced by SDL2 ones.
Checking presence of package Qt5Core >= 5.2 ... 5.12.1
Checking presence of package Qt5Gui >= 5.2 ... 5.12.1
Checking presence of package Qt5Widgets >= 5.2 ... 5.12.1
Checking presence of package Qt5Concurrent >= 5.2 ... 5.12.1
Checking presence of package Qt5Network >= 5.2 ... 5.12.1
Checking presence of package openssl >= 1.0.0 ... 1.1.1a
Checking presence of package flac ... 1.3.2
Checking presence of header file mbedtls/entropy.h ... yes
Checking existence of -lmbedtls ... yes
Checking existence of -lmbedx509 ... yes
Checking existence of -lmbedcrypto ... yes
Checking presence of package lua ... 5.3.5
Checking presence of package libusb-1.0 >= 1.0.13 ... 1.0.22
Checking existence of -ldinput8 ... yes
Checking existence of -ld3d9 ... yes
Checking existence of -ldsound ... yes
Checking presence of header file GL/gl.h ... yes
Checking existence of -lopengl32 ... yes
Checking function cgCreateContext in -lcg -lcgGL ... no
Checking presence of package zlib ... 1.2.11
Checking presence of package libavcodec >= 54 ... 58.35.100
Checking presence of package libavformat >= 54 ... 58.20.100
Checking presence of package libavdevice ... 58.5.100
Checking presence of package libswresample ... 3.3.100
Checking presence of package libavresample ... no
Checking presence of package libavutil >= 51 ... 56.22.100
Checking presence of package libswscale >= 2.1 ... 5.3.100
Checking presence of header file libavutil/channel_layout.h ... yes
Checking presence of package gbm >= 9.0 ... no
Checking presence of package libdrm ... no
Checking presence of package libxml-2.0 ... 2.9.9
Checking presence of package libv4l2 ... no
Checking presence of package freetype2 ... 22.1.16
Checking presence of package x11 ... no
Checking presence of package xcb ... no
Checking presence of package wayland-egl >= 10.1.0 ... no
Checking presence of package wayland-cursor >= 1.12 ... no
Checking presence of package wayland-protocols >= 1.15 ... no
Checking presence of package wayland-scanner >= 1.12 ... no
Checking presence of package xkbcommon >= 0.3.2 ... no
Checking presence of package xext ... no
Checking presence of package xxf86vm ... no
Notice: wayland libraries not found, disabling wayland support.
Notice: X11, Xext or xf86vm not present. Skipping X11 code paths.
Checking presence of package libudev ... no
Checking presence of header file linux/parport.h ... no
Checking function strcasestr in -lc ... no
Checking function mmap in -lc ... no
Checking for moc ... /mingw64/bin/moc works
Creating make config: config.mk
Creating config header: config.h
CC version_git.c
CC frontend/frontend.c
CC frontend/frontend_driver.c
CC frontend/drivers/platform_null.c
CC ui/ui_companion_driver.c
CC ui/drivers/ui_null.c
CC ui/drivers/null/ui_null_window.c
CC ui/drivers/null/ui_null_browser_window.c
CC ui/drivers/null/ui_null_msg_window.c
CC ui/drivers/null/ui_null_application.c
CC core_impl.c
CC retroarch.c
CC dirs.c
CC paths.c
CC command.c
CC msg_hash.c
CC intl/msg_hash_us.c
CC libretro-common/queues/task_queue.c
CC tasks/task_content.c
CC tasks/task_save.c
CC tasks/task_file_transfer.c
CC tasks/task_image.c
CC tasks/task_audio_mixer.c
CC libretro-common/encodings/encoding_utf.c
CC libretro-common/encodings/encoding_crc32.c
CC libretro-common/compat/fopen_utf8.c
CC libretro-common/lists/file_list.c
CC libretro-common/lists/dir_list.c
CC libretro-common/file/retro_dirent.c
CC libretro-common/streams/stdin_stream.c
CC libretro-common/streams/file_stream.c
CC libretro-common/streams/file_stream_transforms.c
CC libretro-common/streams/interface_stream.c
CC libretro-common/streams/memory_stream.c
CC libretro-common/vfs/vfs_implementation.c
CC libretro-common/lists/string_list.c
CC libretro-common/string/stdstring.c
CC libretro-common/memmap/memalign.c
CC setting_list.c
CC list_special.c
CC libretro-common/file/nbio/nbio_stdio.c
CC libretro-common/file/nbio/nbio_linux.c
CC libretro-common/file/nbio/nbio_unixmmap.c
CC libretro-common/file/nbio/nbio_windowsmmap.c
CC libretro-common/file/nbio/nbio_orbis.c
CC libretro-common/file/nbio/nbio_intf.c
CC libretro-common/file/file_path.c
CC file_path_special.c
CC file_path_str.c
CC libretro-common/hash/rhash.c
CC audio/audio_driver.c
CC libretro-common/audio/audio_mixer.c
CC input/common/input_common.c
CC input/input_driver.c
CC input/input_mapper.c
CC led/led_driver.c
CC led/drivers/led_null.c
CC gfx/video_coord_array.c
CC gfx/video_display_server.c
CC gfx/video_driver.c
CC gfx/video_crt_switch.c
CC camera/camera_driver.c
CC wifi/wifi_driver.c
CC location/location_driver.c
CC driver.c
CC configuration.c
CC libretro-common/dynamic/dylib.c
CC dynamic.c
CC cores/dynamic_dummy.c
CC libretro-common/queues/message_queue.c
CC managers/core_manager.c
CC managers/state_manager.c
CC gfx/drivers_font_renderer/bitmapfont.c
CC tasks/task_autodetect.c
CC input/input_autodetect_builtin.c
CC input/input_keymaps.c
CC input/input_remapping.c
CC libretro-common/queues/fifo_queue.c
CC managers/core_option_manager.c
CC libretro-common/compat/compat_fnmatch.c
CC libretro-common/compat/compat_posix_string.c
CC managers/cheat_manager.c
CC core_info.c
CC libretro-common/file/config_file.c
CC libretro-common/file/config_file_userdata.c
CC tasks/task_screenshot.c
CC tasks/task_powerstate.c
CC libretro-common/gfx/scaler/scaler.c
CC gfx/video_shader_parse.c
CC libretro-common/gfx/scaler/pixconv.c
CC libretro-common/gfx/scaler/scaler_int.c
CC libretro-common/gfx/scaler/scaler_filter.c
CC gfx/font_driver.c
CC gfx/video_filter.c
CC libretro-common/audio/resampler/audio_resampler.c
CC libretro-common/audio/dsp_filter.c
CC libretro-common/audio/resampler/drivers/sinc_resampler.c
CC libretro-common/audio/resampler/drivers/nearest_resampler.c
CC libretro-common/audio/resampler/drivers/null_resampler.c
CC libretro-common/utils/md5.c
CC location/drivers/nulllocation.c
CC camera/drivers/nullcamera.c
CC wifi/drivers/nullwifi.c
CC gfx/drivers/nullgfx.c
CC gfx/display_servers/dispserv_null.c
CC audio/drivers/nullaudio.c
CC input/drivers/nullinput.c
CC input/drivers_hid/null_hid.c
CC input/drivers_joypad/null_joypad.c
CC playlist.c
CC movie.c
CC record/record_driver.c
CC record/drivers/record_null.c
CC libretro-common/features/features_cpu.c
CC performance_counters.c
CC verbosity.c
CC midi/midi_driver.c
CC midi/drivers/null_midi.c
CC runahead/copy_load_info.c
CC runahead/dirty_input.c
CC runahead/mem_util.c
CC runahead/mylist.c
CC runahead/run_ahead.c
CC runahead/secondary_core.c
CC audio/drivers_resampler/cc_resampler.c
CC intl/msg_hash_de.c
CC intl/msg_hash_eo.c
CC intl/msg_hash_es.c
CC intl/msg_hash_fr.c
CC intl/msg_hash_it.c
CC intl/msg_hash_ja.c
CC intl/msg_hash_ko.c
CC intl/msg_hash_nl.c
CC intl/msg_hash_pl.c
CC intl/msg_hash_pt_br.c
CC intl/msg_hash_pt_pt.c
CC intl/msg_hash_ru.c
CC intl/msg_hash_vn.c
CC intl/msg_hash_chs.c
CC intl/msg_hash_cht.c
CC intl/msg_hash_ar.c
CC intl/msg_hash_el.c
CC libretro-common/compat/compat_getopt.c
CC libretro-common/compat/compat_strcasestr.c
CC libretro-common/compat/compat_strl.c
CC libretro-common/formats/image_texture.c
CC cores/libretro-imageviewer/image_core.c
CXX ui/drivers/ui_qt.cpp
CXX ui/drivers/qt/ui_qt_application.cpp
CXX ui/drivers/qt/ui_qt_window.cpp
CXX ui/drivers/qt/ui_qt_browser_window.cpp
CXX ui/drivers/qt/ui_qt_load_core_window.cpp
CXX ui/drivers/qt/ui_qt_msg_window.cpp
CXX ui/drivers/qt/gridview.cpp
CXX ui/drivers/qt/shaderparamsdialog.cpp
CXX ui/drivers/qt/coreoptionsdialog.cpp
CXX ui/drivers/qt/filedropwidget.cpp
CXX ui/drivers/qt/coreinfodialog.cpp
CXX ui/drivers/qt/playlistentrydialog.cpp
CXX ui/drivers/qt/viewoptionsdialog.cpp
CXX ui/drivers/qt/qt_playlist.cpp
CXX ui/drivers/qt/updateretroarch.cpp
CXX ui/drivers/qt/thumbnaildownload.cpp
CXX ui/drivers/qt/thumbnailpackdownload.cpp
CXX ui/drivers/qt/playlistthumbnaildownload.cpp
CC libretro-db/bintree.c
CC libretro-db/libretrodb.c
CC libretro-db/query.c
CC libretro-db/rmsgpack.c
CC libretro-db/rmsgpack_dom.c
CC database_info.c
CC tasks/task_database.c
CC tasks/task_database_cue.c
CC deps/mbedtls/aes.c
CC deps/mbedtls/aesni.c
CC deps/mbedtls/arc4.c
CC deps/mbedtls/asn1parse.c
CC deps/mbedtls/asn1write.c
CC deps/mbedtls/base64.c
CC deps/mbedtls/bignum.c
CC deps/mbedtls/blowfish.c
CC deps/mbedtls/camellia.c
CC deps/mbedtls/ccm.c
CC deps/mbedtls/cipher.c
CC deps/mbedtls/cipher_wrap.c
CC deps/mbedtls/cmac.c
CC deps/mbedtls/ctr_drbg.c
CC deps/mbedtls/des.c
CC deps/mbedtls/dhm.c
CC deps/mbedtls/ecdh.c
CC deps/mbedtls/ecdsa.c
CC deps/mbedtls/ecjpake.c
CC deps/mbedtls/ecp.c
CC deps/mbedtls/ecp_curves.c
CC deps/mbedtls/entropy.c
CC deps/mbedtls/entropy_poll.c
CC deps/mbedtls/error.c
CC deps/mbedtls/gcm.c
CC deps/mbedtls/havege.c
CC deps/mbedtls/hmac_drbg.c
CC deps/mbedtls/md.c
CC deps/mbedtls/md2.c
CC deps/mbedtls/md4.c
CC deps/mbedtls/md5.c
CC deps/mbedtls/md_wrap.c
CC deps/mbedtls/memory_buffer_alloc.c
CC deps/mbedtls/oid.c
CC deps/mbedtls/padlock.c
CC deps/mbedtls/pem.c
CC deps/mbedtls/pk.c
CC deps/mbedtls/pk_wrap.c
CC deps/mbedtls/pkcs12.c
CC deps/mbedtls/pkcs5.c
CC deps/mbedtls/pkparse.c
CC deps/mbedtls/pkwrite.c
CC deps/mbedtls/platform.c
CC deps/mbedtls/ripemd160.c
CC deps/mbedtls/rsa.c
CC deps/mbedtls/sha1.c
CC deps/mbedtls/sha256.c
CC deps/mbedtls/sha512.c
CC deps/mbedtls/threading.c
CC deps/mbedtls/timing.c
CC deps/mbedtls/version.c
CC deps/mbedtls/version_features.c
CC deps/mbedtls/xtea.c
CC deps/mbedtls/certs.c
CC deps/mbedtls/pkcs11.c
CC deps/mbedtls/x509.c
CC deps/mbedtls/x509_create.c
CC deps/mbedtls/x509_crl.c
CC deps/mbedtls/x509_crt.c
CC deps/mbedtls/x509_csr.c
CC deps/mbedtls/x509write_crt.c
CC deps/mbedtls/x509write_csr.c
CC deps/mbedtls/debug.c
CC deps/mbedtls/net_sockets.c
CC deps/mbedtls/ssl_cache.c
CC deps/mbedtls/ssl_ciphersuites.c
CC deps/mbedtls/ssl_cli.c
CC deps/mbedtls/ssl_cookie.c
CC deps/mbedtls/ssl_srv.c
CC deps/mbedtls/ssl_ticket.c
CC deps/mbedtls/ssl_tls.c
CC audio/drivers/openal.c
CC audio/drivers/dsound.c
CC audio/drivers/wasapi.c
CC audio/drivers/xaudio.c
CC midi/drivers/winmm_midi.c
CC libretro-common/audio/conversion/s16_to_float.c
CC libretro-common/audio/conversion/float_to_s16.c
CC libretro-common/audio/audio_mix.c
CC libretro-common/formats/wav/rwav.c
CC menu/drivers/rgui.c
CC menu/drivers/materialui.c
CC menu/drivers/xmb.c
CC menu/drivers/ozone/ozone.c
CC menu/drivers/ozone/ozone_entries.c
CC menu/drivers/ozone/ozone_display.c
CC menu/drivers/ozone/ozone_texture.c
CC menu/drivers/ozone/ozone_theme.c
CC menu/drivers/ozone/ozone_sidebar.c
CC menu/menu_shader.c
CC menu/menu_driver.c
CC menu/menu_content.c
CC menu/menu_input.c
CC menu/menu_entries.c
CC menu/menu_setting.c
CC menu/menu_networking.c
CC menu/widgets/menu_filebrowser.c
CC menu/widgets/menu_dialog.c
CC menu/widgets/menu_input_dialog.c
CC menu/widgets/menu_input_bind_dialog.c
CC menu/widgets/menu_entry.c
CC menu/widgets/menu_osk.c
CC menu/menu_cbs.c
CC menu/cbs/menu_cbs_ok.c
CC menu/cbs/menu_cbs_cancel.c
CC menu/cbs/menu_cbs_select.c
CC menu/cbs/menu_cbs_start.c
CC menu/cbs/menu_cbs_info.c
CC menu/cbs/menu_cbs_refresh.c
CC menu/cbs/menu_cbs_left.c
CC menu/cbs/menu_cbs_right.c
CC menu/cbs/menu_cbs_deferred_push.c
CC menu/cbs/menu_cbs_scan.c
CC menu/cbs/menu_cbs_get_value.c
CC menu/cbs/menu_cbs_label.c
CC menu/cbs/menu_cbs_sublabel.c
CC menu/cbs/menu_cbs_title.c
CC menu/cbs/menu_cbs_up.c
CC menu/cbs/menu_cbs_down.c
CC menu/cbs/menu_cbs_contentlist_switch.c
CC menu/menu_displaylist.c
CC menu/menu_animation.c
CC menu/drivers/menu_generic.c
CC menu/drivers/null.c
CC menu/drivers_display/menu_display_null.c
CC tasks/task_overlay.c
CC input/input_overlay.c
CC led/drivers/led_overlay.c
CC gfx/drivers_font_renderer/stb.c
CC gfx/drivers_font_renderer/stb_unicode.c
CC gfx/drivers_font_renderer/freetype.c
CC libretro-common/rthreads/rthreads.c
CC gfx/video_thread_wrapper.c
CC audio/audio_thread_wrapper.c
CC input/drivers/dinput.c
CC input/drivers_joypad/dinput_joypad.c
CC input/drivers_joypad/xinput_joypad.c
CC input/drivers_hid/libusb_hid.c
CC input/drivers_joypad/hid_joypad.c
CC input/connect/joypad_connection.c
CC input/connect/connect_ps2adapter.c
CC input/connect/connect_psxadapter.c
CC input/connect/connect_ps3.c
CC input/connect/connect_ps4.c
CC input/connect/connect_wii.c
CC input/connect/connect_nesusb.c
CC input/connect/connect_snesusb.c
CC input/connect/connect_wiiupro.c
CC input/connect/connect_wiiugca.c
CC input/drivers/winraw_input.c
CC ui/drivers/ui_win32.c
CC ui/drivers/win32/ui_win32_window.c
CC ui/drivers/win32/ui_win32_browser_window.c
CC ui/drivers/win32/ui_win32_msg_window.c
CC ui/drivers/win32/ui_win32_application.c
CC gfx/drivers_context/gfx_null_ctx.c
CC gfx/video_state_tracker.c
CC gfx/drivers/gl.c
CC libretro-common/gfx/gl_capabilities.c
CC gfx/drivers_font/gl_raster_font.c
CC libretro-common/glsym/rglgen.c
CC menu/drivers_display/menu_display_gl.c
CC cores/libretro-ffmpeg/ffmpeg_fft.c
CC libretro-common/glsym/glsym_gl.c
CC gfx/drivers_shader/shader_glsl.c
CC gfx/drivers/sdl2_gfx.c
CC input/drivers/sdl_input.c
CC input/drivers_joypad/sdl_joypad.c
CC audio/drivers/sdl_audio.c
CC gfx/drivers_context/sdl_gl_ctx.c
CC gfx/drivers/vulkan.c
CC gfx/common/vulkan_common.c
CC libretro-common/vulkan/vulkan_symbol_wrapper.c
CC gfx/drivers_font/vulkan_raster_font.c
CXX gfx/drivers_shader/shader_vulkan.cpp
CC gfx/drivers_context/khr_display_ctx.c
CC menu/drivers_display/menu_display_vulkan.c
CC gfx/drivers_font/d3d_w32_font.c
CC gfx/drivers/d3d10.c
CC gfx/common/d3d10_common.c
CC gfx/drivers_font/d3d10_font.c
CC menu/drivers_display/menu_display_d3d10.c
CC gfx/drivers/d3d11.c
CC gfx/common/d3d11_common.c
CC gfx/drivers_font/d3d11_font.c
CC menu/drivers_display/menu_display_d3d11.c
CC gfx/drivers/d3d12.c
CC gfx/common/d3d12_common.c
CC gfx/drivers_font/d3d12_font.c
CC menu/drivers_display/menu_display_d3d12.c
CC gfx/common/d3dcompiler_common.c
CC gfx/common/dxgi_common.c
CC gfx/drivers/d3d9.c
CC gfx/common/d3d9_common.c
CC menu/drivers_display/menu_display_d3d9.c
CC gfx/common/d3d_common.c
CXX gfx/drivers_shader/slang_process.cpp
CXX gfx/drivers_shader/slang_preprocess.cpp
CXX gfx/drivers_shader/glslang_util.cpp
CXX gfx/drivers_shader/slang_reflection.cpp
CXX deps/glslang/glslang.cpp
CXX deps/glslang/glslang/SPIRV/disassemble.cpp
CXX deps/glslang/glslang/SPIRV/GlslangToSpv.cpp
CXX deps/glslang/glslang/SPIRV/Logger.cpp
CXX deps/glslang/glslang/SPIRV/doc.cpp
CXX deps/glslang/glslang/SPIRV/InReadableOrder.cpp
CXX deps/glslang/glslang/SPIRV/SPVRemapper.cpp
CXX deps/glslang/glslang/SPIRV/SpvBuilder.cpp
In file included from deps/glslang/glslang/SPIRV/hex_float.h:39,
from deps/glslang/glslang/SPIRV/SpvBuilder.cpp:49:
deps/glslang/glslang/SPIRV/bitutils.h: In instantiation of 'Dest spvutils::BitwiseCast(Src) [with Dest = spvutils::Float16; Src = short unsigned int]':
deps/glslang/glslang/SPIRV/hex_float.h:138:47: required from 'T spvutils::FloatProxy<T>::getAsFloat() const [with T = spvutils::Float16]'
deps/glslang/glslang/SPIRV/hex_float.h:821:52: required from here
deps/glslang/glslang/SPIRV/bitutils.h:29:14: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of non-trivially copyable type 'class spvutils::Float16'; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
std::memcpy(&dest, &source, sizeof(dest));
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from deps/glslang/glslang/SPIRV/SpvBuilder.cpp:49:
deps/glslang/glslang/SPIRV/hex_float.h:43:7: note: 'class spvutils::Float16' declared here
class Float16 {
^~~~~~~
In file included from deps/glslang/glslang/SPIRV/hex_float.h:39,
from deps/glslang/glslang/SPIRV/SpvBuilder.cpp:49:
deps/glslang/glslang/SPIRV/bitutils.h: In instantiation of 'Dest spvutils::BitwiseCast(Src) [with Dest = spvutils::FloatProxy<spvutils::Float16>; Src = short unsigned int]':
deps/glslang/glslang/SPIRV/hex_float.h:431:28: required from 'void spvutils::HexFloat<T, Traits>::setFromSignUnbiasedExponentAndNormalizedSignificand(bool, spvutils::HexFloat<T, Traits>::int_type, spvutils::HexFloat<T, Traits>::uint_type, bool) [with T = spvutils::FloatProxy<spvutils::Float16>; Traits = spvutils::HexFloatTraits<spvutils::FloatProxy<spvutils::Float16> >; spvutils::HexFloat<T, Traits>::int_type = short int; spvutils::HexFloat<T, Traits>::uint_type = short unsigned int]'
deps/glslang/glslang/SPIRV/hex_float.h:633:5: required from 'void spvutils::HexFloat<T, Traits>::castTo(other_T&, spvutils::round_direction) [with other_T = spvutils::HexFloat<spvutils::FloatProxy<spvutils::Float16>, spvutils::HexFloatTraits<spvutils::FloatProxy<spvutils::Float16> > >; T = spvutils::FloatProxy<float>; Traits = spvutils::HexFloatTraits<spvutils::FloatProxy<float> >]'
deps/glslang/glslang/SPIRV/hex_float.h:817:39: required from here
deps/glslang/glslang/SPIRV/bitutils.h:29:14: warning: 'void* memcpy(void*, const void*, size_t)' copying an object of non-trivial type 'class spvutils::FloatProxy<spvutils::Float16>' from an array of 'short unsigned int' [-Wclass-memaccess]
std::memcpy(&dest, &source, sizeof(dest));
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from deps/glslang/glslang/SPIRV/SpvBuilder.cpp:49:
deps/glslang/glslang/SPIRV/hex_float.h:115:7: note: 'class spvutils::FloatProxy<spvutils::Float16>' declared here
class FloatProxy {
^~~~~~~~~~
CXX deps/glslang/glslang/glslang/GenericCodeGen/CodeGen.cpp
CXX deps/glslang/glslang/glslang/GenericCodeGen/Link.cpp
CXX deps/glslang/glslang/OGLCompilersDLL/InitializeDll.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/PoolAlloc.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/attribute.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/ParseContextBase.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/Scan.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/Constant.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/reflection.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/ShaderLang.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/InfoSink.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/IntermTraverse.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/linkValidate.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/ParseHelper.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/glslang_tab.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/parseConst.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/SymbolTable.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/Initialize.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/intermOut.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/limits.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/propagateNoContraction.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/iomapper.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/RemoveTree.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/Versions.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/Intermediate.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/preprocessor/Pp.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpScanner.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpTokens.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpContext.cpp
CXX deps/glslang/glslang/glslang/MachineIndependent/preprocessor/PpAtom.cpp
CXX deps/glslang/glslang/glslang/OSDependent/Windows/main.cpp
CXX deps/glslang/glslang/glslang/OSDependent/Windows/ossource.cpp
CXX deps/glslang/glslang/hlsl/hlslParseables.cpp
CXX deps/glslang/glslang/hlsl/hlslParseHelper.cpp
CXX deps/glslang/glslang/hlsl/hlslScanContext.cpp
CXX deps/glslang/glslang/hlsl/hlslTokenStream.cpp
CXX deps/glslang/glslang/hlsl/hlslAttributes.cpp
CXX deps/glslang/glslang/hlsl/hlslOpMap.cpp
CXX deps/glslang/glslang/hlsl/hlslGrammar.cpp
CXX deps/SPIRV-Cross/spirv_cross.cpp
CXX deps/SPIRV-Cross/spirv_cfg.cpp
CXX deps/SPIRV-Cross/spirv_glsl.cpp
CXX deps/SPIRV-Cross/spirv_hlsl.cpp
CXX deps/SPIRV-Cross/spirv_msl.cpp
CC gfx/drivers_context/wgl_ctx.c
CC libretro-common/file/archive_file.c
CC libretro-common/streams/trans_stream.c
CC libretro-common/streams/trans_stream_pipe.c
CC libretro-common/file/archive_file_7z.c
CC deps/7zip/7zIn.c
CC deps/7zip/Bra86.c
CC deps/7zip/7zFile.c
CC deps/7zip/7zStream.c
CC deps/7zip/LzFind.c
CC deps/7zip/LzmaDec.c
CC deps/7zip/LzmaEnc.c
CC deps/7zip/7zCrcOpt.c
CC deps/7zip/Bra.c
CC deps/7zip/7zDec.c
CC deps/7zip/Bcj2.c
CC deps/7zip/7zCrc.c
CC deps/7zip/Lzma2Dec.c
CC deps/7zip/7zBuf.c
CC deps/ibxm/ibxm.c
CC deps/libFLAC/bitmath.c
CC deps/libFLAC/bitreader.c
CC deps/libFLAC/cpu.c
CC deps/libFLAC/crc.c
CC deps/libFLAC/fixed.c
CC deps/libFLAC/float.c
CC deps/libFLAC/format.c
CC deps/libFLAC/lpc.c
CC deps/libFLAC/lpc_intrin_avx2.c
CC deps/libFLAC/lpc_intrin_sse2.c
CC deps/libFLAC/lpc_intrin_sse41.c
CC deps/libFLAC/lpc_intrin_sse.c
CC deps/libFLAC/md5.c
CC deps/libFLAC/memory.c
CC deps/libFLAC/stream_decoder.c
CC deps/libFLAC/windows_unicode_filenames.c
CC libretro-common/file/archive_file_zlib.c
CC libretro-common/streams/trans_stream_zlib.c
CC libretro-common/formats/libchdr/libchdr_bitstream.c
CC libretro-common/formats/libchdr/libchdr_cdrom.c
CC libretro-common/formats/libchdr/libchdr_chd.c
CC libretro-common/formats/libchdr/libchdr_huffman.c
CC libretro-common/streams/chd_stream.c
CC libretro-common/formats/libchdr/libchdr_zlib.c
CC libretro-common/formats/libchdr/libchdr_flac.c
CC libretro-common/formats/libchdr/libchdr_flac_codec.c
CC libretro-common/formats/libchdr/libchdr_lzma.c
CC libretro-common/formats/tga/rtga.c
CC libretro-common/formats/png/rpng.c
CC libretro-common/formats/png/rpng_encode.c
CC libretro-common/formats/jpeg/rjpeg.c
CC libretro-common/formats/bmp/rbmp.c
CC libretro-common/formats/bmp/rbmp_encode.c
CC libretro-common/formats/json/jsonsax.c
CC libretro-common/formats/json/jsonsax_full.c
CC libretro-common/formats/image_transfer.c
CC cores/libretro-gong/gong.c
CC libretro-common/net/net_compat.c
CC libretro-common/net/net_http.c
CC libretro-common/net/net_http_parse.c
CC libretro-common/net/net_socket.c
CC libretro-common/net/net_natt.c
CC network/net_http_special.c
CC tasks/task_http.c
CC tasks/task_netplay_lan_scan.c
CC tasks/task_netplay_nat_traversal.c
CC tasks/task_wifi.c
CC tasks/task_netplay_find_content.c
CC libretro-common/net/net_socket_ssl.c
CC libretro-common/net/net_ifinfo.c
CC network/netplay/netplay_delta.c
CC network/netplay/netplay_frontend.c
CC network/netplay/netplay_handshake.c
CC network/netplay/netplay_init.c
CC network/netplay/netplay_io.c
CC network/netplay/netplay_keyboard.c
CC network/netplay/netplay_sync.c
CC network/netplay/netplay_discovery.c
CC network/netplay/netplay_buf.c
CC network/netplay/netplay_room_parse.c
CC cheevos-new/cheevos.c
CC cheevos-new/badges.c
CC cheevos-new/fixup.c
CC cheevos-new/parser.c
CC cheevos-new/hash.c
CC deps/rcheevos/src/rcheevos/trigger.c
CC deps/rcheevos/src/rcheevos/condset.c
CC deps/rcheevos/src/rcheevos/condition.c
CC deps/rcheevos/src/rcheevos/operand.c
CC deps/rcheevos/src/rcheevos/term.c
CC deps/rcheevos/src/rcheevos/expression.c
CC deps/rcheevos/src/rcheevos/value.c
CC deps/rcheevos/src/rcheevos/lboard.c
CC deps/rcheevos/src/rcheevos/alloc.c
CC deps/rcheevos/src/rcheevos/format.c
CC deps/rcheevos/src/rurl/url.c
CXX deps/discord-rpc/src/discord_rpc.cpp
CXX deps/discord-rpc/src/rpc_connection.cpp
In file included from deps/discord-rpc/src/serialization.h:15,
from deps/discord-rpc/src/rpc_connection.h:4,
from deps/discord-rpc/src/rpc_connection.cpp:1:
deps/discord-rpc/thirdparty/rapidjson-1.1.0/include/rapidjson/document.h: In instantiation of 'void rapidjson::GenericValue<Encoding, Allocator>::SetObjectRaw(rapidjson::GenericValue<Encoding, Allocator>::Member*, rapidjson::SizeType, Allocator&) [with Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>; rapidjson::GenericValue<Encoding, Allocator>::Member = rapidjson::GenericMember<rapidjson::UTF8<>, rapidjson::MemoryPoolAllocator<> >; rapidjson::SizeType = unsigned int]':
deps/discord-rpc/thirdparty/rapidjson-1.1.0/include/rapidjson/document.h:2363:9: required from 'bool rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>::EndObject(rapidjson::SizeType) [with Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>; StackAllocator = FixedLinearAllocator<2048>; rapidjson::SizeType = unsigned int]'
deps/discord-rpc/thirdparty/rapidjson-1.1.0/include/rapidjson/reader.h:1736:18: required from 'rapidjson::GenericReader<SourceEncoding, TargetEncoding, StackAllocator>::IterativeParsingState rapidjson::GenericReader<SourceEncoding, TargetEncoding, StackAllocator>::Transit(rapidjson::GenericReader<SourceEncoding, TargetEncoding, StackAllocator>::IterativeParsingState, rapidjson::GenericReader<SourceEncoding, TargetEncoding, StackAllocator>::Token, rapidjson::GenericReader<SourceEncoding, TargetEncoding, StackAllocator>::IterativeParsingState, InputStream&, Handler&) [with unsigned int parseFlags = 1; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = rapidjson::GenericDocument<rapidjson::UTF8<>, rapidjson::MemoryPoolAllocator<>, FixedLinearAllocator<2048> >; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; StackAllocator = FixedLinearAllocator<2048>]'
deps/discord-rpc/thirdparty/rapidjson-1.1.0/include/rapidjson/reader.h:1832:58: required from 'rapidjson::ParseResult rapidjson::GenericReader<SourceEncoding, TargetEncoding, StackAllocator>::IterativeParse(InputStream&, Handler&) [with unsigned int parseFlags = 1; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = rapidjson::GenericDocument<rapidjson::UTF8<>, rapidjson::MemoryPoolAllocator<>, FixedLinearAllocator<2048> >; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; StackAllocator = FixedLinearAllocator<2048>]'
deps/discord-rpc/thirdparty/rapidjson-1.1.0/include/rapidjson/reader.h:487:46: required from 'rapidjson::ParseResult rapidjson::GenericReader<SourceEncoding, TargetEncoding, StackAllocator>::Parse(InputStream&, Handler&) [with unsigned int parseFlags = 1; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = rapidjson::GenericDocument<rapidjson::UTF8<>, rapidjson::MemoryPoolAllocator<>, FixedLinearAllocator<2048> >; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; StackAllocator = FixedLinearAllocator<2048>]'
deps/discord-rpc/thirdparty/rapidjson-1.1.0/include/rapidjson/document.h:2159:22: required from 'rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>& rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>::ParseStream(InputStream&) [with unsigned int parseFlags = 1; SourceEncoding = rapidjson::UTF8<>; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>; StackAllocator = FixedLinearAllocator<2048>]'
deps/discord-rpc/thirdparty/rapidjson-1.1.0/include/rapidjson/document.h:2175:62: required from 'rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>& rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>::ParseStream(InputStream&) [with unsigned int parseFlags = 1; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>; StackAllocator = FixedLinearAllocator<2048>]'
deps/discord-rpc/thirdparty/rapidjson-1.1.0/include/rapidjson/document.h:2200:58: required from 'rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>& rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>::ParseInsitu(rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>::Ch*) [with unsigned int parseFlags = 0; Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>; StackAllocator = FixedLinearAllocator<2048>; rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>::Ch = char]'
deps/discord-rpc/thirdparty/rapidjson-1.1.0/include/rapidjson/document.h:2208:47: required from 'rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>& rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>::ParseInsitu(rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>::Ch*) [with Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>; StackAllocator = FixedLinearAllocator<2048>; rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>::Ch = char]'
deps/discord-rpc/src/rpc_connection.cpp:115:50: required from here
deps/discord-rpc/thirdparty/rapidjson-1.1.0/include/rapidjson/document.h:1952:24: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'rapidjson::GenericValue<rapidjson::UTF8<> >::Member' {aka 'struct rapidjson::GenericMember<rapidjson::UTF8<>, rapidjson::MemoryPoolAllocator<> >'} with no trivial copy-assignment; use copy-assignment instead [-Wclass-memaccess]
std::memcpy(m, members, count * sizeof(Member));
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from deps/discord-rpc/src/serialization.h:15,
from deps/discord-rpc/src/rpc_connection.h:4,
from deps/discord-rpc/src/rpc_connection.cpp:1:
deps/discord-rpc/thirdparty/rapidjson-1.1.0/include/rapidjson/document.h:71:8: note: 'rapidjson::GenericValue<rapidjson::UTF8<> >::Member' {aka 'struct rapidjson::GenericMember<rapidjson::UTF8<>, rapidjson::MemoryPoolAllocator<> >'} declared here
struct GenericMember {
^~~~~~~~~~~~~
In file included from deps/discord-rpc/src/serialization.h:15,
from deps/discord-rpc/src/rpc_connection.h:4,
from deps/discord-rpc/src/rpc_connection.cpp:1:
deps/discord-rpc/thirdparty/rapidjson-1.1.0/include/rapidjson/document.h: In instantiation of 'void rapidjson::GenericValue<Encoding, Allocator>::SetArrayRaw(rapidjson::GenericValue<Encoding, Allocator>*, rapidjson::SizeType, Allocator&) [with Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>; rapidjson::SizeType = unsigned int]':
deps/discord-rpc/thirdparty/rapidjson-1.1.0/include/rapidjson/document.h:2371:9: required from 'bool rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>::EndArray(rapidjson::SizeType) [with Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>; StackAllocator = FixedLinearAllocator<2048>; rapidjson::SizeType = unsigned int]'
deps/discord-rpc/thirdparty/rapidjson-1.1.0/include/rapidjson/reader.h:1766:18: required from 'rapidjson::GenericReader<SourceEncoding, TargetEncoding, StackAllocator>::IterativeParsingState rapidjson::GenericReader<SourceEncoding, TargetEncoding, StackAllocator>::Transit(rapidjson::GenericReader<SourceEncoding, TargetEncoding, StackAllocator>::IterativeParsingState, rapidjson::GenericReader<SourceEncoding, TargetEncoding, StackAllocator>::Token, rapidjson::GenericReader<SourceEncoding, TargetEncoding, StackAllocator>::IterativeParsingState, InputStream&, Handler&) [with unsigned int parseFlags = 1; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = rapidjson::GenericDocument<rapidjson::UTF8<>, rapidjson::MemoryPoolAllocator<>, FixedLinearAllocator<2048> >; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; StackAllocator = FixedLinearAllocator<2048>]'
deps/discord-rpc/thirdparty/rapidjson-1.1.0/include/rapidjson/reader.h:1832:58: required from 'rapidjson::ParseResult rapidjson::GenericReader<SourceEncoding, TargetEncoding, StackAllocator>::IterativeParse(InputStream&, Handler&) [with unsigned int parseFlags = 1; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = rapidjson::GenericDocument<rapidjson::UTF8<>, rapidjson::MemoryPoolAllocator<>, FixedLinearAllocator<2048> >; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; StackAllocator = FixedLinearAllocator<2048>]'
deps/discord-rpc/thirdparty/rapidjson-1.1.0/include/rapidjson/reader.h:487:46: required from 'rapidjson::ParseResult rapidjson::GenericReader<SourceEncoding, TargetEncoding, StackAllocator>::Parse(InputStream&, Handler&) [with unsigned int parseFlags = 1; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = rapidjson::GenericDocument<rapidjson::UTF8<>, rapidjson::MemoryPoolAllocator<>, FixedLinearAllocator<2048> >; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; StackAllocator = FixedLinearAllocator<2048>]'
deps/discord-rpc/thirdparty/rapidjson-1.1.0/include/rapidjson/document.h:2159:22: required from 'rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>& rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>::ParseStream(InputStream&) [with unsigned int parseFlags = 1; SourceEncoding = rapidjson::UTF8<>; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>; StackAllocator = FixedLinearAllocator<2048>]'
deps/discord-rpc/thirdparty/rapidjson-1.1.0/include/rapidjson/document.h:2175:62: required from 'rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>& rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>::ParseStream(InputStream&) [with unsigned int parseFlags = 1; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>; StackAllocator = FixedLinearAllocator<2048>]'
deps/discord-rpc/thirdparty/rapidjson-1.1.0/include/rapidjson/document.h:2200:58: required from 'rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>& rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>::ParseInsitu(rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>::Ch*) [with unsigned int parseFlags = 0; Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>; StackAllocator = FixedLinearAllocator<2048>; rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>::Ch = char]'
deps/discord-rpc/thirdparty/rapidjson-1.1.0/include/rapidjson/document.h:2208:47: required from 'rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>& rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>::ParseInsitu(rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>::Ch*) [with Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>; StackAllocator = FixedLinearAllocator<2048>; rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>::Ch = char]'
deps/discord-rpc/src/rpc_connection.cpp:115:50: required from here
deps/discord-rpc/thirdparty/rapidjson-1.1.0/include/rapidjson/document.h:1939:24: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'class rapidjson::GenericValue<rapidjson::UTF8<> >' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
std::memcpy(e, values, count * sizeof(GenericValue));
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
deps/discord-rpc/thirdparty/rapidjson-1.1.0/include/rapidjson/document.h:540:7: note: 'class rapidjson::GenericValue<rapidjson::UTF8<> >' declared here
class GenericValue {
^~~~~~~~~~~~
CXX deps/discord-rpc/src/serialization.cpp
CC discord/discord.c
CXX deps/discord-rpc/src/discord_register_win.cpp
CXX deps/discord-rpc/src/connection_win.cpp
CC input/input_remote.c
CC cores/libretro-net-retropad/net_retropad_core.c
CC deps/miniupnpc/igd_desc_parse.c
CC deps/miniupnpc/upnpreplyparse.c
CC deps/miniupnpc/upnpcommands.c
CC deps/miniupnpc/upnperrors.c
CC deps/miniupnpc/connecthostport.c
CC deps/miniupnpc/portlistingparse.c
CC deps/miniupnpc/receivedata.c
deps/miniupnpc/receivedata.c: In function 'receivedata':
deps/miniupnpc/receivedata.c:84:21: warning: format '%u' expects argument of type 'unsigned int', but argument 2 has type 'u_long' {aka 'const long unsigned int'} [-Wformat=]
printf("scope_id=%u\n", src_addr6->sin6_scope_id);
~^ ~~~~~~~~~~~~~~~~~~~~~~~~
%lu
deps/miniupnpc/receivedata.c:84:21: warning: format '%u' expects argument of type 'unsigned int', but argument 2 has type 'u_long' {aka 'const long unsigned int'} [-Wformat=]
printf("scope_id=%u\n", src_addr6->sin6_scope_id);
~^ ~~~~~~~~~~~~~~~~~~~~~~~~
%lu
CC deps/miniupnpc/upnpdev.c
CC deps/miniupnpc/minissdpc.c
CC deps/miniupnpc/miniwget.c
CC deps/miniupnpc/miniupnpc.c
CC deps/miniupnpc/minixml.c
CC deps/miniupnpc/minisoap.c
WINDRES media/rarch.rc
CC gfx/common/win32_common.c
CC frontend/drivers/platform_win32.c
CC gfx/drivers/gdi_gfx.c
CC gfx/drivers_context/gdi_ctx.c
CC gfx/drivers_font/gdi_font.c
CC gfx/display_servers/dispserv_win32.c
CC menu/drivers_display/menu_display_gdi.c
CC record/drivers/record_ffmpeg.c
CC cores/libretro-ffmpeg/ffmpeg_core.c
CC tasks/task_decompress.c
MOC ui/drivers/ui_qt.h
CXX obj-unix/debug/ui/drivers/moc_ui_qt.cpp
MOC ui/drivers/qt/ui_qt_load_core_window.h
CXX obj-unix/debug/ui/drivers/qt/moc_ui_qt_load_core_window.cpp
MOC ui/drivers/qt/gridview.h
CXX obj-unix/debug/ui/drivers/qt/moc_gridview.cpp
MOC ui/drivers/qt/shaderparamsdialog.h
CXX obj-unix/debug/ui/drivers/qt/moc_shaderparamsdialog.cpp
MOC ui/drivers/qt/coreoptionsdialog.h
CXX obj-unix/debug/ui/drivers/qt/moc_coreoptionsdialog.cpp
MOC ui/drivers/qt/filedropwidget.h
CXX obj-unix/debug/ui/drivers/qt/moc_filedropwidget.cpp
MOC ui/drivers/qt/coreinfodialog.h
CXX obj-unix/debug/ui/drivers/qt/moc_coreinfodialog.cpp
MOC ui/drivers/qt/playlistentrydialog.h
CXX obj-unix/debug/ui/drivers/qt/moc_playlistentrydialog.cpp
MOC ui/drivers/qt/viewoptionsdialog.h
CXX obj-unix/debug/ui/drivers/qt/moc_viewoptionsdialog.cpp
LD retroarch
Could you make PR?
@orbea About lua+mpv issue, I'm interested, could it compile and run fine with built-in lua, built-in ffmpeg and built-in mpv simultaneously?
Could you make PR?
Ofc not, that patch only works for your system and will cause issues on several others...
@orbea About lua+mpv issue, I'm interested, could it compile and run fine with built-in lua, built-in ffmpeg and built-in mpv simultaneously?
The builtin mpv doesn't use the builtin ffmpeg, it uses libmpv which is presumably built against a system version of ffmpeg (Just like the ffmpeg core).
There are a few issues that need to be addressed with lua + mpv.
As for the system lua this issue is essentially stuck and at one of two upstream issues need to be resolved before I might be able to make it work.
This PR in mpv upstream could add audio callback:
https://github.com/mpv-player/mpv/pull/5566
Could anyone fix code style issues in this PR?
@orbea Could crossplatform lua version check be done by this way?
First, lua executable (with different versions) could be:
lua
lua53
lua5.3
lua52
lua5.2
lua51
lua5.1
Paths to these commands (and are it exist at all) we can get at least by:
which lua
For version check we could parse output of this command:
lua -v
Examples:
ofry@games MINGW64 ~
$ lua -v
Lua 5.3.5 Copyright (C) 1994-2018 Lua.org, PUC-Rio
ofry@games MINGW64 ~
$ lua5.1 -v
Lua 5.1.5 Copyright (C) 1994-2012 Lua.org, PUC-Rio
That is not a very clean solution and doesn't address problems like the header directories. Also fwiw we use the exists
function instead of which(1)
in qb/qb.init.sh
for portability concerns.
The current roadblock is in issue https://github.com/RetroAchievements/rcheevos/issues/15.
First and foremost consider this:
Description
Allow building with shared lua (instead of baked-in) for debugging purposes.
Expected behavior
Should be option in configure script
Actual behavior
Steps to reproduce the bug
Bisect Results
[Try to bisect and tell us when this started happening]
Version/Commit
You can find this information under Information/System Information
Environment information