On Sat, May 1, 2021 at 11:07 AM Mike Shal <[email protected]> wrote: > Hi all, > > A while back (2015!) the explicit-variant branch was published to test > moving away from the model of variants using the FUSE filesystem overlay, > to one where your Tupfiles need to be aware of variants in order to use > them. Although it requires a bit more work to use variants in your project, > it has several benefits: > > 1) Explicit variants work on Windows ( > https://github.com/gittup/tup/issues/70 and > https://github.com/gittup/tup/issues/334) > > 2) Paths stored in generated files with overlay variants can break > external tools (eg: https://github.com/gittup/tup/issues/229). With > explicit variants, tup isn't lying to other tools about paths. > > The main downside is that your Tupfiles may need to be updated to be aware > of variants. With overlay variants, this was mostly transparent (outside of > !tup_preserve), but with explicit variants, you may need to point things to > the build directory, which is referenced by $(TUP_VARIANTDIR). > > For example, generating a header file and including it in a C file like so: > > : |> echo '#define FOO 3' > %o |> foo.h > : foreach *.c | foo.h |> gcc -c %f -o %o |> %B.o > > would need to be updated to add -I$(TUP_VARIANTDIR) in order for gcc to > find the generated header file: > > : |> echo '#define FOO 3' > %o |> foo.h > : foreach *.c | foo.h |> gcc -I$(TUP_VARIANTDIR) -c %f -o %o |> %B.o > > With explicit variants, the subprocess runs in the src directory, and %o > is a relative path pointing to the build directory (something like > ../build/src/foo.o) > > I have an updated explicit-variant2 branch available: > https://github.com/gittup/tup/tree/explicit-variant2 > With a Windows test binary: > http://gittup.org/tup/win32/tup-explicit-variant-v0.7.10-52-g6b2c469e.zip > > I'm planning to merge this in 2 weeks time. If you use variants in your > project, any testing you could do before then would be appreciated. If you > have difficulty figuring out how to update your Tupfiles, feel free to > contact either the mailing list or me privately. > > Explicit variants are now merged into master. If you are using variants in your project, I recommend sticking with v0.7.11 until you have some time to update your Tupfiles to be compatible with explicit variants. Write to the mailing list with a small example if you are having issues converting things.
If you aren't using variants, upgrading to the latest master branch is hopefully uneventful. Thanks! -Mike -- -- tup-users mailing list email: [email protected] unsubscribe: [email protected] options: http://groups.google.com/group/tup-users?hl=en --- You received this message because you are subscribed to the Google Groups "tup-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/tup-users/CA%2B6x0LW%2BK7MM3AhwfN8%3DW%3D185B1u%3DeZ6w-9QAfh9DJ%3DLaMuhfg%40mail.gmail.com.
