virtualx-engine/scene/resources
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
..
default_theme Add static methods for creating Image and ImageTexture 2022-07-08 13:40:47 +02:00
animation.cpp Refactor bezier interpolation functions 2022-06-27 19:42:43 +02:00
animation.h Remove RES and REF typedefs in favor of spelled out Ref<> 2022-05-03 01:43:50 +02:00
animation_library.cpp Fix type hints for AnimationLibrary's signals 2022-06-12 13:20:51 -04:00
animation_library.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
audio_stream_sample.cpp Make FileAccess and DirAccess classes reference counted. 2022-04-11 13:28:51 +03:00
audio_stream_sample.h ResourceImporterWAV: Allow configuring loop mode on import 2022-03-15 16:16:09 +01:00
bit_map.cpp Add a new HashSet template 2022-05-20 22:40:38 +02:00
bit_map.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
bone_map.cpp implement bone renamer in importer 2022-07-01 03:55:28 +09:00
bone_map.h implement bone renamer in importer 2022-07-01 03:55:28 +09:00
box_shape_3d.cpp Use suffixes for units in nodes and resources 2022-05-19 14:34:27 -05:00
box_shape_3d.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
camera_effects.cpp Use suffixes for units in nodes and resources 2022-05-19 14:34:27 -05:00
camera_effects.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
canvas_item_material.cpp Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
canvas_item_material.h Clean up Hash Functions 2022-06-20 12:54:19 +02:00
capsule_shape_2d.cpp Use suffixes for units in nodes and resources 2022-05-19 14:34:27 -05:00
capsule_shape_2d.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
capsule_shape_3d.cpp Use suffixes for units in nodes and resources 2022-05-19 14:34:27 -05:00
capsule_shape_3d.h Improve the default size for 3D shapes (Box, Capsule, and Cylinder) 2022-02-01 06:43:16 -06:00
circle_shape_2d.cpp Use suffixes for units in nodes and resources 2022-05-19 14:34:27 -05:00
circle_shape_2d.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
concave_polygon_shape_2d.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
concave_polygon_shape_2d.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
concave_polygon_shape_3d.cpp Add a new HashSet template 2022-05-20 22:40:38 +02:00
concave_polygon_shape_3d.h Clean up Hash Functions 2022-06-20 12:54:19 +02:00
convex_polygon_shape_2d.cpp Restore antialiasing for draw_line 2022-04-12 13:03:56 +03:00
convex_polygon_shape_2d.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
convex_polygon_shape_3d.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
convex_polygon_shape_3d.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
curve.cpp Refactor bezier interpolation functions 2022-06-27 19:42:43 +02:00
curve.h Fix Curve{2D,3D} notifying property list changed 2022-06-23 20:07:26 +02:00
cylinder_shape_3d.cpp Use suffixes for units in nodes and resources 2022-05-19 14:34:27 -05:00
cylinder_shape_3d.h Improve the default size for 3D shapes (Box, Capsule, and Cylinder) 2022-02-01 06:43:16 -06:00
environment.cpp Add suffixes to all nodes and resources 2022-06-11 09:41:05 -05:00
environment.h Improve compilation speed (forward declarations/includes cleanup) 2022-02-12 02:46:22 +01:00
fog_material.cpp Rename hint_albedo, hint_white/black in shaders 2022-05-09 22:50:18 +03:00
fog_material.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
font.cpp Refactor Font configuration and import UI, and Font resources. 2022-07-06 14:12:36 +03:00
font.h Refactor Font configuration and import UI, and Font resources. 2022-07-06 14:12:36 +03:00
gradient.cpp Fix cppcheck const parameters 2022-04-28 11:35:39 +02:00
gradient.h Refactor bezier interpolation functions 2022-06-27 19:42:43 +02:00
height_map_shape_3d.cpp Improve range property hints for various collision shapes 2022-03-26 16:20:30 +01:00
height_map_shape_3d.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
immediate_mesh.cpp Fix more issues found by cppcheck. 2022-04-20 10:34:00 +03:00
immediate_mesh.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
importer_mesh.cpp Mend crash importing a scene with static lightmaps. 2022-06-23 01:33:15 -07:00
importer_mesh.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
material.cpp Clean up Hash Functions 2022-06-20 12:54:19 +02:00
material.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
mesh.cpp Add surface indices to TriangleMesh 2022-06-22 21:48:23 +02:00
mesh.h Implement placeholder assets 2022-04-28 12:19:01 +02:00
mesh_data_tool.cpp Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
mesh_data_tool.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
mesh_library.cpp Remove unused hints 2022-07-12 00:44:13 +02:00
mesh_library.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
multimesh.cpp Rename Transform2D "elements" to "columns" 2022-04-29 08:02:39 -05:00
multimesh.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
navigation_mesh.cpp Implement NavigationMesh bake area 2022-06-23 14:55:21 +02:00
navigation_mesh.h Implement NavigationMesh bake area 2022-06-23 14:55:21 +02:00
packed_scene.cpp Add ability to export Node pointers as NodePaths 2022-06-25 15:50:15 +02:00
packed_scene.h Add ability to export Node pointers as NodePaths 2022-06-25 15:50:15 +02:00
particles_material.cpp Declaring emission_tex_ofs globally 2022-06-19 01:20:57 +05:30
particles_material.h Clean up Hash Functions 2022-06-20 12:54:19 +02:00
physics_material.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
physics_material.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
polygon_path_finder.cpp Add a new HashSet template 2022-05-20 22:40:38 +02:00
polygon_path_finder.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
primitive_meshes.cpp Refactor Font configuration and import UI, and Font resources. 2022-07-06 14:12:36 +03:00
primitive_meshes.h Refactor Font configuration and import UI, and Font resources. 2022-07-06 14:12:36 +03:00
rectangle_shape_2d.cpp Use suffixes for units in nodes and resources 2022-05-19 14:34:27 -05:00
rectangle_shape_2d.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
resource_format_text.cpp Implement Feature Build Profiles 2022-07-22 10:53:23 +02:00
resource_format_text.h Implement Feature Build Profiles 2022-07-22 10:53:23 +02:00
scene_replication_config.cpp [Net] Fix SceneReplicationConfig setter. 2022-06-17 13:49:36 +02:00
scene_replication_config.h Improve MultiplayerSynchronizer editor usability 2022-05-23 13:14:59 +02:00
SCsub
segment_shape_2d.cpp Use suffixes for units in nodes and resources 2022-05-19 14:34:27 -05:00
segment_shape_2d.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
separation_ray_shape_2d.cpp Add suffixes to all nodes and resources 2022-06-11 09:41:05 -05:00
separation_ray_shape_2d.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
separation_ray_shape_3d.cpp Add suffixes to all nodes and resources 2022-06-11 09:41:05 -05:00
separation_ray_shape_3d.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
shader.cpp Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
shader.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
shape_2d.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
shape_2d.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
shape_3d.cpp Use suffixes for units in nodes and resources 2022-05-19 14:34:27 -05:00
shape_3d.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_2d.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_2d.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
skeleton_modification_2d_ccdik.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_2d_ccdik.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_2d_fabrik.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_2d_fabrik.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_2d_jiggle.cpp Improve compilation speed (forward declarations/includes cleanup) 2022-02-12 02:46:22 +01:00
skeleton_modification_2d_jiggle.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_2d_lookat.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_2d_lookat.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_2d_physicalbones.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_2d_physicalbones.h Style: Partially apply clang-tidy's cppcoreguidelines-pro-type-member-init 2022-05-02 16:28:25 +02:00
skeleton_modification_2d_stackholder.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_2d_stackholder.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_2d_twoboneik.cpp Add suffixes to all nodes and resources 2022-06-11 09:41:05 -05:00
skeleton_modification_2d_twoboneik.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_3d.cpp simplify formatting scripts, add a clang-tidy script, and run clang-tidy 2022-01-29 04:41:03 -06:00
skeleton_modification_3d.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
skeleton_modification_3d_ccdik.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_3d_ccdik.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_3d_fabrik.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_3d_fabrik.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_3d_jiggle.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_3d_jiggle.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_3d_lookat.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_3d_lookat.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_3d_stackholder.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_3d_stackholder.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_3d_twoboneik.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_3d_twoboneik.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_stack_2d.cpp Change skeleton modification 2d and 3d to use the array inspector. 2022-05-07 13:57:10 -07:00
skeleton_modification_stack_2d.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_modification_stack_3d.cpp Change skeleton modification 2d and 3d to use the array inspector. 2022-05-07 13:57:10 -07:00
skeleton_modification_stack_3d.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_profile.cpp implement bone renamer in importer 2022-07-01 03:55:28 +09:00
skeleton_profile.h implement bone renamer in importer 2022-07-01 03:55:28 +09:00
skin.cpp Add dedicated macros for property name extraction 2022-05-19 14:08:47 +08:00
skin.h Merge pull request #56212 from laws65/skin-export-crash-fix 2022-01-05 10:48:52 +01:00
sky.cpp Capitalize/fix some property enum hints 2022-05-12 15:03:16 -05:00
sky.h Revert "Default to real-time radiance map filter for environment sky reflections" 2022-02-17 23:13:32 -08:00
sky_material.cpp Use IGN instead of white noise for sky dithering 2022-05-24 10:57:07 -07:00
sky_material.h Use IGN instead of white noise for sky dithering 2022-05-24 10:57:07 -07:00
sphere_shape_3d.cpp Decrease SphereShape3D's default radius to 0.5 to match primitive mesh 2022-05-22 08:46:01 +02:00
sphere_shape_3d.h Decrease SphereShape3D's default radius to 0.5 to match primitive mesh 2022-05-22 08:46:01 +02:00
sprite_frames.cpp SpriteFrames: Sort animations alphabetically 2022-07-13 16:15:11 +02:00
sprite_frames.h SpriteFrames: Sort animations alphabetically 2022-07-13 16:15:11 +02:00
style_box.cpp Add suffixes to all nodes and resources 2022-06-11 09:41:05 -05:00
style_box.h Merge pull request #58599 from Calinou/styleboxflat-add-skew 2022-04-28 18:32:01 +02:00
surface_tool.cpp Clean up Hash Functions 2022-06-20 12:54:19 +02:00
surface_tool.h SurfaceTool.set_custom_format Fixes and documentation. 2022-06-14 15:10:17 -07:00
syntax_highlighter.cpp Cleanup and move char functions to the char_utils.h header. 2022-02-04 11:35:01 +02:00
syntax_highlighter.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
text_file.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
text_file.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
text_line.cpp Refactor Font configuration and import UI, and Font resources. 2022-07-06 14:12:36 +03:00
text_line.h Refactor Font configuration and import UI, and Font resources. 2022-07-06 14:12:36 +03:00
text_paragraph.cpp Refactor Font configuration and import UI, and Font resources. 2022-07-06 14:12:36 +03:00
text_paragraph.h Refactor Font configuration and import UI, and Font resources. 2022-07-06 14:12:36 +03:00
texture.cpp Add static methods for creating Image and ImageTexture 2022-07-08 13:40:47 +02:00
texture.h Add static methods for creating Image and ImageTexture 2022-07-08 13:40:47 +02:00
theme.cpp Add suffixes to all nodes and resources 2022-06-11 09:41:05 -05:00
theme.h Define some Theme data structures with using for readability 2022-05-18 18:17:47 +03:00
tile_set.cpp Remove unused hints 2022-07-12 00:44:13 +02:00
tile_set.h Allow using CanvasItemMaterial in the TileSet editor 2022-06-21 17:02:52 +02:00
video_stream.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
visual_shader.cpp Merge pull request #61888 from Chaosus/vs_remove_engine_version 2022-06-16 18:19:03 +02:00
visual_shader.h Remove engine version from visual shader 2022-06-10 13:17:16 +03:00
visual_shader_nodes.cpp Fix typo "Frac" instead of "Fract" 2022-06-05 19:20:32 -06:00
visual_shader_nodes.h Fix typo "Frac" instead of "Fract" 2022-06-05 19:20:32 -06:00
visual_shader_particle_nodes.cpp Add static methods for creating Image and ImageTexture 2022-07-08 13:40:47 +02:00
visual_shader_particle_nodes.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
visual_shader_sdf_nodes.cpp Add some more fixes to visual shader 2022-02-07 11:28:42 +03:00
visual_shader_sdf_nodes.h Fix default input port hints for some modes in visual shader 2022-01-22 11:12:56 +03:00
world_2d.cpp Mark some common project settings as basic 2022-06-12 19:50:14 +02:00
world_2d.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
world_3d.cpp Remove Octree 2022-07-06 14:10:05 +01:00
world_3d.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
world_boundary_shape_2d.cpp Use suffixes for units in nodes and resources 2022-05-19 14:34:27 -05:00
world_boundary_shape_2d.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
world_boundary_shape_3d.cpp Use suffixes for units in nodes and resources 2022-05-19 14:34:27 -05:00
world_boundary_shape_3d.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00