Skip to content

Allow compiling the editor with minimal features #14431

@Goldenlion5648

Description

@Goldenlion5648

Problem or limitation

Compiling the editor for making PRs takes between 4-6 minutes on my machine on fresh a branch, and between 20-40 seconds on following builds if 1-2 files has changed.

It would be nice if the initial time was shorter. If I am making a simple change to settings or the text editor, do I really need to compile all these that are blacklisted from disabling in the scons file?

        "disable_3d",
        "disable_advanced_gui",
        "disable_physics_2d",
        "disable_physics_3d",
        "disable_navigation_2d",
        "disable_navigation_3d",

I tried to be clever and use a cache path that was outside of where I cloned into, so that different worktrees could use it, but the file location of each file is taken into account, so debugging doesn't work correctly

My current args are these

                "dev_build=yes",
                "cache_path=~/Documents/programming/prs/godot_compile_cache",
                "linker=mold",
                
                "ninja=no",
                "object_prefix=no_ninja",
                "disable_xr=yes",
                "module_jolt_physics_enabled=no",
                "builtin_embree=no",
                "builtin_freetype=no",
                "builtin_graphite=no",
                "builtin_harfbuzz=no",
                "builtin_libogg=no",
                "builtin_libpng=no",
                "builtin_libtheora=no",
                "builtin_libvorbis=no",
                "builtin_libwebp=no",
                "builtin_mbedtls=no",
                "builtin_miniupnpc=no",
                "builtin_pcre2=no",
                "builtin_sdl=no",
                "builtin_zlib=no",
                "builtin_zstd=no",
                "scu_limit=10000",

Proposed improvement

allow disabling many of the "extra" features that are currently blacklisted, and/or add a "minimal" option to scons to allow only compiling the bare minimum

Proposal review

  • Yes, this proposal is highly specific and actionable.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions