Commit Graph

487 Commits

Author SHA1 Message Date
orbea 8922e96869 qb: Add check_platform.
This allows enabling and disabling features for platforms
more robustly.

Fixes https://github.com/libretro/RetroArch/issues/8777

v2: Fix D3D configure checks.
v3: Cleanup.
v4: Update Makefile.msvc and Makefile.win
2019-06-02 08:48:05 -07:00
orbea 04c184252d qb: Improve X11 checks. 2019-06-02 08:45:24 -07:00
orbea 0d167afc4f Fix the OpenGLES3 build.
This depends on HAVE_EGL.

Revert "Remove this Travis test for now"

This reverts commit 678089c2de.
2019-06-01 13:37:48 -07:00
orbea 35d4405d3e qb: Fix the zlib check.
This is the correct change to prefer the builtin zlib.

Revert "(QB) Bake in zlib by default, make zlib as dynamic library dependency"

This reverts commit 2713e792ca.

Revert "(QB) Change behavior - if HAVE_ZLIB = no, that doesn't mean"

This reverts commit f66fe5e16b.
2019-06-01 07:39:02 -07:00
twinaphex f66fe5e16b (QB) Change behavior - if HAVE_ZLIB = no, that doesn't mean
HAVE_BUILTINZLIB will also be set to no implicitly. It will still
try to use the baked in zlib. If you want to build without any zlib
support entirely, you now need to do this -

