#26992·serenity

Meta/CMake: Double install configuration step for serenity

Author: educasadeiCreated Aug 29, 2026Updated Aug 29, 2026

The install and run subcommands from Meta/serenity.sh seem to have an unecessary second install configuration step being run even when there was nothing changed.

[0/5] Performing build step for 'lagom'
ninja: no work to do.
[1/5] Performing install step for 'lagom'
[0/1] Install the project...
-- Install configuration: ""  
[2/5] Performing build step for 'serenity'
ninja: no work to do.
[3/5] Performing install step for 'serenity'
[0/1] Install the project...
-- Install configuration: ""  <---- First install step
[5/5] Completed 'serenity'
ninja: Entering directory `/home/eduardo/Projects/serenity/Build/x86_64clang'
[0/1] Install the project...
-- Install configuration: ""  <---- Second install step

The first install configuration step seems to track down to the Superbuild using ExternalProject_Add and it in turn calling the install step as part of it's routine.

https://github.com/SerenityOS/serenity/blob/a36d1178c205070fa8d3aea62156dc769b01bcae/Meta/CMake/Superbuild/CMakeLists.txt#L101-L119

The second install step originates from Meta/serenity.sh itself, as in both of these subcommands it calls build_target which triggers the ExternalProject_Add install step and then does another call to build_target install which causes the second build step.

https://github.com/SerenityOS/serenity/blob/a36d1178c205070fa8d3aea62156dc769b01bcae/Meta/serenity.sh#L383-L454

Running two install steps every time slows down the build and run process quite a bit and at least on some of the testing I did removing the second install step stills allows serenity to build and run without issues.

But I don't know if there is a more nuanced reason why this is done or if this is just a bug.