Commit Graph

894 Commits

Author SHA1 Message Date
twinaphex 08ce33eed0 Add HAVE_ONLINE_UPDATER 2019-11-11 00:22:03 +01:00
twinaphex bc657778fe Add HAVE_UPDATE_CORES - by running ./configure --disable-update_cores
you can strip out the Online Core Updater
2019-11-10 15:55:39 +01:00
orbea b427f44908 qb: Update configure checks to print the check before the result.
This is very helpful for debugging in case the check just exits or hangs
unexpectingly.
2019-11-01 09:02:01 -07:00
orbea 98de418b7a qb: Improve the windres check. 2019-11-01 09:01:38 -07:00
orbea 8fc4a788e1 qb: Make the pkgconfig check more simple pt. 2: 2019-11-01 08:38:52 -07:00
orbea b590d0a219 qb: Print ... earlier.
Its better if the ... is printed before the check in case of unexpected
errors where it will look better.
2019-11-01 08:37:27 -07:00
orbea 98b04b99dc qb: Remove deprecated arguments.
Please use --bindir, --mandir and --sysconfdir now.
2019-10-31 22:53:52 -07:00
orbea 14e159decf qb: Make the pkgconfig check more simple. 2019-10-31 22:36:04 -07:00
orbea d0442f4468 qb: Update the die function. 2019-10-15 19:29:29 -07:00
orbea 70fd455b13 qb: Fix --disable-networking.
Fixes https://github.com/libretro/RetroArch/issues/9580.
2019-10-15 07:37:24 -07:00
twinaphex 4fbf823707 Enable HAVE_VIDEO_LAYOUT by default 2019-10-14 00:31:44 +02:00
Ryan 'Swingflip' Hamlin 9be6d265b4
Fixed bug with QB. (Now doesn't look for the x11 client library headers (lxcb) if --disable-x11 is true) 2019-09-29 21:46:22 +01:00
Brad Parker c7c7d0988e initial network video driver, sends raw frames over TCP 2019-09-17 04:18:44 +02:00
twinaphex ccc6d65c43 (Translation) Enable by default for PC platforms, fix CXX_BUILD 2019-08-21 20:57:08 +02:00
Twinaphex 0ae7560026
Merge pull request #9206 from orbea/sixel
qb: Use check_val for caca and sixel.
2019-07-29 22:48:55 +02:00
orbea 91f486b255 qb: Clean up. 2019-07-29 07:24:10 -07:00
orbea 93e3248949 qb: Retain HAVE_NO variables.
Fixes a small oversight, nothing is using this code anyways so
I didn't notice at first.
2019-07-28 08:00:22 -07:00
orbea 59cb198dda qb: Make sure CONFIG_OPTS only contains HAVE_ variables. 2019-07-28 07:59:41 -07:00
orbea 13cf3cdef2 qb: Refactor how config.h and config.mk are created.
This is a potential security issue.

The problem is that config.h and config.mk are populated with
all variables prefixed with 'HAVE_' from the user's environment.

Example:

  $ HAVE_FOO=yes ./configure
  $ grep FOO config.mk
  HAVE_FOO = 1
  $ grep FOO config.h
  #define HAVE_FOO 1

After this commit these files will only use variables set by
qb configure process and not from the user's environment. This
issue could result in hard to diagnose undefined behavior or
maybe worse?

The user should experience no change in behavior, but
developers should be more careful about setting 'HAVE_'
variables manually.

Unless the FOO variable is used by check_enabled ($2 only),
check_platform, check_lib, check_pkgconf, check_header,
check_macro or check_switch functions it should be set at
least once by the new add_opt function. The first argument
should be 'FOO' which matches the HAVE_FOO variable and the
second argument should contain 'auto', 'no' or 'yes'.

Example:

  add_opt FOO yes

When in doubt its safe to use add_opt. This will also fix a
few potential issues where configure arguments used by the
user are ignored.

When the second argument is not set the FOO variable will only
be used to populate config.h and config.mk with its current
value. This should only be done in qb/qb.libs.sh in functions
that set 'HAVE_' variables.
2019-07-28 07:59:41 -07:00
orbea 4c121523aa qb: Use check_val for caca and sixel. 2019-07-27 00:57:06 -07:00
orbea de7bf62f86 qb: Enable HAVE_SLANG, HAVE_GLSLANG and HAVE_SPRIV_CROSS dynamically.
May help issue https://github.com/libretro/RetroArch/issues/9160.
2019-07-21 15:10:02 -07:00
orbea d896acb0c2 Fix --disable-hid. 2019-07-21 09:17:09 -07:00
Twinaphex af2b2b07f2
Merge pull request #9150 from orbea/glsl
qb: Improve the glsl check.
2019-07-21 11:49:09 +02:00
Twinaphex 013eb8d619
Merge pull request #9146 from orbea/win32
qb: Improve win32 checks.
2019-07-21 11:48:50 +02:00
Twinaphex e3faaa575a
Merge pull request #9147 from orbea/slang
qb: Improve the slang, glslang and SPIRV-Cross checks.
2019-07-21 11:48:31 +02:00
orbea 19774f820f qb: Improve the glsl check. 2019-07-21 00:46:14 -07:00
orbea ba1ed7aa13 qb: Allow --enable-metal for osx only. 2019-07-21 00:18:41 -07:00
orbea a7c03df014 qb: Improve the slang, glslang and SPIRV-Cross checks. 2019-07-20 23:30:40 -07:00
orbea b893f58868 qb: Improve win32 checks. 2019-07-20 22:39:55 -07:00
twinaphex b6b22a9a32 More shader refactors - make sure we can compile entirely
without shader support if HAVE_CG, HAVE_GLSL, HAVE_SLANG
and HAVE_HLSL are all not defined
2019-07-21 00:34:07 +02:00
twinaphex 260b06750d It's possible to build and run D3D10/11/12 without glslang/spirv-cross -
just no frontend shaders
2019-07-20 21:23:37 +02:00
twinaphex c6c8d03f29 Take out HAVE_D3D10 rule 2019-07-20 21:07:03 +02:00
twinaphex e2e9823eb7 Revert "D3D10/11/12 can work without SPIRV-Cross/glslang - you just won't"
This reverts commit 4fcf2c42ef.
2019-07-20 21:03:09 +02:00
twinaphex 4fcf2c42ef D3D10/11/12 can work without SPIRV-Cross/glslang - you just won't
be able to load frontend shaders
2019-07-20 20:53:28 +02:00
twinaphex 8fe7e3f730 (Qb) Add HAVE_DR_MP3 2019-07-20 16:42:46 +02:00
twinaphex cd9cbc0881 (qb) Add HAVE_METAL, set it to 'no' for now 2019-07-20 16:34:49 +02:00
twinaphex 39120e8ffc Fix C89_BUILD 2019-07-20 15:17:04 +02:00
twinaphex a4573f1dd5 (Qb) Update config.libs.sh - there are more hardware renderers now 2019-07-20 15:05:28 +02:00
twinaphex 13fa504919 Set these to enable by default 2019-07-20 14:06:19 +02:00
twinaphex bcb9762ec8 (qb) Add HAVE_SLANG, HAVE_SPIRV_CROSS, HAVE_GLSLANG 2019-07-20 13:52:18 +02:00
twinaphex a60463fd76 (qb) Add HAVE_XAUDIO 2019-07-20 00:12:55 +02:00
twinaphex 2f2c53586c (qb) Add HAVE_CC_RESAMPLER 2019-07-19 19:03:48 +02:00
twinaphex c5be03c209 (Qb) Add winmm switch 2019-07-19 17:53:19 +02:00
twinaphex 0ad02dc72d (Qb) Add way to exclude WASAPI 2019-07-19 17:31:08 +02:00
twinaphex 0cd4f6623f (qb) Add HAVE_DSOUND option 2019-07-19 17:18:51 +02:00
Brad Parker e843354b14 cdrom: use sys/ioctl header instead of stropts 2019-07-15 10:38:54 -04:00
orbea 76e130a988 qb: Fix the CDROM check.
This improves the CDROM check.

Fixes https://github.com/libretro/RetroArch/issues/9096
2019-07-12 11:35:22 -07:00
orbea 89a8202dc5 qb: Extend check_platform.
This extends the check_platform function to support checking more
than one OS for each feature.

This also adds the match helper function to qb.init.sh to compare
one variable against a list of variables.
2019-07-12 11:35:22 -07:00
twinaphex bddfca940e Add HAVE_GDI switch 2019-07-11 13:18:38 +02:00
twinaphex b2bf822f13 Add HAVE_AUDIOMIXER switch 2019-07-11 11:51:06 +02:00
Brad Parker 79aa9afc8c enable CDROM read support by default for Windows (mingw) and Linux 2019-07-09 14:10:09 -04:00
twinaphex f0f5c32b51 Remove state tracker - legacy code - we can revisit this later
and integrate it in a way so that it scales across all drivers
2019-07-09 07:39:38 +02:00
orbea 4c7aa40a17 qb: Extend the check_enabled function.
This extends the check_enabled function to be able to check more than
one feature. In the case of RPNG it depends on either the builtin or
system zlib, but if the system zlib was not available while the builtin
zlib was it would still be disabled erroneously.

Now it will only be disabled if both the system and builtin zlib are
disabled.
2019-06-19 22:49:16 -07:00
bparker06 b945cfbbf9
Update config.params.sh 2019-06-13 11:56:19 -04:00
orbea c450b7d2f2 qb: Improve various tests.
Also fixes a compile failure with --disable-networking
2019-06-08 17:22:05 -07:00
orbea 0af5352f56 qb: Clean up EGL check 2019-06-08 09:12:06 -07:00
orbea 9794e4af07 qb: Add missing checks for EGL support.
Some systems may have egl libraries, but not egl headers which
will result in failing to build EGL support.

Also OpenGLES2 also required EGL support so lets make that clear.
2019-06-08 07:26:31 -07:00
orbea 1489a66ea5 qb: Improve the Qt check. 2019-06-04 08:26:15 -07:00
Twinaphex 240f0a578c
Merge pull request #8792 from orbea/enabled
qb: Improve X11 checks.
2019-06-03 17:00:58 +02:00
Twinaphex b3d3f2db58
Merge pull request #8781 from orbea/haiku
qb: Add check_platform.
2019-06-02 18:10:19 +02:00
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 fbe6639ee1 qb: Log the configure arguments in config.log. 2019-06-02 07:04:56 -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
Twinaphex 8610a77dac
Merge pull request #8892 from orbea/egl
Revert "(EGL) Turn EGL off by default for now until we figure out how"
2019-06-01 21:36:37 +02:00
orbea 0498f8ba1c Revert "(EGL) Turn EGL off by default for now until we figure out how"
This reverts commit 8076d06c24.

This seems to work again.
2019-06-01 07:46:46 -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 6a30a1f89a Disable Discord for C89 again 2019-05-28 16:27:21 +02:00
twinaphex 876e1a43aa Remove C89_DISCORD 2019-05-28 16:02:09 +02: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
twinaphex 2713e792ca (QB) Bake in zlib by default, make zlib as dynamic library dependency
optional instead
2019-05-27 15:03:38 +02:00
twinaphex 8076d06c24 (EGL) Turn EGL off by default for now until we figure out how
to leave this to on without it breaking PC buildss
2019-05-26 09:16:58 +02:00
nia 3be224989d qb.libs.sh: Use CFLAGS in header check. 2019-05-18 22:42:25 +01:00
Twinaphex b0bfe1c9be
Revert "qb.libs.sh: Use $CFLAGS when searching for header files and macros." 2019-05-18 19:00:01 +02:00
nia efcf6220b9 qb.libs.sh: Use $CFLAGS when searching for header files and macros.
Allows configuring with --enable-gl on systems with OpenGL outside the
standard compiler search path (assuming CFLAGS is set correctly...)
2019-05-18 17:17:59 +01: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
twinaphex f904c698d2 Disable this - crashes at startup 2019-05-13 00:56:37 +02:00
Huw Pascoe 7e0592198d video_layout build 2019-05-11 09:58:46 +01: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 26b8334c6b qb: Enable menu widgets with CXX_BUILD again. 2019-05-04 16:53:21 -07:00
Twinaphex 108a54a7f2
Merge pull request #8694 from orbea/menu
A few --disable-menu fixes.
2019-05-05 01:19:30 +02:00
orbea 493083f5c7 qb: Disable HAVE_MENU_WIDGETS with CXX_BUILD for now. 2019-05-04 10:19:41 -07: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
twinaphex b9cdeebf35 Make menu widgets the new default 2019-05-03 15:55:44 +02:00
orbea 780fa2679f qb: Disable wayland for CXX_BUILD for now. 2019-04-24 09:32:01 -07:00
Jamiras 2319b2bde8 fix C89/CXX build 2019-04-20 14:04:50 -06:00
twinaphex aa03025dd1 Need to disable cheevos for C89/CXX until this is fixed 2019-04-20 17:17:36 +02:00
meleu 9091409efa remove '#ifdef HAVE_NEW_CHEEVOS' leftovers 2019-04-19 23:11:31 -03: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
twinaphex e961dadc94 Enable HAVE_OPENGL1 by default - will return to this in case there
are issues with it
2019-03-11 15:10:42 +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 74cd5a067f qb: Use the correct compiler flags for check_lib. 2019-02-12 11:56:24 -08:00
orbea f41e70ba11 qb: Minor clean up. 2019-02-11 17:52:34 -08:00
orbea f6d8f2911d qb: Allow checking for multiple pkgconfig files. 2019-02-11 16:51:08 -08:00
orbea 769612c274 qb: Rework configure output. 2019-02-11 14:14:36 -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
Twinaphex 6b8f18676c
Merge pull request #8231 from bparker06/gl1_squash_merge
OpenGL 1.1 video driver (gl1)
2019-02-08 22:48:18 +01:00
Brad Parker d64933b30d gl1: put behind HAVE_OPENGL1, off by default for now 2019-02-08 16:04:23 -05:00
orbea fe28192438 qb: Init some variables. 2019-02-08 12:43:58 -08:00
orbea 7cd6c9cf60 qb: Check number of arguments for while loops.
This is less fragile and doesn't rely on unset variables.
2019-02-08 12:15:47 -08:00
orbea 9d6b1c3ea7 qb: Add support for CXX_BUILD to config.params.sh. 2019-02-07 15:46:27 -08:00
natinusala c20ab3864d First version of menu widgets (gl only) 2019-02-06 20:48:24 +01:00
orbea 28ff4b391a Clean up white space. 2019-02-03 16:00:50 -08: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
orbea d7d5bc58b2 qb: Create qb.init.sh. 2019-01-26 14:41:37 -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 cb602c190d Some C89_BUILD fixes. 2019-01-20 14:03:42 -08:00
Twinaphex c538d78626
Merge pull request #8045 from meleu/new_cheevos
better handling HAVE_NEW_CHEEVOS compilation
2019-01-20 20:38:29 +01:00
meleu 04ec598b97 add './configure --enable-new_cheevos' option 2019-01-20 16:08:31 -02:00
orbea cf83332b49 qb: Replace remaining uses of echo with printf. 2019-01-20 08:08:02 -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
Twinaphex 9bd97784a3
Merge pull request #7916 from orbea/qb
qb: Fix typo in --help.
2019-01-07 10:02:45 +01:00
orbea 23c8a31d69 qb: Improve menu check without opengl, opengles or vulkan. 2019-01-06 22:18:02 -08:00
orbea 749e882b58 qb: Fix typo in --help. 2019-01-06 21:18:36 -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