./configure --disable-zlib --disable-builtinzlib
2019-05-27 15:44:54 +02:00
orbea f5a9c21b99 qb: Improve the KMS check. 2019-05-13 08:45:24 -07:00
orbea 271aef55a4 qb: Improve the OpenGLES build. 2019-05-13 08:02:26 -07:00
Barry Rowe 8745333892 OCR Translation feature finaliziation. (#8738) 2019-05-11 07:15:39 +02:00
orbea 1a3f16ded1 Fix --enable-opengles and --enable-opengles3 (#8749)
* qb: Fix OpenGLES build.

The gl core video driver requires at least OpenGLES 3 and
OpenGL 1 is not compatible with OpenGLES 2 or 3.

* travis: Test OpenGLES builds on linux.
2019-05-10 23:47:36 +02:00
orbea 6552828244 qb: Fix --disable-menu.
Menu widgets must also be disabled with --disable-menu, now
configure will do so or error if --disable-menu and
--enable-menu_widgets are explicitly used.
2019-05-04 08:23:44 -07:00
orbea a86848d822 qb: Check for libroar 1.0.12.
This hides a now fixed upstream libroar build error which breaks LGTM.
Unfortunately this only allows the most recent roaraudio version to be
used.
2019-04-18 13:49:56 -07:00
natinusala 55d0701ac1 menu widgets: remove qb notice 2019-04-08 17:06:05 +02:00
Huw Pascoe 45069537fb Re-enable RXML and purge libxml
Fixed rxml to work with griffin.c
2019-03-17 03:04:35 +00:00
natinusala 76d0b4ebd5 Add a menu widgets notice in configure 2019-03-13 10:25:27 +01:00
Themaister 1ba8c626ed Minor build fixes. 2019-03-09 12:42:23 +01:00
Themaister eb374e6b58 Fix portability hazard in qb/. 2019-03-09 12:30:49 +01:00
Themaister 3029f96511 Add a new "glcore" driver with slang support.
This driver should sunset the old gl2 driver, but that driver will
likely live on to support really ancient and terrible GL stacks.
All the worst legacy cruft has been ripped out, and it's almost a decent
backend now.

Requirements for slang are GL 3.2+ or GLES3.
Some shaders require features which are not directly compatible with
GLES2 or legacy GL.

This driver shares a lot of concepts from the Vulkan driver.
The slang shader stack and SPIRV-Cross are used to implement the shader
spec, and the menu shaders are also shared with Vulkan.
2019-03-09 12:30:49 +01:00
orbea 2586e727e7 qb: Fix the HAVE_OPENGLES check.
Not all systems have the appropriate pkgconfig files.

Fixes https://github.com/libretro/RetroArch/issues/8274
2019-02-13 09:51:49 -08:00
orbea f6d8f2911d qb: Allow checking for multiple pkgconfig files. 2019-02-11 16:51:08 -08:00
orbea d3dcc548b2 qb: Allow falling back to a bundled wayland-protocols when not found. 2019-02-10 15:34:50 -08:00
orbea b5e7992579 qb: Test for user set variables.
This fixes issues where if both check_header and check_lib are used
it would set HAVE_FOO=yes and then result in a configure failure
when check_lib failed. This was also implemented for the other functions
to avoid similar issues.
2019-02-10 10:16:09 -08:00
orbea 58eb7f3bf3 qb: Minor config.libs.sh fixes. 2019-02-08 19:13:07 -08:00
orbea fe28192438 qb: Init some variables. 2019-02-08 12:43:58 -08:00
natinusala c20ab3864d First version of menu widgets (gl only) 2019-02-06 20:48:24 +01:00
orbea 98f6aecec2 Remove the zarch menu driver. 2019-02-02 22:15:10 -08:00
twinaphex 9aa542b1ae * Get rid of video_shader_driver_use
* Get rid of Nuklear - ozone/menu widgets is probably the replacement
for it - Zarch will go next
2019-02-03 04:37:54 +01:00
orbea f9ee57c40d qb: Fix configure arguments. 2019-01-31 13:06:12 -08:00
orbea 5011360a93 qb: Remove dead DISPMANX code. 2019-01-31 08:36:18 -08:00
orbea c88456a455 qb: Combine HAVE_VIDEO_PROCESSOR with HAVE_VIDEOPROCCESOR. 2019-01-30 12:28:58 -08:00
orbea 7d106545eb qb: Clean up. 2019-01-30 08:34:06 -08:00
orbea 921104a4fb qb: Don't force threads for win32. 2019-01-30 07:22:32 -08:00
orbea 8e798405ad qb: Extend check_enabled.
This also disables vulkan support when threads are also disabled.

Fixes https://github.com/libretro/RetroArch/issues/8091
2019-01-29 17:06:49 -08:00
orbea 1a28b06935 qb: Workaround mali bug.
Some systems have egl libarries, but no pkgconfig file to find them.

Fixes https://github.com/libretro/RetroArch/issues/8114
2019-01-29 10:16:06 -08:00
Twinaphex 8b958b91f9
Merge pull request #8105 from orbea/qb
Update generate_wayland_protos.sh.
2019-01-28 00:31:57 +01:00
orbea 67d5bcbb5c qb: Test a real version of wayland-egl.
This matches the default mesa version in Ubuntu 14.04.
2019-01-27 12:18:31 -08:00
orbea ae7b09afae gfx: Update generate_wayland_protos.sh. 2019-01-26 16:08:18 -08:00
Twinaphex b512c0aeb9
Merge pull request #8095 from Sunderland93/wayland-version
[Wayland] Set minimum wayland version to 1.12
2019-01-26 22:49:34 +01:00
Sunderland93 10d2d13004 Fix version's comparison 2019-01-26 13:41:03 +04:00
orbea 63c7abef06 qb: Allow testing more than one version in check_pkgconf. 2019-01-25 15:04:29 -08:00
Sunderland93 677395f05e [Wayland] Set minimum wayland version to 1.12 2019-01-25 21:41:13 +04:00
orbea 2cc6505997 qb: Fix HAVE_RETRO check. 2019-01-24 23:08:35 -08:00
orbea 352fbc7cc7 qb: Remove duplicate code in config.libs.sh. 2019-01-24 22:29:10 -08:00
orbea 0dc40a2d66 qb: Cleanup config.libs.sh. 2019-01-24 17:17:19 -08:00
orbea db46d43224 qb: Add --enable-debug. 2019-01-22 10:08:39 -08:00
orbea 9c7affc2cf Travis + qb fixes. (#8040)
* travis: Enable building qt for linux.

* qb: Set QT_SELECT for moc and qtchooser.

This should have no effect on systems where qtchooser is not used.

Fixes https://github.com/libretro/RetroArch/issues/8028

* qb: Actually disable c++ features if there is no c++ compiler.

Now this warning actually does something.

  Warning: A working C++ compiler was not found, C++ features will be disabled.
2019-01-19 11:21:31 -05:00
orbea 79f8b6281f Revert "WIP: travis: Enable building qt for linux." (#8039) 2019-01-18 14:34:22 -05:00
Twinaphex a578146a9f
Merge pull request #8033 from orbea/moc
qb: Create qb.moc.sh and qb.make.sh.
2019-01-18 20:22:26 +01:00
orbea 6f094a3fdd travis: Enable building qt for linux. 2019-01-18 09:27:16 -08:00
orbea e42c21321b qb: Create qb.moc.sh and qb.make.sh.
This moves the check for a Qt5 moc into its own file, qb.moc.sh which
is executed at the end of the script to avoid the direct dependency on
pkg-config. Now instead it depends on the QT5CORE_CFLAGS and
QT5CORE_LIBS variables set in config.lib.sh. These should always be set
if HAVE_QT=yes.

This also creates a new qb.make.sh file to ensure that the config.mk and
config.h files are created at the end of the configure script.
2019-01-17 18:36:03 -08:00
orbea 2860d6af08 qb: Check for a Qt5 moc. (#8029) 2019-01-17 17:35:19 -05:00
orbea 35f6dd640d qb: Remove outdated checks. 2019-01-07 14:42:06 -08:00
orbea 23c8a31d69 qb: Improve menu check without opengl, opengles or vulkan. 2019-01-06 22:18:02 -08:00
Brad Parker 8343cf2680 re-word warning message 2019-01-06 17:39:19 -05:00
Brad Parker 65c6bb69a4 allow building Qt with --disable-menu 2019-01-06 17:37:36 -05:00
orbea 65c6caf5a6 qb: Add '--disable-menu'. (#7910)
This adds '--disable-menu' which will disable all of the menu drivers
including Qt. This will also allow disabling only rgui and not the other
menu drivers.
2019-01-06 17:30:50 -05:00
orbea 34f3eb7277 qb: Fix '--disable-rgui'.
Also fixes a crash on startup with '--disable-rgui'.

Thread 1 "retroarch" received signal SIGSEGV, Segmentation fault.
0x0000000000529f52 in strlcpy_retro__ (dest=0x7fffffffbb17 "treaming_toggle",
    source=0x1 <error: Cannot access memory at address 0x1>, size=250)
    at libretro-common/compat/compat_strl.c:38
38	      while (--n && (*dest++ = *source++)) src_size++;
(gdb) bt
    dest=0x7fffffffbb17 "treaming_toggle",
    source=0x1 <error: Cannot access memory at address 0x1>, size=250)
    at libretro-common/compat/compat_strl.c:38
    size=250) at libretro-common/compat/compat_strl.c:60
    out_path=0x7fffffffbb10 "input_", dir=0x94b460 "input", path=0x0,
    delim=95 '_', size=256) at libretro-common/file/file_path.c:964
    prefix=0x94b460 "input", btn=0x0, bind=0x151e180 <input_autoconf_binds+4672>)
    at input/input_driver.c:2483
    binds=0x151cf40 <input_autoconf_binds>) at tasks/task_autodetect.c:172
    params=0x26adb40, task=0x26b74f0) at tasks/task_autodetect.c:252
    params=0x26adb40, task=0x26b74f0) at tasks/task_autodetect.c:393
    at tasks/task_autodetect.c:851
    at libretro-common/queues/task_queue.c:182
    at libretro-common/queues/task_queue.c:609
    at frontend/frontend.c:146
    at frontend/frontend.c:170

