Skip to content

Commit

Permalink
Update list of modules that can be disabled in Optimizing for size
Browse files Browse the repository at this point in the history
This list was confirmed to be working for the 2D platformer demo
(with missing background music if the Ogg/Vorbis modules are left
disabled).

This also removes the platform options from each example as SCons
uses autodetection by default now.
  • Loading branch information
Calinou committed Nov 8, 2023
1 parent 96c26bf commit 5f5bf59
Showing 1 changed file with 21 additions and 16 deletions.
37 changes: 21 additions & 16 deletions contributing/development/compiling/optimizing_for_size.rst
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ To enable this, set the ``optimize`` flag to ``size``:

::

scons p=windows target=template_release optimize=size
scons target=template_release optimize=size

Some platforms such as WebAssembly already use this mode by default.

Expand All @@ -79,7 +79,7 @@ and MSVC compilers:

::

scons p=windows target=template_release lto=full
scons target=template_release lto=full

Linking becomes much slower and more RAM-consuming with this option,
so it should be used only for release builds:
Expand All @@ -100,7 +100,7 @@ For 2D games, having the whole 3D engine available usually makes no sense. Becau

::

scons p=windows target=template_release disable_3d=yes
scons target=template_release disable_3d=yes

Tools must be disabled in order to use this flag, as the editor is not designed
to operate without 3D support. Without it, the binary size can be reduced
Expand All @@ -118,7 +118,7 @@ TextEdit or GraphEdit. They can be disabled using a build flag:

::

scons p=windows target=template_release disable_advanced_gui=yes
scons target=template_release disable_advanced_gui=yes

This is everything that will be disabled:

Expand Down Expand Up @@ -167,12 +167,12 @@ a lot of them:

::

scons p=windows target=template_release module_arkit_enabled=no module_assimp_enabled=no module_bmp_enabled=no module_bullet_enabled=no module_camera_enabled=no module_csg_enabled=no module_dds_enabled=no module_enet_enabled=no module_etc_enabled=no module_gdnative_enabled=no module_gridmap_enabled=no module_hdr_enabled=no module_jsonrpc_enabled=no module_mbedtls_enabled=no module_mobile_vr_enabled=no module_opensimplex_enabled=no module_pvr_enabled=no module_recast_enabled=no module_regex_enabled=no module_squish_enabled=no module_svg_enabled=no module_tga_enabled=no module_theora_enabled=no module_tinyexr_enabled=no module_upnp_enabled=no module_vhacd_enabled=no module_vorbis_enabled=no module_webrtc_enabled=no module_websocket_enabled=no module_xatlas_unwrap_enabled=no
scons target=template_release module_basis_universal_enabled=no module_bmp_enabled=no module_camera_enabled=no module_csg_enabled=no module_dds_enabled=no module_enet_enabled=no module_gridmap_enabled=no module_hdr_enabled=no module_jsonrpc_enabled=no module_ktx_enabled=no module_mbedtls_enabled=no module_meshoptimizer_enabled=no module_minimp3_enabled=no module_mobile_vr_enabled=no module_msdfgen_enabled=no module_multiplayer_enabled=no module_noise_enabled=no module_navigation_enabled=no module_ogg_enabled=no module_openxr_enabled=no module_raycast_enabled=no module_regex_enabled=no module_squish_enabled=no module_svg_enabled=no module_tga_enabled=no module_theora_enabled=no module_tinyexr_enabled=no module_upnp_enabled=no module_vhacd_enabled=no module_vorbis_enabled=no module_webrtc_enabled=no module_websocket_enabled=no module_webxr_enabled=no module_zip_enabled=no

If this proves not to work for your use case, you should review the list of
modules and see which ones you actually still need for your game (e.g. you
might want to keep networking-related modules, regex support, or theora
to play videos).
modules and see which ones you actually still need for your game (e.g. you might
want to keep networking-related modules, regex support,
``minimp3``/``ogg``/``vorbis`` to play music, or ``theora`` to play videos).

Alternatively, you can supply a list of disabled modules by creating
``custom.py`` at the root of the source, with the contents similar to the
Expand All @@ -182,23 +182,27 @@ following:
# custom.py
module_arkit_enabled = "no"
module_assimp_enabled = "no"
module_basis_universal_enabled = "no"
module_bmp_enabled = "no"
module_bullet_enabled = "no"
module_camera_enabled = "no"
module_csg_enabled = "no"
module_dds_enabled = "no"
module_enet_enabled = "no"
module_etc_enabled = "no"
module_gridmap_enabled = "no"
module_hdr_enabled = "no"
module_jsonrpc_enabled = "no"
module_ktx_enabled = "no"
module_mbedtls_enabled = "no"
module_meshoptimizer_enabled = "no"
module_minimp3_enabled = "no"
module_mobile_vr_enabled = "no"
module_opensimplex_enabled = "no"
module_pvr_enabled = "no"
module_recast_enabled = "no"
module_msdfgen_enabled= "no"
module_multiplayer_enabled = "no"
module_noise_enabled = "no"
module_navigation_enabled = "no"
module_ogg_enabled = "no"
module_openxr_enabled = "no"
module_raycast_enabled = "no"
module_regex_enabled = "no"
module_squish_enabled = "no"
module_svg_enabled = "no"
Expand All @@ -210,7 +214,8 @@ following:
module_vorbis_enabled = "no"
module_webrtc_enabled = "no"
module_websocket_enabled = "no"
module_xatlas_unwrap_enabled = "no"
module_webxr_enabled = "no"
module_zip_enabled = "no"
.. seealso::

Expand Down

0 comments on commit 5f5bf59

Please sign in to comment.