godot/core
reduz 6236a688b7 Implement Feature Build Profiles
This PR is a continuation of #50381 (which was implemented exactly a year ago!)

* Add a visual interface to select which classes should not be built into Godot (well, they are built if something else uses them, but if not used the optimizer will remove them out).
* Add a detection system to scan the project and figure out the actual classes used.
* Added the ability for SCons to load build profiles.

Obligatory Screen:

A simple test with a couple of nodes in the scene resulted in a 25% reduction for the final binary size

TODO:

* Script languages need to implement used class detection (left for another PR).
* Options to disable servers or server functionalities (like 2D or 3D physics, navigation, etc). Are missing, that should also greatly aid in reducing binary size.
* Options to disable some modules would be desired.
* More options to disable drivers (OpenGL, Vulkan, etc) would be desired.

In general this PR is a starting point for more contributors to improve and enhance this functionality.
2022-07-22 10:53:23 +02:00
..
config Merge pull request #62122 from reduz/implement-movie-writer 2022-06-21 14:24:14 +02:00
crypto Remove RES and REF typedefs in favor of spelled out Ref<> 2022-05-03 01:43:50 +02:00
debugger Fixing Print_rich which only displays correctly in terminal 2022-07-01 04:34:19 +09:00
error Errors: Fallback to fprintf if OS singleton doesn't exist 2022-06-30 16:00:30 +02:00
extension Remove unused hints 2022-07-12 00:44:13 +02:00
input Merge pull request #62212 from hansemro/eraser-detect-4 2022-07-04 21:48:19 +02:00
io Implement Feature Build Profiles 2022-07-22 10:53:23 +02:00
math Remove Octree 2022-07-06 14:10:05 +01:00
multiplayer Clean up Hash Functions 2022-06-20 12:54:19 +02:00
object Implement Feature Build Profiles 2022-07-22 10:53:23 +02:00
os [macOS] Improve file association handling, and allow URL schema handling. 2022-07-07 12:11:31 +03:00
string Allows parsing of invalid UTF-16 surrogates (can be encountered in Windows filenames) and some non-standard UTF-8 variants, makes Unicode parse errors more verbose. 2022-07-07 11:07:18 +03:00
templates Refactor Font configuration and import UI, and Font resources. 2022-07-06 14:12:36 +03:00
variant Implement a BitField hint 2022-07-05 22:13:37 +02:00
core_bind.cpp Implement a BitField hint 2022-07-05 22:13:37 +02:00
core_bind.h Implement a BitField hint 2022-07-05 22:13:37 +02:00
core_builders.py Use maximum zlib compression when generating editor translation headers 2021-10-29 19:07:48 +02:00
core_constants.cpp Remove unused hints 2022-07-12 00:44:13 +02:00
core_constants.h Make enum/constant binds 64-bit. 2022-06-17 16:36:26 +03:00
core_string_names.cpp Cleanup metadata usage 2022-05-06 00:27:10 +02:00
core_string_names.h Cleanup metadata usage 2022-05-06 00:27:10 +02:00
doc_data.cpp Implement a BitField hint 2022-07-05 22:13:37 +02:00
doc_data.h Merge pull request #62713 from YuriSizov/docs-scripting-annotations 2022-07-06 15:31:19 +02:00
register_core_types.cpp Implement missing Node & Resource placeholders 2022-05-03 17:08:09 +02:00
register_core_types.h Fix extension registration order. 2022-02-20 10:58:46 -03:00
SCsub Add arch flag to assembler to fix build on ARM64 macOS / iOS. 2022-07-01 12:44:23 +03:00
typedefs.h Change some math macros to constexpr 2022-03-09 16:24:32 +01:00
version.h Core: Move generated VERSION_HASH to a .cpp file 2022-02-09 09:20:17 +01:00