Fixes https://github.com/libretro/RetroArch/issues/7893
2019-01-05 16:54:40 -08:00
orbea a7f5fc9431 qb: Fix mpv check.
This fixes the mpv configure check and disables it by default
to avoid exposing other bugs. It can be enabled again when those
isssues are fixed.
2018-12-30 20:04:42 -08:00
radius 0b13cba4ea add drmingw's exchndl support 2018-12-30 12:12:55 -05:00
orbea 1e513598d3 qb: Only print threading warning when ffmpeg is not disabled. 2018-12-28 11:51:27 -08:00
orbea c079a2f953 Makefile: Install assets only for enabled menus.
Currently RetroArch will install assets for xmb, materialui and ozone
unconditionally.

This change will now only install assets when RetroArch is compiled
with support for the relevant menu driver. This also exposes assets
from the nuklear and zarch menu drivers which are still disabled by
default.
2018-12-23 09:55:05 -08:00
orbea 7e4723e37a qb: Minor cleanup.
This uses safer quoting and removes an unneeded use of printf.

Fixes the following shellcheck warning.

In qb/qb.libs.sh line 143:
	if [ $3 ]; then
             ^-- SC2086: Double quote to prevent globbing and word splitting.

v2: Remove redundant conditional.
2018-12-21 08:32:01 -08:00
nia 3ef9bbb592 Add an AudioIO dirver for NetBSD and Solaris. 2018-12-21 14:15:30 +00:00
Twinaphex 7835d0c54c
Merge pull request #7745 from orbea/mbedtls
Support building with the system mbedtls.
2018-12-19 01:53:14 +01:00
orbea e0c634cd76 qb: Fix typo. 2018-12-15 19:02:36 -08:00
orbea dc020f2569 qb: Support building with the system mbedtls.
Fixes https://github.com/libretro/RetroArch/issues/7639

