I have been using a version of tup compiled from source in November 2014.
This week, I saw the new namespace feature and figured it would be great
for better compatibility with gdb and gcov.
However, now my code will not build. What used to work now does not. I have
boiled it down to this:
bash$ *ls -A*
Tupfile foo.cc main.cc
bash$ *cat main.cc*
main(){return 0;}
bash$ *cat foo.cc*
int foo() {return 10;}
bash$ *cat Tupfile*
!compile = |> g++ -c %f --coverage -o %o |> %B.o | %B.gcno
: foreach *.cc |> !compile |>
bash$ *tup init*
.tup repository initialized.
bash$ *tup*
[ tup ] [0.000s] Scanning filesystem...
[ tup ] [0.001s] Reading in new environment variables...
[ tup ] [0.001s] Parsing Tupfiles...
1) [0.003s] .
[ ] 100%
[ tup ] [0.013s] No files to delete.
[ tup ] [0.013s] Generating .gitignore files...
[ tup ] [0.013s] Executing Commands...
* 1) g++ -c main.cc --coverage -o main.o
*** tup errors ***
tup error: File '/home/ajensen/tup/main.gcno' was written to, but is not in
.tup/db. You probably should specify it as an output
*** Command ID=13 ran successfully, but tup failed to save the
dependencies.
2) [0.032s] g++ -c foo.cc --coverage -o foo.o
[ ] 100%
*** tup: 1 job failed.
Note that it compiles the first file (foo.cc) of the foreach fine, but all
subsequent files have errors. It's like the %B.gcno extra file is only
getting applied to the first file matched by the foreach.
If I change the Tupfile to have the "%B.o | %B.gcno" on the foreach line
instead of the !compile macro, it works. Even if I just move the extra file
portion ("| %B.gcno") to the foreach line, leaving the "%B.o" in the macro,
it works.
--
--
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].
For more options, visit https://groups.google.com/d/optout.