2018-04-12 17:08:48 +03:00
|
|
|
|
option(
|
|
|
|
|
'version_fallback',
|
|
|
|
|
type : 'string',
|
|
|
|
|
description : 'Overrides the version string when not building in a git repository'
|
|
|
|
|
)
|
|
|
|
|
|
2019-01-25 02:02:56 +02:00
|
|
|
|
option(
|
|
|
|
|
'developer',
|
|
|
|
|
type : 'combo',
|
|
|
|
|
choices : ['auto', 'true', 'false'],
|
|
|
|
|
description : 'Make a "developer" build with cheats and extra debugging features'
|
|
|
|
|
)
|
|
|
|
|
|
2019-01-24 22:21:08 +02:00
|
|
|
|
option(
|
|
|
|
|
'enable_zip',
|
|
|
|
|
type : 'boolean',
|
|
|
|
|
value : 'true',
|
|
|
|
|
description : 'Enable loading of game data from ZIP packages (requires libzip)'
|
2018-04-12 17:08:48 +03:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
option(
|
|
|
|
|
'package_data',
|
|
|
|
|
type : 'combo',
|
|
|
|
|
choices : ['auto', 'true', 'false'],
|
2019-01-24 22:21:08 +02:00
|
|
|
|
description : 'Package the game’s assets into a compressed archive (requires enable_zip)'
|
2018-04-12 17:08:48 +03:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
option(
|
|
|
|
|
'install_relative',
|
|
|
|
|
type : 'combo',
|
|
|
|
|
choices : ['auto', 'true', 'false'],
|
|
|
|
|
description : 'Use only relative paths to the executable and install everything in the same directory. Always enabled for macOS bundles'
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
option(
|
|
|
|
|
'install_freedesktop',
|
|
|
|
|
type : 'combo',
|
|
|
|
|
choices : ['auto', 'true', 'false'],
|
|
|
|
|
description : 'Install freedesktop.org integration files (launchers, icons, replay file associations, etc.). Mostly relevant for Linux/BSD/etc. desktop systems'
|
|
|
|
|
)
|
|
|
|
|
|
OpenGL ES 3.0 rendering backend (#148)
* First steps towards shader transpilation
Needs to be manually enabled via -Dshader_transpiler=true.
Requires shaderc. https://github.com/google/shaderc
Not yet functional due to missing SPIRV-Cross integration. SPIRV-Cross
currently does not have an official C API, and crossc is too minimal to
be useful. The current plan is to extend crossc and vendor it, while
also sending PRs upstream.
* Integrate crossc; shader transpilation for GLES now works
* fix leak
* gles30 backend now playable on Mesa with 3.2 context
Some rendering issues are present. Identified so far:
- Marisa's lasers are invisible
- Death effect looks wrong
Also, a small pixmap manipulation library has been written, and the
texture uploading API redesigned around it.
* fix marisa lasers in GLES (uniform name clashed with builtin)
* fix player death effect in GLES (another name clash)
* Dump ANGLE's translated shader code in debug log
* fix screenshots
* Drop support for triangle fans, switch to strips
Fans offer no advantage over strips, and they've been removed in D3D10+,
so ANGLE has to emulate them.
* crude workaround for an ANGLE bug
* Re-enable GL debug labels, fix an issue with them that affected ANGLE (but was always technically a bug)
* fix race condition in shaderc initialization
* New SDL_RWops interface for vertex buffers
* Optimize VBO streaming via buffering updates
Measurable performance improvement even with the main gl33 renderer,
drastic improvement with ANGLE.
* Fix the depth texture binding problem under ANGLE
Apparently it hates GL_DEPTH_COMPONENT16 for some reason. Sized internal
formats are not supported in GLES 2.0 anyway, so not using them is
probably a good idea.
* fix GLES2.0 segfault (the backend still doesn't work, though)
* dump GL extensions at info log level, not debug
* get around a Mesa bug; more correct texture format table for GLES2
* Correct GLES3 texture format table according to the spec
Not a Mesa bug after all
* require crossc>=1.5.0, fallback to subproject
* Request at least 8bit per color channel in GL backends
* Forbid lto for static windows builds with shader_transpiler=true
* fix edge case segfault
* Add basic ANGLE bundling support to the build system
Windows only, and no NSIS support yet
* Fix various windows-related build system and installer brokenness
* Disable gles backends by default
* update documentation
2018-10-02 01:36:10 +03:00
|
|
|
|
option(
|
|
|
|
|
'install_angle',
|
|
|
|
|
type : 'boolean',
|
|
|
|
|
value : 'false',
|
2020-02-19 21:16:28 -05:00
|
|
|
|
description : 'Install pre-built ANGLE libraries. Required for Windows/macOS OpenGL ES 2.0/3.0'
|
OpenGL ES 3.0 rendering backend (#148)
* First steps towards shader transpilation
Needs to be manually enabled via -Dshader_transpiler=true.
Requires shaderc. https://github.com/google/shaderc
Not yet functional due to missing SPIRV-Cross integration. SPIRV-Cross
currently does not have an official C API, and crossc is too minimal to
be useful. The current plan is to extend crossc and vendor it, while
also sending PRs upstream.
* Integrate crossc; shader transpilation for GLES now works
* fix leak
* gles30 backend now playable on Mesa with 3.2 context
Some rendering issues are present. Identified so far:
- Marisa's lasers are invisible
- Death effect looks wrong
Also, a small pixmap manipulation library has been written, and the
texture uploading API redesigned around it.
* fix marisa lasers in GLES (uniform name clashed with builtin)
* fix player death effect in GLES (another name clash)
* Dump ANGLE's translated shader code in debug log
* fix screenshots
* Drop support for triangle fans, switch to strips
Fans offer no advantage over strips, and they've been removed in D3D10+,
so ANGLE has to emulate them.
* crude workaround for an ANGLE bug
* Re-enable GL debug labels, fix an issue with them that affected ANGLE (but was always technically a bug)
* fix race condition in shaderc initialization
* New SDL_RWops interface for vertex buffers
* Optimize VBO streaming via buffering updates
Measurable performance improvement even with the main gl33 renderer,
drastic improvement with ANGLE.
* Fix the depth texture binding problem under ANGLE
Apparently it hates GL_DEPTH_COMPONENT16 for some reason. Sized internal
formats are not supported in GLES 2.0 anyway, so not using them is
probably a good idea.
* fix GLES2.0 segfault (the backend still doesn't work, though)
* dump GL extensions at info log level, not debug
* get around a Mesa bug; more correct texture format table for GLES2
* Correct GLES3 texture format table according to the spec
Not a Mesa bug after all
* require crossc>=1.5.0, fallback to subproject
* Request at least 8bit per color channel in GL backends
* Forbid lto for static windows builds with shader_transpiler=true
* fix edge case segfault
* Add basic ANGLE bundling support to the build system
Windows only, and no NSIS support yet
* Fix various windows-related build system and installer brokenness
* Disable gles backends by default
* update documentation
2018-10-02 01:36:10 +03:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
option(
|
|
|
|
|
'angle_libgles',
|
|
|
|
|
type : 'string',
|
|
|
|
|
description : 'Path to ANGLE\'s libGLESv2 dynamic library (see install_angle)'
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
option(
|
|
|
|
|
'angle_libegl',
|
|
|
|
|
type : 'string',
|
|
|
|
|
description : 'Path to ANGLE\'s libEGL dynamic library (see install_angle)'
|
|
|
|
|
)
|
|
|
|
|
|
2018-04-12 17:08:48 +03:00
|
|
|
|
option(
|
|
|
|
|
'win_console',
|
|
|
|
|
type : 'boolean',
|
|
|
|
|
value : false,
|
|
|
|
|
description : 'Use the console subsystem on Windows'
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
option(
|
|
|
|
|
'static',
|
|
|
|
|
type : 'boolean',
|
|
|
|
|
value : false,
|
|
|
|
|
description : 'Build statically linked executable'
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
option(
|
|
|
|
|
'debug_opengl',
|
|
|
|
|
type : 'boolean',
|
|
|
|
|
value : true,
|
|
|
|
|
description : 'Enable OpenGL debugging. Create a debug context, enable logging, and crash the game on errors. Only available in debug builds'
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
option(
|
|
|
|
|
'macos_bundle',
|
|
|
|
|
type : 'boolean',
|
|
|
|
|
value : true,
|
|
|
|
|
description : 'Make a macOS application bundle on install (ignored on other platforms)'
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
option(
|
|
|
|
|
'docs',
|
|
|
|
|
type : 'boolean',
|
|
|
|
|
value : true,
|
|
|
|
|
description : 'Build and install documentation'
|
|
|
|
|
)
|
|
|
|
|
|
OpenGL ES 3.0 rendering backend (#148)
* First steps towards shader transpilation
Needs to be manually enabled via -Dshader_transpiler=true.
Requires shaderc. https://github.com/google/shaderc
Not yet functional due to missing SPIRV-Cross integration. SPIRV-Cross
currently does not have an official C API, and crossc is too minimal to
be useful. The current plan is to extend crossc and vendor it, while
also sending PRs upstream.
* Integrate crossc; shader transpilation for GLES now works
* fix leak
* gles30 backend now playable on Mesa with 3.2 context
Some rendering issues are present. Identified so far:
- Marisa's lasers are invisible
- Death effect looks wrong
Also, a small pixmap manipulation library has been written, and the
texture uploading API redesigned around it.
* fix marisa lasers in GLES (uniform name clashed with builtin)
* fix player death effect in GLES (another name clash)
* Dump ANGLE's translated shader code in debug log
* fix screenshots
* Drop support for triangle fans, switch to strips
Fans offer no advantage over strips, and they've been removed in D3D10+,
so ANGLE has to emulate them.
* crude workaround for an ANGLE bug
* Re-enable GL debug labels, fix an issue with them that affected ANGLE (but was always technically a bug)
* fix race condition in shaderc initialization
* New SDL_RWops interface for vertex buffers
* Optimize VBO streaming via buffering updates
Measurable performance improvement even with the main gl33 renderer,
drastic improvement with ANGLE.
* Fix the depth texture binding problem under ANGLE
Apparently it hates GL_DEPTH_COMPONENT16 for some reason. Sized internal
formats are not supported in GLES 2.0 anyway, so not using them is
probably a good idea.
* fix GLES2.0 segfault (the backend still doesn't work, though)
* dump GL extensions at info log level, not debug
* get around a Mesa bug; more correct texture format table for GLES2
* Correct GLES3 texture format table according to the spec
Not a Mesa bug after all
* require crossc>=1.5.0, fallback to subproject
* Request at least 8bit per color channel in GL backends
* Forbid lto for static windows builds with shader_transpiler=true
* fix edge case segfault
* Add basic ANGLE bundling support to the build system
Windows only, and no NSIS support yet
* Fix various windows-related build system and installer brokenness
* Disable gles backends by default
* update documentation
2018-10-02 01:36:10 +03:00
|
|
|
|
option(
|
|
|
|
|
'shader_transpiler',
|
|
|
|
|
type : 'boolean',
|
|
|
|
|
value : false,
|
2019-01-24 22:21:08 +02:00
|
|
|
|
description : 'Enable shader trans-compilation (requires shaderc)'
|
OpenGL ES 3.0 rendering backend (#148)
* First steps towards shader transpilation
Needs to be manually enabled via -Dshader_transpiler=true.
Requires shaderc. https://github.com/google/shaderc
Not yet functional due to missing SPIRV-Cross integration. SPIRV-Cross
currently does not have an official C API, and crossc is too minimal to
be useful. The current plan is to extend crossc and vendor it, while
also sending PRs upstream.
* Integrate crossc; shader transpilation for GLES now works
* fix leak
* gles30 backend now playable on Mesa with 3.2 context
Some rendering issues are present. Identified so far:
- Marisa's lasers are invisible
- Death effect looks wrong
Also, a small pixmap manipulation library has been written, and the
texture uploading API redesigned around it.
* fix marisa lasers in GLES (uniform name clashed with builtin)
* fix player death effect in GLES (another name clash)
* Dump ANGLE's translated shader code in debug log
* fix screenshots
* Drop support for triangle fans, switch to strips
Fans offer no advantage over strips, and they've been removed in D3D10+,
so ANGLE has to emulate them.
* crude workaround for an ANGLE bug
* Re-enable GL debug labels, fix an issue with them that affected ANGLE (but was always technically a bug)
* fix race condition in shaderc initialization
* New SDL_RWops interface for vertex buffers
* Optimize VBO streaming via buffering updates
Measurable performance improvement even with the main gl33 renderer,
drastic improvement with ANGLE.
* Fix the depth texture binding problem under ANGLE
Apparently it hates GL_DEPTH_COMPONENT16 for some reason. Sized internal
formats are not supported in GLES 2.0 anyway, so not using them is
probably a good idea.
* fix GLES2.0 segfault (the backend still doesn't work, though)
* dump GL extensions at info log level, not debug
* get around a Mesa bug; more correct texture format table for GLES2
* Correct GLES3 texture format table according to the spec
Not a Mesa bug after all
* require crossc>=1.5.0, fallback to subproject
* Request at least 8bit per color channel in GL backends
* Forbid lto for static windows builds with shader_transpiler=true
* fix edge case segfault
* Add basic ANGLE bundling support to the build system
Windows only, and no NSIS support yet
* Fix various windows-related build system and installer brokenness
* Disable gles backends by default
* update documentation
2018-10-02 01:36:10 +03:00
|
|
|
|
)
|
|
|
|
|
|
2018-04-12 17:08:48 +03:00
|
|
|
|
option(
|
|
|
|
|
'validate_glsl',
|
|
|
|
|
type : 'combo',
|
|
|
|
|
choices : ['auto', 'true', 'false'],
|
|
|
|
|
description : 'Enable validation of GLSL shaders (requires glslc)'
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
option(
|
|
|
|
|
'r_default',
|
|
|
|
|
type : 'combo',
|
|
|
|
|
choices : ['gl33', 'gles20', 'gles30', 'null'],
|
|
|
|
|
description : 'Which rendering backend to use by default'
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
option(
|
|
|
|
|
'r_gl33',
|
|
|
|
|
type : 'boolean',
|
|
|
|
|
value : true,
|
|
|
|
|
description : 'Build the OpenGL 3.3 Core renderer'
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
option(
|
|
|
|
|
'r_gles20',
|
|
|
|
|
type : 'boolean',
|
OpenGL ES 3.0 rendering backend (#148)
* First steps towards shader transpilation
Needs to be manually enabled via -Dshader_transpiler=true.
Requires shaderc. https://github.com/google/shaderc
Not yet functional due to missing SPIRV-Cross integration. SPIRV-Cross
currently does not have an official C API, and crossc is too minimal to
be useful. The current plan is to extend crossc and vendor it, while
also sending PRs upstream.
* Integrate crossc; shader transpilation for GLES now works
* fix leak
* gles30 backend now playable on Mesa with 3.2 context
Some rendering issues are present. Identified so far:
- Marisa's lasers are invisible
- Death effect looks wrong
Also, a small pixmap manipulation library has been written, and the
texture uploading API redesigned around it.
* fix marisa lasers in GLES (uniform name clashed with builtin)
* fix player death effect in GLES (another name clash)
* Dump ANGLE's translated shader code in debug log
* fix screenshots
* Drop support for triangle fans, switch to strips
Fans offer no advantage over strips, and they've been removed in D3D10+,
so ANGLE has to emulate them.
* crude workaround for an ANGLE bug
* Re-enable GL debug labels, fix an issue with them that affected ANGLE (but was always technically a bug)
* fix race condition in shaderc initialization
* New SDL_RWops interface for vertex buffers
* Optimize VBO streaming via buffering updates
Measurable performance improvement even with the main gl33 renderer,
drastic improvement with ANGLE.
* Fix the depth texture binding problem under ANGLE
Apparently it hates GL_DEPTH_COMPONENT16 for some reason. Sized internal
formats are not supported in GLES 2.0 anyway, so not using them is
probably a good idea.
* fix GLES2.0 segfault (the backend still doesn't work, though)
* dump GL extensions at info log level, not debug
* get around a Mesa bug; more correct texture format table for GLES2
* Correct GLES3 texture format table according to the spec
Not a Mesa bug after all
* require crossc>=1.5.0, fallback to subproject
* Request at least 8bit per color channel in GL backends
* Forbid lto for static windows builds with shader_transpiler=true
* fix edge case segfault
* Add basic ANGLE bundling support to the build system
Windows only, and no NSIS support yet
* Fix various windows-related build system and installer brokenness
* Disable gles backends by default
* update documentation
2018-10-02 01:36:10 +03:00
|
|
|
|
value : false,
|
|
|
|
|
description : 'Build the OpenGL ES 2.0 renderer (incomplete)'
|
2018-04-12 17:08:48 +03:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
option(
|
|
|
|
|
'r_gles30',
|
|
|
|
|
type : 'boolean',
|
OpenGL ES 3.0 rendering backend (#148)
* First steps towards shader transpilation
Needs to be manually enabled via -Dshader_transpiler=true.
Requires shaderc. https://github.com/google/shaderc
Not yet functional due to missing SPIRV-Cross integration. SPIRV-Cross
currently does not have an official C API, and crossc is too minimal to
be useful. The current plan is to extend crossc and vendor it, while
also sending PRs upstream.
* Integrate crossc; shader transpilation for GLES now works
* fix leak
* gles30 backend now playable on Mesa with 3.2 context
Some rendering issues are present. Identified so far:
- Marisa's lasers are invisible
- Death effect looks wrong
Also, a small pixmap manipulation library has been written, and the
texture uploading API redesigned around it.
* fix marisa lasers in GLES (uniform name clashed with builtin)
* fix player death effect in GLES (another name clash)
* Dump ANGLE's translated shader code in debug log
* fix screenshots
* Drop support for triangle fans, switch to strips
Fans offer no advantage over strips, and they've been removed in D3D10+,
so ANGLE has to emulate them.
* crude workaround for an ANGLE bug
* Re-enable GL debug labels, fix an issue with them that affected ANGLE (but was always technically a bug)
* fix race condition in shaderc initialization
* New SDL_RWops interface for vertex buffers
* Optimize VBO streaming via buffering updates
Measurable performance improvement even with the main gl33 renderer,
drastic improvement with ANGLE.
* Fix the depth texture binding problem under ANGLE
Apparently it hates GL_DEPTH_COMPONENT16 for some reason. Sized internal
formats are not supported in GLES 2.0 anyway, so not using them is
probably a good idea.
* fix GLES2.0 segfault (the backend still doesn't work, though)
* dump GL extensions at info log level, not debug
* get around a Mesa bug; more correct texture format table for GLES2
* Correct GLES3 texture format table according to the spec
Not a Mesa bug after all
* require crossc>=1.5.0, fallback to subproject
* Request at least 8bit per color channel in GL backends
* Forbid lto for static windows builds with shader_transpiler=true
* fix edge case segfault
* Add basic ANGLE bundling support to the build system
Windows only, and no NSIS support yet
* Fix various windows-related build system and installer brokenness
* Disable gles backends by default
* update documentation
2018-10-02 01:36:10 +03:00
|
|
|
|
value : false,
|
2018-04-12 17:08:48 +03:00
|
|
|
|
description : 'Build the OpenGL ES 3.0 renderer'
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
option(
|
|
|
|
|
'r_null',
|
|
|
|
|
type : 'boolean',
|
|
|
|
|
value : true,
|
|
|
|
|
description : 'Build the no-op renderer (nothing is displayed)'
|
|
|
|
|
)
|
2018-08-31 05:58:37 +03:00
|
|
|
|
|
2019-03-05 21:43:01 +02:00
|
|
|
|
option(
|
|
|
|
|
'a_default',
|
|
|
|
|
type : 'combo',
|
2020-06-22 17:41:03 +03:00
|
|
|
|
choices : ['sdl', 'null'],
|
2019-03-05 21:43:01 +02:00
|
|
|
|
description : 'Which audio backend to use by default'
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
option(
|
2020-06-22 17:41:03 +03:00
|
|
|
|
'a_sdl',
|
2019-03-05 21:43:01 +02:00
|
|
|
|
type : 'boolean',
|
|
|
|
|
value : true,
|
2020-06-22 17:41:03 +03:00
|
|
|
|
description : 'Build the SDL audio backend'
|
2019-03-05 21:43:01 +02:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
option(
|
|
|
|
|
'a_null',
|
|
|
|
|
type : 'boolean',
|
|
|
|
|
value : true,
|
|
|
|
|
description : 'Build the no-op audio backend (silence); you want this on!'
|
|
|
|
|
)
|
|
|
|
|
|
2018-08-31 05:58:37 +03:00
|
|
|
|
option(
|
|
|
|
|
'objpools',
|
|
|
|
|
type : 'boolean',
|
|
|
|
|
value : true,
|
|
|
|
|
description : 'Pre-allocate memory for game objects (disable for debugging only)'
|
|
|
|
|
)
|
2019-02-08 20:59:36 +02:00
|
|
|
|
|
|
|
|
|
option(
|
|
|
|
|
'use_libcrypto',
|
|
|
|
|
type : 'combo',
|
|
|
|
|
choices : ['auto', 'true', 'false'],
|
|
|
|
|
description : 'Use libcrypto from OpenSSL for better SHA implementations'
|
|
|
|
|
)
|
2019-10-03 03:22:54 +03:00
|
|
|
|
|
|
|
|
|
option(
|
|
|
|
|
'deprecation_warnings',
|
|
|
|
|
choices : ['default', 'error', 'no-error', 'ignore'],
|
|
|
|
|
type : 'combo',
|
|
|
|
|
description : 'Treatment of deprecation warnings'
|
|
|
|
|
)
|
2019-11-27 17:18:50 +02:00
|
|
|
|
|
|
|
|
|
option(
|
|
|
|
|
'force_vendored_shader_tools',
|
|
|
|
|
type : 'boolean',
|
|
|
|
|
value : false,
|
|
|
|
|
description : 'Build shaderc and spirv-cross CLI tools from subprojects even if system versions exist'
|
|
|
|
|
)
|