v2: Fix build failures with griffin.
2018-12-15 09:10:43 -08:00
Sunderland93 27f2cc0bff Increase minimal Wayland version to 1.15 2018-12-09 19:28:45 +04:00
Sunderland93 830882e296 Merge branch 'server-decorations' 2018-12-09 19:03:57 +04:00
Sunderland93 dc94886664 Initial support for xdg-decoration-unstable-v1 2018-12-05 22:51:07 +04:00
twinaphex 4ca7ebc9da Add xrandr implementation for get_output_options 2018-11-27 11:28:24 +01:00
Sunderland93 ea180a1775 Relax wayland and wayland-protocols version's 2018-11-26 21:58:43 +04:00
Sunderland93 c32c98e667 Very WIP: xdg-shell support 2018-11-17 16:01:51 +04:00
natinusala 158ddc0b2a New menu driver : ozone (Nintendo Switch lookalike) 2018-10-26 13:24:32 +02:00
Brad Parker 7731db9ed8 Qt: link to openssl so Qt will have it for later 2018-08-26 10:40:33 -04:00
Brad Parker 4baecf84ca Qt: add option to update RetroArch (Windows only for now) 2018-08-06 20:52:47 -04:00
Brad Parker 75ce796c34 Merge branch 'master' into qt_grid 2018-07-22 20:03:55 -04:00
Rob Loach aba179a910
Merge branch 'master' into stripes 2018-07-22 13:30:47 -04:00
Brad Parker ab27b7c85f initial SIXEL video driver 2018-07-12 16:55:08 -04:00
Brad Parker 04d5e6368e Merge branch 'master' into qt_grid 2018-07-02 11:52:04 -04:00
twinaphex 0286829348 Start adding HAVE_MPV ifdefs 2018-06-20 04:29:31 +02:00
Zoran Vuckovic b487c3cace Add MIDI support 2018-06-16 21:17:32 +02:00
Brad Parker ef8390dee1 Merge branch 'master' into qt_grid 2018-06-07 11:57:05 -04:00
radius d5c2bc90c1 add discord files 2018-05-28 23:46:36 -05:00
Brad Parker f79ba4885a Qt: threaded grid image loading 2018-05-03 22:05:12 -04:00
orbea 8f861d438b qb: Fix checking the CXX compiler
This does the following.

