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.

Reply via email to