From: Vladimir Prus (ghost_at_[hidden])
Date: 2003-10-03 02:31:40


Vladimir Prus wrote:
> David Abrahams wrote:
> > I am having a problem with header dependency analysis using BBv1.
> > When I build libs/type_traits/test/is_class_test, then change
> > boost/type_traits/is_class.hpp and rebuild, nothing happens.
>
> To begin with, I don't see
>
> #include <boost/type_traits/is_class.hpp>

In fact, there's something more complex. There's dependency chain

test_tools.hpp -> shared_ptr.hpp -> shared_count.hpp ->
quick_allocator.hpp -> type_with_alignment.hpp -> is_pod.hpp
-> is_scalar.hpp -> is_enum.hpp -> is_class.hpp

Which means that
1. Using boost.test for testing is_class is somewhat questionable, because
boost.test depends on is_class itself.

2. There's also is_class_test.cpp -> test.hpp -> unit_test.hpp ->
test_tools.hpp fragment, which in theory should cause the rebuild of
is_class_test.o when is_class.hpp is changed, even though include is not
explicit.

The interesting fact, that on my system the file is indeed recompiled the
first time, together with library. Later on, only library is recreated.

I don't know why nothing happens for you.

- Volodya