1. Fixes checking if the CXX compiler works on platforms other than windows.
2. Turns the error when the CXX compiler is missing or doesn't work into a warning.
3. Adds HAVE_CC and HAVE_CXX.
4. Only adds CC and CXX to config.mk when HAVE_CC or HAVE_CXX are true.
5. Disables Qt companion, Vulkan, CXX_BUILD and NEED_CXX_LINKER if HAVE_CXX is false.
6. Explicitly errors when the CXX compiler is broken or missing and Qt or vulkan support is enabled.
7. No longer explicitly links with the CXX compiler on windows since this should no longer be needed.

This also adds the function `check_enabled` to `qb/qb.lib.sh` which
can be used to dynamically disable any libraries that require C++
support.
2018-05-03 12:24:32 -07:00
orbea b2f508d72e qb: Improve moc detection (#6680) 2018-05-01 13:40:42 -04:00
Brad Parker 20cb92c185 qb: allow building without Qt 2018-05-01 16:24:19 +00:00
Brad Parker 791aaa00e1 qb: detect Qt automatically 2018-04-30 22:11:55 -07:00
Brad Parker a1aefc901c Qt WIMP GUI 2018-04-30 14:33:05 -04:00
radius 3792a5e502 remap-redux part2: cleanup 2018-04-08 12:13:49 -05:00
Jean-André Santoni 1614519874 Clone xmb to stripe menu 2018-04-08 09:55:16 +07:00
orbea 85e4f5d94d qb: Add --docdir
By default 'make install' will now install the following 2-3 files
to $(DESTDIR)$(SHARE_DIR)/doc/retroarch which by default is
/usr/local/share/doc/retroarch.

COPYING
README.md

and if media/assets exists it will install:

media/assets/COPYING to COPYING.assets

Users will be able to configure this install path with.

./configure --docdir=PATH

For example:

./configure --docdir=/usr/doc/RetroArch-1.7.0
2018-02-10 08:55:54 -08:00
orbea b67bb87c8d qb: Add --datarootdir to configure.
This allows a user to use --datarootdir=PATH to configure the
share directory used for pixmaps, desktop files, man pages and assets.

By default this will be '/usr/local/share'. Assets and man page install
paths can still be configured with:
  --with-man_dir=PATH
and
  --with-assets_dir=PATH

Some operating systems like Haiku use unconventional install paths
and this should allow them to configure their build correctly.
2018-02-04 13:54:55 -08:00
twinaphex fde8cbecf2 Try to see if this works 2018-01-29 17:48:57 +01:00
orbea cc26f4a88c qb: Don't overwrite defaults
Haiku really should use the configure flags provided, that is why they exists.

In this case.

./configure \
  --global-config-dir=$PREFIX/settings
  --with-assets_dir=$PREFIX/data
  --with-mand_dir=$PREFIX/documentation/man

Changing the defaults just makes the script more complicated for no good reason.
2018-01-20 09:27:02 -08:00
kwyxz b9585df325 Update Haiku port to allow it to build again 2018-01-20 00:19:01 -08:00
orbea c8d25a9152 qb: Enable pulse detection for SunOS again. 2018-01-15 09:54:39 -08:00
orbea 06648ca21b qb: Silence shellcheck warning.
Line 25:
SORT=sort
^-- SC2209: Use var=$(command) to assign output (or quote to assign string).
2018-01-14 09:12:41 -08:00
kwyxz f566ecebf4 Disabling Pulse for now 2018-01-11 14:51:18 -08:00
kwyxz a11decf61d Added SunOS to the list of targets + fixed a sort specificity 2018-01-11 14:48:43 -08:00
orbea 4415086176
Revert "Fix building with built-in flac" 2018-01-08 18:12:53 +00:00