godot/core/io
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
..
compression.cpp Vectors: Use clear() and has(). 2022-02-02 00:11:09 +05:45
compression.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
config_file.cpp Fix saving section-less keys in ConfigFile 2022-06-07 18:05:49 +03:00
config_file.h Add a new HashMap implementation 2022-05-12 11:21:29 +02:00
dir_access.cpp Add full support for Android scoped storage. 2022-07-05 03:00:37 -07:00
dir_access.h Add full support for Android scoped storage. 2022-07-05 03:00:37 -07:00
dtls_server.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
dtls_server.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
file_access_compressed.cpp Remove or make private FileAccess close() methods. 2022-04-12 14:50:14 +03:00
file_access_compressed.h Remove or make private FileAccess close() methods. 2022-04-12 14:50:14 +03:00
file_access_encrypted.cpp Remove or make private FileAccess close() methods. 2022-04-12 14:50:14 +03:00
file_access_encrypted.h Remove or make private FileAccess close() methods. 2022-04-12 14:50:14 +03:00
file_access_memory.cpp Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
file_access_memory.h Remove or make private FileAccess close() methods. 2022-04-12 14:50:14 +03:00
file_access_network.cpp Remove or make private FileAccess close() methods. 2022-04-12 14:50:14 +03:00
file_access_network.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
file_access_pack.cpp Use range iterators for RBSet in most cases 2022-05-19 12:09:16 +02:00
file_access_pack.h Clean up Hash Functions 2022-06-20 12:54:19 +02:00
file_access_zip.cpp Remove or make private FileAccess close() methods. 2022-04-12 14:50:14 +03:00
file_access_zip.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
file_access.cpp 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
file_access.h Remove or make private FileAccess close() methods. 2022-04-12 14:50:14 +03:00
http_client_tcp.cpp [Net] Make StreamPeerTCP::_poll_connection explicit. 2022-03-27 16:36:44 +02:00
http_client_tcp.h [Net] Non-blocking request in HTTPClientTCP. 2022-02-03 02:45:30 +01:00
http_client.cpp Verify custom HTTP headers, fix off by one error 2022-01-27 03:22:37 +01:00
http_client.h Verify custom HTTP headers, fix off by one error 2022-01-27 03:22:37 +01:00
image_loader.cpp Remove RES and REF typedefs in favor of spelled out Ref<> 2022-05-03 01:43:50 +02:00
image_loader.h Remove RES and REF typedefs in favor of spelled out Ref<> 2022-05-03 01:43:50 +02:00
image.cpp Add static methods for creating Image and ImageTexture 2022-07-08 13:40:47 +02:00
image.h Add static methods for creating Image and ImageTexture 2022-07-08 13:40:47 +02:00
ip_address.cpp Cleanup and move char functions to the char_utils.h header. 2022-02-04 11:35:01 +02:00
ip_address.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
ip.cpp Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
ip.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
json.cpp Add a new HashSet template 2022-05-20 22:40:38 +02:00
json.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
logger.cpp Fix typos with codespell 2022-05-23 21:32:19 +02:00
logger.h Fix more issues found by cppcheck. 2022-04-20 10:34:00 +03:00
marshalls.cpp 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
marshalls.h Fixed variant decoding Segmentation Fault 2022-02-14 23:04:05 +03:00
missing_resource.cpp Add a new HashMap implementation 2022-05-12 11:21:29 +02:00
missing_resource.h Add a new HashMap implementation 2022-05-12 11:21:29 +02:00
net_socket.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
net_socket.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
packed_data_container.cpp Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
packed_data_container.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
packet_peer_dtls.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
packet_peer_dtls.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
packet_peer_udp.cpp [Net] Drop is_connected_to_host for TCP and UDP. 2022-03-27 16:36:44 +02:00
packet_peer_udp.h [Net] Drop is_connected_to_host for TCP and UDP. 2022-03-27 16:36:44 +02:00
packet_peer.cpp Vectors: Use clear() and has(). 2022-02-02 00:11:09 +05:45
packet_peer.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
pck_packer.cpp Remove or make private FileAccess close() methods. 2022-04-12 14:50:14 +03:00
pck_packer.h Make FileAccess and DirAccess classes reference counted. 2022-04-11 13:28:51 +03:00
resource_format_binary.cpp Implement Feature Build Profiles 2022-07-22 10:53:23 +02:00
resource_format_binary.h Implement Feature Build Profiles 2022-07-22 10:53:23 +02:00
resource_importer.cpp Implement Feature Build Profiles 2022-07-22 10:53:23 +02:00
resource_importer.h Implement Feature Build Profiles 2022-07-22 10:53:23 +02:00
resource_loader.cpp Implement Feature Build Profiles 2022-07-22 10:53:23 +02:00
resource_loader.h Implement Feature Build Profiles 2022-07-22 10:53:23 +02:00
resource_saver.cpp Remove RES and REF typedefs in favor of spelled out Ref<> 2022-05-03 01:43:50 +02:00
resource_saver.h Remove RES and REF typedefs in favor of spelled out Ref<> 2022-05-03 01:43:50 +02:00
resource_uid.cpp Add a new HashMap implementation 2022-05-12 11:21:29 +02:00
resource_uid.h Add a new HashMap implementation 2022-05-12 11:21:29 +02:00
resource.cpp Remake resource thread safety and API 2022-06-22 13:46:46 +02:00
resource.h Remake resource thread safety and API 2022-06-22 13:46:46 +02:00
SCsub SCons: Format buildsystem files with psf/black 2020-03-30 09:05:53 +02:00
stream_peer_ssl.cpp Add StreamPeerSSL.get_stream() accessor. 2022-05-25 12:43:19 -07:00
stream_peer_ssl.h Add StreamPeerSSL.get_stream() accessor. 2022-05-25 12:43:19 -07:00
stream_peer_tcp.cpp [Net] Fix StreamPeerTCP accepted status. 2022-05-04 20:13:32 +02:00
stream_peer_tcp.h Merge pull request #59582 from Faless/net/4.x_tcp_explicit_poll 2022-04-27 13:56:58 +02:00
stream_peer.cpp Vectors: Use clear() and has(). 2022-02-02 00:11:09 +05:45
stream_peer.h Object: Remove unused category boilerplate 2022-03-26 15:46:01 +01:00
tcp_server.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
tcp_server.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
translation_loader_po.cpp Remove RES and REF typedefs in favor of spelled out Ref<> 2022-05-03 01:43:50 +02:00
translation_loader_po.h Remove RES and REF typedefs in favor of spelled out Ref<> 2022-05-03 01:43:50 +02:00
udp_server.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
udp_server.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
xml_parser.cpp Implement XMLParser.get_current_line() 2022-07-05 01:23:04 +02:00
xml_parser.h Implement XMLParser.get_current_line() 2022-07-05 01:23:04 +02:00
zip_io.cpp Fix ZipIO crash when reused (and possible leaks). 2022-05-11 16:08:17 +03:00
zip_io.h Fix ZipIO crash when reused (and possible leaks). 2022-05-11 16:08:17 +03:00