ExternalProject: If BUILD_ALWAYS is set, always install
The BUILD_BYPRODUCTS
option causes the ExternalProject's build
step
in build.ninja
to have restat = 1
, so its "always out-of-date"
status caused by BUILD_ALWAYS
does not propagate to the install
step. Mark the latter step as explicitly always out-of-date too.
Original Description
When using the Ninja generator and the BUILD_ALWAYS option for ExternalProject_Add, ninja <name-of-externalproject>
will rebuild the external project but not reinstall it. The main project then still uses the previously installed version.
With the default Make generator, make <name-of-externalproject>
does reinstall the external project. I don't know why.
This patch modifies the install step so it resembles the build step for external projects: When BUILD_ALWAYS is enabled, the install step is always executed.
I applied this patch locally using spack and ninja <name-of-externalproject>
now always reinstalls the external project, similarly to the behavior of make.
Fixes: #23820 (closed)
Topic-rename: ExternalProject-BUILD_ALWAYS-install