virtualx-engine/editor
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
..
debugger Seperate filter and description in FileDialog.add_filter() 2022-07-09 10:51:45 -05:00
fileserver Add a new HashSet template 2022-05-20 22:40:38 +02:00
icons Add "Open Documentation" button to EditorProperty context menu 2022-07-11 19:30:46 -05:00
import Merge pull request #62827 from fire-forge/ok-cancel 2022-07-13 14:10:38 +02:00
plugins Rename soft shadow quality project settings for easier searching 2022-07-13 19:56:02 +02:00
translations i18n: Sync editor translations with Weblate 2022-07-06 15:04:47 +02:00
action_map_editor.cpp Use "odd" style for TabContainers on base BG color 2022-05-26 21:19:15 -05:00
action_map_editor.h Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
animation_bezier_editor.cpp Refactor bezier interpolation functions 2022-06-27 19:42:43 +02:00
animation_bezier_editor.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
animation_track_editor.cpp Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
animation_track_editor.h Merge pull request #60774 from TokageItLab/root-seek-mode 2022-05-18 15:24:21 +02:00
animation_track_editor_plugins.cpp Style: Partially apply clang-tidy's cppcoreguidelines-pro-type-member-init 2022-05-02 16:28:25 +02:00
animation_track_editor_plugins.h Style: Partially apply clang-tidy's cppcoreguidelines-pro-type-member-init 2022-05-02 16:28:25 +02:00
array_property_edit.cpp Improve compilation speed (forward declarations/includes cleanup) 2022-02-12 02:46:22 +01:00
array_property_edit.h
audio_stream_preview.cpp Fix more issues found by cppcheck. 2022-04-20 10:34:00 +03:00
audio_stream_preview.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
code_editor.cpp Fix negative search result match 2022-07-12 15:14:43 +02:00
code_editor.h Style: Partially apply clang-tidy's cppcoreguidelines-pro-type-member-init 2022-05-02 16:28:25 +02:00
connections_dialog.cpp Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
connections_dialog.h Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
create_dialog.cpp Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
create_dialog.h Rework scene creation dialog 2022-06-21 15:42:56 +02:00
dependency_editor.cpp Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
dependency_editor.h Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
dictionary_property_edit.cpp Improve compilation speed (forward declarations/includes cleanup) 2022-02-12 02:46:22 +01:00
dictionary_property_edit.h
doc_tools.cpp Merge pull request #62713 from YuriSizov/docs-scripting-annotations 2022-07-06 15:31:19 +02:00
doc_tools.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
editor_about.cpp Move duplicate AutoWrap, Overrun and VisibleChar behavior enums to the TextServer. 2022-06-16 16:49:37 +03:00
editor_about.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
editor_asset_installer.cpp Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
editor_asset_installer.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
editor_atlas_packer.cpp Use bresenham_line() in EditorAtlasPacker::chart_pack 2022-02-21 19:52:47 +01:00
editor_atlas_packer.h Use bresenham_line() in EditorAtlasPacker::chart_pack 2022-02-21 19:52:47 +01:00
editor_audio_buses.cpp Seperate filter and description in FileDialog.add_filter() 2022-07-09 10:51:45 -05:00
editor_audio_buses.h Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
editor_autoload_settings.cpp Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
editor_autoload_settings.h Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
editor_build_profile.cpp Implement Feature Build Profiles 2022-07-22 10:53:23 +02:00
editor_build_profile.h Implement Feature Build Profiles 2022-07-22 10:53:23 +02:00
editor_builders.py [Editor build] Use smaller .mo files instead of .po, if gettext is available. 2022-03-24 21:17:32 +02:00
editor_command_palette.cpp Use consistent casing in editor filter/search bars 2022-05-28 18:43:16 -05:00
editor_command_palette.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
editor_data.cpp Fix heap-use-after-free when closing a scene with its builtin script open 2022-07-06 10:45:36 +08:00
editor_data.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
editor_dir_dialog.cpp Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
editor_dir_dialog.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
editor_export.cpp Add readable export errors. 2022-06-08 17:55:46 +03:00
editor_export.h Add readable export errors. 2022-06-08 17:55:46 +03:00
editor_feature_profile.cpp Merge pull request #62827 from fire-forge/ok-cancel 2022-07-13 14:10:38 +02:00
editor_feature_profile.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
editor_file_dialog.cpp Merge pull request #62827 from fire-forge/ok-cancel 2022-07-13 14:10:38 +02:00
editor_file_dialog.h Seperate filter and description in FileDialog.add_filter() 2022-07-09 10:51:45 -05:00
editor_file_system.cpp Remake resource thread safety and API 2022-06-22 13:46:46 +02:00
editor_file_system.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
editor_folding.cpp Remake resource thread safety and API 2022-06-22 13:46:46 +02:00
editor_folding.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
editor_fonts.cpp Fix regressions from Font refactor 2022-07-07 15:11:08 +03:00
editor_fonts.h
editor_help.cpp Merge pull request #62710 from Calinou/editor-help-improve-code-kbd-ref-highlight 2022-07-13 23:55:59 +02:00
editor_help.h Add support for documenting built-in annotations 2022-07-04 20:21:39 +03:00
editor_help_search.cpp Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
editor_help_search.h Fix editor crash in built-in help when script inheritance chain changes. 2022-05-17 08:50:32 -07:00
editor_inspector.cpp Merge pull request #59680 from fire-forge/property-help 2022-07-13 14:12:53 +02:00
editor_inspector.h Add "Open Documentation" button to EditorProperty context menu 2022-07-11 19:30:46 -05:00
editor_layouts_dialog.cpp
editor_layouts_dialog.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
editor_locale_dialog.cpp Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
editor_locale_dialog.h Improve locale detection. 2022-01-18 14:30:00 +02:00
editor_log.cpp Adding print_rich for printing with BBCode 2022-06-29 00:41:29 +09:00
editor_log.h Adding print_rich for printing with BBCode 2022-06-29 00:41:29 +09:00
editor_native_shader_source_visualizer.cpp Make TabBar/Container default their alignments to the left instead of center 2022-03-17 18:12:23 -03:00
editor_native_shader_source_visualizer.h
editor_node.cpp Implement Feature Build Profiles 2022-07-22 10:53:23 +02:00
editor_node.h Implement Feature Build Profiles 2022-07-22 10:53:23 +02:00
editor_path.cpp Expose PopupMenu set/get_item_horizontal_offset() 2022-06-15 02:08:44 -05:00
editor_path.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
editor_paths.cpp Make FileAccess and DirAccess classes reference counted. 2022-04-11 13:28:51 +03:00
editor_paths.h Editor: Cleanup some includes dependencies 2022-02-15 14:54:15 +01:00
editor_plugin.cpp Add static methods for creating Image and ImageTexture 2022-07-08 13:40:47 +02:00
editor_plugin.h move gltf export under scene menu 2022-04-12 19:42:41 +05:30
editor_plugin_settings.cpp Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
editor_plugin_settings.h Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
editor_properties.cpp Merge pull request #62827 from fire-forge/ok-cancel 2022-07-13 14:10:38 +02:00
editor_properties.h Add editor properties for Callable and Signal 2022-06-30 17:39:10 +02:00
editor_properties_array_dict.cpp Show Resource type name in Array editor 2022-07-13 12:07:01 -05:00
editor_properties_array_dict.h Add margins to Array and Dictionary editors 2022-06-11 10:44:15 -05:00
editor_property_name_processor.cpp Add MJPEG to the list of editor capitalizations 2022-06-24 22:24:21 +02:00
editor_property_name_processor.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
editor_resource_picker.cpp Seperate filter and description in FileDialog.add_filter() 2022-07-09 10:51:45 -05:00
editor_resource_picker.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
editor_resource_preview.cpp Add static methods for creating Image and ImageTexture 2022-07-08 13:40:47 +02:00
editor_resource_preview.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
editor_run.cpp Merge pull request #62084 from smix8/path_debug_options_4.x 2022-06-29 20:36:43 +02:00
editor_run.h Implement Running Godot as Movie Writer 2022-06-21 11:28:47 +02:00
editor_run_native.cpp Add static methods for creating Image and ImageTexture 2022-07-08 13:40:47 +02:00
editor_run_native.h Add readable export errors. 2022-06-08 17:55:46 +03:00
editor_run_script.cpp Improve compilation speed (forward declarations/includes cleanup) 2022-02-12 02:46:22 +01:00
editor_run_script.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
editor_scale.cpp
editor_scale.h
editor_sectioned_inspector.cpp Add GLOBAL_DEF_INTERNAL to hide specific settings 2022-06-07 14:14:03 +02:00
editor_sectioned_inspector.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
editor_settings.cpp Refactor Font configuration and import UI, and Font resources. 2022-07-06 14:12:36 +03:00
editor_settings.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
editor_settings_dialog.cpp Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
editor_settings_dialog.h Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
editor_spin_slider.cpp Refactor Font configuration and import UI, and Font resources. 2022-07-06 14:12:36 +03:00
editor_spin_slider.h Style: Partially apply clang-tidy's cppcoreguidelines-pro-type-member-init 2022-05-02 16:28:25 +02:00
editor_themes.cpp Add static methods for creating Image and ImageTexture 2022-07-08 13:40:47 +02:00
editor_themes.h
editor_toaster.cpp Improve toaster buttons 2022-06-14 02:35:25 +02:00
editor_toaster.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
editor_translation.cpp Make FileAccess and DirAccess classes reference counted. 2022-04-11 13:28:51 +03:00
editor_translation.h
editor_translation_parser.cpp Add a new HashSet template 2022-05-20 22:40:38 +02:00
editor_translation_parser.h
editor_vcs_interface.cpp Make FileAccess and DirAccess classes reference counted. 2022-04-11 13:28:51 +03:00
editor_vcs_interface.h Initialize bools in the headers in editor 2022-03-12 13:34:06 -06:00
editor_zoom_widget.cpp Remove zoom_reset shortcut in 2D editor 2022-05-22 21:39:53 +02:00
editor_zoom_widget.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
export_template_manager.cpp Merge pull request #62827 from fire-forge/ok-cancel 2022-07-13 14:10:38 +02:00
export_template_manager.h Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
filesystem_dock.cpp Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
filesystem_dock.h Rework scene creation dialog 2022-06-21 15:42:56 +02:00
find_in_files.cpp Refactor Font configuration and import UI, and Font resources. 2022-07-06 14:12:36 +03:00
find_in_files.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
groups_editor.cpp Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
groups_editor.h Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
import_defaults_editor.cpp Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
import_defaults_editor.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
import_dock.cpp Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
import_dock.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
inspector_dock.cpp Seperate filter and description in FileDialog.add_filter() 2022-07-09 10:51:45 -05:00
inspector_dock.h Remove RES and REF typedefs in favor of spelled out Ref<> 2022-05-03 01:43:50 +02:00
localization_editor.cpp Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
localization_editor.h Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
multi_node_edit.cpp Remove UndoRedo calls trying to call removed EditorInspector::refresh() 2022-05-22 19:27:58 +02:00
multi_node_edit.h
node_dock.cpp Move duplicate AutoWrap, Overrun and VisibleChar behavior enums to the TextServer. 2022-06-16 16:49:37 +03:00
node_dock.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
plugin_config_dialog.cpp Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
plugin_config_dialog.h Improve plugin dialog UX 2022-05-07 23:19:55 +02:00
pot_generator.cpp Add a new HashSet template 2022-05-20 22:40:38 +02:00
pot_generator.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
progress_dialog.cpp Improve compilation speed (forward declarations/includes cleanup) 2022-02-12 02:46:22 +01:00
progress_dialog.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
project_converter_3_to_4.cpp Refactor Font configuration and import UI, and Font resources. 2022-07-06 14:12:36 +03:00
project_converter_3_to_4.h Add Godot 3.x -> Godot 4.x project converter 2022-06-15 10:11:17 +02:00
project_export.cpp Merge pull request #62827 from fire-forge/ok-cancel 2022-07-13 14:10:38 +02:00
project_export.h Add readable export errors. 2022-06-08 17:55:46 +03:00
project_manager.cpp Merge pull request #62827 from fire-forge/ok-cancel 2022-07-13 14:10:38 +02:00
project_manager.h Add icons to the Project Manager side buttons 2022-06-16 19:32:41 -05:00
project_settings_editor.cpp Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
project_settings_editor.h [Input] Add extra shortcut_input input processing step to process Unicode character input with Alt / Ctrl modifiers, after processing of shortcuts. 2022-04-05 13:46:45 +03:00
property_editor.cpp Seperate filter and description in FileDialog.add_filter() 2022-07-09 10:51:45 -05:00
property_editor.h Remove RES and REF typedefs in favor of spelled out Ref<> 2022-05-03 01:43:50 +02:00
property_selector.cpp Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
property_selector.h Style: Partially apply clang-tidy's cppcoreguidelines-pro-type-member-init 2022-05-02 16:28:25 +02:00
quick_open.cpp Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
quick_open.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
register_exporters.h
rename_dialog.cpp Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
rename_dialog.h Style: Partially apply clang-tidy's cppcoreguidelines-pro-type-member-init 2022-05-02 16:28:25 +02:00
reparent_dialog.cpp Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
reparent_dialog.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
scene_create_dialog.cpp Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
scene_create_dialog.h Rework scene creation dialog 2022-06-21 15:42:56 +02:00
scene_tree_dock.cpp Merge pull request #62827 from fire-forge/ok-cancel 2022-07-13 14:10:38 +02:00
scene_tree_dock.h Don't handle pending clicks outside scene tree 2022-06-10 15:14:31 +02:00
scene_tree_editor.cpp Avoid possibly showing two Dialogs at the same time 2022-06-21 17:21:04 +08:00
scene_tree_editor.h Optimize SceneTreeEditor filtering 2022-05-24 18:07:18 +02:00
script_create_dialog.cpp Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
script_create_dialog.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
SCsub i18n: Sync editor translations with Weblate 2022-04-25 17:19:34 +02:00
shader_create_dialog.cpp Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
shader_create_dialog.h Improve compilation speed (forward declarations/includes cleanup) 2022-02-12 02:46:22 +01:00
shader_globals_editor.cpp Remove RES and REF typedefs in favor of spelled out Ref<> 2022-05-03 01:43:50 +02:00
shader_globals_editor.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
template_builders.py