mirror of
https://github.com/ValveSoftware/Proton.git
synced 2025-01-15 16:18:20 +03:00
3273dc2de0
The intention is to batch all container invocations instead of instanciating one for every rule that needs to run within a container. This keeps track of build dependencies using a .any-build timestamp file and define a CONTAINER=1 variable when make is running within the container. When running within the container, only "configure" and "build" targets are active, all the other targets are no-op. When make is run outside of the container, it's the opposite, except for the "build" targets which all depend on this .any-build timestamp file to trigger the container build execution. The targets dependency graph is still complete, so "source" targets will always all be executed before the container, and configure steps will optionally run if the generated files are missing. When source change is detected, only the build rules are executed again, trusting each build system to decide if configure should be run again or not.